📄 diskio.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615
TTL c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\.\diskio.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.data|, DATA
COMMON |multipleRdWr|, 0x2
|IntrEOI| DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700c0c
DCD 0x1
DCD 0x88700c2c
DCD 0x1
DCD 0x88700098
DCD 0x2
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700e54
DCD 0x1
DCD 0x88700e54
DCD 0x2
DCD 0x88700e54
DCD 0x4
DCD 0x88700e54
DCD 0x8
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700410
DCD 0x1
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700414
DCD 0x1
DCD 0x88700418
DCD 0x1
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700d10
DCD 0x1
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700e54
DCD 0x10
DCD 0x88700e54
DCD 0x20
DCD 0x88700e54
DCD 0x40
DCD 0x88700e54
DCD 0x80
DCD 0x88700c8c
DCD 0x1
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700b08
DCD 0x1
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
DCD 0x88700000
DCD 0xffffffff
00000 AREA |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
DCW 0x0
DCD 0x4033
DCB 0x1
DCB "AD", 0x0
DCW 0x1050
DCW 0x940
DCD 0x4005
DCB 0x1
DCB "LS", 0x0
DCW 0x1050
DCW 0x940
DCD 0x2078
DCB 0x1
DCB "LS", 0x0
DCW 0x10ec
DCW 0x8029
DCD 0xc0f0
DCB 0x1
DCB "KS", 0x0
DCW 0x10ec
DCW 0x8129
DCD 0x0
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0x900b
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0xd0c9
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0xe04c
DCB 0x4
DCB "RT", 0x0
DCW 0x1186
DCW 0x1300
DCD 0x50ba
DCB 0x4
DCB "DL", 0x0
DCW 0x100b
DCW 0x20
DCD 0xa0cc
DCB 0x5
DCB "NG", 0x0
DCW 0x10b7
DCW 0x9050
DCD 0x6008
DCB 0x6
DCB "3C", 0x0
DCW 0x10b7
DCW 0x9200
DCD 0x476
DCB 0x6
DCB "3C", 0x0
EXPORT |CloseDisk|
IMPORT |EnterCriticalSection|
IMPORT |LeaveCriticalSection|
IMPORT |DeleteCriticalSection|
IMPORT |v_DiskCrit|
IMPORT |v_DiskList|
IMPORT |LocalFree|
; File c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\diskio.c
00000 AREA |.text| { |CloseDisk| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$CloseDisk|, PDATA, SELECTION=5, ASSOC=|.text| { |CloseDisk| } ; comdat associative
|$T41535| DCD |CloseDisk|
DCD 0x40002601
; Function compile flags: /Ogsy
00000 AREA |.text| { |CloseDisk| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |CloseDisk| PROC
; 88 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M41533|
00004 e1a04000 mov r4, r0
; 89 : PDISK pd;
; 90 :
; 91 : DEBUGMSG(ZONE_IO, (TEXT("MMCDISK:CloseDisk closing 0x%x\r\n"), pDisk));
; 92 :
; 93 :
; 94 :
; 95 :
; 96 :
; 97 : EnterCriticalSection(&v_DiskCrit);
00008 e59f0080 ldr r0, [pc, #0x80]
0000c eb000000 bl EnterCriticalSection
; 98 : if (pDisk == v_DiskList) {
00010 e59f307c ldr r3, [pc, #0x7C]
00014 e5931000 ldr r1, [r3]
00018 e1540001 cmp r4, r1
0001c 1a000006 bne |$L41231|
; 99 : v_DiskList = pDisk->d_next;
00020 e5940000 ldr r0, [r4]
00024 e5830000 str r0, [r3]
; 100 : } else {
00028 ea000009 b |$L41236|
0002c |$L41235|
; 103 : if (pd->d_next == pDisk) {
0002c e5910000 ldr r0, [r1]
00030 e1500004 cmp r0, r4
00034 0a000004 beq |$L41528|
; 105 : break;
; 106 : }
; 107 : pd = pd->d_next;
00038 e1a01000 mov r1, r0
0003c |$L41231|
; 101 : pd = v_DiskList;
; 102 : while (pd->d_next != NULL) {
0003c e5910000 ldr r0, [r1]
00040 e3500000 cmp r0, #0
00044 1afffff8 bne |$L41235|
; 103 : if (pd->d_next == pDisk) {
00048 ea000001 b |$L41236|
0004c |$L41528|
; 104 : pd->d_next = pDisk->d_next;
0004c e5940000 ldr r0, [r4]
00050 e5810000 str r0, [r1]
00054 |$L41236|
; 108 : }
; 109 : }
; 110 : LeaveCriticalSection(&v_DiskCrit);
00054 e59f0034 ldr r0, [pc, #0x34]
00058 eb000000 bl LeaveCriticalSection
; 111 :
; 112 : DEBUGMSG(ZONE_IO, (TEXT("MMCDISK:CloseDisk - freeing resources\r\n")));
; 113 :
; 114 : DeleteCriticalSection(&(pDisk->d_DiskCardCrit));
0005c e2840004 add r0, r4, #4
00060 eb000000 bl DeleteCriticalSection
; 115 : if (pDisk->d_AlignBuf) {
00064 e5943040 ldr r3, [r4, #0x40]
00068 e3530000 cmp r3, #0
; 116 : LocalFree(pDisk->d_AlignBuf);
0006c 11a00003 movne r0, r3
00070 1b000000 blne LocalFree
; 117 : }
; 118 :
; 119 : if (pDisk->d_ActivePath) {
00074 e5940044 ldr r0, [r4, #0x44]
00078 e3500000 cmp r0, #0
; 120 : LocalFree(pDisk->d_ActivePath);
0007c 1b000000 blne LocalFree
; 121 : }
; 122 :
; 123 : LocalFree(pDisk);
00080 e1a00004 mov r0, r4
00084 eb000000 bl LocalFree
; 124 :
; 125 : #if USE_MEM_MODE
; 126 : if (virtreg) {
; 127 : VirtualFree(virtreg, 0, MEM_RELEASE);
; 128 : }
; 129 :
; 130 : #endif
; 131 :
; 132 :
; 133 : DEBUGMSG(ZONE_IO, (TEXT("MMCDISK:CloseDisk done with 0x%x\r\n"), pDisk));
; 134 : }
00088 e8bd4010 ldmia sp!, {r4, lr}
0008c e12fff1e bx lr
00090 |$L41537|
00090 00000000 DCD |v_DiskCrit|
00094 00000000 DCD |v_DiskList|
00098 |$M41534|
ENDP ; |CloseDisk|
EXPORT |CheckMedia|
EXPORT |??_C@_1HC@HPDP@?$AAd?$AAi?$AAs?$AAk?$AAi?$AAo?$AA?3?$AAC?$AAh?$AAe?$AAc?$AAk?$AAM?$AAe?$AAd?$AAi?$AAa?$AA?5?$AA?9?$AA?5@| [ DATA ] ; `string'
IMPORT |NKDbgPrintfW|
IMPORT |IsCardInserted|
00000 AREA |.text| { |CheckMedia| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$CheckMedia|, PDATA, SELECTION=5, ASSOC=|.text| { |CheckMedia| } ; comdat associative
|$T41544| DCD |CheckMedia|
DCD 0x40001201
00000 AREA |.rdata| { |??_C@_1HC@HPDP@?$AAd?$AAi?$AAs?$AAk?$AAi?$AAo?$AA?3?$AAC?$AAh?$AAe?$AAc?$AAk?$AAM?$AAe?$AAd?$AAi?$AAa?$AA?5?$AA?9?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1HC@HPDP@?$AAd?$AAi?$AAs?$AAk?$AAi?$AAo?$AA?3?$AAC?$AAh?$AAe?$AAc?$AAk?$AAM?$AAe?$AAd?$AAi?$AAa?$AA?5?$AA?9?$AA?5@| DCB "d"
DCB 0x0, "i", 0x0, "s", 0x0, "k", 0x0, "i", 0x0, "o", 0x0, ":"
DCB 0x0, "C", 0x0, "h", 0x0, "e", 0x0, "c", 0x0, "k", 0x0, "M"
DCB 0x0, "e", 0x0, "d", 0x0, "i", 0x0, "a", 0x0, " ", 0x0, "-"
DCB 0x0, " ", 0x0, "B", 0x0, "u", 0x0, "i", 0x0, "l", 0x0, "t"
DCB 0x0, "-", 0x0, "i", 0x0, "n", 0x0, " ", 0x0, "C", 0x0, "F"
DCB 0x0, " ", 0x0, "C", 0x0, "a", 0x0, "r", 0x0, "d", 0x0, " "
DCB 0x0, "n", 0x0, "o", 0x0, " ", 0x0, "l", 0x0, "o", 0x0, "n"
DCB 0x0, "g", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "p", 0x0, "r"
DCB 0x0, "e", 0x0, "s", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |CheckMedia| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |CheckMedia| PROC
; 144 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M41542|
00004 e1a04000 mov r4, r0
; 145 :
; 146 :
; 147 : if (!IsCardInserted(pDisk))
00008 eb000000 bl IsCardInserted
0000c e31000ff tst r0, #0xFF
00010 1a000008 bne |$L41246|
; 148 : {
; 149 : RETAILMSG(1, (TEXT("diskio:CheckMedia - Built-in CF Card no longer present\r\n")));
00014 e59f0028 ldr r0, [pc, #0x28]
00018 eb000000 bl NKDbgPrintfW
; 150 : DEBUGMSG(ZONE_WARNING|ZONE_ERROR|ZONE_IO,
; 151 : (TEXT("MMCDISK:CheckMedia - Built-in CF Card no longer present!\r\n")));
; 152 : if (pDisk->d_DiskCardState != STATE_DEAD)
0001c e594301c ldr r3, [r4, #0x1C]
00020 e3530004 cmp r3, #4
; 153 : {
; 154 : pDisk->d_DiskCardState = STATE_REMOVED;
00024 13a00005 movne r0, #5
00028 1584001c strne r0, [r4, #0x1C]
; 155 : }
; 156 : return DISK_REMOVED_ERROR;
0002c e3a00014 mov r0, #0x14
; 161 : }
00030 e8bd4010 ldmia sp!, {r4, lr}
00034 e12fff1e bx lr
00038 |$L41246|
; 157 : }
; 158 :
; 159 :
; 160 : return ERROR_SUCCESS;
00038 e3a00000 mov r0, #0
; 161 : }
0003c e8bd4010 ldmia sp!, {r4, lr}
00040 e12fff1e bx lr
00044 |$L41546|
00044 00000000 DCD |??_C@_1HC@HPDP@?$AAd?$AAi?$AAs?$AAk?$AAi?$AAo?$AA?3?$AAC?$AAh?$AAe?$AAc?$AAk?$AAM?$AAe?$AAd?$AAi?$AAa?$AA?5?$AA?9?$AA?5@|
00048 |$M41543|
ENDP ; |CheckMedia|
EXPORT |MMCREAD|
IMPORT |mmc_read|
IMPORT |MapPtrToProcess|
IMPORT |GetCallerProcess|
IMPORT |__C_specific_handler|
00000 AREA |.text| { |MMCREAD| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.xdata$$MMCREAD|, DATA, SELECTION=5, ASSOC=|.text| { |MMCREAD| } ; comdat associative
|$T41573| DCD 0x1
DCD |$L41556|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -