📄 halkitl.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\Common\.\halkitl.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.data|, DATA
COMMON |bActiveKitl|, 0x4
00000 AREA |.rdata|, DATA, READONLY
|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 |InitDebugEther|
EXPORT |??_C@_0BC@BHMLMOMN@KITL?5Initialized?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0DM@MDONNODM@KITL?5Initialization?5Failed?0?5No?5d@| [ DATA ] ; `string'
IMPORT |KitlInit|
IMPORT |EdbgOutputDebugString|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\halkitl.c
00000 AREA |.text| { |InitDebugEther| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$InitDebugEther|, PDATA, SELECTION=5, ASSOC=|.text| { |InitDebugEther| } ; comdat associative
|$T15587| DCD |$L15586|
DCD 0x40000b01
00000 AREA |.rdata| { |??_C@_0DM@MDONNODM@KITL?5Initialization?5Failed?0?5No?5d@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DM@MDONNODM@KITL?5Initialization?5Failed?0?5No?5d@| DCB "KITL Ini"
DCB "tialization Failed, No debugging support available", 0xa
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BC@BHMLMOMN@KITL?5Initialized?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BC@BHMLMOMN@KITL?5Initialized?6?$AA@| DCB "KITL Initialized", 0xa
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |InitDebugEther| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |InitDebugEther| PROC
; 75 : {
00000 |$L15586|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M15584|
; 76 : // Initialize KITL transport
; 77 : if (KitlInit (TRUE)) {
00004 e3a00001 mov r0, #1
00008 eb000000 bl KitlInit
0000c e3500000 cmp r0, #0
; 78 : KITLOutputDebugString ("KITL Initialized\n");
00010 159f0010 ldrne r0, [pc, #0x10]
; 79 : // no longer need to start kernel services
; 80 : // since KITL config message told us what to start and
; 81 : // kitl will start it accordingly
; 82 : // if (gpKitl->dwBootFlags & KITL_FL_DBGMSG)
; 83 : // SetKernelCommDev (KERNEL_SVC_DBGMSG, KERNEL_COMM_ETHER);
; 84 : // if (gpKitl->dwBootFlags & KITL_FL_PPSH)
; 85 : // SetKernelCommDev (KERNEL_SVC_PPSH, KERNEL_COMM_ETHER);
; 86 : // if (gpKitl->dwBootFlags & KITL_FL_KDBG)
; 87 : // SetKernelCommDev (KERNEL_SVC_KDBG, KERNEL_COMM_ETHER);
; 88 : } else {
; 89 : KITLOutputDebugString ("KITL Initialization Failed, No debugging support available\n");
00014 059f0008 ldreq r0, [pc, #8]
00018 eb000000 bl EdbgOutputDebugString
; 90 : }
; 91 : }
0001c e49de004 ldr lr, [sp], #4
00020 e12fff1e bx lr
00024 |$L15589|
00024 00000000 DCD |??_C@_0DM@MDONNODM@KITL?5Initialization?5Failed?0?5No?5d@|
00028 00000000 DCD |??_C@_0BC@BHMLMOMN@KITL?5Initialized?6?$AA@|
0002c |$M15585|
ENDP ; |InitDebugEther|
EXPORT |InitParallelSerial|
IMPORT |OEMInitParallelPort|
IMPORT |SetKernelCommDev|
00000 AREA |.text| { |InitParallelSerial| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$InitParallelSerial|, PDATA, SELECTION=5, ASSOC=|.text| { |InitParallelSerial| } ; comdat associative
|$T15597| DCD |$L15596|
DCD 0x40000e01
; Function compile flags: /Ogsy
00000 AREA |.text| { |InitParallelSerial| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |InitParallelSerial| PROC
; 94 : {
00000 |$L15596|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M15594|
; 95 : //
; 96 : // Initialize the parallel port stuff.
; 97 : OEMInitParallelPort();
00004 eb000000 bl OEMInitParallelPort
; 98 :
; 99 : //
; 100 : // Set the debugger to use serial/parallel.
; 101 : //
; 102 : SetKernelCommDev(KERNEL_SVC_DBGMSG,KERNEL_COMM_SERIAL);
00008 e3a01000 mov r1, #0
0000c e3a00000 mov r0, #0
00010 eb000000 bl SetKernelCommDev
; 103 : SetKernelCommDev(KERNEL_SVC_PPSH, KERNEL_COMM_PARALLEL);
00014 e3a01001 mov r1, #1
00018 e3a00001 mov r0, #1
0001c eb000000 bl SetKernelCommDev
; 104 : SetKernelCommDev(KERNEL_SVC_KDBG, KERNEL_COMM_SERIAL);
00020 e3a01000 mov r1, #0
00024 e3a00002 mov r0, #2
00028 eb000000 bl SetKernelCommDev
; 105 :
; 106 : return FALSE;
0002c e3a00000 mov r0, #0
; 107 : }
00030 e49de004 ldr lr, [sp], #4
00034 e12fff1e bx lr
00038 |$M15595|
ENDP ; |InitParallelSerial|
EXPORT |KitlEthEnableInts|
IMPORT |OEMEthEnableInts|
IMPORT |OEMEthDisableInts|
00000 AREA |.text| { |KitlEthEnableInts| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$KitlEthEnableInts|, PDATA, SELECTION=5, ASSOC=|.text| { |KitlEthEnableInts| } ; comdat associative
|$T15605| DCD |$L15604|
DCD 0x40000901
; Function compile flags: /Ogsy
00000 AREA |.text| { |KitlEthEnableInts| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |KitlEthEnableInts| PROC
; 111 : {
00000 |$L15604|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M15602|
00004 e3500000 cmp r0, #0
; 112 : if (bEnable)
00008 0a000002 beq |$L15472|
; 113 : OEMEthEnableInts();
0000c eb000000 bl OEMEthEnableInts
; 116 : }
00010 e49de004 ldr lr, [sp], #4
00014 e12fff1e bx lr
00018 |$L15472|
; 114 : else
; 115 : OEMEthDisableInts();
00018 eb000000 bl OEMEthDisableInts
; 116 : }
0001c e49de004 ldr lr, [sp], #4
00020 e12fff1e bx lr
00024 |$M15603|
ENDP ; |KitlEthEnableInts|
IMPORT |memcpy|
00000 AREA |.bss|, NOINIT
|MyAddr| % 0xc
00000 AREA |.text| { |GetDevCfg| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$GetDevCfg|, PDATA, SELECTION=5, ASSOC=|.text| { |GetDevCfg| } ; comdat associative
|$T15617| DCD |$L15616|
DCD 0x40001001
; Function compile flags: /Ogsy
00000 AREA |.text| { |GetDevCfg| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |GetDevCfg| PROC
; 119 : {
00000 |$L15616|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M15614|
00004 e1a04001 mov r4, r1
; 120 : // put our IP info in the buffer
; 121 : if (*pcbBuf < sizeof (MyAddr)) {
00008 e1d430b0 ldrh r3, [r4]
0000c e353000c cmp r3, #0xC
; 122 : return FALSE;
00010 33a00000 movcc r0, #0
; 128 : }
00014 38bd4010 ldmccia sp!, {r4, lr}
00018 312fff1e bxcc lr
; 123 : }
; 124 :
; 125 : memcpy (pBuf, &MyAddr, sizeof (MyAddr));
0001c e59f1018 ldr r1, [pc, #0x18]
00020 e3a0200c mov r2, #0xC
00024 eb000000 bl memcpy
; 126 : *pcbBuf = sizeof (MyAddr);
00028 e3a0300c mov r3, #0xC
0002c e1c430b0 strh r3, [r4]
; 127 : return TRUE;
00030 e3a00001 mov r0, #1
; 128 : }
00034 e8bd4010 ldmia sp!, {r4, lr}
00038 e12fff1e bx lr
0003c |$L15619|
0003c 00000000 DCD |MyAddr|
00040 |$M15615|
ENDP ; |GetDevCfg|
00000 AREA |.text| { |SetHostCfg| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SetHostCfg|, PDATA, SELECTION=5, ASSOC=|.text| { |SetHostCfg| } ; comdat associative
|$T15627| DCD |$L15626|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |SetHostCfg| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SetHostCfg| PROC
; 131 : {
00000 |$L15626|
00000 |$M15624|
; 132 : // we automatically figure out the host address info during initial
; 133 : // handshake. No need to handle host cfg data here.
; 134 : return TRUE;
00000 e3a00001 mov r0, #1
; 135 : }
00004 e12fff1e bx lr
00008 |$M15625|
ENDP ; |SetHostCfg|
IMPORT |OEMEthSendFrame|
00000 AREA |.text| { |EthSendFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$EthSendFrame|, PDATA, SELECTION=5, ASSOC=|.text| { |EthSendFrame| } ; comdat associative
|$T15638| DCD |$L15637|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |EthSendFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |EthSendFrame| PROC
; 138 : {
00000 |$L15637|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M15635|
; 139 :
; 140 : return (OEMEthSendFrame(pData, (DWORD)nLength));
00004 eb000000 bl OEMEthSendFrame
; 141 :
; 142 : }
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M15636|
ENDP ; |EthSendFrame|
EXPORT |InitEther|
EXPORT |??_C@_0M@NJNIIHFK@?$CLInitEther?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BH@NKNBMIAN@Using?5device?5name?3?5?$CFs?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BL@IEMDAFJI@Device?5?$CFs?0?5IP?5?$CFs?0?5Port?5?$CFd?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0CL@DKAABFIJ@Unable?5to?5initialize?5KITL?5Ether?5@| [ DATA ] ; `string'
EXPORT |??_C@_0M@DGOFCCLK@?9InitEther?6?$AA@| [ DATA ] ; `string'
IMPORT |EbootGetDHCPAddr|
IMPORT |KitlEtherInit|
IMPORT |KitlEtherEncodeUDP|
IMPORT |KitlEtherDecodeUDP|
IMPORT |KitlEtherGetFrameHdrSize|
IMPORT |CreateDeviceName|
IMPORT |memset|
IMPORT |OEMEthInit|
IMPORT |OEMEthGetFrame|
IMPORT |inet_ntoa|
00000 AREA |.text| { |InitEther| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$InitEther|, PDATA, SELECTION=5, ASSOC=|.text| { |InitEther| } ; comdat associative
|$T15652| DCD |$L15651|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -