mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 22:05:49 +00:00
- Brandon Turner's warning fixing patch
- When compiled with gcc we assume that CPU can't do TSC (the function will be rewritten anyway since it's weird to use inline assembly in a driver) - Changed to the correct .rc file, removed duplicate one (ehci.rc) - usbdriver now compiles with reactos build system svn path=/trunk/; revision=23610
This commit is contained in:
parent
6da011c669
commit
1f4c3ee955
6 changed files with 34 additions and 92 deletions
|
@ -1,3 +1,3 @@
|
|||
<!--<directory name="usbdriver">
|
||||
<directory name="usbdriver">
|
||||
<xi:include href="usbdriver/usbdriver.rbuild" />
|
||||
</directory>-->
|
||||
</directory>
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
// Resource script for USBISO driver
|
||||
// Generated by Walt Oney's driver wizard
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
||||
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,0,1,0
|
||||
PRODUCTVERSION 0,0,1,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "This is a beta version of usb driver stack( ehci ), contact me at mypublic99@yahoo.com\0"
|
||||
VALUE "CompanyName", "Woodhead Software\0"
|
||||
VALUE "FileDescription", "ehci.sys\0"
|
||||
VALUE "FileVersion", "0, 0, 1, 0\0"
|
||||
VALUE "InternalName", "ehci.sys\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2002-2004 Woodhead Software\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "OriginalFilename", "ehci.sys\0"
|
||||
VALUE "PrivateBuild", "0.01\0"
|
||||
VALUE "ProductName", "usb driver stack for windows NT\0"
|
||||
VALUE "ProductVersion", "0, 0, 1, 0\0"
|
||||
VALUE "SpecialBuild", "0131.d\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
return;\
|
||||
}
|
||||
|
||||
extern POBJECT_TYPE *IoDriverObjectType;
|
||||
extern POBJECT_TYPE NTSYSAPI IoDriverObjectType;
|
||||
|
||||
extern VOID
|
||||
disp_urb_completion(
|
||||
|
@ -295,9 +295,8 @@ DEV_HANDLE dev_handle
|
|||
PUSB_CTRL_SETUP_PACKET psetup;
|
||||
NTSTATUS status;
|
||||
PUCHAR buf;
|
||||
LONG credit, i, j, match;
|
||||
LONG i;
|
||||
PUSB_CONFIGURATION_DESC pconfig_desc;
|
||||
PUSB_INTERFACE_DESC pif_desc;
|
||||
PUSB_DEV_MANAGER dev_mgr;
|
||||
|
||||
if( param == NULL || dev_handle == 0 )
|
||||
|
@ -401,7 +400,6 @@ ULONG param
|
|||
// and call its AddDevice.
|
||||
//
|
||||
LONG i;
|
||||
NTSTATUS status;
|
||||
PUSB_DRIVER pdrvr;
|
||||
PGENDRV_DRVR_EXTENSION pdrvr_ext;
|
||||
PGENDRV_EXT_DRVR_ENTRY pentry;
|
||||
|
@ -411,10 +409,9 @@ ULONG param
|
|||
|
||||
PDEVICE_OBJECT pdev_obj;
|
||||
PDRIVER_OBJECT pdrvr_obj;
|
||||
HANDLE handle;
|
||||
PLIST_ENTRY pthis, pnext;
|
||||
|
||||
USE_IRQL;
|
||||
USE_BASIC_NON_PENDING_IRQL;
|
||||
|
||||
if( pdev == NULL )
|
||||
return FALSE;
|
||||
|
@ -509,12 +506,11 @@ PVOID context
|
|||
{
|
||||
DEV_HANDLE dev_handle;
|
||||
PUSB_DEV_MANAGER dev_mgr;
|
||||
PWORK_QUEUE_ITEM pwork_item;
|
||||
PUSB_DRIVER pdriver;
|
||||
NTSTATUS status;
|
||||
PUSB_DEV pdev;
|
||||
PUSB_EVENT pevent;
|
||||
USE_IRQL;
|
||||
USE_BASIC_NON_PENDING_IRQL;
|
||||
|
||||
if( purb == NULL || context == NULL )
|
||||
return;
|
||||
|
@ -576,7 +572,7 @@ PVOID context
|
|||
pevent->context = 0;
|
||||
pevent->param = ( ULONG )pdriver;
|
||||
pevent->pnext = 0; //vertical queue for serialized operation
|
||||
pevent->process_event = gendrv_event_select_driver;
|
||||
pevent->process_event = (PROCESS_EVENT)gendrv_event_select_driver;
|
||||
pevent->process_queue = event_list_default_process_queue;
|
||||
|
||||
InsertTailList( &dev_mgr->event_list, &pevent->event_link );
|
||||
|
@ -828,7 +824,6 @@ PDEVICE_OBJECT pdev_obj,
|
|||
PVOID pctx
|
||||
)
|
||||
{
|
||||
PDRIVER_EXTENSION pwin_drvr_ext;
|
||||
if( pdev_obj == NULL )
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
|
||||
|
@ -842,7 +837,7 @@ PVOID pctx
|
|||
pdrvr_obj = (PDRIVER_OBJECT )pctx;
|
||||
if( pdrvr_obj->DriverExtension )
|
||||
{
|
||||
return pdrvr_obj->DriverExtension->AddDevice( pdrvr_obj, &pdev_obj );
|
||||
return pdrvr_obj->DriverExtension->AddDevice( pdrvr_obj, pdev_obj );
|
||||
}
|
||||
return STATUS_IO_DEVICE_ERROR;
|
||||
}
|
||||
|
@ -896,9 +891,8 @@ DEV_HANDLE if_handle
|
|||
|
||||
PDEVICE_OBJECT pdev_obj;
|
||||
PDRIVER_OBJECT pdrvr_obj;
|
||||
HANDLE handle;
|
||||
PLIST_ENTRY pthis, pnext;
|
||||
USE_IRQL;
|
||||
USE_BASIC_NON_PENDING_IRQL;
|
||||
|
||||
pdev = NULL;
|
||||
usb_dbg_print( DBGLVL_MAXIMUM, ( "gendrv_if_connect(): entering...\n" ) );
|
||||
|
@ -1062,13 +1056,11 @@ BOOL is_if
|
|||
)
|
||||
{
|
||||
PUSB_DEV pdev;
|
||||
PDEVICE_OBJECT dev_obj;
|
||||
PDEVICE_OBJECT dev_obj = NULL;
|
||||
NTSTATUS status;
|
||||
PUSB_DRIVER pdrvr;
|
||||
PGENDRV_DRVR_EXTENSION pdrvr_ext;
|
||||
PGENDRV_EXT_DRVR_ENTRY pentry;
|
||||
PLIST_ENTRY pthis;
|
||||
PGENDRV_DEVICE_EXTENSION pdev_ext;
|
||||
PGENDRV_DRVR_EXTENSION pdrvr_ext = NULL;
|
||||
PGENDRV_DEVICE_EXTENSION pdev_ext = NULL;
|
||||
ULONG if_idx;
|
||||
|
||||
status = usb_query_and_lock_dev( dev_mgr, if_handle, &pdev );
|
||||
|
@ -1178,8 +1170,7 @@ PUSB_DRIVER pdriver
|
|||
)
|
||||
{
|
||||
PGENDRV_DRVR_EXTENSION pdrvr_ext;
|
||||
LONG i;
|
||||
PLIST_ENTRY pthis, pnext;
|
||||
PLIST_ENTRY pthis;
|
||||
PGENDRV_EXT_DRVR_ENTRY pentry;
|
||||
if( dev_mgr == NULL || pdriver == NULL )
|
||||
return FALSE;
|
||||
|
@ -1225,7 +1216,7 @@ PUNICODE_STRING unicode_string
|
|||
OBJECT_ATTRIBUTES oa;
|
||||
HANDLE drvr_handle;
|
||||
UNICODE_STRING oname;
|
||||
PDRIVER_OBJECT pdrvr;
|
||||
PDRIVER_OBJECT pdrvr = NULL;
|
||||
|
||||
RtlZeroMemory( &oa, sizeof( oa ) );
|
||||
oa.Length = sizeof( oa );
|
||||
|
@ -1235,7 +1226,7 @@ PUNICODE_STRING unicode_string
|
|||
RtlAppendUnicodeStringToString( &oname, unicode_string );
|
||||
|
||||
status = ObOpenObjectByName( &oa,
|
||||
*IoDriverObjectType, // object type
|
||||
IoDriverObjectType, // object type
|
||||
KernelMode, // access mode
|
||||
NULL, // access state
|
||||
FILE_READ_DATA, // STANDARD_RIGHTS_READ, access right
|
||||
|
@ -1248,9 +1239,9 @@ PUNICODE_STRING unicode_string
|
|||
}
|
||||
ObReferenceObjectByHandle( drvr_handle,
|
||||
FILE_READ_DATA,
|
||||
*IoDriverObjectType,
|
||||
IoDriverObjectType,
|
||||
KernelMode,
|
||||
&pdrvr,
|
||||
(PVOID)&pdrvr,
|
||||
NULL // OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL
|
||||
);
|
||||
ZwClose( drvr_handle );
|
||||
|
@ -1334,8 +1325,6 @@ PIRP irp
|
|||
}
|
||||
else if( irpstack->MinorFunction == IOCTL_GET_DEV_HANDLE )
|
||||
{
|
||||
PUCHAR user_buffer;
|
||||
ULONG user_buffer_length;
|
||||
PGENDRV_DEVICE_EXTENSION pdev_ext;
|
||||
pdev_ext = dev_obj->DeviceExtension;
|
||||
if( irpstack->Parameters.DeviceIoControl.OutputBufferLength < sizeof( LONG ) )
|
||||
|
@ -1383,8 +1372,6 @@ PIRP irp
|
|||
}
|
||||
else if( irpstack->MinorFunction == IOCTL_GET_DEV_HANDLE )
|
||||
{
|
||||
PUCHAR user_buffer;
|
||||
ULONG user_buffer_length;
|
||||
PGENDRV_DEVICE_EXTENSION pdev_ext;
|
||||
pdev_ext = dev_obj->DeviceExtension;
|
||||
if( irpstack->Parameters.DeviceIoControl.OutputBufferLength < sizeof( LONG ) )
|
||||
|
@ -1409,14 +1396,14 @@ PDEVICE_OBJECT dev_obj,
|
|||
PUSB_DEV_MANAGER dev_mgr
|
||||
)
|
||||
{
|
||||
PDEVEXT_HEADER dev_hdr;
|
||||
PDEVEXT_HEADER dev_hdr = NULL;
|
||||
if( dev_obj == NULL || dev_mgr == NULL )
|
||||
return FALSE;
|
||||
|
||||
dev_hdr = ( PDEVEXT_HEADER )dev_obj->DeviceExtension;
|
||||
dev_hdr->type = NTDEV_TYPE_CLIENT_DEV;
|
||||
dev_hdr->dispatch = gendrv_dispatch;
|
||||
dev_hdr->start_io = gendrv_startio;
|
||||
dev_hdr->start_io = (PDRIVER_STARTIO)gendrv_startio;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1557,7 +1544,6 @@ PDEVICE_OBJECT dev_obj
|
|||
UCHAR dev_name[ 64 ];
|
||||
STRING string;
|
||||
UNICODE_STRING symb_link;
|
||||
NTSTATUS status;
|
||||
PGENDRV_DRVR_EXTENSION pdrvr_ext;
|
||||
|
||||
if( dev_mgr == NULL || dev_obj == 0 )
|
||||
|
@ -1810,7 +1796,7 @@ IN PIRP irp
|
|||
PIO_STACK_LOCATION irp_stack;
|
||||
ULONG ctrl_code;
|
||||
PUSB_DEV_MANAGER dev_mgr;
|
||||
USE_IRQL;
|
||||
USE_NON_PENDING_IRQL;
|
||||
|
||||
if( dev_obj == NULL || irp == NULL )
|
||||
return;
|
||||
|
@ -1847,17 +1833,14 @@ IN PIRP irp
|
|||
case IOCTL_SUBMIT_URB_NOIO:
|
||||
case IOCTL_SUBMIT_URB_WR:
|
||||
{
|
||||
LONG buf_size;
|
||||
PURB purb;
|
||||
KIRQL old_irql;
|
||||
ULONG endp_idx, if_idx, user_buffer_length;
|
||||
PUCHAR user_buffer;
|
||||
ULONG endp_idx, if_idx, user_buffer_length = 0;
|
||||
PUCHAR user_buffer = NULL;
|
||||
PUSB_DEV pdev;
|
||||
DEV_HANDLE endp_handle;
|
||||
PUSB_ENDPOINT pendp;
|
||||
|
||||
NTSTATUS status;
|
||||
PUSB_CTRL_SETUP_PACKET psetup;
|
||||
|
||||
if( irp_stack->Parameters.DeviceIoControl.InputBufferLength < sizeof( URB ) )
|
||||
{
|
||||
|
@ -2004,8 +1987,7 @@ PDEVICE_OBJECT dev_obj
|
|||
KIRQL cancelIrql;
|
||||
PIRP irp, cur_irp;
|
||||
PKDEVICE_QUEUE_ENTRY packet;
|
||||
LIST_ENTRY cancel_irps, *pthis, *pnext;
|
||||
PDEVEXT_HEADER dev_hdr;
|
||||
LIST_ENTRY cancel_irps, *pthis;
|
||||
|
||||
//
|
||||
// cancel all the irps in the queue
|
||||
|
@ -2018,7 +2000,7 @@ PDEVICE_OBJECT dev_obj
|
|||
// remove the irps from device queue
|
||||
IoAcquireCancelSpinLock( &cancelIrql );
|
||||
cur_irp = dev_obj->CurrentIrp;
|
||||
while( packet = KeRemoveDeviceQueue( &dev_obj->DeviceQueue ) )
|
||||
while(( packet = KeRemoveDeviceQueue( &dev_obj->DeviceQueue ) ))
|
||||
{
|
||||
irp = struct_ptr( packet, IRP, Tail.Overlay.DeviceQueueEntry );
|
||||
InsertTailList( &cancel_irps, &irp->Tail.Overlay.DeviceQueueEntry.DeviceListEntry );
|
||||
|
@ -2050,7 +2032,6 @@ PIRP pirp
|
|||
// cancel routine for irps queued in the device queue
|
||||
PUSB_DEV_MANAGER dev_mgr;
|
||||
PDEVEXT_HEADER pdev_ext_hdr;
|
||||
ULONG i;
|
||||
|
||||
pdev_ext_hdr = ( PDEVEXT_HEADER )dev_obj->DeviceExtension;
|
||||
dev_mgr = pdev_ext_hdr->dev_mgr;
|
||||
|
|
|
@ -1076,6 +1076,7 @@ LONG usb_count_list( PLIST_HEAD list_head )
|
|||
return count;
|
||||
}
|
||||
|
||||
// checks if processor supports Time Stamp Counter
|
||||
__inline BOOL
|
||||
usb_query_clicks(
|
||||
PLARGE_INTEGER clicks
|
||||
|
@ -1084,6 +1085,8 @@ PLARGE_INTEGER clicks
|
|||
BOOL ret_val;
|
||||
//so we have to use intel's cpu???
|
||||
ret_val = FALSE;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__asm
|
||||
{
|
||||
push ebx;
|
||||
|
@ -1102,6 +1105,9 @@ LBL_OUT:
|
|||
pop eax;
|
||||
pop ebx;
|
||||
}
|
||||
#else
|
||||
ret_val = FALSE;
|
||||
#endif
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,5 +15,5 @@
|
|||
<file>compdrv.c</file>
|
||||
<file>etd.c</file>
|
||||
<file>gendrv.c</file>
|
||||
<file>ehci.rc</file>
|
||||
<file>usbdriver.rc</file>
|
||||
</module>
|
||||
|
|
|
@ -25,12 +25,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "Comments", "This is a beta version of usb driver stack( ehci ), contact me at mypublic99@yahoo.com\0"
|
||||
VALUE "CompanyName", "Woodhead Software\0"
|
||||
VALUE "FileDescription", "ehci.sys\0"
|
||||
VALUE "FileDescription", "usbdriver.sys\0"
|
||||
VALUE "FileVersion", "0, 0, 1, 0\0"
|
||||
VALUE "InternalName", "ehci.sys\0"
|
||||
VALUE "InternalName", "usbdriver.sys\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2002-2004 Woodhead Software\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "OriginalFilename", "ehci.sys\0"
|
||||
VALUE "OriginalFilename", "usbdriver.sys\0"
|
||||
VALUE "PrivateBuild", "0.01\0"
|
||||
VALUE "ProductName", "usb driver stack for windows NT\0"
|
||||
VALUE "ProductVersion", "0, 0, 1, 0\0"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue