📄 device.cod
字号:
0009c 0a000002 beq |$L35437|
000a0 |$L35790|
; 426 : {
; 427 : return TRUE;
000a0 e3a00001 mov r0, #1
; 430 : }
000a4 e8bd4070 ldmia sp!, {r4 - r6, lr}
000a8 e12fff1e bx lr
000ac |$L35437|
; 428 : }
; 429 : return FALSE;
000ac e3a00000 mov r0, #0
; 430 : }
000b0 e8bd4070 ldmia sp!, {r4 - r6, lr}
000b4 e12fff1e bx lr
000b8 |$M35792|
ENDP ; |?DeviceCheckForHang@NIC_DEVICE_OBJECT@@UAAHXZ|, NIC_DEVICE_OBJECT::DeviceCheckForHang
EXPORT |DeviceTimerTrunkRoutine|
; File e:\wince500\platform\berrydale\src\drivers\dm9000\common.h
00000 AREA |.text| { |DeviceTimerTrunkRoutine| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DeviceTimerTrunkRoutine|, PDATA, SELECTION=5, ASSOC=|.text| { |DeviceTimerTrunkRoutine| } ; comdat associative
|$T35808| DCD |$L35807|
DCD 0x40000f01
; Function compile flags: /Ogsy
; File e:\wince500\platform\berrydale\src\drivers\dm9000\device.cpp
00000 AREA |.text| { |DeviceTimerTrunkRoutine| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DeviceTimerTrunkRoutine| PROC
; 443 : {
00000 |$L35807|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M35805|
00004 e1a04001 mov r4, r1
; 444 : NIC_DEVICE_OBJECT *dev = (NIC_DEVICE_OBJECT*)FunctionContext;
; 445 :
; 446 : if(!dev->m_mutexTimer.TryLock()) return;
00008 e2840d0f add r0, r4, #0xF, 26
0000c eb000000 bl TryEnterCriticalSection
00010 e3500000 cmp r0, #0
00014 0a000006 beq |$L35802|
; 447 : dev->DeviceOnTimer();
00018 e5943000 ldr r3, [r4]
0001c e1a00004 mov r0, r4
00020 e59330a0 ldr r3, [r3, #0xA0]
00024 e1a0e00f mov lr, pc
00028 e12fff13 bx r3
; 448 : dev->m_mutexTimer.Release();
0002c e2840d0f add r0, r4, #0xF, 26
00030 eb000000 bl LeaveCriticalSection
00034 |$L35802|
; 449 : }
00034 e8bd4010 ldmia sp!, {r4, lr}
00038 e12fff1e bx lr
0003c |$M35806|
ENDP ; |DeviceTimerTrunkRoutine|
EXPORT |?DeviceInitializeTimer@NIC_DEVICE_OBJECT@@UAAXXZ| ; NIC_DEVICE_OBJECT::DeviceInitializeTimer
IMPORT |NdisMInitializeTimer|
; File e:\wince500\platform\berrydale\src\drivers\dm9000\driver.h
00000 AREA |.text| { |?DeviceInitializeTimer@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceInitializeTimer@NIC_DEVICE_OBJECT@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceInitializeTimer@NIC_DEVICE_OBJECT@@UAAXXZ| } ; comdat associative
|$T35820| DCD |$L35819|
DCD 0x40000a01
; Function compile flags: /Ogsy
; File e:\wince500\platform\berrydale\src\drivers\dm9000\device.cpp
00000 AREA |.text| { |?DeviceInitializeTimer@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceInitializeTimer@NIC_DEVICE_OBJECT@@UAAXXZ| PROC ; NIC_DEVICE_OBJECT::DeviceInitializeTimer
; 453 : {
00000 |$L35819|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35817|
; 454 : NdisMInitializeTimer(
; 455 : &m_timerObject,
; 456 : m_pUpper->GetNdisHandle(),
; 457 : (PNDIS_TIMER_FUNCTION)DeviceTimerTrunkRoutine,
; 458 : (PVOID)this);
00004 e5901004 ldr r1, [r0, #4]
00008 e59f2014 ldr r2, [pc, #0x14]
0000c e1a03000 mov r3, r0
00010 e5911014 ldr r1, [r1, #0x14]
00014 e2800ff5 add r0, r0, #0xF5, 30
00018 eb000000 bl NdisMInitializeTimer
; 459 : }
0001c e49de004 ldr lr, [sp], #4
00020 e12fff1e bx lr
00024 |$L35822|
00024 00000000 DCD |DeviceTimerTrunkRoutine|
00028 |$M35818|
ENDP ; |?DeviceInitializeTimer@NIC_DEVICE_OBJECT@@UAAXXZ|, NIC_DEVICE_OBJECT::DeviceInitializeTimer
EXPORT |?DeviceCancelTimer@NIC_DEVICE_OBJECT@@UAAXXZ| ; NIC_DEVICE_OBJECT::DeviceCancelTimer
IMPORT |NdisMCancelTimer|
00000 AREA |.text| { |?DeviceCancelTimer@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceCancelTimer@NIC_DEVICE_OBJECT@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceCancelTimer@NIC_DEVICE_OBJECT@@UAAXXZ| } ; comdat associative
|$T35829| DCD |$L35828|
DCD 0x40000802
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceCancelTimer@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceCancelTimer@NIC_DEVICE_OBJECT@@UAAXXZ| PROC ; NIC_DEVICE_OBJECT::DeviceCancelTimer
; 462 : {
00000 |$L35828|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd004 sub sp, sp, #4
00008 |$M35826|
; 463 : BOOLEAN result;
; 464 : NdisMCancelTimer(
; 465 : &m_timerObject,
; 466 : &result);
00008 e28d1000 add r1, sp, #0
0000c e2800ff5 add r0, r0, #0xF5, 30
00010 eb000000 bl NdisMCancelTimer
; 467 : }
00014 e28dd004 add sp, sp, #4
00018 e49de004 ldr lr, [sp], #4
0001c e12fff1e bx lr
00020 |$M35827|
ENDP ; |?DeviceCancelTimer@NIC_DEVICE_OBJECT@@UAAXXZ|, NIC_DEVICE_OBJECT::DeviceCancelTimer
EXPORT |?DeviceSetTimer@NIC_DEVICE_OBJECT@@UAAXK@Z| ; NIC_DEVICE_OBJECT::DeviceSetTimer
IMPORT |NdisSetTimer|
00000 AREA |.text| { |?DeviceSetTimer@NIC_DEVICE_OBJECT@@UAAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceSetTimer@NIC_DEVICE_OBJECT@@UAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceSetTimer@NIC_DEVICE_OBJECT@@UAAXK@Z| } ; comdat associative
|$T35838| DCD |$L35837|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceSetTimer@NIC_DEVICE_OBJECT@@UAAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceSetTimer@NIC_DEVICE_OBJECT@@UAAXK@Z| PROC ; NIC_DEVICE_OBJECT::DeviceSetTimer
; 471 : {
00000 |$L35837|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35835|
; 472 : NdisMSetTimer(&m_timerObject,milliseconds);
00004 e2800ff5 add r0, r0, #0xF5, 30
00008 eb000000 bl NdisSetTimer
; 473 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M35836|
ENDP ; |?DeviceSetTimer@NIC_DEVICE_OBJECT@@UAAXK@Z|, NIC_DEVICE_OBJECT::DeviceSetTimer
EXPORT |?DeviceOnTimer@NIC_DEVICE_OBJECT@@UAAXXZ| ; NIC_DEVICE_OBJECT::DeviceOnTimer
00000 AREA |.text| { |?DeviceOnTimer@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceOnTimer@NIC_DEVICE_OBJECT@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceOnTimer@NIC_DEVICE_OBJECT@@UAAXXZ| } ; comdat associative
|$T35845| DCD |$L35844|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceOnTimer@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceOnTimer@NIC_DEVICE_OBJECT@@UAAXXZ| PROC ; NIC_DEVICE_OBJECT::DeviceOnTimer
; 476 : {
00000 |$L35844|
00000 |$M35842|
; 477 : }
00000 e12fff1e bx lr
00004 |$M35843|
ENDP ; |?DeviceOnTimer@NIC_DEVICE_OBJECT@@UAAXXZ|, NIC_DEVICE_OBJECT::DeviceOnTimer
EXPORT |??0C_Exception@@QAA@PAEK@Z| ; C_Exception::C_Exception
; File e:\wince500\platform\berrydale\src\drivers\dm9000\common.h
00000 AREA |.text| { |??0C_Exception@@QAA@PAEK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$??0C_Exception@@QAA@PAEK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??0C_Exception@@QAA@PAEK@Z| } ; comdat associative
|$T35860| DCD |$L35859|
DCD 0x40000701
; Function compile flags: /Ogsy
00000 AREA |.text| { |??0C_Exception@@QAA@PAEK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |??0C_Exception@@QAA@PAEK@Z| PROC ; C_Exception::C_Exception
; 113 : { Constructor(ptrErr, uErr); }
00000 |$L35859|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M35857|
00004 e1a04000 mov r4, r0
00008 e4802004 str r2, [r0], #4
0000c eb000000 bl NdisInitializeString
00010 e1a00004 mov r0, r4
00014 e8bd4010 ldmia sp!, {r4, lr}
00018 e12fff1e bx lr
0001c |$M35858|
ENDP ; |??0C_Exception@@QAA@PAEK@Z|, C_Exception::C_Exception
EXPORT |?EDeviceRegisterInterrupt@NIC_DEVICE_OBJECT@@UAAXXZ| ; NIC_DEVICE_OBJECT::EDeviceRegisterInterrupt
EXPORT |??_C@_0BP@IMCKHPLH@Error?5in?5registering?5interrupt?$AA@| [ DATA ] ; `string'
IMPORT |longjmp|
IMPORT |??2@YAPAXI@Z| ; operator new
IMPORT |NdisMRegisterInterrupt|
IMPORT |?_gpExpData@@3PAU_EXCEPTION_DATA@@A| ; _gpExpData
00000 AREA |.text| { |?EDeviceRegisterInterrupt@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?EDeviceRegisterInterrupt@NIC_DEVICE_OBJECT@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?EDeviceRegisterInterrupt@NIC_DEVICE_OBJECT@@UAAXXZ| } ; comdat associative
|$T35885| DCD |$L35884|
DCD 0x40002f02
00000 AREA |.rdata| { |??_C@_0BP@IMCKHPLH@Error?5in?5registering?5interrupt?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BP@IMCKHPLH@Error?5in?5registering?5interrupt?$AA@| DCB "Error in"
DCB " registering interrupt", 0x0 ; `string'
; Function compile flags: /Ogsy
; File e:\wince500\platform\berrydale\src\drivers\dm9000\device.cpp
00000 AREA |.text| { |?EDeviceRegisterInterrupt@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?EDeviceRegisterInterrupt@NIC_DEVICE_OBJECT@@UAAXXZ| PROC ; NIC_DEVICE_OBJECT::EDeviceRegisterInterrupt
; 336 : {
00000 |$L35884|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M35882|
; 337 : if(!m_szConfigures[CID_NEED_INTERRUPT]) return;
00008 e59030b4 ldr r3, [r0, #0xB4]
0000c e3530000 cmp r3, #0
00010 0a000024 beq |$L35398|
; 338 :
; 339 : NDIS_STATUS status;
; 340 : if((status=NdisMRegisterInterrupt(
; 341 : &m_InterruptHandle,
; 342 : m_pUpper->GetNdisHandle(),
; 343 : m_szConfigures[CID_IRQ_NUMBER], // or say, irq vector
; 344 : m_szConfigures[CID_IRQ_LEVEL], // irql level
; 345 : TRUE, // request ISR
; 346 : (BOOLEAN)m_szConfigures[CID_IRQ_SHARED], // shared interrupt
; 347 : (KINTERRUPT_MODE)m_szConfigures[CID_IRQ_GEN_TYPE])) != NDIS_STATUS_SUCCESS)
00014 e5903004 ldr r3, [r0, #4]
00018 e5d0e098 ldrb lr, [r0, #0x98]
0001c e5904094 ldr r4, [r0, #0x94]
00020 e5931014 ldr r1, [r3, #0x14]
00024 e5903090 ldr r3, [r0, #0x90]
00028 e590208c ldr r2, [r0, #0x8C]
0002c e3a05001 mov r5, #1
00030 e2800e37 add r0, r0, #0x37, 28
00034 e58d4008 str r4, [sp, #8]
00038 e58de004 str lr, [sp, #4]
0003c e58d5000 str r5, [sp]
00040 eb000000 bl NdisMRegisterInterrupt
00044 e1b05000 movs r5, r0
00048 0a000016 beq |$L35398|
; 348 : THROW((ERR_STRING("Error in registering interrupt"),status));
0004c e3a0000c mov r0, #0xC
00050 eb000000 bl |??2@YAPAXI@Z|
00054 e1b04000 movs r4, r0
00058 0a000004 beq |$L35865|
0005c e1a00004 mov r0, r4
00060 e59f1050 ldr r1, [pc, #0x50]
00064 e4805004 str r5, [r0], #4
00068 eb000000 bl NdisInitializeString
0006c ea000000 b |$L35866|
00070 |$L35865|
00070 e3a04000 mov r4, #0
00074 |$L35866|
00074 e59f0038 ldr r0, [pc, #0x38]
00078 e3a0e02c mov lr, #0x2C
0007c e3e01000 mvn r1, #0
00080 e5902000 ldr r2, [r0]
00084 e5923000 ldr r3, [r2]
00088 e0823103 add r3, r2, r3, lsl #2
0008c e2833a02 add r3, r3, #2, 20
00090 e5834c04 str r4, [r3, #0xC04]
00094 e5902000 ldr r2, [r0]
00098 e5923000 ldr r3, [r2]
0009c e0222e93 mla r2, r3, lr, r2
000a0 e2820004 add r0, r2, #4
000a4 eb000000 bl longjmp
000a8 |$L35398|
; 349 : }
000a8 e28dd00c add sp, sp, #0xC
000ac e8bd4030 ldmia sp!, {r4, r5, lr}
000b0 e12fff1e bx lr
000b4 |$L35887|
000b4 00000000 DCD |?_gpExpData@@3PAU_EXCEPTION_DATA@@A|
000b8 00000000 DCD |??_C@_0BP@IMCKHPLH@Error?5in?5registering?5interrupt?$AA@|
000bc |$M35883|
ENDP ; |?EDeviceRegisterInterrupt@NIC_DEVICE_OBJECT@@UAAXXZ|, NIC_DEVICE_OBJECT::EDeviceRegisterInterrupt
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -