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

📄 oemioctl.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 459  : 
; 460  : 			if( nOutBufSize < REQ_SIZE )

  0048c	e353003c	 cmp         r3, #0x3C
  00490	2a000004	 bcs         |$L16785|

; 461  : 			{
; 462  : 				SetLastError(ERROR_INSUFFICIENT_BUFFER);

  00494	e59f3878	 ldr         r3, [pc, #0x878]
  00498	e3a0007a	 mov         r0, #0x7A
  0049c	e1a0e00f	 mov         lr, pc
  004a0	e12fff13	 bx          r3

; 463  : 				return FALSE;

  004a4	eaffff0b	 b           |$L16908|
  004a8		 |$L16785|

; 464  : 			}
; 465  :             else
; 466  : 			{
; 467  :                 // Tell them how much we actually used.
; 468  :                 pDeviceID->dwPresetIDOffset = ROUNDUP(sizeof(DEVICE_ID));
; 469  :                 pDeviceID->dwPresetIDBytes = sizeof(HALPresetID);
; 470  :                 memcpy ((PBYTE)lpOutBuf + pDeviceID->dwPresetIDOffset, (PBYTE)HALPresetID, sizeof(HALPresetID));

  004a8	e59f38f4	 ldr         r3, [pc, #0x8F4]
  004ac	e3a0e014	 mov         lr, #0x14
  004b0	e3a0401c	 mov         r4, #0x1C
  004b4	e2831010	 add         r1, r3, #0x10
  004b8	e2860014	 add         r0, r6, #0x14
  004bc	e3a0201c	 mov         r2, #0x1C
  004c0	e586e004	 str         lr, [r6, #4]
  004c4	e5864008	 str         r4, [r6, #8]
  004c8	eb000000	 bl          memcpy

; 471  : 
; 472  :                 pDeviceID->dwPlatformIDOffset = pDeviceID->dwPresetIDOffset + ROUNDUP(pDeviceID->dwPresetIDBytes);

  004cc	e5963008	 ldr         r3, [r6, #8]
  004d0	e5962004	 ldr         r2, [r6, #4]

; 473  :                 pDeviceID->dwPlatformIDBytes = OAL_MAX_PLAT_ID;

  004d4	e3a0e00a	 mov         lr, #0xA
  004d8	e2833003	 add         r3, r3, #3
  004dc	e3c33003	 bic         r3, r3, #3
  004e0	e0833002	 add         r3, r3, r2

; 474  : 
; 475  : 				memset( (PBYTE)lpOutBuf + pDeviceID->dwPlatformIDOffset, 0,  OAL_MAX_PLAT_ID );

  004e4	e0830006	 add         r0, r3, r6
  004e8	e3a0200a	 mov         r2, #0xA
  004ec	e3a01000	 mov         r1, #0
  004f0	e586300c	 str         r3, [r6, #0xC]
  004f4	e586e010	 str         lr, [r6, #0x10]
  004f8	eb000000	 bl          memset

; 476  : 
; 477  : 				itoa10( ((pDriverGlobals->eth.EdbgAddr.wMAC[2]>>8) 
; 478  : 					  | ((pDriverGlobals->eth.EdbgAddr.wMAC[2]& 0x00ff) << 8))
; 479  : 					  , (PBYTE)lpOutBuf + pDeviceID->dwPlatformIDOffset );

  004fc	e59f189c	 ldr         r1, [pc, #0x89C]
  00500	e596200c	 ldr         r2, [r6, #0xC]
  00504	e1d130b0	 ldrh        r3, [r1]
  00508	e5d10001	 ldrb        r0, [r1, #1]
  0050c	e0821006	 add         r1, r2, r6
  00510	e20330ff	 and         r3, r3, #0xFF
  00514	e1800403	 orr         r0, r0, r3, lsl #8
  00518	eb000000	 bl          itoa10

; 480  : 
; 481  : //				sprintf( (PBYTE)lpOutBuf + pDeviceID->dwPlatformIDOffset, "%08x" ,pDriverGlobals->eth.EdbgAddr.wMAC[3] );
; 482  : 
; 483  :                 //CreateDeviceName(&pDriverGlobals->eth.EdbgAddr, (PBYTE)lpOutBuf + pDeviceID->dwPlatformIDOffset, "ARMINT");
; 484  : 
; 485  : 				SetLastError( 0 );

  0051c	e59f37f0	 ldr         r3, [pc, #0x7F0]
  00520	e3a00000	 mov         r0, #0
  00524	e1a0e00f	 mov         lr, pc
  00528	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);

  0052c	e3a00001	 mov         r0, #1
  00530	eafffee9	 b           |$L16625|
  00534		 |$L16780|

; 454  : 				SetLastError(ERROR_INVALID_PARAMETER);

  00534	e59f37d8	 ldr         r3, [pc, #0x7D8]
  00538	e3a00057	 mov         r0, #0x57
  0053c	e1a0e00f	 mov         lr, pc
  00540	e12fff13	 bx          r3

; 455  : 				return(FALSE);

  00544	eafffee3	 b           |$L16908|
  00548		 |$L16960|

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

  00548	e59f384c	 ldr         r3, [pc, #0x84C]
  0054c	e1500003	 cmp         r0, r3
  00550	8a00007d	 bhi         |$L16962|
  00554	0a000071	 beq         |$L16831|
  00558	e59f3838	 ldr         r3, [pc, #0x838]
  0055c	e1500003	 cmp         r0, r3
  00560	0a00005e	 beq         |$L16762|
  00564	e59f3828	 ldr         r3, [pc, #0x828]
  00568	e1500003	 cmp         r0, r3
  0056c	0a000015	 beq         |$L16659|
  00570	e59f3818	 ldr         r3, [pc, #0x818]
  00574	e1500003	 cmp         r0, r3
  00578	0a000007	 beq         |$L16824|
  0057c	e59f3808	 ldr         r3, [pc, #0x808]
  00580	e1500003	 cmp         r0, r3
  00584	1a0001a6	 bne         |$L16926|

; 559  : 
; 560  :     case IOCTL_VBRIDGE_GET_TX_PACKET_COMPLETE:
; 561  :         VBridgeUGetOneTxPacketComplete((PUCHAR)lpInBuf, nInBufSize);

  00588	e1a0100e	 mov         r1, lr
  0058c	e1a00005	 mov         r0, r5
  00590	eb000000	 bl          VBridgeUGetOneTxPacketComplete

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

  00594	e3a00001	 mov         r0, #1
  00598	eafffecf	 b           |$L16625|
  0059c		 |$L16824|

; 544  :             }
; 545  :         }
; 546  :         break;
; 547  : 
; 548  : #if IMGSHAREETH
; 549  : 
; 550  :         ////////////////////////////////////////////////////////////////////////
; 551  :         //  The support for VMini..
; 552  :         //
; 553  :     case IOCTL_VBRIDGE_GET_TX_PACKET:
; 554  :         if (lpOutBuf)

  0059c	e3560000	 cmp         r6, #0
  005a0	0a000003	 beq         |$L16825|

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

  005a4	e1a0100e	 mov         r1, lr
  005a8	e1a00006	 mov         r0, r6
  005ac	eb000000	 bl          VBridgeUGetOneTxPacket
  005b0	eafffec9	 b           |$L16625|
  005b4		 |$L16825|

; 556  : 
; 557  :         SetLastError(ERROR_INVALID_PARAMETER);

  005b4	e59f3758	 ldr         r3, [pc, #0x758]
  005b8	e3a00057	 mov         r0, #0x57
  005bc	e1a0e00f	 mov         lr, pc
  005c0	e12fff13	 bx          r3

; 558  :         return FALSE;

  005c4	eafffec3	 b           |$L16908|
  005c8		 |$L16659|

; 211  :         }
; 212  : 
; 213  :         break;
; 214  : 
; 215  :     case IOCTL_PROCESSOR_INFORMATION:
; 216  :         if (!lpOutBuf) {

  005c8	e3560000	 cmp         r6, #0
  005cc	1a000004	 bne         |$L16660|

; 217  :             SetLastError(ERROR_INVALID_PARAMETER);

  005d0	e59f373c	 ldr         r3, [pc, #0x73C]
  005d4	e3a00057	 mov         r0, #0x57
  005d8	e1a0e00f	 mov         lr, pc
  005dc	e12fff13	 bx          r3

; 218  :             return FALSE;

  005e0	eafffebc	 b           |$L16908|
  005e4		 |$L16660|

; 219  :         }
; 220  : 
; 221  :         if (sizeof(PROCESSOR_INFO) > nOutBufSize) {

  005e4	e59d3048	 ldr         r3, [sp, #0x48]
  005e8	e3530d09	 cmp         r3, #9, 26
  005ec	2a000004	 bcs         |$L16664|

; 222  :             SetLastError(ERROR_INSUFFICIENT_BUFFER);

  005f0	e59f371c	 ldr         r3, [pc, #0x71C]
  005f4	e3a0007a	 mov         r0, #0x7A
  005f8	e1a0e00f	 mov         lr, pc
  005fc	e12fff13	 bx          r3

; 223  :             return FALSE;

  00600	eafffeb4	 b           |$L16908|
  00604		 |$L16664|

; 224  :         } else {
; 225  :             const WCHAR OEMProcCore[] = L"ARM";

  00604	e59f377c	 ldr         r3, [pc, #0x77C]

; 226  :             const WCHAR OEMProcName[] = L"ARM920T";

  00608	e59f5774	 ldr         r5, [pc, #0x774]

; 227  :             const WCHAR OEMProcVendor[] = L"ARM Ltd.";

  0060c	e59f176c	 ldr         r1, [pc, #0x76C]
  00610	e5932000	 ldr         r2, [r3]
  00614	e5950000	 ldr         r0, [r5]
  00618	e595e004	 ldr         lr, [r5, #4]
  0061c	e5954008	 ldr         r4, [r5, #8]
  00620	e5933004	 ldr         r3, [r3, #4]
  00624	e595500c	 ldr         r5, [r5, #0xC]
  00628	e58d2008	 str         r2, [sp, #8]
  0062c	e58d0010	 str         r0, [sp, #0x10]
  00630	e28d0020	 add         r0, sp, #0x20
  00634	e3a02012	 mov         r2, #0x12
  00638	e58d300c	 str         r3, [sp, #0xC]
  0063c	e58de014	 str         lr, [sp, #0x14]
  00640	e58d4018	 str         r4, [sp, #0x18]
  00644	e58d501c	 str         r5, [sp, #0x1C]
  00648	eb000000	 bl          memcpy

; 228  :             PPROCESSOR_INFO pProcInfo = (PPROCESSOR_INFO)lpOutBuf;
; 229  : 
; 230  :             if (lpBytesReturned) *lpBytesReturned = sizeof(PROCESSOR_INFO);

  0064c	e59d304c	 ldr         r3, [sp, #0x4C]

; 231  :             memset(pProcInfo, 0, *lpBytesReturned);

  00650	e3a01000	 mov         r1, #0
  00654	e1a00006	 mov         r0, r6
  00658	e3530000	 cmp         r3, #0
  0065c	13a02d09	 movne       r2, #9, 26
  00660	15832000	 strne       r2, [r3]
  00664	e5932000	 ldr         r2, [r3]
  00668	eb000000	 bl          memset

; 232  : 
; 233  :             pProcInfo->wVersion = 1;

  0066c	e3a03001	 mov         r3, #1

; 234  : 
; 235  :             memcpy(pProcInfo->szProcessCore, OEMProcCore, (strlenW(OEMProcCore) + 1) * sizeof(WCHAR));

  00670	e1a04006	 mov         r4, r6
  00674	e28d0008	 add         r0, sp, #8
  00678	e0c430b2	 strh        r3, [r4], #2
  0067c	eb000000	 bl          strlenW
  00680	e2802001	 add         r2, r0, #1
  00684	e1a02082	 mov         r2, r2, lsl #1
  00688	e28d1008	 add         r1, sp, #8
  0068c	e1a00004	 mov         r0, r4
  00690	eb000000	 bl          memcpy

; 236  :             memcpy(pProcInfo->szProcessorName, OEMProcName, (strlenW(OEMProcName) + 1) * sizeof(WCHAR));

  00694	e28d0010	 add         r0, sp, #0x10
  00698	eb000000	 bl          strlenW
  0069c	e2802001	 add         r2, r0, #1
  006a0	e1a02082	 mov         r2, r2, lsl #1
  006a4	e28d1010	 add         r1, sp, #0x10
  006a8	e2860054	 add         r0, r6, #0x54
  006ac	eb000000	 bl          memcpy

; 237  :             memcpy(pProcInfo->szVendor, OEMProcVendor, (strlenW(OEMProcVendor) + 1 ) * sizeof(WCHAR));

  006b0	e28d0020	 add         r0, sp, #0x20
  006b4	eb000000	 bl          strlenW
  006b8	e2802001	 add         r2, r0, #1
  006bc	e2863c01	 add         r3, r6, #1, 24
  006c0	e1a02082	 mov         r2, r2, lsl #1
  006c4	e28d1020	 add         r1, sp, #0x20
  006c8	e283006e	 add         r0, r3, #0x6E
  006cc	eb000000	 bl          memcpy

; 238  : 
; 239  :             pProcInfo->dwInstructionSet = PROCESSOR_16BITINSTRUCTION;

  006d0	e3a03004	 mov         r3, #4
  006d4	e5863238	 str         r3, [r6, #0x238]

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

  006d8	e3a00001	 mov         r0, #1
  006dc	eafffe7e	 b           |$L16625|
  006e0		 |$L16762|

; 420  :         
; 421  :         return FALSE;
; 422  :         break;
; 423  : 
; 424  :     case IOCTL_QUERY_PHYSICALMEM:
; 425  :         if (!lpOutBuf || nOutBufSize < sizeof(PHYSICAL_BASIC_INFORMATION))

  006e0	e3560000	 cmp         r6, #0
  006e4	0a000008	 beq         |$L16765|
  006e8	e59d3048	 ldr         r3, [sp, #0x48]
  006ec	e353000c	 cmp         r3, #0xC

; 429  :         }
; 430  : 
; 431  :         // Return information about physical memory
; 432  :         ((PPHYSICAL_BASIC_INFORMATION)lpOutBuf)->lpBaseAddress = (LPVOID)0;
; 433  :         ((PPHYSICAL_BASIC_INFORMATION)lpOutBuf)->dwRegionSize = 0x00000000;
; 434  :         ((PPHYSICAL_BASIC_INFORMATION)lpOutBuf)->dwType = PHYSICAL_UNKNOWN;

  006f0	23a03008	 movcs       r3, #8
  006f4	23a02000	 movcs       r2, #0
  006f8	25863008	 strcs       r3, [r6, #8]
  006fc	25862000	 strcs       r2, [r6]
  00700	25862004	 strcs       r2, [r6, #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

⌨️ 快捷键说明

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