⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oemioctl.cod

📁 EP9315的BSP包(WINCE下的BSP,内有各种驱动的详细的代码)
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00168	0a000263	 beq       |$L14784|
  0016c	e59f19a0	 ldr       r1, [pc, #0x9A0]
  00170	e3a00057	 mov       r0, #0x57
  00174	e1a0e00f	 mov       lr, pc
  00178	e12fff11	 bx        r1
  0017c	e3a00000	 mov       r0, #0
  00180	ea00025d	 b         |$L14784|
  00184		 |$L14845|

; 191  :         {
; 192  :             SetLastError(ERROR_INVALID_PARAMETER);

  00184	e59f1988	 ldr       r1, [pc, #0x988]
  00188	e3a00057	 mov       r0, #0x57
  0018c	e1a0e00f	 mov       lr, pc
  00190	e12fff11	 bx        r1

; 620  :         return(FALSE);

  00194	e3a00000	 mov       r0, #0
  00198	ea000257	 b         |$L14784|
  0019c		 |$L14858|

; 203  :             return TRUE;
; 204  :         } 
; 205  :         else if (*(DWORD *)lpInBuf == IOCTL_HAL_GETBUSDATA) 
; 206  :         {
; 207  :             ((PBUSDATA_PARMS)lpInBuf)->ReturnCode = 0;
; 208  :             return TRUE;
; 209  :         } 
; 210  :         else 
; 211  :         {
; 212  :             //
; 213  :             // Oops, parameter list isn't what we expected.
; 214  :             //
; 215  :             SetLastError(ERROR_INVALID_PARAMETER);
; 216  :             return FALSE;
; 217  :         }
; 218  : 
; 219  :         break;
; 220  : 
; 221  : #if 0
; 222  :     //
; 223  :     // This will get handled by the default case since we don't
; 224  :     // have a pci device.
; 225  :     //
; 226  :     case IOCTL_HAL_GETPCIDEVICEINFO:
; 227  :         //
; 228  :         // Oops, parameter list isn't what we expected.
; 229  :         //
; 230  :         SetLastError(ERROR_INVALID_PARAMETER);
; 231  :         return FALSE;
; 232  :         
; 233  :     case IOCTL_HAL_SETPCIDEVICEINFO:
; 234  :         //
; 235  :         // Oops, parameter list isn't what we expected.
; 236  :         //
; 237  :         SetLastError(ERROR_INVALID_PARAMETER);
; 238  :         return FALSE;
; 239  : #endif // 0
; 240  : 
; 241  :     case IOCTL_HAL_GET_IP_ADDR:
; 242  :         if ((lpOutBuf == NULL) || (NULL == lpBytesReturned) ||
; 243  :             (nOutBufSize < sizeof(IP_INFO))) {

  0019c	e3580000	 cmp       r8, #0
  001a0	0a000024	 beq       |$L14863|
  001a4	e59d4054	 ldr       r4, [sp, #0x54]
  001a8	e3540000	 cmp       r4, #0
  001ac	0a000021	 beq       |$L14863|
  001b0	e59d0050	 ldr       r0, [sp, #0x50]
  001b4	e350000c	 cmp       r0, #0xC
  001b8	3a00001e	 bcc       |$L14863|

; 245  :             return(FALSE);
; 246  :         }
; 247  : 
; 248  :         // Default address to download is IPINFO_DOWNLOAD
; 249  :         len = IPINFO_DOWNLOAD;
; 250  : 
; 251  :         if ((NULL != lpInBuf) && (nInBufSize == sizeof(len)))

  001bc	e3590000	 cmp       r9, #0
  001c0	0a00000a	 beq       |$L15071|
  001c4	e3550004	 cmp       r5, #4
  001c8	1a000008	 bne       |$L15071|

; 252  :             len = *((DWORD *)lpInBuf);

  001cc	e5990000	 ldr       r0, [r9]
  001d0	e3500000	 cmp       r0, #0

; 253  : 
; 254  :         switch (len) {

  001d4	0a00000d	 beq       |$L14873|
  001d8	e3500002	 cmp       r0, #2
  001dc	0a000009	 beq       |$L14875|
  001e0	e3500003	 cmp       r0, #3
  001e4	0a000005	 beq       |$L14877|
  001e8	e3500004	 cmp       r0, #4
  001ec	0a000001	 beq       |$L14879|
  001f0		 |$L15071|

; 270  : 
; 271  :         case IPINFO_DOWNLOAD:
; 272  :         default:
; 273  :             pEdbgAddr = &(pDriverGlobals->eth.EshellHostAddr);

  001f0	e59f19cc	 ldr       r1, [pc, #0x9CC]
  001f4	ea000006	 b         |$L14870|
  001f8		 |$L14879|

; 266  : 
; 267  :         case IPINFO_ESHELL:
; 268  :             pEdbgAddr = &(pDriverGlobals->eth.PpshHostAddr);

  001f8	e59f19c0	 ldr       r1, [pc, #0x9C0]

; 269  :             break;

  001fc	ea000004	 b         |$L14870|
  00200		 |$L14877|

; 262  : 
; 263  :         case IPINFO_KDEBUG:
; 264  :             pEdbgAddr = &(pDriverGlobals->eth.KdbgHostAddr);

  00200	e59f19b4	 ldr       r1, [pc, #0x9B4]

; 265  :             break;

  00204	ea000002	 b         |$L14870|
  00208		 |$L14875|

; 257  :             break;
; 258  : 
; 259  :         case IPINFO_DEBUGMSG:
; 260  :             pEdbgAddr = &(pDriverGlobals->eth.DbgHostAddr);

  00208	e59f19a8	 ldr       r1, [pc, #0x9A8]

; 261  :             break;

  0020c	ea000000	 b         |$L14870|
  00210		 |$L14873|

; 255  :         case IPINFO_ODO:
; 256  :             pEdbgAddr = &(pDriverGlobals->eth.EdbgAddr);

  00210	e59f196c	 ldr       r1, [pc, #0x96C]
  00214		 |$L14870|

; 274  :         }
; 275  : 
; 276  :         pIPInfo = (PIP_INFO)lpOutBuf;
; 277  :         pIPInfo->dwIP = pEdbgAddr->dwIP;

  00214	e4910004	 ldr       r0, [r1], #4

; 278  :         memcpy(pIPInfo->MAC, (char *)pEdbgAddr->wMAC, sizeof(pIPInfo->MAC));

  00218	e3a02006	 mov       r2, #6
  0021c	e4880004	 str       r0, [r8], #4
  00220	e1a00008	 mov       r0, r8
  00224	eb000000	 bl        memcpy

; 279  :         *lpBytesReturned = sizeof(IP_INFO);

  00228	e3a0300c	 mov       r3, #0xC
  0022c	e5843000	 str       r3, [r4]

; 631  :     }
; 632  : 
; 633  :     return(TRUE);

  00230	e1a00007	 mov       r0, r7
  00234	ea000230	 b         |$L14784|
  00238		 |$L14863|

; 244  :             SetLastError(ERROR_INVALID_PARAMETER);

  00238	e59f18d4	 ldr       r1, [pc, #0x8D4]
  0023c	e3a00057	 mov       r0, #0x57
  00240	e1a0e00f	 mov       lr, pc
  00244	e12fff11	 bx        r1

; 620  :         return(FALSE);

  00248	e3a00000	 mov       r0, #0
  0024c	ea00022a	 b         |$L14784|
  00250		 |$L14794|

; 127  :     
; 128  :     case IOCTL_HAL_GET_DEVICE_INFO:
; 129  :         if (!lpOutBuf || !lpBytesReturned)

  00250	e3580000	 cmp       r8, #0
  00254	0a000033	 beq       |$L14796|
  00258	e59d5054	 ldr       r5, [sp, #0x54]
  0025c	e3550000	 cmp       r5, #0
  00260	0a000030	 beq       |$L14796|

; 132  :             return(FALSE);
; 133  :         }
; 134  : 
; 135  :         switch (*(LPDWORD)lpInBuf) {

  00264	e3a01c01	 mov       r1, #1, 24
  00268	e5990000	 ldr       r0, [r9]
  0026c	e3811001	 orr       r1, r1, #1
  00270	e1500001	 cmp       r0, r1
  00274	0a000017	 beq       |$L14804|
  00278	e3a01c01	 mov       r1, #1, 24
  0027c	e3811002	 orr       r1, r1, #2
  00280	e1500001	 cmp       r0, r1
  00284	0a000005	 beq       |$L14810|

; 152  :             break;
; 153  : 
; 154  :         default:
; 155  :             SetLastError(ERROR_INVALID_PARAMETER);

  00288	e59f1884	 ldr       r1, [pc, #0x884]
  0028c	e3a00057	 mov       r0, #0x57
  00290	e1a0e00f	 mov       lr, pc
  00294	e12fff11	 bx        r1

; 631  :     }
; 632  : 
; 633  :     return(TRUE);

  00298	e1a00007	 mov       r0, r7
  0029c	ea000216	 b         |$L14784|
  002a0		 |$L14810|

; 143  :             break;
; 144  : 
; 145  :         case SPI_GETOEMINFO:
; 146  :             len = (strlenW(HALOEMStr)+1)*sizeof(WCHAR);

  002a0	e59f08e4	 ldr       r0, [pc, #0x8E4]
  002a4	eb000000	 bl        strlenW
  002a8	e2801001	 add       r1, r0, #1

; 147  :             if (nOutBufSize >= len) {

  002ac	e59d0050	 ldr       r0, [sp, #0x50]
  002b0	e1a04081	 mov       r4, r1, lsl #1
  002b4	e1500004	 cmp       r0, r4

; 148  :                 memcpy(lpOutBuf,HALOEMStr,len);

  002b8	259f18cc	 ldrcs     r1, [pc, #0x8CC]
  002bc	2a00000d	 bcs       |$L15098|

; 149  :                 *lpBytesReturned = len;
; 150  :             } else
; 151  :                 SetLastError(ERROR_INSUFFICIENT_BUFFER);

  002c0	e59f184c	 ldr       r1, [pc, #0x84C]
  002c4	e3a0007a	 mov       r0, #0x7A
  002c8	e1a0e00f	 mov       lr, pc
  002cc	e12fff11	 bx        r1

; 631  :     }
; 632  : 
; 633  :     return(TRUE);

  002d0	e1a00007	 mov       r0, r7
  002d4	ea000208	 b         |$L14784|
  002d8		 |$L14804|

; 136  :         case SPI_GETPLATFORMTYPE:
; 137  :             len = (strlenW(HALPlatformStr)+1)*sizeof(WCHAR);

  002d8	e59f08d4	 ldr       r0, [pc, #0x8D4]
  002dc	eb000000	 bl        strlenW
  002e0	e2801001	 add       r1, r0, #1

; 138  :             if (nOutBufSize >= len) {

  002e4	e59d0050	 ldr       r0, [sp, #0x50]
  002e8	e1a04081	 mov       r4, r1, lsl #1
  002ec	e1500004	 cmp       r0, r4
  002f0	3a000006	 bcc       |$L14806|

; 139  :                 memcpy(lpOutBuf,HALPlatformStr,len);

  002f4	e59f18b8	 ldr       r1, [pc, #0x8B8]
  002f8		 |$L15098|
  002f8	e1a02004	 mov       r2, r4
  002fc	e1a00008	 mov       r0, r8
  00300	eb000000	 bl        memcpy

; 140  :                 *lpBytesReturned = len;

  00304	e5854000	 str       r4, [r5]

; 631  :     }
; 632  : 
; 633  :     return(TRUE);

  00308	e1a00007	 mov       r0, r7
  0030c	ea0001fa	 b         |$L14784|
  00310		 |$L14806|

; 141  :             } else
; 142  :                 SetLastError(ERROR_INSUFFICIENT_BUFFER);

  00310	e59f17fc	 ldr       r1, [pc, #0x7FC]
  00314	e3a0007a	 mov       r0, #0x7A
  00318	e1a0e00f	 mov       lr, pc
  0031c	e12fff11	 bx        r1

; 631  :     }
; 632  : 
; 633  :     return(TRUE);

  00320	e1a00007	 mov       r0, r7
  00324	ea0001f4	 b         |$L14784|
  00328		 |$L14796|

; 130  :         {
; 131  :             SetLastError(ERROR_INVALID_PARAMETER);

  00328	e59f17e4	 ldr       r1, [pc, #0x7E4]
  0032c	e3a00057	 mov       r0, #0x57
  00330	e1a0e00f	 mov       lr, pc
  00334	e12fff11	 bx        r1

; 620  :         return(FALSE);

  00338	e3a00000	 mov       r0, #0
  0033c	ea0001ee	 b         |$L14784|
  00340		 |$L15064|

; 118  :     DWORD len;
; 119  :     PIP_INFO pIPInfo;
; 120  :     EDBG_ADDR *pEdbgAddr;
; 121  :     ULONG       ulTemp;
; 122  : 
; 123  : 
; 124  :     DEBUGMSG(0, (TEXT("+OEMIoControl %X\r\n"), dwIoControlCode));
; 125  : 
; 126  :     switch (dwIoControlCode)  {

  00340	e59f0868	 ldr       r0, [pc, #0x868]
  00344	e1560000	 cmp       r6, r0
  00348	0a0000a5	 beq       |$L14950|
  0034c	e59f0858	 ldr       r0, [pc, #0x858]
  00350	e1560000	 cmp       r6, r0
  00354	0a000070	 beq       |$L14927|
  00358	e59f0848	 ldr       r0, [pc, #0x848]
  0035c	e1560000	 cmp       r6, r0
  00360	0a00005c	 beq       |$L14916|
  00364	e59f0838	 ldr       r0, [pc, #0x838]
  00368	e1560000	 cmp       r6, r0
  0036c	0a000016	 beq       |$L14819|
  00370	e59f0828	 ldr       r0, [pc, #0x828]
  00374	e1560000	 cmp       r6, r0
  00378	0a000007	 beq       |$L14976|
  0037c	e59f0818	 ldr       r0, [pc, #0x818]
  00380	e1560000	 cmp       r6, r0
  00384	1a000163	 bne       |$L15041|

; 451  :         return FALSE;
; 452  : 
; 453  :     case IOCTL_VBRIDGE_GET_TX_PACKET_COMPLETE:
; 454  :         VBridgeUGetOneTxPacketComplete((PUCHAR)lpInBuf, nInBufSize);

  00388	e1a01005	 mov       r1, r5
  0038c	e1a00009	 mov       r0, r9
  00390	eb000000	 bl        VBridgeUGetOneTxPacketComplete

; 629  :         
; 630  :         return TRUE;

  00394	e3a00001	 mov       r0, #1
  00398	ea0001d7	 b         |$L14784|
  0039c		 |$L14976|

; 436  :                 return FALSE;
; 437  :             }
; 438  :         }
; 439  :         break;
; 440  : 
; 441  : #if IMGSHAREETH
; 442  : 
; 443  :         ////////////////////////////////////////////////////////////////////////
; 444  :         //  The support for VMini..
; 445  :         //
; 446  :     case IOCTL_VBRIDGE_GET_TX_PACKET:
; 447  :         if (lpOutBuf)

  0039c	e3580000	 cmp       r8, #0
  003a0	0a000003	 beq       |$L14977|

; 448  :             return VBridgeUGetOneTxPacket((PUCHAR *)lpOutBuf, nInBufSize);

  003a4	e1a01005	 mov       r1, r5
  003a8	e1a00008	 mov       r0, r8
  003ac	eb000000	 bl        VBridgeUGetOneTxPacket
  003b0	ea0001d1	 b         |$L14784|
  003b4		 |$L14977|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -