ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
February 2012
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
22 participants
577 discussions
Start a n
N
ew thread
[janderwald] 55788: [USBUHCI] - Implement starting the controller
by janderwald@svn.reactos.org
Author: janderwald Date: Tue Feb 21 18:33:37 2012 New Revision: 55788 URL:
http://svn.reactos.org/svn/reactos?rev=55788&view=rev
Log: [USBUHCI] - Implement starting the controller Modified: trunk/reactos/drivers/usb/usbuhci/hardware.cpp Modified: trunk/reactos/drivers/usb/usbuhci/hardware.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hardwa…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/hardware.cpp [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/hardware.cpp [iso-8859-1] Tue Feb 21 18:33:37 2012 @@ -370,24 +370,12 @@ return Status; } - - // - // Stop the controller before modifying schedules - // - Status = StopController(); - if (!NT_SUCCESS(Status)) - { - DPRINT1("Failed to stop the controller \n"); - ASSERT(FALSE); - return Status; - } - - // // Start the controller // DPRINT1("Starting Controller\n"); Status = StartController(); + // // done @@ -475,9 +463,60 @@ NTSTATUS CUSBHardwareDevice::StartController(void) { - UNIMPLEMENTED - ASSERT(FALSE); - return STATUS_NOT_IMPLEMENTED; + ULONG Index; + USHORT Status; + + + // + // debug info + // + DPRINT1("[USBUHCI] USBCMD: %x USBSTS %x\n", ReadRegister16(UHCI_USBCMD), ReadRegister16(UHCI_USBSTS)); + + // + // Set the run bit in the command register + // + WriteRegister16(UHCI_USBCMD, ReadRegister16(UHCI_USBCMD) | UHCI_USBCMD_RS); + + for(Index = 0; Index < 10; Index++) + { + // + // wait a bit + // + KeStallExecutionProcessor(100); + + // + // get controller status + // + Status = ReadRegister16(UHCI_USBSTS); + DPRINT1("[USBUHCI] Status %x\n", Status); + + if (!(Status & UHCI_USBSTS_HCHALT)) + { + // + // controller started + // + break; + } + } + + if ((Status & UHCI_USBSTS_HCHALT)) + { + // + // failed to start controller + // + DPRINT1("[USBUHCI] Failed to start controller Status %x\n", Status); + ASSERT(FALSE); + return STATUS_UNSUCCESSFUL; + } + + DPRINT1("[USBUHCI] Controller Started\n"); + DPRINT1("[USBUHCI] Controller Status %x\n", ReadRegister16(UHCI_USBSTS)); + DPRINT1("[USBUHCI] Controller Frame %x\n", ReadRegister16(UHCI_FRNUM)); + + // + // done + // + return STATUS_SUCCESS; } VOID
12 years, 10 months
1
0
0
0
[janderwald] 55787: [USBUHCI] - Implement function to retrieve queue head for the specified transfer type - Pass device speed to IUSBRequest initialization routines - Implementing inserting the new...
by janderwald@svn.reactos.org
Author: janderwald Date: Tue Feb 21 18:19:24 2012 New Revision: 55787 URL:
http://svn.reactos.org/svn/reactos?rev=55787&view=rev
Log: [USBUHCI] - Implement function to retrieve queue head for the specified transfer type - Pass device speed to IUSBRequest initialization routines - Implementing inserting the new queue head into the required queue head - Implement support for control transfers, not yet used Modified: trunk/reactos/drivers/usb/usbuhci/hardware.cpp trunk/reactos/drivers/usb/usbuhci/hardware.h trunk/reactos/drivers/usb/usbuhci/interfaces.h trunk/reactos/drivers/usb/usbuhci/usb_device.cpp trunk/reactos/drivers/usb/usbuhci/usb_queue.cpp trunk/reactos/drivers/usb/usbuhci/usb_request.cpp Modified: trunk/reactos/drivers/usb/usbuhci/hardware.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hardwa…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/hardware.cpp [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/hardware.cpp [iso-8859-1] Tue Feb 21 18:19:24 2012 @@ -73,8 +73,9 @@ NTSTATUS GetPortStatus(ULONG PortId, OUT USHORT *PortStatus, OUT USHORT *PortChange); NTSTATUS ClearPortStatus(ULONG PortId, ULONG Status); NTSTATUS SetPortFeature(ULONG PortId, ULONG Feature); - VOID SetStatusChangeEndpointCallBack(PVOID CallBack, PVOID Context); + VOID GetQueueHead(ULONG QueueHeadIndex, PUHCI_QUEUE_HEAD *OutQueueHead); + KIRQL AcquireDeviceLock(void); VOID ReleaseDeviceLock(KIRQL OldLevel); @@ -616,7 +617,7 @@ // // link queue heads // - m_QueueHead[Index-1]->LinkPhysical = m_QueueHead[Index]->LinkPhysical | QH_NEXT_IS_QH; + m_QueueHead[Index-1]->LinkPhysical = m_QueueHead[Index]->PhysicalAddress | QH_NEXT_IS_QH; m_QueueHead[Index-1]->NextLogicalDescriptor = m_QueueHead[Index]; } } @@ -1218,6 +1219,21 @@ return READ_PORT_ULONG((PULONG)((ULONG)m_Base + Register)); } +VOID +CUSBHardwareDevice::GetQueueHead( + IN ULONG QueueHeadIndex, + OUT PUHCI_QUEUE_HEAD *OutQueueHead) +{ + // + // sanity check + // + ASSERT(QueueHeadIndex < 5); + + // + // store queue head + // + *OutQueueHead = m_QueueHead[QueueHeadIndex]; +} VOID NTAPI Modified: trunk/reactos/drivers/usb/usbuhci/hardware.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hardwa…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/hardware.h [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/hardware.h [iso-8859-1] Tue Feb 21 18:19:24 2012 @@ -163,7 +163,7 @@ } // Represents a Queue Head (QH) -typedef struct +typedef struct _UHCI_QUEUE_HEAD { // hardware part ULONG LinkPhysical; // address @@ -172,6 +172,8 @@ // Software part ULONG PhysicalAddress; PVOID NextLogicalDescriptor; + PVOID Request; + PVOID NextElementDescriptor; }UHCI_QUEUE_HEAD, *PUHCI_QUEUE_HEAD; #define QH_TERMINATE 0x01 Modified: trunk/reactos/drivers/usb/usbuhci/interfaces.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/interf…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/interfaces.h [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/interfaces.h [iso-8859-1] Tue Feb 21 18:19:24 2012 @@ -107,7 +107,7 @@ typedef IHCDController *PHCDCONTROLLER; -struct _UHCI_TRANSFER_DESCRIPTOR; +struct _UHCI_QUEUE_HEAD; //========================================================================================= // // class IUSBHardwareDevice @@ -250,6 +250,15 @@ // Description: Used to callback to the hub controller when SCE detected // virtual VOID SetStatusChangeEndpointCallBack(PVOID CallBack,PVOID Context) = 0; + +//----------------------------------------------------------------------------------------- +// +// GetQueueHead +// +// Description: gets a queue head with the specified queue head index +// + virtual VOID GetQueueHead(ULONG QueueHeadIndex, struct _UHCI_QUEUE_HEAD **OutQueueHead) = 0; + //----------------------------------------------------------------------------------------- // @@ -350,6 +359,7 @@ virtual NTSTATUS InitializeWithSetupPacket(IN PDMAMEMORYMANAGER DmaManager, IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket, IN UCHAR DeviceAddress, + IN USB_DEVICE_SPEED DeviceSpeed, IN OPTIONAL PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor, IN OUT ULONG TransferBufferLength, IN OUT PMDL TransferBuffer) = 0; @@ -362,7 +372,8 @@ // The irp contains an URB block which contains all necessary information virtual NTSTATUS InitializeWithIrp(IN PDMAMEMORYMANAGER DmaManager, - IN OUT PIRP Irp) = 0; + IN OUT PIRP Irp, + IN USB_DEVICE_SPEED DeviceSpeed) = 0; //----------------------------------------------------------------------------------------- // @@ -390,7 +401,7 @@ // // Description: returns the general transfer descriptor - virtual NTSTATUS GetEndpointDescriptor(struct _UHCI_TRANSFER_DESCRIPTOR ** OutDescriptor) = 0; + virtual NTSTATUS GetEndpointDescriptor(struct _UHCI_QUEUE_HEAD ** OutDescriptor) = 0; //----------------------------------------------------------------------------------------- // @@ -417,6 +428,14 @@ // Description: returns interval of the iso / interrupt virtual UCHAR GetInterval() = 0; + +//----------------------------------------------------------------------------------------- +// +// GetDeviceSpeed +// +// Description: returns device speed + + virtual USB_DEVICE_SPEED GetDeviceSpeed() = 0; }; Modified: trunk/reactos/drivers/usb/usbuhci/usb_device.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usb_de…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/usb_device.cpp [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/usb_device.cpp [iso-8859-1] Tue Feb 21 18:19:24 2012 @@ -462,7 +462,7 @@ // // initialize request // - Status = Request->InitializeWithIrp(m_DmaManager, Irp); + Status = Request->InitializeWithIrp(m_DmaManager, Irp, GetSpeed()); // // mark irp as pending @@ -550,7 +550,7 @@ // // initialize request // - Status = Request->InitializeWithSetupPacket(m_DmaManager, Packet, m_DeviceAddress, EndpointDescriptor, BufferLength, Mdl); + Status = Request->InitializeWithSetupPacket(m_DmaManager, Packet, m_DeviceAddress, GetSpeed(), EndpointDescriptor, BufferLength, Mdl); if (!NT_SUCCESS(Status)) { // Modified: trunk/reactos/drivers/usb/usbuhci/usb_queue.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usb_qu…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/usb_queue.cpp [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/usb_queue.cpp [iso-8859-1] Tue Feb 21 18:19:24 2012 @@ -40,6 +40,9 @@ virtual NTSTATUS CancelRequests(); virtual NTSTATUS CreateUSBRequest(IUSBRequest **OutRequest); + // local + VOID LinkQueueHead(PUHCI_QUEUE_HEAD QueueHead, PUHCI_QUEUE_HEAD NextQueueHead); + // constructor / destructor CUSBQueue(IUnknown *OuterUnknown){} virtual ~CUSBQueue(){} @@ -104,9 +107,93 @@ CUSBQueue::AddUSBRequest( IUSBRequest * Request) { + PUHCI_QUEUE_HEAD NewQueueHead, QueueHead = NULL; + NTSTATUS Status; + DPRINT("CUSBQueue::AddUSBRequest\n"); - ASSERT(FALSE); + + // + // get queue head + // + Status = Request->GetEndpointDescriptor(&NewQueueHead); + if (!NT_SUCCESS(Status)) + { + // + // failed to create queue head + // + DPRINT1("[USBUHCI] Failed to create queue head %x\n", Status); + return Status; + } + + if (Request->GetTransferType() == USB_ENDPOINT_TYPE_CONTROL) + { + // + // get device speed + // + if (Request->GetDeviceSpeed() == UsbLowSpeed) + { + // + // use low speed queue + // + m_Hardware->GetQueueHead(UHCI_LOW_SPEED_CONTROL_QUEUE, &QueueHead); + } + else + { + // + // use full speed queue + // + m_Hardware->GetQueueHead(UHCI_FULL_SPEED_CONTROL_QUEUE, &QueueHead); + } + } + else if (Request->GetTransferType() == USB_ENDPOINT_TYPE_BULK) + { + // + // use full speed queue + // + m_Hardware->GetQueueHead(UHCI_BULK_QUEUE, &QueueHead); + } + else if (Request->GetTransferType() == USB_ENDPOINT_TYPE_INTERRUPT) + { + // + // use full speed queue + // + m_Hardware->GetQueueHead(UHCI_INTERRUPT_QUEUE, &QueueHead); + } + else if (Request->GetTransferType() == USB_ENDPOINT_TYPE_INTERRUPT) + { + // + // use full speed queue + // + m_Hardware->GetQueueHead(UHCI_INTERRUPT_QUEUE, &QueueHead); + } + + // + // FIXME support isochronous + // + ASSERT(QueueHead); + + // + // add reference + // + Request->AddRef(); + + // + // now link the new queue head + // + LinkQueueHead(QueueHead, NewQueueHead); return STATUS_SUCCESS; +} + +VOID +CUSBQueue::LinkQueueHead( + IN PUHCI_QUEUE_HEAD QueueHead, + IN PUHCI_QUEUE_HEAD NextQueueHead) +{ + NextQueueHead->LinkPhysical = QueueHead->LinkPhysical; + NextQueueHead->NextLogicalDescriptor = QueueHead->NextLogicalDescriptor; + + QueueHead->LinkPhysical = NextQueueHead->PhysicalAddress | QH_NEXT_IS_QH; + QueueHead->NextLogicalDescriptor = (PVOID)NextQueueHead; } NTSTATUS Modified: trunk/reactos/drivers/usb/usbuhci/usb_request.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usb_re…
============================================================================== --- trunk/reactos/drivers/usb/usbuhci/usb_request.cpp [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbuhci/usb_request.cpp [iso-8859-1] Tue Feb 21 18:19:24 2012 @@ -36,15 +36,16 @@ } // IUSBRequest interface functions - virtual NTSTATUS InitializeWithSetupPacket(IN PDMAMEMORYMANAGER DmaManager, IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket, IN UCHAR DeviceAddress, IN OPTIONAL PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor, IN OUT ULONG TransferBufferLength, IN OUT PMDL TransferBuffer); - virtual NTSTATUS InitializeWithIrp(IN PDMAMEMORYMANAGER DmaManager, IN OUT PIRP Irp); + virtual NTSTATUS InitializeWithSetupPacket(IN PDMAMEMORYMANAGER DmaManager, IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket, IN UCHAR DeviceAddress, IN USB_DEVICE_SPEED DeviceSpeed, IN OPTIONAL PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor, IN OUT ULONG TransferBufferLength, IN OUT PMDL TransferBuffer); + virtual NTSTATUS InitializeWithIrp(IN PDMAMEMORYMANAGER DmaManager, IN OUT PIRP Irp, IN USB_DEVICE_SPEED DeviceSpeed); virtual BOOLEAN IsRequestComplete(); virtual ULONG GetTransferType(); - virtual NTSTATUS GetEndpointDescriptor(struct _UHCI_TRANSFER_DESCRIPTOR ** OutEndpointDescriptor); + virtual NTSTATUS GetEndpointDescriptor(struct _UHCI_QUEUE_HEAD ** OutQueueHead); virtual VOID GetResultStatus(OUT OPTIONAL NTSTATUS *NtStatusCode, OUT OPTIONAL PULONG UrbStatusCode); virtual BOOLEAN IsRequestInitialized(); virtual BOOLEAN IsQueueHeadComplete(struct _QUEUE_HEAD * QueueHead); virtual UCHAR GetInterval(); + virtual USB_DEVICE_SPEED GetDeviceSpeed(); // local functions @@ -55,6 +56,13 @@ NTSTATUS BuildSetupPacketFromURB(); UCHAR GetEndpointAddress(); USHORT GetMaxPacketSize(); + NTSTATUS CreateDescriptor(PUHCI_TRANSFER_DESCRIPTOR *OutDescriptor, IN UCHAR PidCode, ULONG BufferLength); + NTSTATUS BuildControlTransferDescriptor(IN PUHCI_QUEUE_HEAD * OutQueueHead); + NTSTATUS BuildQueueHead(OUT PUHCI_QUEUE_HEAD *OutQueueHead); + VOID FreeDescriptor(IN PUHCI_TRANSFER_DESCRIPTOR Descriptor); + NTSTATUS BuildTransferDescriptorChain(IN PVOID TransferBuffer, IN ULONG TransferBufferLength, IN UCHAR PidCode, IN UCHAR InitialDataToggle, OUT PUHCI_TRANSFER_DESCRIPTOR * OutFirstDescriptor, OUT PUHCI_TRANSFER_DESCRIPTOR * OutLastDescriptor, OUT PULONG OutTransferBufferOffset, OUT PUCHAR OutDataToggle); + + // constructor / destructor CUSBRequest(IUnknown *OuterUnknown){} @@ -124,6 +132,11 @@ // NTSTATUS m_NtStatusCode; ULONG m_UrbStatusCode; + + // + // store device speed + // + USB_DEVICE_SPEED m_DeviceSpeed; }; @@ -143,6 +156,7 @@ IN PDMAMEMORYMANAGER DmaManager, IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket, IN UCHAR DeviceAddress, + IN USB_DEVICE_SPEED DeviceSpeed, IN OPTIONAL PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor, IN OUT ULONG TransferBufferLength, IN OUT PMDL TransferBuffer) @@ -163,6 +177,7 @@ m_DeviceAddress = DeviceAddress; m_EndpointDescriptor = EndpointDescriptor; m_TotalBytesTransferred = 0; + m_DeviceSpeed = DeviceSpeed; // // Set Length Completed to 0 @@ -195,7 +210,8 @@ NTSTATUS CUSBRequest::InitializeWithIrp( IN PDMAMEMORYMANAGER DmaManager, - IN OUT PIRP Irp) + IN OUT PIRP Irp, + IN USB_DEVICE_SPEED DeviceSpeed) { PIO_STACK_LOCATION IoStack; PURB Urb; @@ -208,6 +224,7 @@ m_DmaManager = DmaManager; m_TotalBytesTransferred = 0; + m_DeviceSpeed = DeviceSpeed; // // get current irp stack location @@ -514,13 +531,21 @@ UCHAR CUSBRequest::InternalGetPidDirection() { - ASSERT(m_Irp); - ASSERT(m_EndpointDescriptor); - - // - // end point is defined in the low byte of bEndpointAddress - // - return (m_EndpointDescriptor->bEndpointAddress & USB_ENDPOINT_DIRECTION_MASK) >> 7; + if (m_EndpointDescriptor) + { + // + // end point direction is highest bit in bEndpointAddress + // + return (m_EndpointDescriptor->bEndpointAddress & USB_ENDPOINT_DIRECTION_MASK) >> 7; + } + else + { + // + // request arrives on the control pipe, extract direction from setup packet + // + ASSERT(m_SetupPacket); + return (m_SetupPacket->bmRequestType.B >> 7); + } } @@ -578,13 +603,35 @@ //---------------------------------------------------------------------------------------- NTSTATUS CUSBRequest::GetEndpointDescriptor( - struct _UHCI_TRANSFER_DESCRIPTOR ** OutDescriptor) -{ - ASSERT(FALSE); + struct _UHCI_QUEUE_HEAD ** OutQueueHead) +{ + NTSTATUS Status = STATUS_UNSUCCESSFUL; + + if (InternalGetTransferType() == USB_ENDPOINT_TYPE_CONTROL) + { + // + // build queue head + // + Status = BuildControlTransferDescriptor(OutQueueHead); + } + + if (!NT_SUCCESS(Status)) + { + // + // failed + // + return Status; + } + + // + // store result + // + (*OutQueueHead)->Request = PVOID(this); + // // done // - return STATUS_NOT_IMPLEMENTED; + return STATUS_SUCCESS; } //---------------------------------------------------------------------------------------- @@ -647,8 +694,442 @@ UNIMPLEMENTED return TRUE; } - - +//----------------------------------------------------------------------------------------- +NTSTATUS +CUSBRequest::CreateDescriptor( + OUT PUHCI_TRANSFER_DESCRIPTOR *OutDescriptor, + IN UCHAR PidCode, + ULONG BufferLength) +{ + PUHCI_TRANSFER_DESCRIPTOR Descriptor; + PHYSICAL_ADDRESS Address; + NTSTATUS Status; + + // + // allocate descriptor + // + Status = m_DmaManager->Allocate(sizeof(UHCI_TRANSFER_DESCRIPTOR), (PVOID*)&Descriptor, &Address); + if (!NT_SUCCESS(Status)) + { + DPRINT1("[USBUHCI] Failed to allocate descriptor\n"); + return Status; + } + + // + // init descriptor + // + Descriptor->PhysicalAddress = Address; + Descriptor->Status = TD_STATUS_ACTIVE; + + if (InternalGetTransferType() == USB_ENDPOINT_TYPE_ISOCHRONOUS) + { + // + // isochronous transfer descriptor + // + Descriptor->Status |= TD_CONTROL_ISOCHRONOUS; + } + else + { + // + // error count + // + Descriptor->Status |= TD_CONTROL_3_ERRORS; + + if (PidCode == TD_TOKEN_IN && (InternalGetTransferType() != USB_ENDPOINT_TYPE_CONTROL)) + { + // + // enable short packet detect for bulk & interrupt + // + Descriptor->Status |= TD_CONTROL_SPD; + } + } + + // + // is it low speed device + // + if (m_DeviceSpeed == UsbLowSpeed) + { + // + // low speed device + // + Descriptor->Status |= TD_CONTROL_LOWSPEED; + } + + // + // store buffer size + // + Descriptor->BufferSize = BufferLength; + + // + // is there a buffer + // + if(BufferLength) + { + // + // store buffer length + // + Descriptor->Token = (BufferLength - 1) << TD_TOKEN_MAXLEN_SHIFT; + } + else + { + // + // no buffer magic constant + // + Descriptor->Token = TD_TOKEN_NULL_DATA; + } + + // + // store address & endpoint number + // + Descriptor->Token |= GetEndpointAddress() << TD_TOKEN_ENDPTADDR_SHIFT; + Descriptor->Token |= GetDeviceAddress() << 8 | PidCode; + + if (BufferLength) + { + // + // allocate buffer for descriptor + // + Status = m_DmaManager->Allocate(BufferLength, (PVOID*)&Descriptor->BufferLogical, &Address); + if (!NT_SUCCESS(Status)) + { + DPRINT1("[USBUHCI] Failed to allocate descriptor buffer length %lu\n", BufferLength); + m_DmaManager->Release(Descriptor, sizeof(UHCI_TRANSFER_DESCRIPTOR)); + return Status; + } + + // + // store address + // + Descriptor->BufferPhysical = Address.LowPart; + } + + // + // done + // + *OutDescriptor = Descriptor; + return STATUS_SUCCESS; +} + +NTSTATUS +CUSBRequest::BuildTransferDescriptorChain( + IN PVOID TransferBuffer, + IN ULONG TransferBufferLength, + IN UCHAR PidCode, + IN UCHAR InitialDataToggle, + OUT PUHCI_TRANSFER_DESCRIPTOR * OutFirstDescriptor, + OUT PUHCI_TRANSFER_DESCRIPTOR * OutLastDescriptor, + OUT PULONG OutTransferBufferOffset, + OUT PUCHAR OutDataToggle) +{ + PUHCI_TRANSFER_DESCRIPTOR FirstDescriptor = NULL, CurrentDescriptor, LastDescriptor = NULL; + UCHAR TransferBufferOffset = 0; + NTSTATUS Status; + ULONG MaxPacketSize, CurrentBufferSize; + + // + // FIXME FIXME FIXME FIXME FIXME + // + MaxPacketSize = 64; + + do + { + // + // determine current packet size + // + CurrentBufferSize = min(MaxPacketSize, TransferBufferLength - TransferBufferOffset); + + // + // allocate descriptor + // + Status = CreateDescriptor(&CurrentDescriptor, PidCode, CurrentBufferSize); + if (!NT_SUCCESS(Status)) + { + // + // failed to allocate queue head + // + DPRINT1("[UHCI] Failed to create descriptor\n"); + ASSERT(FALSE); + return Status; + } + + if (PidCode == TD_TOKEN_OUT) + { + // + // copy buffer + // + RtlCopyMemory(CurrentDescriptor->BufferLogical, TransferBuffer, CurrentBufferSize); + } + + if (!FirstDescriptor) + { + // + // first descriptor + // + FirstDescriptor = CurrentDescriptor; + } + else + { + // + // link descriptor + // + LastDescriptor->LinkPhysical = CurrentDescriptor->PhysicalAddress.LowPart | TD_DEPTH_FIRST; + LastDescriptor->NextLogicalDescriptor = (PVOID)CurrentDescriptor; + } + + if (InitialDataToggle) + { + // + // apply data toggle + // + CurrentDescriptor->Token |= TD_TOKEN_DATA1; + } + + // + // re-run + // + LastDescriptor = CurrentDescriptor; + TransferBufferOffset += CurrentBufferSize; + InitialDataToggle = !InitialDataToggle; + + }while(TransferBufferOffset < TransferBufferLength); + + if (OutTransferBufferOffset) + { + // + // store transfer buffer length + // + *OutTransferBufferOffset = TransferBufferOffset; + } + + if (OutFirstDescriptor) + { + // + // store first descriptor + // + *OutFirstDescriptor = FirstDescriptor; + } + + if (OutLastDescriptor) + { + // + // store last descriptor + // + *OutLastDescriptor = CurrentDescriptor; + } + + if (OutDataToggle) + { + // + // store data toggle + // + *OutDataToggle = InitialDataToggle; + } + + // + // done + // + return STATUS_SUCCESS; +} + +NTSTATUS +CUSBRequest::BuildQueueHead( + OUT PUHCI_QUEUE_HEAD *OutQueueHead) +{ + PUHCI_QUEUE_HEAD QueueHead; + NTSTATUS Status; + PHYSICAL_ADDRESS Address; + + // + // allocate queue head + // + Status = m_DmaManager->Allocate(sizeof(UHCI_QUEUE_HEAD), (PVOID*)&QueueHead, &Address); + if (!NT_SUCCESS(Status)) + { + // + // failed to allocate queue head + // + DPRINT1("[UHCI] Failed to create queue head\n"); + return Status; + } + + // + // store address + // + QueueHead->PhysicalAddress = Address.LowPart; + QueueHead->ElementPhysical = Address.LowPart; + + // + // store result + // + *OutQueueHead = QueueHead; + return STATUS_SUCCESS; +} + +VOID +CUSBRequest::FreeDescriptor( + IN PUHCI_TRANSFER_DESCRIPTOR Descriptor) +{ + if (Descriptor->BufferLogical) + { + // + // free buffer + // + m_DmaManager->Release(Descriptor->BufferLogical, Descriptor->BufferSize); + } + + // + // free descriptors + // + m_DmaManager->Release(Descriptor, sizeof(UHCI_TRANSFER_DESCRIPTOR)); +} + +NTSTATUS +CUSBRequest::BuildControlTransferDescriptor( + IN PUHCI_QUEUE_HEAD * OutQueueHead) +{ + PUHCI_TRANSFER_DESCRIPTOR SetupDescriptor, StatusDescriptor, FirstDescriptor, LastDescriptor; + PUHCI_QUEUE_HEAD QueueHead; + BOOLEAN Direction; + NTSTATUS Status; + ULONG ChainDescriptorLength; + + // + // create queue head + // + Status = BuildQueueHead(&QueueHead); + if (!NT_SUCCESS(Status)) + { + // + // failed to allocate descriptor + // + DPRINT1("[UHCI] Failed to create queue head\n"); + return Status; + } + + // + // get direction + // + Direction = InternalGetPidDirection(); + + // + // build setup descriptor + // + Status = CreateDescriptor(&SetupDescriptor, + TD_TOKEN_SETUP, + sizeof(USB_DEFAULT_PIPE_SETUP_PACKET)); + if (!NT_SUCCESS(Status)) + { + // + // failed to allocate descriptor + // + DPRINT1("[UHCI] Failed to create setup descriptor\n"); + m_DmaManager->Release(QueueHead, sizeof(UHCI_QUEUE_HEAD)); + return Status; + } + + // + // build status descriptor + // + Status = CreateDescriptor(&StatusDescriptor, + Direction ? TD_TOKEN_OUT : TD_TOKEN_IN, + 0); + if (!NT_SUCCESS(Status)) + { + // + // failed to allocate descriptor + // + DPRINT1("[UHCI] Failed to create setup descriptor\n"); + FreeDescriptor(SetupDescriptor); + m_DmaManager->Release(QueueHead, sizeof(UHCI_QUEUE_HEAD)); + return Status; + } + + if (m_SetupPacket) + { + // + // copy setup packet + // + RtlCopyMemory(SetupDescriptor->BufferLogical, m_SetupPacket, sizeof(USB_DEFAULT_PIPE_SETUP_PACKET)); + } + else + { + // + // generate setup packet from urb + // + ASSERT(FALSE); + } + + // + // init status descriptor + // + StatusDescriptor->Status |= TD_CONTROL_IOC; + StatusDescriptor->Token |= TD_TOKEN_DATA1; + StatusDescriptor->LinkPhysical = TD_TERMINATE; + StatusDescriptor->NextLogicalDescriptor = NULL; + + if (m_TransferBufferLength) + { + // + // create descriptor chain + // + Status = BuildTransferDescriptorChain(MmGetMdlVirtualAddress(m_TransferBufferMDL), + m_TransferBufferLength, + Direction ? TD_TOKEN_IN : TD_TOKEN_OUT, + FALSE, + &FirstDescriptor, + &LastDescriptor, + &ChainDescriptorLength, + NULL); + if (!NT_SUCCESS(Status)) + { + // + // failed to allocate descriptor + // + DPRINT1("[UHCI] Failed to create descriptor chain\n"); + FreeDescriptor(SetupDescriptor); + FreeDescriptor(StatusDescriptor); + m_DmaManager->Release(QueueHead, sizeof(UHCI_QUEUE_HEAD)); + return Status; + } + + // + // link setup descriptor to first data descriptor + // + SetupDescriptor->LinkPhysical = FirstDescriptor->PhysicalAddress.LowPart | TD_DEPTH_FIRST; + SetupDescriptor->NextLogicalDescriptor = (PVOID)FirstDescriptor; + + // + // link last data descriptor to status descriptor + // + LastDescriptor->LinkPhysical = StatusDescriptor->PhysicalAddress.LowPart | TD_DEPTH_FIRST; + LastDescriptor->NextLogicalDescriptor = (PVOID)StatusDescriptor; + } + else + { + // + // directly link setup to status descriptor + // + SetupDescriptor->LinkPhysical = StatusDescriptor->PhysicalAddress.LowPart | TD_DEPTH_FIRST; + SetupDescriptor->NextLogicalDescriptor = (PVOID)StatusDescriptor; + } + + // + // link queue head with setup descriptor + // + QueueHead->NextElementDescriptor = (PVOID)SetupDescriptor; + QueueHead->ElementPhysical = SetupDescriptor->PhysicalAddress.LowPart; + + // + // store result + // + *OutQueueHead = QueueHead; + return STATUS_SUCCESS; +} +USB_DEVICE_SPEED +CUSBRequest::GetDeviceSpeed() +{ + return m_DeviceSpeed; +} //----------------------------------------------------------------------------------------- NTSTATUS
12 years, 10 months
1
0
0
0
[akhaldi] 55786: [LIBPNG] * Sync up to 1.5.9.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Tue Feb 21 18:17:50 2012 New Revision: 55786 URL:
http://svn.reactos.org/svn/reactos?rev=55786&view=rev
Log: [LIBPNG] * Sync up to 1.5.9. Added: trunk/reactos/dll/3rdparty/libpng/png.h (with props) trunk/reactos/dll/3rdparty/libpng/pngconf.h (with props) trunk/reactos/dll/3rdparty/libpng/pngdebug.h (with props) trunk/reactos/dll/3rdparty/libpng/pnginfo.h (with props) trunk/reactos/dll/3rdparty/libpng/pngpriv.h (with props) trunk/reactos/dll/3rdparty/libpng/pngstruct.h (with props) Removed: trunk/reactos/dll/3rdparty/libpng/new_push_process_row.c Modified: trunk/reactos/dll/3rdparty/libpng/CMakeLists.txt trunk/reactos/dll/3rdparty/libpng/libpng.rbuild trunk/reactos/dll/3rdparty/libpng/png.c trunk/reactos/dll/3rdparty/libpng/pngerror.c trunk/reactos/dll/3rdparty/libpng/pngget.c trunk/reactos/dll/3rdparty/libpng/pngmem.c trunk/reactos/dll/3rdparty/libpng/pngpread.c trunk/reactos/dll/3rdparty/libpng/pngread.c trunk/reactos/dll/3rdparty/libpng/pngrtran.c trunk/reactos/dll/3rdparty/libpng/pngrutil.c trunk/reactos/dll/3rdparty/libpng/pngset.c trunk/reactos/dll/3rdparty/libpng/pngtest.c trunk/reactos/dll/3rdparty/libpng/pngwrite.c trunk/reactos/dll/3rdparty/libpng/pngwtran.c trunk/reactos/dll/3rdparty/libpng/pngwutil.c [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/reactos/dll/3rdparty/libpng/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/CMakeL…
Modified: trunk/reactos/dll/3rdparty/libpng/libpng.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/libpng…
Removed: trunk/reactos/dll/3rdparty/libpng/new_push_process_row.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/new_pu…
Modified: trunk/reactos/dll/3rdparty/libpng/png.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/png.c?…
Added: trunk/reactos/dll/3rdparty/libpng/png.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/png.h?…
Added: trunk/reactos/dll/3rdparty/libpng/pngconf.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngcon…
Added: trunk/reactos/dll/3rdparty/libpng/pngdebug.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngdeb…
Modified: trunk/reactos/dll/3rdparty/libpng/pngerror.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngerr…
Modified: trunk/reactos/dll/3rdparty/libpng/pngget.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngget…
Added: trunk/reactos/dll/3rdparty/libpng/pnginfo.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pnginf…
Modified: trunk/reactos/dll/3rdparty/libpng/pngmem.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngmem…
Modified: trunk/reactos/dll/3rdparty/libpng/pngpread.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngpre…
Added: trunk/reactos/dll/3rdparty/libpng/pngpriv.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngpri…
Modified: trunk/reactos/dll/3rdparty/libpng/pngread.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngrea…
Modified: trunk/reactos/dll/3rdparty/libpng/pngrtran.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngrtr…
Modified: trunk/reactos/dll/3rdparty/libpng/pngrutil.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngrut…
Modified: trunk/reactos/dll/3rdparty/libpng/pngset.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngset…
Added: trunk/reactos/dll/3rdparty/libpng/pngstruct.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngstr…
Modified: trunk/reactos/dll/3rdparty/libpng/pngtest.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngtes…
Modified: trunk/reactos/dll/3rdparty/libpng/pngwrite.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngwri…
Modified: trunk/reactos/dll/3rdparty/libpng/pngwtran.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngwtr…
Modified: trunk/reactos/dll/3rdparty/libpng/pngwutil.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/3rdparty/libpng/pngwut…
12 years, 10 months
1
0
0
0
[akhaldi] 55785: [CMAKE] * Reorder the modules addresses based on their dependencies.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Tue Feb 21 18:01:08 2012 New Revision: 55785 URL:
http://svn.reactos.org/svn/reactos?rev=55785&view=rev
Log: [CMAKE] * Reorder the modules addresses based on their dependencies. Modified: trunk/reactos/cmake/baseaddress.cmake Modified: trunk/reactos/cmake/baseaddress.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/baseaddress.cmake?re…
============================================================================== --- trunk/reactos/cmake/baseaddress.cmake [iso-8859-1] (original) +++ trunk/reactos/cmake/baseaddress.cmake [iso-8859-1] Tue Feb 21 18:01:08 2012 @@ -1,389 +1,297 @@ set(baseaddress_ntdll 0x77f20000) set(baseaddress_kernel32 0x77da0000) -set(baseaddress_user32 0x77c10000) -set(baseaddress_gdi32 0x77ba0000) -set(baseaddress_advapi32 0x77af0000) -set(baseaddress_comctl32 0x77990000) -set(baseaddress_comdlg32 0x778a0000) -set(baseaddress_rpcrt4 0x777e0000) -set(baseaddress_msvcrt 0x77750000) -set(baseaddress_shell32 0x76a70000) -set(baseaddress_acledit 0x76a40000) -set(baseaddress_aclui 0x76a00000) -set(baseaddress_activeds 0x769d0000) -set(baseaddress_actxprxy 0x76800000) -set(baseaddress_advpack 0x767c0000) -set(baseaddress_amstream 0x76780000) -set(baseaddress_atl 0x76740000) -set(baseaddress_authz 0x76710000) -set(baseaddress_avicap32 0x766e0000) -set(baseaddress_avifil32 0x76680000) -set(baseaddress_batt 0x76650000) -set(baseaddress_bcrypt 0x76620000) -set(baseaddress_beepmidi 0x76600000) -set(baseaddress_bmfd 0x765e0000) -set(baseaddress_bootvid 0x765c0000) -set(baseaddress_browseui 0x76500000) -set(baseaddress_cabinet 0x764c0000) -set(baseaddress_cards 0x76410000) -set(baseaddress_cfgmgr32 0x763f0000) -set(baseaddress_clusapi 0x763c0000) -set(baseaddress_comcat 0x763a0000) -set(baseaddress_compstui 0x76370000) -set(baseaddress_console 0x76330000) -set(baseaddress_credui 0x762f0000) -set(baseaddress_crtdll 0x762a0000) -set(baseaddress_crypt32 0x761a0000) -set(baseaddress_cryptdlg 0x76170000) -set(baseaddress_cryptdll 0x76140000) -set(baseaddress_cryptnet 0x76110000) -set(baseaddress_cryptui 0x76060000) -set(baseaddress_csrsrv2 0x76030000) -set(baseaddress_csrsrv 0x76000000) -set(baseaddress_d3d8 0x75fa0000) -set(baseaddress_d3d8thk 0x75f80000) -set(baseaddress_d3d9 0x75f20000) -set(baseaddress_d3dx9_24 0x75ef0000) -set(baseaddress_d3dx9_25 0x75ec0000) -set(baseaddress_d3dx9_26 0x75e90000) -set(baseaddress_d3dx9_27 0x75e60000) -set(baseaddress_d3dx9_28 0x75e30000) -set(baseaddress_d3dx9_29 0x75e00000) -set(baseaddress_d3dx9_30 0x75dd0000) -set(baseaddress_d3dx9_31 0x75da0000) -set(baseaddress_d3dx9_32 0x75d70000) -set(baseaddress_d3dx9_33 0x75d40000) -set(baseaddress_d3dx9_34 0x75d10000) -set(baseaddress_d3dx9_35 0x75ce0000) -set(baseaddress_d3dx9_36 0x75c80000) -set(baseaddress_d3dx9_37 0x75c50000) -set(baseaddress_d3dx9_38 0x75c20000) -set(baseaddress_d3dx9_39 0x75bf0000) -set(baseaddress_d3dx9_40 0x75bc0000) -set(baseaddress_d3dx9_41 0x75b90000) -set(baseaddress_d3dx9_42 0x75b60000) -set(baseaddress_dbghelp 0x75ad0000) -set(baseaddress_dciman32 0x75aa0000) -set(baseaddress_ddraw 0x75a00000) -set(baseaddress_deskadp 0x759d0000) -set(baseaddress_deskmon 0x759a0000) -set(baseaddress_devcpux 0x75970000) -set(baseaddress_devenum 0x75930000) -set(baseaddress_devmgr 0x758b0000) -set(baseaddress_dhcpcsvc 0x75860000) -set(baseaddress_dinput8 0x75830000) -set(baseaddress_dinput 0x757e0000) -set(baseaddress_dmusic 0x757a0000) -set(baseaddress_dnsapi 0x75760000) -set(baseaddress_dplay 0x75740000) -set(baseaddress_dplayx 0x756e0000) -set(baseaddress_dsound 0x75660000) -set(baseaddress_dwmapi 0x75630000) -set(baseaddress_dxdiagn 0x75600000) -set(baseaddress_faultrep 0x755d0000) -set(baseaddress_fmifs 0x755b0000) -set(baseaddress_fontext 0x75580000) -set(baseaddress_framebuf 0x75560000) -set(baseaddress_framebuf_new 0x75540000) -set(baseaddress_freeldr_pe 0x754e0000) -set(baseaddress_ftfd 0x753e0000) -set(baseaddress_fusion 0x753b0000) -set(baseaddress_gdiplus 0x75310000) -set(baseaddress_genincdata 0x752e0000) -set(baseaddress_getuname 0x752b0000) -set(baseaddress_glu32 0x751b0000) -set(baseaddress_halacpi 0x75170000) -set(baseaddress_hal 0x75080000) -set(baseaddress_hid 0x75050000) -set(baseaddress_hlink 0x75010000) -set(baseaddress_hnetcfg 0x74fd0000) -set(baseaddress_httpapi 0x74fa0000) -set(baseaddress_iccvid 0x74f70000) -set(baseaddress_icmp 0x74f40000) -set(baseaddress_imagehlp 0x74f10000) -set(baseaddress_imm32 0x74ed0000) -set(baseaddress_inetcomm 0x74e70000) -set(baseaddress_inetmib1 0x74e40000) -set(baseaddress_initpki 0x74e10000) -set(baseaddress_input 0x74dc0000) -set(baseaddress_inseng 0x74d90000) -set(baseaddress_iphlpapi 0x74d50000) -set(baseaddress_itircl 0x74d20000) -set(baseaddress_itss 0x74ce0000) -set(baseaddress_jscript 0x74c30000) -set(baseaddress_kbda1 0x74c10000) -set(baseaddress_kbda2 0x74bf0000) -set(baseaddress_kbda3 0x74bd0000) -set(baseaddress_kbdal 0x74bb0000) -set(baseaddress_kbdarme 0x74b90000) -set(baseaddress_kbdarmw 0x74b70000) -set(baseaddress_kbdaze 0x74b50000) -set(baseaddress_kbdazel 0x74b30000) -set(baseaddress_kbdbe 0x74b10000) -set(baseaddress_kbdbga 0x74af0000) -set(baseaddress_kbdbgm 0x74ad0000) -set(baseaddress_kbdbgt 0x74ab0000) -set(baseaddress_kbdblr 0x74a90000) -set(baseaddress_kbdbr 0x74a70000) -set(baseaddress_kbdbur 0x74a50000) -set(baseaddress_kbdcan 0x74a30000) -set(baseaddress_kbdcr 0x74a10000) -set(baseaddress_kbdcz1 0x749f0000) -set(baseaddress_kbdcz 0x749d0000) -set(baseaddress_kbdda 0x749b0000) -set(baseaddress_kbddv 0x74990000) -set(baseaddress_kbdes 0x74970000) -set(baseaddress_kbdest 0x74950000) -set(baseaddress_kbdfc 0x74930000) -set(baseaddress_kbdfi 0x74910000) -set(baseaddress_kbdfr 0x748f0000) -set(baseaddress_kbdgeo 0x748d0000) -set(baseaddress_kbdgerg 0x748b0000) -set(baseaddress_kbdgneo 0x74890000) -set(baseaddress_kbdgr 0x74870000) -set(baseaddress_kbdgrist 0x74850000) -set(baseaddress_kbdheb 0x74830000) -set(baseaddress_kbdhe 0x74810000) -set(baseaddress_kbdhu 0x747f0000) -set(baseaddress_kbdic 0x747d0000) -set(baseaddress_kbdinasa 0x747b0000) -set(baseaddress_kbdinben 0x74790000) -set(baseaddress_kbdindev 0x74770000) -set(baseaddress_kbdinguj 0x74750000) -set(baseaddress_kbdinmal 0x74730000) -set(baseaddress_kbdir 0x74710000) -set(baseaddress_kbdit 0x746f0000) -set(baseaddress_kbdja 0x746d0000) -set(baseaddress_kbdkaz 0x746b0000) -set(baseaddress_kbdko 0x74690000) -set(baseaddress_kbdla 0x74670000) -set(baseaddress_kbdlt1 0x74650000) -set(baseaddress_kbdlv 0x74630000) -set(baseaddress_kbdmac 0x74610000) -set(baseaddress_kbdne 0x745f0000) -set(baseaddress_kbdno 0x745d0000) -set(baseaddress_kbdpl1 0x745b0000) -set(baseaddress_kbdpl 0x74590000) -set(baseaddress_kbdpo 0x74570000) -set(baseaddress_kbdro 0x74550000) -set(baseaddress_kbdru1 0x74530000) -set(baseaddress_kbdru 0x74510000) -set(baseaddress_kbdsg 0x744f0000) -set(baseaddress_kbdsk1 0x744d0000) -set(baseaddress_kbdsk 0x744b0000) -set(baseaddress_kbdsw 0x74490000) -set(baseaddress_kbdtat 0x74470000) -set(baseaddress_kbdth0 0x74450000) -set(baseaddress_kbdth1 0x74430000) -set(baseaddress_kbdth2 0x74410000) -set(baseaddress_kbdth3 0x743f0000) -set(baseaddress_kbdtuf 0x743d0000) -set(baseaddress_kbdtuq 0x743b0000) -set(baseaddress_kbduk 0x74390000) -set(baseaddress_kbdur 0x74370000) -set(baseaddress_kbdurs 0x74350000) -set(baseaddress_kbdusa 0x74330000) -set(baseaddress_kbdus 0x74310000) -set(baseaddress_kbdusl 0x742f0000) -set(baseaddress_kbdusr 0x742d0000) -set(baseaddress_kbdusx 0x742b0000) -set(baseaddress_kbduzb 0x74290000) -set(baseaddress_kbdvntc 0x74270000) -set(baseaddress_kbdycc 0x74250000) -set(baseaddress_kbdycl 0x74230000) -set(baseaddress_kbsdll 0x74200000) -set(baseaddress_kdcom 0x741e0000) -set(baseaddress_ksuser 0x741b0000) -set(baseaddress_libjpeg 0x74130000) -set(baseaddress_libpng 0x740b0000) -set(baseaddress_libtiff 0x73ff0000) -set(baseaddress_libxslt 0x73db0000) -set(baseaddress_loadperf 0x73d80000) -set(baseaddress_localspl 0x73d40000) -set(baseaddress_localui 0x73d10000) -set(baseaddress_lpk 0x73ce0000) -set(baseaddress_lsasrv 0x73cb0000) -set(baseaddress_lz32 0x73c90000) -set(baseaddress_mapi32 0x73c50000) -set(baseaddress_mciavi32 0x73c10000) -set(baseaddress_mcicda 0x73be0000) -set(baseaddress_mciqtz32 0x73ba0000) -set(baseaddress_mciseq 0x73b70000) -set(baseaddress_mciwave 0x73b40000) -set(baseaddress_mesa32 0x737d0000) -set(baseaddress_midimap 0x737b0000) -set(baseaddress_mlang 0x73780000) -set(baseaddress_mmdrv 0x73760000) -set(baseaddress_modemui 0x73700000) -set(baseaddress_mprapi 0x736d0000) -set(baseaddress_mpr 0x73690000) -set(baseaddress_msacm32 0x73650000) -set(baseaddress_msafd 0x73620000) -set(baseaddress_mscat32 0x735f0000) -set(baseaddress_mscms 0x735c0000) -set(baseaddress_mscoree 0x73570000) -set(baseaddress_msctf 0x73520000) -set(baseaddress_msdmo 0x734f0000) -set(baseaddress_msftedit 0x734c0000) -set(baseaddress_msgina 0x73470000) -set(baseaddress_mshtml 0x73310000) -set(baseaddress_msi 0x731d0000) -set(baseaddress_msimg32 0x731a0000) -set(baseaddress_msimtf 0x73170000) -set(baseaddress_msisip 0x73140000) -set(baseaddress_msports 0x73110000) -set(baseaddress_msrle32 0x730e0000) -set(baseaddress_mssign32 0x730b0000) -set(baseaddress_mssip32 0x73080000) -set(baseaddress_mstask 0x73050000) -set(baseaddress_msvcrt20 0x72fa0000) -set(baseaddress_msvcrt40 0x72ef0000) -set(baseaddress_msvfw32 0x72eb0000) -set(baseaddress_msvidc32 0x72e80000) -set(baseaddress_mswsock 0x72e50000) -set(baseaddress_msxml3 0x72bf0000) -set(baseaddress_nddeapi 0x72bd0000) -set(baseaddress_netapi32 0x72b80000) -set(baseaddress_netcfgx 0x72b00000) -set(baseaddress_netevent 0x72ae0000) -set(baseaddress_netid 0x72a90000) -set(baseaddress_netshell 0x72a10000) -set(baseaddress_newdev 0x729b0000) -set(baseaddress_notifyhook 0x72980000) -set(baseaddress_ntdsapi 0x72950000) -set(baseaddress_ntlanman 0x72920000) -set(baseaddress_ntmarta 0x728f0000) -set(baseaddress_ntprint 0x728c0000) -set(baseaddress_objsel 0x72890000) -set(baseaddress_odbc32 0x72850000) -set(baseaddress_odbccp32 0x72820000) -set(baseaddress_ole32 0x72650000) -set(baseaddress_oleacc 0x72620000) -set(baseaddress_oleaut32 0x72480000) -set(baseaddress_olecli32 0x72450000) -set(baseaddress_oledlg 0x72410000) -set(baseaddress_olepro32 0x723f0000) -set(baseaddress_olesvr32 0x723d0000) -set(baseaddress_olethk32 0x723a0000) -set(baseaddress_opengl32 0x72370000) -set(baseaddress_pdh 0x72340000) -set(baseaddress_pidgen 0x72310000) -set(baseaddress_powrprof 0x722e0000) -set(baseaddress_printui 0x722c0000) -set(baseaddress_psapi 0x72290000) -set(baseaddress_pstorec 0x72260000) -set(baseaddress_qedit 0x72220000) -set(baseaddress_qmgr 0x721f0000) -set(baseaddress_qmgrprxy 0x72190000) -set(baseaddress_quartz 0x72040000) -set(baseaddress_query 0x72010000) -set(baseaddress_rasadhlp 0x71fe0000) -set(baseaddress_rasapi32 0x71fb0000) -set(baseaddress_rasdlg 0x71e20000) -set(baseaddress_rasman 0x71de0000) -set(baseaddress_resutils 0x71db0000) -set(baseaddress_riched20 0x71d20000) -set(baseaddress_riched32 0x71cf0000) -set(baseaddress_rsabase 0x71cd0000) -set(baseaddress_rsaenh 0x71c70000) -set(baseaddress_samlib 0x71c40000) -set(baseaddress_samsrv 0x71c20000) -set(baseaddress_sccbase 0x71bf0000) -set(baseaddress_schannel 0x71bc0000) -set(baseaddress_secur32 0x71b90000) -set(baseaddress_security 0x71b70000) -set(baseaddress_sensapi 0x71b40000) -set(baseaddress_serialui 0x71b10000) -set(baseaddress_setupapi 0x71950000) -set(baseaddress_setupldr_pe 0x718f0000) -set(baseaddress_sfc 0x718c0000) -set(baseaddress_sfc_os 0x71890000) -set(baseaddress_shdoclc 0x71850000) -set(baseaddress_shdocvw 0x717c0000) -set(baseaddress_shfolder 0x717a0000) -set(baseaddress_shimgvw 0x71760000) -set(baseaddress_shlwapi 0x716d0000) -set(baseaddress_slayer 0x716a0000) -set(baseaddress_slbcsp 0x71670000) -set(baseaddress_smdll 0x71650000) -set(baseaddress_sndblst 0x71620000) -set(baseaddress_snmpapi 0x715f0000) -set(baseaddress_softpub 0x715d0000) -set(baseaddress_spoolss 0x715a0000) -set(baseaddress_srclient 0x71580000) -set(baseaddress_sti 0x71540000) -set(baseaddress_sxs 0x71510000) -set(baseaddress_syssetup 0x71460000) -set(baseaddress_t2embed 0x71430000) -set(baseaddress_tapi32 0x713f0000) -set(baseaddress_tapiui 0x71390000) -set(baseaddress_traffic 0x71360000) -set(baseaddress_twain_32 0x71330000) -set(baseaddress_uext2 0x712f0000) -set(baseaddress_ufat 0x712d0000) -set(baseaddress_ufatx 0x712b0000) -set(baseaddress_unicows 0x71280000) -set(baseaddress_untfs 0x71260000) -set(baseaddress_updspapi 0x71240000) -set(baseaddress_url 0x71210000) -set(baseaddress_urlmon 0x71150000) -set(baseaddress_userenv 0x71100000) -set(baseaddress_usp10 0x710a0000) -set(baseaddress_uxtheme 0x71040000) -set(baseaddress_vdmdbg 0x71010000) -set(baseaddress_version 0x70fe0000) -set(baseaddress_vgaddi 0x70fb0000) -set(baseaddress_win32csr 0x70f10000) -set(baseaddress_windowscodecs 0x70ea0000) -set(baseaddress_wined3d 0x70ce0000) -set(baseaddress_winfax 0x70cc0000) -set(baseaddress_wing32 0x70ca0000) -set(baseaddress_winhttp 0x70c60000) -set(baseaddress_wininet 0x70bd0000) -set(baseaddress_winmm 0x70b30000) -set(baseaddress_winsta 0x70b00000) -set(baseaddress_wintrust 0x70ab0000) -set(baseaddress_wlanapi 0x70a80000) -set(baseaddress_wldap32 0x70a40000) -set(baseaddress_wmi 0x70a20000) -set(baseaddress_ws2_32 0x709e0000) -set(baseaddress_ws2_32_new 0x70990000) -set(baseaddress_ws2help 0x70960000) -set(baseaddress_wshirda 0x70930000) -set(baseaddress_wshtcpip 0x70910000) -set(baseaddress_wsock32 0x708e0000) -set(baseaddress_wtsapi32 0x708b0000) -set(baseaddress_wuapi 0x70880000) -set(baseaddress_xinput1_1 0x70850000) -set(baseaddress_xinput1_2 0x70820000) -set(baseaddress_xinput1_3 0x707f0000) -set(baseaddress_xinput9_1_0 0x707c0000) -set(baseaddress_xmllite 0x70790000) -set(baseaddress_access 0x70720000) -set(baseaddress_appwiz 0x706c0000) -set(baseaddress_desk 0x70630000) -set(baseaddress_hdwwiz 0x705a0000) -set(baseaddress_hhctrl 0x70560000) -set(baseaddress_imaadp32.acm 0x70540000) -set(baseaddress_inetcpl 0x70500000) -set(baseaddress_intl 0x704a0000) -set(baseaddress_joy 0x70460000) -set(baseaddress_ksproxy 0x703e0000) -set(baseaddress_main 0x70330000) -set(baseaddress_mmsys 0x70240000) -set(baseaddress_msacm32.drv 0x70210000) -set(baseaddress_msadp32.acm 0x701f0000) -set(baseaddress_msg711.acm 0x701d0000) -set(baseaddress_msgsm32.acm 0x701b0000) -set(baseaddress_msisys 0x70180000) -set(baseaddress_ncpa 0x70150000) -set(baseaddress_odbccp32i 0x70120000) -set(baseaddress_powercfg 0x700c0000) -set(baseaddress_sysdm 0x6fff0000) -set(baseaddress_telephon 0x6ffc0000) -set(baseaddress_timedate 0x6ff70000) -set(baseaddress_usrmgr 0x6ff20000) -set(baseaddress_wdmaud.drv 0x6fd60000) -set(baseaddress_wined3dcfg 0x6fd30000) -set(baseaddress_winemp3.acm 0x6fcc0000) -set(baseaddress_winspool.drv 0x6fc90000) +set(baseaddress_msvcrt 0x77d10000) +set(baseaddress_advapi32 0x77c60000) +set(baseaddress_gdi32 0x77bf0000) +set(baseaddress_user32 0x77a60000) +set(baseaddress_dhcpcsvc 0x77a10000) +set(baseaddress_dnsapi 0x779d0000) +set(baseaddress_icmp 0x779a0000) +set(baseaddress_iphlpapi 0x77960000) +set(baseaddress_ws2_32 0x77920000) +set(baseaddress_ws2help 0x778f0000) +set(baseaddress_shlwapi 0x77860000) +set(baseaddress_rpcrt4 0x777a0000) +set(baseaddress_comctl32 0x77640000) +set(baseaddress_ole32 0x77470000) +set(baseaddress_winspool.drv 0x77440000) +set(baseaddress_winmm 0x773a0000) +set(baseaddress_comdlg32 0x772b0000) +set(baseaddress_shell32 0x765d0000) +set(baseaddress_lz32 0x765b0000) +set(baseaddress_version 0x76580000) +set(baseaddress_oleaut32 0x763e0000) +set(baseaddress_setupapi 0x76220000) +set(baseaddress_mpr 0x761e0000) +set(baseaddress_crypt32 0x760e0000) +set(baseaddress_wininet 0x76050000) +set(baseaddress_urlmon 0x75f90000) +set(baseaddress_psapi 0x75f60000) +set(baseaddress_imm32 0x75f20000) +set(baseaddress_msvfw32 0x75ee0000) +set(baseaddress_dbghelp 0x75e50000) +set(baseaddress_devmgr 0x75dd0000) +set(baseaddress_msacm32 0x75d90000) +set(baseaddress_netapi32 0x75d40000) +set(baseaddress_powrprof 0x75d10000) +set(baseaddress_secur32 0x75ce0000) +set(baseaddress_wintrust 0x75c90000) +set(baseaddress_avicap32 0x75c60000) +set(baseaddress_cabinet 0x75c20000) +set(baseaddress_dsound 0x75ba0000) +set(baseaddress_glu32 0x75aa0000) +set(baseaddress_opengl32 0x75a70000) +set(baseaddress_riched20 0x759e0000) +set(baseaddress_smdll 0x759c0000) +set(baseaddress_userenv 0x75970000) +set(baseaddress_uxtheme 0x75910000) +set(baseaddress_cryptui 0x75860000) +set(baseaddress_csrsrv 0x75830000) +set(baseaddress_dplayx 0x757d0000) +set(baseaddress_gdiplus 0x75730000) +set(baseaddress_msimg32 0x75700000) +set(baseaddress_mswsock 0x756d0000) +set(baseaddress_oledlg 0x75690000) +set(baseaddress_rasapi32 0x75660000) +set(baseaddress_rsaenh 0x75600000) +set(baseaddress_samlib 0x755d0000) +set(baseaddress_sensapi 0x755a0000) +set(baseaddress_sfc_os 0x75570000) +set(baseaddress_snmpapi 0x75540000) +set(baseaddress_spoolss 0x75510000) +set(baseaddress_usp10 0x754b0000) +set(baseaddress_access 0x75440000) +set(baseaddress_acledit 0x75410000) +set(baseaddress_aclui 0x753d0000) +set(baseaddress_activeds 0x753a0000) +set(baseaddress_actxprxy 0x751d0000) +set(baseaddress_advpack 0x75190000) +set(baseaddress_amstream 0x75150000) +set(baseaddress_atl 0x75110000) +set(baseaddress_authz 0x750e0000) +set(baseaddress_avifil32 0x75080000) +set(baseaddress_batt 0x75050000) +set(baseaddress_bcrypt 0x75020000) +set(baseaddress_beepmidi 0x75000000) +set(baseaddress_browseui 0x74f40000) +set(baseaddress_cards 0x74e90000) +set(baseaddress_cfgmgr32 0x74e70000) +set(baseaddress_clusapi 0x74e40000) +set(baseaddress_comcat 0x74e20000) +set(baseaddress_compstui 0x74df0000) +set(baseaddress_credui 0x74db0000) +set(baseaddress_crtdll 0x74d60000) +set(baseaddress_cryptdlg 0x74d30000) +set(baseaddress_cryptdll 0x74d00000) +set(baseaddress_cryptnet 0x74cd0000) +set(baseaddress_csrsrv2 0x74ca0000) +set(baseaddress_d3d8 0x74c40000) +set(baseaddress_d3d8thk 0x74c20000) +set(baseaddress_d3d9 0x74bc0000) +set(baseaddress_d3dx9_24 0x74b90000) +set(baseaddress_d3dx9_25 0x74b60000) +set(baseaddress_d3dx9_26 0x74b30000) +set(baseaddress_d3dx9_27 0x74b00000) +set(baseaddress_d3dx9_28 0x74ad0000) +set(baseaddress_d3dx9_29 0x74aa0000) +set(baseaddress_d3dx9_30 0x74a70000) +set(baseaddress_d3dx9_31 0x74a40000) +set(baseaddress_d3dx9_32 0x74a10000) +set(baseaddress_d3dx9_33 0x749e0000) +set(baseaddress_d3dx9_34 0x749b0000) +set(baseaddress_d3dx9_35 0x74980000) +set(baseaddress_d3dx9_36 0x74920000) +set(baseaddress_d3dx9_37 0x748f0000) +set(baseaddress_d3dx9_38 0x748c0000) +set(baseaddress_d3dx9_39 0x74890000) +set(baseaddress_d3dx9_40 0x74860000) +set(baseaddress_d3dx9_41 0x74830000) +set(baseaddress_d3dx9_42 0x74800000) +set(baseaddress_dciman32 0x747d0000) +set(baseaddress_ddraw 0x74730000) +set(baseaddress_deskadp 0x74700000) +set(baseaddress_deskmon 0x746d0000) +set(baseaddress_devcpux 0x746a0000) +set(baseaddress_devenum 0x74660000) +set(baseaddress_dinput 0x74610000) +set(baseaddress_dinput8 0x745e0000) +set(baseaddress_dmusic 0x745a0000) +set(baseaddress_dplay 0x74580000) +set(baseaddress_dwmapi 0x74550000) +set(baseaddress_dxdiagn 0x74520000) +set(baseaddress_faultrep 0x744f0000) +set(baseaddress_fmifs 0x744d0000) +set(baseaddress_fontext 0x744a0000) +set(baseaddress_fusion 0x74470000) +set(baseaddress_getuname 0x74440000) +set(baseaddress_hhctrl 0x74400000) +set(baseaddress_hlink 0x743c0000) +set(baseaddress_hnetcfg 0x74380000) +set(baseaddress_httpapi 0x74350000) +set(baseaddress_iccvid 0x74320000) +set(baseaddress_imaadp32.acm 0x74300000) +set(baseaddress_imagehlp 0x742d0000) +set(baseaddress_inetcomm 0x74270000) +set(baseaddress_inetmib1 0x74240000) +set(baseaddress_initpki 0x74210000) +set(baseaddress_inseng 0x741e0000) +set(baseaddress_itircl 0x741b0000) +set(baseaddress_itss 0x74170000) +set(baseaddress_jscript 0x740c0000) +set(baseaddress_kbsdll 0x74090000) +set(baseaddress_ksproxy 0x74010000) +set(baseaddress_ksuser 0x73fe0000) +set(baseaddress_libjpeg 0x73f60000) +set(baseaddress_libpng 0x73ee0000) +set(baseaddress_libtiff 0x73e20000) +set(baseaddress_libxslt 0x73be0000) +set(baseaddress_loadperf 0x73bb0000) +set(baseaddress_localspl 0x73b70000) +set(baseaddress_localui 0x73b40000) +set(baseaddress_lpk 0x73b10000) +set(baseaddress_lsasrv 0x73ae0000) +set(baseaddress_main 0x73a30000) +set(baseaddress_mapi32 0x739f0000) +set(baseaddress_mciavi32 0x739b0000) +set(baseaddress_mcicda 0x73980000) +set(baseaddress_mciqtz32 0x73940000) +set(baseaddress_mciseq 0x73910000) +set(baseaddress_mciwave 0x738e0000) +set(baseaddress_mesa32 0x73570000) +set(baseaddress_midimap 0x73550000) +set(baseaddress_mlang 0x73520000) +set(baseaddress_mmdrv 0x73500000) +set(baseaddress_modemui 0x734a0000) +set(baseaddress_mprapi 0x73470000) +set(baseaddress_msacm32.drv 0x73440000) +set(baseaddress_msadp32.acm 0x73420000) +set(baseaddress_msafd 0x733f0000) +set(baseaddress_mscat32 0x733c0000) +set(baseaddress_mscms 0x73390000) +set(baseaddress_mscoree 0x73340000) +set(baseaddress_msctf 0x732f0000) +set(baseaddress_msdmo 0x732c0000) +set(baseaddress_msftedit 0x73290000) +set(baseaddress_msg711.acm 0x73270000) +set(baseaddress_msgina 0x73220000) +set(baseaddress_msgsm32.acm 0x73200000) +set(baseaddress_mshtml 0x730a0000) +set(baseaddress_msi 0x72f60000) +set(baseaddress_msimtf 0x72f30000) +set(baseaddress_msisip 0x72f00000) +set(baseaddress_msisys 0x72ed0000) +set(baseaddress_msports 0x72ea0000) +set(baseaddress_msrle32 0x72e70000) +set(baseaddress_mssign32 0x72e40000) +set(baseaddress_mssip32 0x72e10000) +set(baseaddress_mstask 0x72de0000) +set(baseaddress_msvcrt20 0x72d30000) +set(baseaddress_msvcrt40 0x72c80000) +set(baseaddress_msvidc32 0x72c50000) +set(baseaddress_msxml3 0x729f0000) +set(baseaddress_nddeapi 0x729d0000) +set(baseaddress_netcfgx 0x72950000) +set(baseaddress_netid 0x72900000) +set(baseaddress_netshell 0x72880000) +set(baseaddress_newdev 0x72820000) +set(baseaddress_notifyhook 0x727f0000) +set(baseaddress_ntdsapi 0x727c0000) +set(baseaddress_ntlanman 0x72790000) +set(baseaddress_ntmarta 0x72760000) +set(baseaddress_ntprint 0x72730000) +set(baseaddress_objsel 0x72700000) +set(baseaddress_odbc32 0x726c0000) +set(baseaddress_odbccp32 0x72690000) +set(baseaddress_oleacc 0x72660000) +set(baseaddress_olecli32 0x72630000) +set(baseaddress_olepro32 0x72610000) +set(baseaddress_olesvr32 0x725f0000) +set(baseaddress_olethk32 0x725c0000) +set(baseaddress_pdh 0x72590000) +set(baseaddress_pidgen 0x72560000) +set(baseaddress_printui 0x72540000) +set(baseaddress_pstorec 0x72510000) +set(baseaddress_qedit 0x724d0000) +set(baseaddress_qmgr 0x724a0000) +set(baseaddress_qmgrprxy 0x72440000) +set(baseaddress_quartz 0x722f0000) +set(baseaddress_query 0x722c0000) +set(baseaddress_rasadhlp 0x72290000) +set(baseaddress_rasdlg 0x72100000) +set(baseaddress_rasman 0x720c0000) +set(baseaddress_resutils 0x72090000) +set(baseaddress_riched32 0x72060000) +set(baseaddress_rsabase 0x72040000) +set(baseaddress_samsrv 0x72020000) +set(baseaddress_sccbase 0x71ff0000) +set(baseaddress_schannel 0x71fc0000) +set(baseaddress_security 0x71fa0000) +set(baseaddress_serialui 0x71f70000) +set(baseaddress_sfc 0x71f40000) +set(baseaddress_shdoclc 0x71f00000) +set(baseaddress_shdocvw 0x71e70000) +set(baseaddress_shfolder 0x71e50000) +set(baseaddress_shimgvw 0x71e10000) +set(baseaddress_slayer 0x71de0000) +set(baseaddress_slbcsp 0x71db0000) +set(baseaddress_sndblst 0x71d80000) +set(baseaddress_softpub 0x71d60000) +set(baseaddress_srclient 0x71d40000) +set(baseaddress_sti 0x71d00000) +set(baseaddress_sxs 0x71cd0000) +set(baseaddress_syssetup 0x71c20000) +set(baseaddress_t2embed 0x71bf0000) +set(baseaddress_tapi32 0x71bb0000) +set(baseaddress_traffic 0x71b80000) +set(baseaddress_twain_32 0x71b50000) +set(baseaddress_uext2 0x71b10000) +set(baseaddress_ufat 0x71af0000) +set(baseaddress_ufatx 0x71ad0000) +set(baseaddress_unicows 0x71aa0000) +set(baseaddress_untfs 0x71a80000) +set(baseaddress_updspapi 0x71a60000) +set(baseaddress_url 0x71a30000) +set(baseaddress_vdmdbg 0x71a00000) +set(baseaddress_wdmaud.drv 0x71840000) +set(baseaddress_win32csr 0x717a0000) +set(baseaddress_windowscodecs 0x71730000) +set(baseaddress_wined3d 0x71570000) +set(baseaddress_winemp3.acm 0x71500000) +set(baseaddress_winfax 0x714e0000) +set(baseaddress_wing32 0x714c0000) +set(baseaddress_winhttp 0x71480000) +set(baseaddress_winsta 0x71450000) +set(baseaddress_wlanapi 0x71420000) +set(baseaddress_wldap32 0x713e0000) +set(baseaddress_wmi 0x713c0000) +set(baseaddress_ws2_32_new 0x71370000) +set(baseaddress_wshirda 0x71340000) +set(baseaddress_wshtcpip 0x71320000) +set(baseaddress_wsock32 0x712f0000) +set(baseaddress_wtsapi32 0x712c0000) +set(baseaddress_wuapi 0x71290000) +set(baseaddress_xinput1_1 0x71260000) +set(baseaddress_xinput1_2 0x71230000) +set(baseaddress_xinput1_3 0x71200000) +set(baseaddress_xinput9_1_0 0x711d0000) +set(baseaddress_xmllite 0x711a0000) +set(baseaddress_appwiz 0x71140000) +set(baseaddress_console 0x71100000) +set(baseaddress_desk 0x71070000) +set(baseaddress_hdwwiz 0x70fe0000) +set(baseaddress_inetcpl 0x70fa0000) +set(baseaddress_input 0x70f50000) +set(baseaddress_intl 0x70ef0000) +set(baseaddress_joy 0x70eb0000) +set(baseaddress_mmsys 0x70dc0000) +set(baseaddress_ncpa 0x70d90000) +set(baseaddress_powercfg 0x70d30000) +set(baseaddress_sysdm 0x70c60000) +set(baseaddress_telephon 0x70c30000) +set(baseaddress_timedate 0x70be0000) +set(baseaddress_usrmgr 0x70b90000) +set(baseaddress_wined3dcfg 0x70b60000) +set(baseaddress_ftfd 0x70a60000) +set(baseaddress_hid 0x70a30000) +set(baseaddress_netevent 0x70a10000) +set(baseaddress_tapiui 0x709b0000)
12 years, 10 months
1
0
0
0
[jgardou] 55784: [WIN32K] - allocate FAST_MUTEX objects from non paged pool. This should ix a bunch of weird testbot failures. Any suggestion on the TAG is welcome
by jgardou@svn.reactos.org
Author: jgardou Date: Tue Feb 21 18:00:50 2012 New Revision: 55784 URL:
http://svn.reactos.org/svn/reactos?rev=55784&view=rev
Log: [WIN32K] - allocate FAST_MUTEX objects from non paged pool. This should ix a bunch of weird testbot failures. Any suggestion on the TAG is welcome Modified: trunk/reactos/subsystems/win32/win32k/include/tags.h trunk/reactos/subsystems/win32/win32k/include/text.h trunk/reactos/subsystems/win32/win32k/ntuser/timer.c trunk/reactos/subsystems/win32/win32k/objects/freetype.c Modified: trunk/reactos/subsystems/win32/win32k/include/tags.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/tags.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/tags.h [iso-8859-1] Tue Feb 21 18:00:50 2012 @@ -1,19 +1,20 @@ #pragma once -#define TAG_STRING ' RTS' /* String */ -#define TAG_HOOK 'ohsU' /* Hook */ -#define TAG_MENUITEM 'emsU' /* Menu item */ -#define TAG_MSG 'GSEM' /* Message */ -#define TAG_USRMSG 'GSMU' /* User message */ -#define TAG_SBARINFO 'NIBS' /* Scrollbar info */ -#define TAG_TIMERBMP 'BMIT' /* Timers bitmap */ -#define TAG_WINSTA 'ATSW' /* Window station */ -#define TAG_FONT 'ETNF' /* Font entry */ -#define TAG_BEZIER 'RZEB' /* Bezier */ -#define TAG_SHAPE 'phSG' /* Shape */ -#define TAG_COLORMAP 'MLOC' /* Color map */ -#define TAG_GDIHNDTBLE 'bthG' /* GDI handle table */ -#define TAG_DIB ' BID' /* Dib */ +#define TAG_STRING ' RTS' /* String */ +#define TAG_HOOK 'ohsU' /* Hook */ +#define TAG_MENUITEM 'emsU' /* Menu item */ +#define TAG_MSG 'GSEM' /* Message */ +#define TAG_USRMSG 'GSMU' /* User message */ +#define TAG_SBARINFO 'NIBS' /* Scrollbar info */ +#define TAG_TIMERBMP 'BMIT' /* Timers bitmap */ +#define TAG_WINSTA 'ATSW' /* Window station */ +#define TAG_FONT 'ETNF' /* Font entry */ +#define TAG_BEZIER 'RZEB' /* Bezier */ +#define TAG_SHAPE 'phSG' /* Shape */ +#define TAG_COLORMAP 'MLOC' /* Color map */ +#define TAG_GDIHNDTBLE 'bthG' /* GDI handle table */ +#define TAG_DIB ' BID' /* Dib */ +#define TAG_INTERNAL_SYNC 'sync' /* Internal synchronization object. Waiting for a better suggestion than 'sync' */ /* GDI objects from the handle table */ #define TAG_DC GDITAG_HMGR_LOOKASIDE_DC_TYPE Modified: trunk/reactos/subsystems/win32/win32k/include/text.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/text.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/text.h [iso-8859-1] Tue Feb 21 18:00:50 2012 @@ -115,15 +115,3 @@ #define IntUnLockProcessPrivateFonts(W32Process) \ ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&W32Process->PrivateFontListLock) - -#define IntLockGlobalFonts \ - ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FontListLock) - -#define IntUnLockGlobalFonts \ - ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FontListLock) - -#define IntLockFreeType \ - ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&FreeTypeLock) - -#define IntUnLockFreeType \ - ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&FreeTypeLock) Modified: trunk/reactos/subsystems/win32/win32k/ntuser/timer.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/timer.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/timer.c [iso-8859-1] Tue Feb 21 18:00:50 2012 @@ -21,7 +21,7 @@ /* Windows 2000 has room for 32768 window-less timers */ #define NUM_WINDOW_LESS_TIMERS 32768 -static FAST_MUTEX Mutex; +static PFAST_MUTEX Mutex; static RTL_BITMAP WindowLessTimersBitMap; static PVOID WindowLessTimersBitMapBuffer; static ULONG HintIndex = 1; @@ -29,10 +29,10 @@ ERESOURCE TimerLock; #define IntLockWindowlessTimerBitmap() \ - ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&Mutex) + ExEnterCriticalRegionAndAcquireFastMutexUnsafe(Mutex) #define IntUnlockWindowlessTimerBitmap() \ - ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&Mutex) + ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(Mutex) #define TimerEnterExclusive() \ { \ @@ -584,8 +584,10 @@ InitTimerImpl(VOID) { ULONG BitmapBytes; - - ExInitializeFastMutex(&Mutex); + + /* Allocate FAST_MUTEX from non paged pool */ + Mutex = ExAllocatePoolWithTag(NonPagedPool, sizeof(FAST_MUTEX), TAG_INTERNAL_SYNC); + ExInitializeFastMutex(Mutex); BitmapBytes = ROUND_UP(NUM_WINDOW_LESS_TIMERS, sizeof(ULONG) * 8) / 8; WindowLessTimersBitMapBuffer = ExAllocatePoolWithTag(NonPagedPool, BitmapBytes, TAG_TIMERBMP); Modified: trunk/reactos/subsystems/win32/win32k/objects/freetype.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/freetype.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/freetype.c [iso-8859-1] Tue Feb 21 18:00:50 2012 @@ -32,11 +32,23 @@ /* The FreeType library is not thread safe, so we have to serialize access to it */ -static FAST_MUTEX FreeTypeLock; +static PFAST_MUTEX FreeTypeLock; static LIST_ENTRY FontListHead; -static FAST_MUTEX FontListLock; +static PFAST_MUTEX FontListLock; static BOOL RenderingEnabled = TRUE; + +#define IntLockGlobalFonts \ + ExEnterCriticalRegionAndAcquireFastMutexUnsafe(FontListLock) + +#define IntUnLockGlobalFonts \ + ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(FontListLock) + +#define IntLockFreeType \ + ExEnterCriticalRegionAndAcquireFastMutexUnsafe(FreeTypeLock) + +#define IntUnLockFreeType \ + ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(FreeTypeLock) #define MAX_FONT_CACHE 256 @@ -128,8 +140,11 @@ InitializeListHead(&FontListHead); InitializeListHead(&FontCacheListHead); FontCacheNumEntries = 0; - ExInitializeFastMutex(&FontListLock); - ExInitializeFastMutex(&FreeTypeLock); + /* Fast Mutexes must be allocated from non paged pool */ + FontListLock = ExAllocatePoolWithTag(NonPagedPool, sizeof(FAST_MUTEX), TAG_INTERNAL_SYNC); + ExInitializeFastMutex(FontListLock); + FreeTypeLock = ExAllocatePoolWithTag(NonPagedPool, sizeof(FAST_MUTEX), TAG_INTERNAL_SYNC); + ExInitializeFastMutex(FreeTypeLock); ulError = FT_Init_FreeType(&library); if (ulError)
12 years, 10 months
1
0
0
0
[akhaldi] 55783: [FTFD] * Properly set the base address.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Tue Feb 21 18:00:08 2012 New Revision: 55783 URL:
http://svn.reactos.org/svn/reactos?rev=55783&view=rev
Log: [FTFD] * Properly set the base address. Modified: trunk/reactos/drivers/video/font/ftfd/CMakeLists.txt Modified: trunk/reactos/drivers/video/font/ftfd/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/font/ftfd/CM…
============================================================================== --- trunk/reactos/drivers/video/font/ftfd/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/drivers/video/font/ftfd/CMakeLists.txt [iso-8859-1] Tue Feb 21 18:00:08 2012 @@ -13,7 +13,7 @@ set_entrypoint(ftfd FtfdEnableDriver 12) set_subsystem(ftfd native) -set_image_base(ftfd ${baseaddress_ftfd}) +set_image_base(ftfd 0x00010000) target_link_libraries(ftfd freetype
12 years, 10 months
1
0
0
0
[jgardou] 55782: [CMAKE] - fix copy-paste typo
by jgardou@svn.reactos.org
Author: jgardou Date: Tue Feb 21 17:23:59 2012 New Revision: 55782 URL:
http://svn.reactos.org/svn/reactos?rev=55782&view=rev
Log: [CMAKE] - fix copy-paste typo Modified: trunk/reactos/cmake/gcc.cmake Modified: trunk/reactos/cmake/gcc.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/gcc.cmake?rev=55782&…
============================================================================== --- trunk/reactos/cmake/gcc.cmake [iso-8859-1] (original) +++ trunk/reactos/cmake/gcc.cmake [iso-8859-1] Tue Feb 21 17:23:59 2012 @@ -206,7 +206,7 @@ #create delayed importlib add_library(lib${_name}_delayed STATIC EXCLUDE_FROM_ALL ${CMAKE_CURRENT_BINARY_DIR}/${_name}_implib.def) - set_target_properties(lib${_name}_delayed PROPERTIES LINKER_LANGUAGE "IMPLIB" PREFIX "") + set_target_properties(lib${_name}_delayed PROPERTIES LINKER_LANGUAGE "IMPLIB_DELAYED" PREFIX "") else() message(FATAL_ERROR "Unsupported exports file extension: ${_extension}") endif()
12 years, 10 months
1
0
0
0
[jgardou] 55781: fix msvc build, try 2
by jgardou@svn.reactos.org
Author: jgardou Date: Tue Feb 21 15:52:30 2012 New Revision: 55781 URL:
http://svn.reactos.org/svn/reactos?rev=55781&view=rev
Log: fix msvc build, try 2 Modified: trunk/reactos/cmake/msvc.cmake Modified: trunk/reactos/cmake/msvc.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/msvc.cmake?rev=55781…
============================================================================== --- trunk/reactos/cmake/msvc.cmake [iso-8859-1] (original) +++ trunk/reactos/cmake/msvc.cmake [iso-8859-1] Tue Feb 21 15:52:30 2012 @@ -131,7 +131,7 @@ #define those for having real libraries set(CMAKE_IMPLIB_CREATE_STATIC_LIBRARY "LINK /LIB /NOLOGO <LINK_FLAGS> /OUT:<TARGET> <OBJECTS>") -set(CMAKE_STUB_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> /Fo<OBJECT> /c /Ta <SOURCE>") +set(CMAKE_STUB_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> /Cp /Fo<OBJECT> /c /Ta <SOURCE>") # Thanks MS for creating a stupid linker function(add_importlib_target _exports_file _implib_name)
12 years, 10 months
1
0
0
0
[janderwald] 55780: [USBUHCI] - Start implementing UHCI controller
by janderwald@svn.reactos.org
Author: janderwald Date: Tue Feb 21 15:49:08 2012 New Revision: 55780 URL:
http://svn.reactos.org/svn/reactos?rev=55780&view=rev
Log: [USBUHCI] - Start implementing UHCI controller Added: trunk/reactos/drivers/usb/usbuhci/ (with props) trunk/reactos/drivers/usb/usbuhci/CMakeLists.txt (with props) trunk/reactos/drivers/usb/usbuhci/hardware.cpp (with props) trunk/reactos/drivers/usb/usbuhci/hardware.h (with props) trunk/reactos/drivers/usb/usbuhci/hcd_controller.cpp (with props) trunk/reactos/drivers/usb/usbuhci/hub_controller.cpp (with props) trunk/reactos/drivers/usb/usbuhci/interfaces.h (with props) trunk/reactos/drivers/usb/usbuhci/memory_manager.cpp (with props) trunk/reactos/drivers/usb/usbuhci/misc.cpp (with props) trunk/reactos/drivers/usb/usbuhci/purecall.cpp (with props) trunk/reactos/drivers/usb/usbuhci/usb_device.cpp (with props) trunk/reactos/drivers/usb/usbuhci/usb_queue.cpp (with props) trunk/reactos/drivers/usb/usbuhci/usb_request.cpp (with props) trunk/reactos/drivers/usb/usbuhci/usbuhci.cpp (with props) trunk/reactos/drivers/usb/usbuhci/usbuhci.h (with props) trunk/reactos/drivers/usb/usbuhci/usbuhci.rc (with props) [This mail would be too long, it was shortened to contain the URLs only.] Added: trunk/reactos/drivers/usb/usbuhci/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/CMakeL…
Added: trunk/reactos/drivers/usb/usbuhci/hardware.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hardwa…
Added: trunk/reactos/drivers/usb/usbuhci/hardware.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hardwa…
Added: trunk/reactos/drivers/usb/usbuhci/hcd_controller.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hcd_co…
Added: trunk/reactos/drivers/usb/usbuhci/hub_controller.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/hub_co…
Added: trunk/reactos/drivers/usb/usbuhci/interfaces.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/interf…
Added: trunk/reactos/drivers/usb/usbuhci/memory_manager.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/memory…
Added: trunk/reactos/drivers/usb/usbuhci/misc.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/misc.c…
Added: trunk/reactos/drivers/usb/usbuhci/purecall.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/pureca…
Added: trunk/reactos/drivers/usb/usbuhci/usb_device.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usb_de…
Added: trunk/reactos/drivers/usb/usbuhci/usb_queue.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usb_qu…
Added: trunk/reactos/drivers/usb/usbuhci/usb_request.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usb_re…
Added: trunk/reactos/drivers/usb/usbuhci/usbuhci.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usbuhc…
Added: trunk/reactos/drivers/usb/usbuhci/usbuhci.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usbuhc…
Added: trunk/reactos/drivers/usb/usbuhci/usbuhci.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbuhci/usbuhc…
12 years, 10 months
1
0
0
0
[jgardou] 55779: fix build, sorry...
by jgardou@svn.reactos.org
Author: jgardou Date: Tue Feb 21 15:17:33 2012 New Revision: 55779 URL:
http://svn.reactos.org/svn/reactos?rev=55779&view=rev
Log: fix build, sorry... Modified: trunk/reactos/CMakeLists.txt Modified: trunk/reactos/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/CMakeLists.txt?rev=55779&r…
============================================================================== --- trunk/reactos/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/CMakeLists.txt [iso-8859-1] Tue Feb 21 15:17:33 2012 @@ -77,6 +77,9 @@ #useful stuff! include(CMakeParseArguments) + + # this is needed as well + link_directories(${REACTOS_SOURCE_DIR}/importlibs) if(ENABLE_CCACHE) set(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
12 years, 10 months
1
0
0
0
← Newer
1
...
13
14
15
16
17
18
19
...
58
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Results per page:
10
25
50
100
200