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

📄 oemioctl.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
  000d8	e3a00000	 mov         r0, #0
  000dc		 |$L16625|

; 853  : }

  000dc	e28dd034	 add         sp, sp, #0x34
  000e0	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  000e4	e12fff1e	 bx          lr
  000e8		 |$L16685|

; 246  :         {
; 247  :             SetLastError(ERROR_INVALID_PARAMETER);

  000e8	e59f3c24	 ldr         r3, [pc, #0xC24]
  000ec	e3a00057	 mov         r0, #0x57
  000f0	e1a0e00f	 mov         lr, pc
  000f4	e12fff13	 bx          r3

; 248  :             return(FALSE);

  000f8	eafffff6	 b           |$L16908|
  000fc		 |$L16698|

; 271  :             return FALSE;
; 272  :         }
; 273  : 
; 274  :         break;
; 275  : 
; 276  : #if 0
; 277  :     //
; 278  :     // This will get handled by the default case since we don't
; 279  :     // have a pci device.
; 280  :     //
; 281  :     case IOCTL_HAL_GETPCIDEVICEINFO:
; 282  :         //
; 283  :         // Oops, parameter list isn't what we expected.
; 284  :         //
; 285  :         SetLastError(ERROR_INVALID_PARAMETER);
; 286  :         return FALSE;
; 287  :         
; 288  :     case IOCTL_HAL_SETPCIDEVICEINFO:
; 289  :         //
; 290  :         // Oops, parameter list isn't what we expected.
; 291  :         //
; 292  :         SetLastError(ERROR_INVALID_PARAMETER);
; 293  :         return FALSE;
; 294  : #endif // 0
; 295  : 
; 296  :     case IOCTL_HAL_GET_IP_ADDR:
; 297  :         if ((lpOutBuf == NULL) || (NULL == lpBytesReturned) ||
; 298  :             (nOutBufSize < sizeof(IP_INFO))) 

  000fc	e3560000	 cmp         r6, #0
  00100	0a000024	 beq         |$L16703|
  00104	e59d404c	 ldr         r4, [sp, #0x4C]
  00108	e3540000	 cmp         r4, #0
  0010c	0a000021	 beq         |$L16703|
  00110	e59d3048	 ldr         r3, [sp, #0x48]
  00114	e353000c	 cmp         r3, #0xC
  00118	3a00001e	 bcc         |$L16703|

; 302  :         }
; 303  : 
; 304  :         // Default address to download is IPINFO_DOWNLOAD
; 305  :         len = IPINFO_DOWNLOAD;
; 306  : 
; 307  :         if ((NULL != lpInBuf) && (nInBufSize == sizeof(len)))

  0011c	e3550000	 cmp         r5, #0
  00120	0a00000a	 beq         |$L16972|
  00124	e35e0004	 cmp         lr, #4
  00128	1a000008	 bne         |$L16972|

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

  0012c	e5953000	 ldr         r3, [r5]
  00130	e3530000	 cmp         r3, #0

; 309  : 
; 310  :         switch (len) 

  00134	0a00000d	 beq         |$L16713|
  00138	e3530002	 cmp         r3, #2
  0013c	0a000009	 beq         |$L16715|
  00140	e3530003	 cmp         r3, #3
  00144	0a000005	 beq         |$L16717|
  00148	e3530004	 cmp         r3, #4
  0014c	0a000001	 beq         |$L16719|
  00150		 |$L16972|

; 327  : 
; 328  :         case IPINFO_DOWNLOAD:
; 329  :         default:
; 330  :             pEdbgAddr = &(pDriverGlobals->eth.EshellHostAddr);

  00150	e59f1ca8	 ldr         r1, [pc, #0xCA8]
  00154	ea000006	 b           |$L16710|
  00158		 |$L16719|

; 323  : 
; 324  :         case IPINFO_ESHELL:
; 325  :             pEdbgAddr = &(pDriverGlobals->eth.PpshHostAddr);

  00158	e59f1c9c	 ldr         r1, [pc, #0xC9C]

; 326  :             break;

  0015c	ea000004	 b           |$L16710|
  00160		 |$L16717|

; 319  : 
; 320  :         case IPINFO_KDEBUG:
; 321  :             pEdbgAddr = &(pDriverGlobals->eth.KdbgHostAddr);

  00160	e59f1c90	 ldr         r1, [pc, #0xC90]

; 322  :             break;

  00164	ea000002	 b           |$L16710|
  00168		 |$L16715|

; 314  :             break;
; 315  : 
; 316  :         case IPINFO_DEBUGMSG:
; 317  :             pEdbgAddr = &(pDriverGlobals->eth.DbgHostAddr);

  00168	e59f1c84	 ldr         r1, [pc, #0xC84]

; 318  :             break;

  0016c	ea000000	 b           |$L16710|
  00170		 |$L16713|

; 311  :         {
; 312  :         case IPINFO_ODO:
; 313  :             pEdbgAddr = &(pDriverGlobals->eth.EdbgAddr);

  00170	e59f1c78	 ldr         r1, [pc, #0xC78]
  00174		 |$L16710|

; 331  :         }
; 332  : 
; 333  :         pIPInfo = (PIP_INFO)lpOutBuf;
; 334  :         pIPInfo->dwIP = pEdbgAddr->dwIP;
; 335  :         memcpy(pIPInfo->MAC, (char *)pEdbgAddr->wMAC, sizeof(pIPInfo->MAC));

  00174	e4913004	 ldr         r3, [r1], #4
  00178	e3a02006	 mov         r2, #6
  0017c	e4863004	 str         r3, [r6], #4
  00180	e1a00006	 mov         r0, r6
  00184	eb000000	 bl          memcpy

; 336  :         *lpBytesReturned = sizeof(IP_INFO);

  00188	e3a0300c	 mov         r3, #0xC
  0018c	e5843000	 str         r3, [r4]

; 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);

  00190	e3a00001	 mov         r0, #1
  00194	eaffffd0	 b           |$L16625|
  00198		 |$L16703|

; 299  :         {
; 300  :             SetLastError(ERROR_INVALID_PARAMETER);

  00198	e59f3b74	 ldr         r3, [pc, #0xB74]
  0019c	e3a00057	 mov         r0, #0x57
  001a0	e1a0e00f	 mov         lr, pc
  001a4	e12fff13	 bx          r3

; 301  :             return(FALSE);

  001a8	eaffffca	 b           |$L16908|
  001ac		 |$L16634|

; 182  :     
; 183  :     case IOCTL_HAL_GET_DEVICE_INFO:
; 184  :         if (!lpOutBuf || !lpBytesReturned)

  001ac	e3560000	 cmp         r6, #0
  001b0	0a000034	 beq         |$L16636|
  001b4	e59d404c	 ldr         r4, [sp, #0x4C]
  001b8	e3540000	 cmp         r4, #0
  001bc	0a000031	 beq         |$L16636|

; 188  :         }
; 189  : 
; 190  :         switch (*(LPDWORD)lpInBuf) {

  001c0	e5952000	 ldr         r2, [r5]
  001c4	e3a03c01	 mov         r3, #1, 24
  001c8	e3833001	 orr         r3, r3, #1
  001cc	e1520003	 cmp         r2, r3
  001d0	0a000017	 beq         |$L16644|
  001d4	e3a03c01	 mov         r3, #1, 24
  001d8	e3833002	 orr         r3, r3, #2
  001dc	e1520003	 cmp         r2, r3
  001e0	0a000005	 beq         |$L16650|

; 207  :             break;
; 208  : 
; 209  :         default:
; 210  :             SetLastError(ERROR_INVALID_PARAMETER);

  001e4	e59f3b28	 ldr         r3, [pc, #0xB28]
  001e8	e3a00057	 mov         r0, #0x57
  001ec	e1a0e00f	 mov         lr, pc
  001f0	e12fff13	 bx          r3

; 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);

  001f4	e3a00001	 mov         r0, #1
  001f8	eaffffb7	 b           |$L16625|
  001fc		 |$L16650|

; 198  :             break;
; 199  : 
; 200  :         case SPI_GETOEMINFO:
; 201  :             len = (strlenW(HALOEMStr)+1)*sizeof(WCHAR);

  001fc	e59f0ba0	 ldr         r0, [pc, #0xBA0]
  00200	eb000000	 bl          strlenW

; 202  :             if (nOutBufSize >= len) {

  00204	e59d2048	 ldr         r2, [sp, #0x48]
  00208	e2803001	 add         r3, r0, #1
  0020c	e1a05083	 mov         r5, r3, lsl #1
  00210	e1520005	 cmp         r2, r5

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

  00214	259f1b88	 ldrcs       r1, [pc, #0xB88]
  00218	2a00000e	 bcs         |$L17003|

; 204  :                 *lpBytesReturned = len;
; 205  :             } else
; 206  :                 SetLastError(ERROR_INSUFFICIENT_BUFFER);

  0021c	e59f3af0	 ldr         r3, [pc, #0xAF0]
  00220	e3a0007a	 mov         r0, #0x7A
  00224	e1a0e00f	 mov         lr, pc
  00228	e12fff13	 bx          r3

; 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);

  0022c	e3a00001	 mov         r0, #1
  00230	eaffffa9	 b           |$L16625|
  00234		 |$L16644|

; 191  :         case SPI_GETPLATFORMTYPE:
; 192  :             len = (strlenW(HALPlatformStr)+1)*sizeof(WCHAR);

  00234	e59f7b68	 ldr         r7, [pc, #0xB68]
  00238	e287002c	 add         r0, r7, #0x2C
  0023c	eb000000	 bl          strlenW

; 193  :             if (nOutBufSize >= len) {

  00240	e59d2048	 ldr         r2, [sp, #0x48]
  00244	e2803001	 add         r3, r0, #1
  00248	e1a05083	 mov         r5, r3, lsl #1
  0024c	e1520005	 cmp         r2, r5
  00250	3a000006	 bcc         |$L16646|

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

  00254	e287102c	 add         r1, r7, #0x2C
  00258		 |$L17003|
  00258	e1a02005	 mov         r2, r5
  0025c	e1a00006	 mov         r0, r6
  00260	eb000000	 bl          memcpy

; 195  :                 *lpBytesReturned = len;

  00264	e5845000	 str         r5, [r4]

; 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);

  00268	e3a00001	 mov         r0, #1
  0026c	eaffff9a	 b           |$L16625|
  00270		 |$L16646|

; 196  :             } else
; 197  :                 SetLastError(ERROR_INSUFFICIENT_BUFFER);

  00270	e59f3a9c	 ldr         r3, [pc, #0xA9C]
  00274	e3a0007a	 mov         r0, #0x7A
  00278	e1a0e00f	 mov         lr, pc
  0027c	e12fff13	 bx          r3

; 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);

  00280	e3a00001	 mov         r0, #1
  00284	eaffff94	 b           |$L16625|
  00288		 |$L16636|

; 185  :         {
; 186  :             SetLastError(ERROR_INVALID_PARAMETER);

  00288	e59f3a84	 ldr         r3, [pc, #0xA84]
  0028c	e3a00057	 mov         r0, #0x57
  00290	e1a0e00f	 mov         lr, pc
  00294	e12fff13	 bx          r3

; 187  :             return(FALSE);

  00298	eaffff8e	 b           |$L16908|
  0029c		 |$L16931|

⌨️ 快捷键说明

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