📄 oemioctl.cod
字号:
; 845 : case IOCTL_HAL_PIO_CIR:
; 846 : return GetKeyName( lpOutBuf, nOutBufSize, lpBytesReturned );
; 847 : break;
; 848 : #endif
; 849 :
; 850 : }
; 851 :
; 852 : return(TRUE);
00704 23a00001 movcs r0, #1
00708 2afffe73 bcs |$L16625|
0070c |$L16765|
; 426 : {
; 427 : SetLastError(ERROR_INVALID_PARAMETER);
0070c e59f3600 ldr r3, [pc, #0x600]
00710 e3a00057 mov r0, #0x57
00714 e1a0e00f mov lr, pc
00718 e12fff13 bx r3
; 428 : return(FALSE);
0071c eafffe6d b |$L16908|
00720 |$L16831|
; 562 : return TRUE;
; 563 :
; 564 : case IOCTL_VBRIDGE_GET_RX_PACKET:
; 565 : if (lpOutBuf) {
00720 e3560000 cmp r6, #0
00724 0a000003 beq |$L16832|
; 566 : return VBridgeUGetOneRxPacket((PUCHAR *)lpOutBuf, lpBytesReturned);
00728 e59d104c ldr r1, [sp, #0x4C]
0072c e1a00006 mov r0, r6
00730 eb000000 bl VBridgeUGetOneRxPacket
00734 eafffe68 b |$L16625|
00738 |$L16832|
; 567 : }
; 568 :
; 569 : SetLastError(ERROR_INVALID_PARAMETER);
00738 e59f35d4 ldr r3, [pc, #0x5D4]
0073c e3a00057 mov r0, #0x57
00740 e1a0e00f mov lr, pc
00744 e12fff13 bx r3
; 570 : return FALSE;
00748 eafffe62 b |$L16908|
0074c |$L16962|
; 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) {
0074c e59f3628 ldr r3, [pc, #0x628]
00750 e1500003 cmp r0, r3
00754 0a00000b beq |$L16836|
00758 e59f3618 ldr r3, [pc, #0x618]
0075c e1500003 cmp r0, r3
00760 0a000004 beq |$L16838|
00764 e59f3608 ldr r3, [pc, #0x608]
00768 e1500003 cmp r0, r3
0076c 1a00012c bne |$L16926|
; 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);
00770 e3a00001 mov r0, #1
00774 eafffe58 b |$L16625|
00778 |$L16838|
; 574 : return TRUE;
; 575 :
; 576 : case IOCTL_VBRIDGE_GET_ETHERNET_MAC:
; 577 : VBridgeUGetEDBGMac((PBYTE)lpOutBuf);
00778 e1a00006 mov r0, r6
0077c eb000000 bl VBridgeUGetEDBGMac
; 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);
00780 e3a00001 mov r0, #1
00784 eafffe54 b |$L16625|
00788 |$L16836|
; 571 :
; 572 : case IOCTL_VBRIDGE_GET_RX_PACKET_COMPLETE:
; 573 : VBridgeUGetOneRxPacketComplete((PUCHAR)lpInBuf);
00788 e1a00005 mov r0, r5
0078c eb000000 bl VBridgeUGetOneRxPacketComplete
; 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);
00790 e3a00001 mov r0, #1
00794 eafffe50 b |$L16625|
00798 |$L16840|
; 578 : return TRUE;
; 579 :
; 580 : case IOCTL_VBRIDGE_CURRENT_PACKET_FILTER:
; 581 : ////////////////////////////////////////////////////////////////////////
; 582 : // First, see if filter setting is implemented, then inform vbridge
; 583 : // on the new filtering.
; 584 : //
; 585 : if (OEMEthCurrentPacketFilter((PDWORD)lpInBuf)) {
00798 e1a00005 mov r0, r5
0079c eb000000 bl OEMEthCurrentPacketFilter
007a0 e3500000 cmp r0, #0
007a4 0afffe4b beq |$L16908|
; 586 : VBridgeUCurrentPacketFilter((PDWORD)lpInBuf);
007a8 e1a00005 mov r0, r5
007ac eb000000 bl VBridgeUCurrentPacketFilter
; 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);
007b0 e3a00001 mov r0, #1
007b4 eafffe48 b |$L16625|
007b8 |$L16959|
; 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) {
007b8 e59f35b0 ldr r3, [pc, #0x5B0]
007bc e1500003 cmp r0, r3
007c0 8a000085 bhi |$L16963|
007c4 0a000081 beq |$L16754|
007c8 e59f359c ldr r3, [pc, #0x59C]
007cc e1500003 cmp r0, r3
007d0 8a00004d bhi |$L16964|
007d4 0a00003f beq |$L16729|
007d8 e59f3588 ldr r3, [pc, #0x588]
007dc e1500003 cmp r0, r3
007e0 0a000035 beq |$L16844|
007e4 e59f3578 ldr r3, [pc, #0x578]
007e8 e1500003 cmp r0, r3
007ec 0a00001e beq |$L16859|
007f0 e59f3568 ldr r3, [pc, #0x568]
007f4 e1500003 cmp r0, r3
007f8 0a00000a beq |$L16849|
007fc e59f3558 ldr r3, [pc, #0x558]
00800 e1500003 cmp r0, r3
00804 1a000106 bne |$L16926|
; 593 : return TRUE;
; 594 : return FALSE;
; 595 :
; 596 : case IOCTL_VBRIDGE_WILD_CARD:
; 597 : return VBridgeUWildCard(lpInBuf, nInBufSize, lpOutBuf, nOutBufSize, lpBytesReturned);
00808 e59d104c ldr r1, [sp, #0x4C]
0080c e59d3048 ldr r3, [sp, #0x48]
00810 e1a02006 mov r2, r6
00814 e58d1000 str r1, [sp]
00818 e1a0100e mov r1, lr
0081c e1a00005 mov r0, r5
00820 eb000000 bl VBridgeUWildCard
00824 eafffe2c b |$L16625|
00828 |$L16849|
; 598 :
; 599 : case IOCTL_VBRIDGE_SHARED_ETHERNET:
; 600 : ////////////////////////////////////////////////////////////////////////
; 601 : // Yes, this kernel supports shared ethernet port.
; 602 : //
; 603 : return TRUE;
; 604 : #endif // IMGSHAREETH
; 605 :
; 606 : ////////////////////////////////////////////////////////////////////////
; 607 : ////////////////////////////////////////////////////////////////////////
; 608 : // Translate interrupt into SYSINTR
; 609 : //
; 610 : // Translate IRQ -> SYSINTR (or request new SYSINTR)
; 611 : //
; 612 : case IOCTL_HAL_TRANSLATE_IRQ:
; 613 : case IOCTL_HAL_REQUEST_SYSINTR:
; 614 : if (nInBufSize >= sizeof(DWORD) && nOutBufSize >= sizeof(DWORD) && lpOutBuf && lpInBuf) {
00828 e35e0004 cmp lr, #4
0082c 3a000009 bcc |$L16852|
00830 e59d3048 ldr r3, [sp, #0x48]
00834 e3530004 cmp r3, #4
00838 3a000006 bcc |$L16852|
0083c e3560000 cmp r6, #0
00840 0a000004 beq |$L16852|
00844 e3550000 cmp r5, #0
00848 0a000002 beq |$L16852|
; 615 : *(PDWORD)lpOutBuf = OEMRequestSysIntr(*(PDWORD)lpInBuf);
0084c e5950000 ldr r0, [r5]
00850 eb000000 bl OEMRequestSysIntr
; 616 :
; 617 : if (lpBytesReturned) {
; 618 : *lpBytesReturned = sizeof(DWORD);
; 619 : }
; 620 :
; 621 : return TRUE;
00854 ea000045 b |$L17004|
00858 |$L16852|
; 622 : }
; 623 :
; 624 : SetLastError(ERROR_INVALID_PARAMETER);
00858 e59f34b4 ldr r3, [pc, #0x4B4]
0085c e3a00057 mov r0, #0x57
00860 e1a0e00f mov lr, pc
00864 e12fff13 bx r3
; 625 : return FALSE;
00868 eafffe1a b |$L16908|
0086c |$L16859|
; 626 :
; 627 : // Provide interrupt number based on device location
; 628 : case IOCTL_HAL_REQUEST_IRQ:
; 629 : if (nInBufSize >= sizeof(DEVICE_LOCATION) && nOutBufSize >= sizeof(DWORD) && lpOutBuf && lpInBuf) {
0086c e35e0014 cmp lr, #0x14
00870 3a00000c bcc |$L16862|
00874 e59d3048 ldr r3, [sp, #0x48]
00878 e3530004 cmp r3, #4
0087c 3a000009 bcc |$L16862|
00880 e3560000 cmp r6, #0
00884 0a000007 beq |$L16862|
00888 e3550000 cmp r5, #0
0088c 0a000005 beq |$L16862|
; 630 : if(!OEMGetInterrupt((PDEVICE_LOCATION)lpInBuf, (PDWORD)lpOutBuf))
00890 e1a01006 mov r1, r6
00894 e1a00005 mov r0, r5
00898 eb000000 bl OEMGetInterrupt
0089c e3500000 cmp r0, #0
; 631 : return(FALSE);
008a0 0afffe0c beq |$L16908|
; 632 :
; 633 : if (lpBytesReturned) {
; 634 : *lpBytesReturned = sizeof(DWORD);
; 635 : }
; 636 :
; 637 : break;
008a4 ea000032 b |$L17006|
008a8 |$L16862|
; 638 : }
; 639 :
; 640 : SetLastError(ERROR_INVALID_PARAMETER);
008a8 e59f3464 ldr r3, [pc, #0x464]
008ac e3a00057 mov r0, #0x57
008b0 e1a0e00f mov lr, pc
008b4 e12fff13 bx r3
; 641 : return FALSE;
008b8 eafffe06 b |$L16908|
008bc |$L16844|
; 587 : return TRUE;
; 588 : }
; 589 : return FALSE;
; 590 :
; 591 : case IOCTL_VBRIDGE_802_3_MULTICAST_LIST:
; 592 : if (OEMEthMulticastList((PUCHAR)lpInBuf, nInBufSize))
008bc e1a0100e mov r1, lr
008c0 e1a00005 mov r0, r5
008c4 eb000000 bl OEMEthMulticastList
008c8 e3500000 cmp r0, #0
008cc 0afffe01 beq |$L16908|
; 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);
008d0 e3a00001 mov r0, #1
008d4 eafffe00 b |$L16625|
008d8 |$L16729|
; 345 :
; 346 : /*case IOCTL_HAL_INIT_RTC:
; 347 : if (!lpInBuf || !lpBytesReturned || (nInBufSize < sizeof(SYSTEMTIME)))
; 348 : {
; 349 :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -