📄 oemioctl.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\Common\.\oemioctl.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |HALPlatformStr| [ DATA ]
EXPORT |HALOEMStr| [ DATA ]
EXPORT |HALPresetID| [ DATA ]
EXPORT |gulCS8950KitlUsed| [ DATA ]
00000 AREA |.data|, DATA
COMMON |fIntrTime|, 0x4
COMMON |wNumInterrupts|, 0x2
COMMON |dwIsrTime1|, 0x4
COMMON |dwIsrTime2|, 0x4
COMMON |dwSPC|, 0x4
COMMON |dwIntrTimeCountdown|, 0x4
COMMON |dwIntrTimeCountdownRef|, 0x4
COMMON |csWakeIntMask|, 0x14
COMMON |csPCIConfig|, 0x14
00000 AREA |.bss|, NOINIT
|gulCS8950KitlUsed| % 0x4
00000 AREA |.rdata|, DATA, READONLY
|HALOEMStr| DCB "C", 0x0, "i", 0x0, "r", 0x0, "r", 0x0, "u", 0x0, "s", 0x0
DCB 0x0, 0x0
% 2
|HALPresetID| DCB "C", 0x0, "i", 0x0, "r", 0x0, "r", 0x0, "u", 0x0, "s", 0x0
DCB " ", 0x0, "E", 0x0, "p", 0x0, "9", 0x0, "3", 0x0, "x", 0x0
DCB "x", 0x0, 0x0, 0x0
|HALPlatformStr| DCB "E", 0x0, "P", 0x0, "9", 0x0, "3", 0x0, "x", 0x0, "x"
DCB 0x0, " ", 0x0, "E", 0x0, "v", 0x0, "a", 0x0, "l", 0x0, "u"
DCB 0x0, "a", 0x0, "t", 0x0, "i", 0x0, "o", 0x0, "n", 0x0, " "
DCB 0x0, "B", 0x0, "o", 0x0, "a", 0x0, "r", 0x0, "d", 0x0, 0x0
DCB 0x0
% 4
|EdbgVendorIds| DCW 0x0
DCW 0x0
DCD 0x4033
DCB 0x1
DCB 0x0
DCB "AD", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x4005
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x2078
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x10ec
DCW 0x8029
DCD 0xc0f0
DCB 0x1
DCB 0x0
DCB "KS", 0x0
% 3
DCW 0x10ec
DCW 0x8129
DCD 0x0
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0x900b
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xd0c9
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xe04c
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x1186
DCW 0x1300
DCD 0x50ba
DCB 0x4
DCB 0x0
DCB "DL", 0x0
% 3
DCW 0x100b
DCW 0x20
DCD 0xa0cc
DCB 0x5
DCB 0x0
DCB "NG", 0x0
% 3
DCW 0x10b7
DCW 0x9050
DCD 0x6008
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x10b7
DCW 0x9200
DCD 0x476
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x8086
DCW 0x1039
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x103a
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1051
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1229
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x2449
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
EXPORT |OEMIoControl|
EXPORT |??_C@_17FHNCMLPJ@?$AAA?$AAR?$AAM?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1BA@OIOAAIEF@?$AAA?$AAR?$AAM?$AA9?$AA2?$AA0?$AAT?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1BC@BDKEKKGD@?$AAA?$AAR?$AAM?$AA?5?$AAL?$AAt?$AAd?$AA?4?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1DC@NDKEFNG@?$AAP?$AAe?$AAr?$AAf?$AAo?$AAr?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAw?$AAa?$AAr?$AAm?$AA?5?$AAr?$AAe?$AAs?$AAe@| [ DATA ] ; `string'
EXPORT |??_C@_1EK@EMINNDAP@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?5?$AA?$CI?$AA?$EA?$AA?5?$AAe@| [ DATA ] ; `string'
EXPORT |??_C@_1CG@DNMGJFKE@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1CE@NIBOEIBG@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAG?$AAe?$AAt?$AAP?$AAF?$AAN?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1EG@HEKBBLAP@?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAH?$AAA?$AAL?$AA_?$AAI?$AAL?$AAT?$AAI?$AAM?$AAI?$AAN?$AAG?$AA?3?$AA?5@| [ DATA ] ; `string'
IMPORT |gBoardInformation|
IMPORT |gBoardInformationValid|
IMPORT |sPlayBack|
IMPORT |sRecord|
IMPORT |itoa10|
IMPORT |OEMEthCurrentPacketFilter|
IMPORT |OEMEthMulticastList|
IMPORT |strlenW|
IMPORT |OEMGetWakeupSource|
IMPORT |OEMClearIntSources|
IMPORT |OEMResetWakeupSource|
IMPORT |OEMSetWakeupSource|
IMPORT |fNKSaveCoProcReg|
IMPORT |gfResumeFlag|
IMPORT |OALIoCtlHalGetCacheInfo|
IMPORT |InitializeCriticalSection|
IMPORT |PerfCountSinceTick|
IMPORT |PerfCountFreq|
IMPORT |NKDbgPrintfW|
IMPORT |memcpy|
IMPORT |memset|
IMPORT |OEMRequestSysIntr|
IMPORT |OEMGetInterrupt|
IMPORT |VBridgeUGetOneTxPacket|
IMPORT |VBridgeUGetOneTxPacketComplete|
IMPORT |VBridgeUGetOneRxPacket|
IMPORT |VBridgeUGetOneRxPacketComplete|
IMPORT |VBridgeUGetEDBGMac|
IMPORT |VBridgeUCurrentPacketFilter|
IMPORT |VBridgeUWildCard|
IMPORT |INTERRUPTS_ENABLE|
IMPORT |SetKernelCommDev|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\oemioctl.c
00000 AREA |.text| { |OEMIoControl| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMIoControl|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMIoControl| } ; comdat associative
|$T17010| DCD |$L17009|
DCD 0x40038802
00000 AREA |.rdata| { |??_C@_17FHNCMLPJ@?$AAA?$AAR?$AAM?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_17FHNCMLPJ@?$AAA?$AAR?$AAM?$AA?$AA@| DCB "A", 0x0, "R", 0x0, "M", 0x0
DCB 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BA@OIOAAIEF@?$AAA?$AAR?$AAM?$AA9?$AA2?$AA0?$AAT?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BA@OIOAAIEF@?$AAA?$AAR?$AAM?$AA9?$AA2?$AA0?$AAT?$AA?$AA@| DCB "A", 0x0
DCB "R", 0x0, "M", 0x0, "9", 0x0, "2", 0x0, "0", 0x0, "T", 0x0
DCB 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BC@BDKEKKGD@?$AAA?$AAR?$AAM?$AA?5?$AAL?$AAt?$AAd?$AA?4?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BC@BDKEKKGD@?$AAA?$AAR?$AAM?$AA?5?$AAL?$AAt?$AAd?$AA?4?$AA?$AA@| DCB "A"
DCB 0x0, "R", 0x0, "M", 0x0, " ", 0x0, "L", 0x0, "t", 0x0, "d"
DCB 0x0, ".", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DC@NDKEFNG@?$AAP?$AAe?$AAr?$AAf?$AAo?$AAr?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAw?$AAa?$AAr?$AAm?$AA?5?$AAr?$AAe?$AAs?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DC@NDKEFNG@?$AAP?$AAe?$AAr?$AAf?$AAo?$AAr?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAw?$AAa?$AAr?$AAm?$AA?5?$AAr?$AAe?$AAs?$AAe@| DCB "P"
DCB 0x0, "e", 0x0, "r", 0x0, "f", 0x0, "o", 0x0, "r", 0x0, "m"
DCB 0x0, "i", 0x0, "n", 0x0, "g", 0x0, " ", 0x0, "w", 0x0, "a"
DCB 0x0, "r", 0x0, "m", 0x0, " ", 0x0, "r", 0x0, "e", 0x0, "s"
DCB 0x0, "e", 0x0, "t", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1EK@EMINNDAP@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?5?$AA?$CI?$AA?$EA?$AA?5?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EK@EMINNDAP@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AA?5?$AA?$CI?$AA?$EA?$AA?5?$AAe@| DCB "I"
DCB 0x0, "L", 0x0, "T", 0x0, "i", 0x0, "m", 0x0, "i", 0x0, "n"
DCB 0x0, "g", 0x0, " ", 0x0, "E", 0x0, "n", 0x0, "a", 0x0, "b"
DCB 0x0, "l", 0x0, "e", 0x0, " ", 0x0, "(", 0x0, "@", 0x0, " "
DCB 0x0, "e", 0x0, "v", 0x0, "e", 0x0, "r", 0x0, "y", 0x0, " "
DCB 0x0, "%", 0x0, "d", 0x0, " ", 0x0, "t", 0x0, "i", 0x0, "c"
DCB 0x0, "k", 0x0, "s", 0x0, ")", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CG@DNMGJFKE@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?$AN?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CG@DNMGJFKE@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?$AN?$AA?6?$AA?$AA@| DCB "I"
DCB 0x0, "L", 0x0, "T", 0x0, "i", 0x0, "m", 0x0, "i", 0x0, "n"
DCB 0x0, "g", 0x0, " ", 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "a"
DCB 0x0, "b", 0x0, "l", 0x0, "e", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CE@NIBOEIBG@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAG?$AAe?$AAt?$AAP?$AAF?$AAN?$AA?$AN?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CE@NIBOEIBG@?$AAI?$AAL?$AAT?$AAi?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAG?$AAe?$AAt?$AAP?$AAF?$AAN?$AA?$AN?$AA?6?$AA?$AA@| DCB "I"
DCB 0x0, "L", 0x0, "T", 0x0, "i", 0x0, "m", 0x0, "i", 0x0, "n"
DCB 0x0, "g", 0x0, " ", 0x0, "G", 0x0, "e", 0x0, "t", 0x0, "P"
DCB 0x0, "F", 0x0, "N", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1EG@HEKBBLAP@?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAH?$AAA?$AAL?$AA_?$AAI?$AAL?$AAT?$AAI?$AAM?$AAI?$AAN?$AAG?$AA?3?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EG@HEKBBLAP@?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAH?$AAA?$AAL?$AA_?$AAI?$AAL?$AAT?$AAI?$AAM?$AAI?$AAN?$AAG?$AA?3?$AA?5@| DCB "I"
DCB 0x0, "O", 0x0, "C", 0x0, "T", 0x0, "L", 0x0, "_", 0x0, "H"
DCB 0x0, "A", 0x0, "L", 0x0, "_", 0x0, "I", 0x0, "L", 0x0, "T"
DCB 0x0, "I", 0x0, "M", 0x0, "I", 0x0, "N", 0x0, "G", 0x0, ":"
DCB 0x0, " ", 0x0, "B", 0x0, "A", 0x0, "D", 0x0, " ", 0x0, "M"
DCB 0x0, "E", 0x0, "S", 0x0, "S", 0x0, "A", 0x0, "G", 0x0, "E"
DCB 0x0, "!", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMIoControl| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMIoControl| PROC
; 173 : {
00000 |$L17009|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd034 sub sp, sp, #0x34
00008 |$M17007|
00008 e1a06003 mov r6, r3
0000c e1a0e002 mov lr, r2
00010 e1a05001 mov r5, r1
; 174 : DWORD len;
; 175 : PIP_INFO pIPInfo;
; 176 : EDBG_ADDR *pEdbgAddr;
; 177 :
; 178 :
; 179 : DEBUGMSG(0, (TEXT("+OEMIoControl %X\r\n"), dwIoControlCode));
; 180 :
; 181 : switch (dwIoControlCode) {
00014 e59f3e00 ldr r3, [pc, #0xE00]
00018 e1500003 cmp r0, r3
0001c 8a0001e5 bhi |$L16959|
00020 0a0001dc beq |$L16840|
00024 e59f3dec ldr r3, [pc, #0xDEC]
00028 e1500003 cmp r0, r3
0002c 8a000145 bhi |$L16960|
00030 0a00010b beq |$L16773|
00034 e59f3dd8 ldr r3, [pc, #0xDD8]
00038 e1500003 cmp r0, r3
0003c 8a0000aa bhi |$L16961|
00040 0a000095 beq |$L16931|
00044 e59f3dc4 ldr r3, [pc, #0xDC4]
00048 e1500003 cmp r0, r3
0004c 0a000056 beq |$L16634|
00050 e59f3db4 ldr r3, [pc, #0xDB4]
00054 e1500003 cmp r0, r3
00058 0a000027 beq |$L16698|
0005c e59f3da4 ldr r3, [pc, #0xDA4]
00060 e1500003 cmp r0, r3
00064 0a000007 beq |$L16667|
00068 e59f3d94 ldr r3, [pc, #0xD94]
0006c e1500003 cmp r0, r3
00070 1a0002eb bne |$L16926|
; 337 : break;
; 338 :
; 339 : case IOCTL_SET_KERNEL_COMM_DEV:
; 340 : //
; 341 : // Routine to change underlying communications device for
; 342 : // kernel services
; 343 : //
; 344 : return SetKernelCommDev((UCHAR)nInBufSize,(UCHAR)nOutBufSize);
00074 e59d3048 ldr r3, [sp, #0x48]
00078 e20e00ff and r0, lr, #0xFF
0007c e20310ff and r1, r3, #0xFF
00080 eb000000 bl SetKernelCommDev
00084 ea000014 b |$L16625|
00088 |$L16667|
; 240 :
; 241 : return TRUE;
; 242 : }
; 243 :
; 244 : case IOCTL_HAL_DDK_CALL:
; 245 : if (!lpInBuf || (nInBufSize != sizeof(BUSDATA_PARMS)) || !lpBytesReturned)
00088 e3550000 cmp r5, #0
0008c 0a000015 beq |$L16685|
00090 e35e0020 cmp lr, #0x20
00094 1a000013 bne |$L16685|
00098 e59d304c ldr r3, [sp, #0x4C]
0009c e3530000 cmp r3, #0
000a0 0a000010 beq |$L16685|
; 249 : }
; 250 :
; 251 : //
; 252 : // I hope by setting the return code to zero fails the PCI bus configuration
; 253 : // stuff.
; 254 : //
; 255 : if (*(DWORD *)lpInBuf == IOCTL_HAL_SETBUSDATA)
000a4 e5953000 ldr r3, [r5]
000a8 e3530001 cmp r3, #1
000ac 1a000003 bne |$L16689|
000b0 |$L17005|
; 256 : {
; 257 : ((PBUSDATA_PARMS)lpInBuf)->ReturnCode = 0;
000b0 e3a03000 mov r3, #0
000b4 e5853004 str r3, [r5, #4]
; 828 : }
; 829 : }
; 830 :
; 831 : break;
; 832 :
; 833 :
; 834 : #ifdef EP93XX_SIMULAT_PS2_KBD
; 835 :
; 836 : case IOCTL_HAL_PS2_SEND:
; 837 : return SendDataToPS2( lpInBuf ,nInBufSize );
; 838 : break;
; 839 : case IOCTL_HAL_PS2_GET:
; 840 : return ReadPS2Data(lpOutBuf, nOutBufSize, lpBytesReturned );
; 841 : break;
; 842 : #endif
; 843 :
; 844 : #ifdef EDB9315A_CIR
; 845 : case IOCTL_HAL_PIO_CIR:
; 846 : return GetKeyName( lpOutBuf, nOutBufSize, lpBytesReturned );
; 847 : break;
; 848 : #endif
; 849 :
; 850 : }
; 851 :
; 852 : return(TRUE);
000b8 e3a00001 mov r0, #1
000bc ea000006 b |$L16625|
000c0 |$L16689|
; 258 : return TRUE;
; 259 : }
; 260 : else if (*(DWORD *)lpInBuf == IOCTL_HAL_GETBUSDATA)
000c0 e3530002 cmp r3, #2
; 261 : {
; 262 : ((PBUSDATA_PARMS)lpInBuf)->ReturnCode = 0;
; 263 : return TRUE;
000c4 0afffff9 beq |$L17005|
; 264 : }
; 265 : else
; 266 : {
; 267 : //
; 268 : // Oops, parameter list isn't what we expected.
; 269 : //
; 270 : SetLastError(ERROR_INVALID_PARAMETER);
000c8 e59f3c44 ldr r3, [pc, #0xC44]
000cc e3a00057 mov r0, #0x57
000d0 e1a0e00f mov lr, pc
000d4 e12fff13 bx r3
000d8 |$L16908|
; 748 : break;
; 749 : }
; 750 : return FALSE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -