Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | #ifdef __cplusplus |
2 | extern "C" { | |
3 | #endif | |
4 | ||
5 | ||
6 | #define MaxFindFileClusNum 100 | |
7 | ||
8 | #define DEBUG_KDUMP | |
9 | #ifdef DEBUG_KDUMP | |
10 | #define DBGKDUMP_PRINTK printk | |
11 | #endif | |
12 | ||
13 | #ifndef UINT32 | |
14 | typedef unsigned int UINT32 ; | |
15 | #endif | |
16 | ||
17 | #ifndef INT32 | |
18 | typedef signed int INT32 ; | |
19 | #endif | |
20 | ||
21 | ||
22 | #ifndef BOOL | |
23 | typedef unsigned int BOOL ; | |
24 | #endif | |
25 | ||
26 | #ifndef WORD | |
27 | typedef unsigned short WORD ; | |
28 | #endif | |
29 | ||
30 | #ifndef DWORD | |
31 | typedef unsigned int DWORD ; | |
32 | #endif | |
33 | ||
34 | #ifndef BYTE | |
35 | typedef unsigned char BYTE ; | |
36 | #endif | |
37 | ||
38 | #ifndef PBYTE | |
39 | typedef unsigned char* PBYTE ; | |
40 | #endif | |
41 | ||
42 | #ifndef TRUE | |
43 | #define TRUE 1 | |
44 | #endif | |
45 | ||
46 | #ifndef FALSE | |
47 | #define FALSE 0 | |
48 | #endif | |
49 | ||
50 | typedef enum | |
51 | { | |
52 | WRITE_FILE_DIRECT = 0, | |
53 | FORMAT_BEF_WRITE = 1 | |
54 | }FileWriteType; | |
55 | ||
56 | ||
57 | ||
58 | typedef enum FileSysType | |
59 | { | |
60 | FAT_16 = 0, | |
61 | FAT_32 = 1 | |
62 | }FATType; | |
63 | ||
64 | typedef struct | |
65 | { | |
66 | DWORD BPB_BytsPerSec; | |
67 | DWORD BPB_SecPerClus; | |
68 | DWORD BPB_RsvdSecCnt; | |
69 | DWORD BPB_NumFATs; | |
70 | DWORD BPB_FATSz; | |
71 | DWORD BPB_RootEntCnt; | |
72 | DWORD BPB_RootClus; | |
73 | DWORD BPB_TotSec; | |
74 | FATType FileSysType; | |
75 | DWORD BootStartSec; | |
76 | DWORD FATStartSec; | |
77 | DWORD RootDirStartSec; | |
78 | DWORD ClusStartSec; | |
79 | } FAT_Para; | |
80 | ||
81 | ||
82 | ||
83 | typedef struct { | |
84 | BYTE name[11]; // file name | |
85 | BYTE attr; // file attribute bits (system, hidden, etc.) | |
86 | BYTE NTflags; // ??? | |
87 | BYTE createdTimeMsec; // ??? (milliseconds needs 11 bits for 0-2000) | |
88 | WORD createdTime; // time of file creation | |
89 | WORD createdDate; // date of file creation | |
90 | WORD lastAccessDate; // date of last file access | |
91 | WORD clusFirstHigh; // high word of first cluster | |
92 | WORD time; // time of last file change | |
93 | WORD date; // date of last file change | |
94 | WORD clusFirst; // low word of first cluster | |
95 | DWORD size; // file size in bytes | |
96 | } DirEntry; | |
97 | ||
98 | typedef struct { | |
99 | BYTE seqNum; // sequence number | |
100 | BYTE name1[10]; // name characters (five UTF-16 characters) | |
101 | BYTE attr; // attributes (always 0x0F) | |
102 | BYTE NTflags; // reserved (alwyas 0x00) | |
103 | BYTE checksum; // checksum of DOS file name | |
104 | BYTE name2[12]; // name characters (six UTF-16 characters) | |
105 | WORD clusFirst; // word of first cluster (always 0x0000) | |
106 | BYTE name3[4]; // name characters (2 UTF-16 characters) | |
107 | } LfnEntry; | |
108 | ||
109 | #define buf_size 64*1024 //must larger than cluster size | |
110 | ||
111 | typedef struct { | |
112 | BYTE FileBuffer[buf_size]; // File cluster cache, assume maximum cluster size is 64KB | |
113 | BYTE FATBuffer[512]; // FAT cache | |
114 | DWORD BufferLen; // data cached length in FileBuffer | |
115 | DWORD TotalLen; // File total length | |
116 | DWORD PrevClusterNum; // Prev cluster number | |
117 | DWORD CurrClusterNum; // Current cluster number | |
118 | DWORD FATSector; // Current FAT sector number | |
119 | DWORD CheckSum; // File write content checksum | |
120 | BOOL DiskFull; | |
121 | } FileHandler; | |
122 | ||
123 | extern BOOL MSDC_Init(void); | |
124 | extern BOOL MSDC_DeInit(void); | |
125 | extern BOOL OpenDumpFile_sd(FileHandler *pFileHandler); | |
126 | extern BOOL WriteDumpFile_sd(FileHandler *pFileHandler, BYTE *Ptr, DWORD Length, DWORD Total); | |
127 | extern BOOL CloseDumpFile_sd(FileHandler *pFileHandler); | |
128 | ||
129 | BOOL WriteSectorToSD(UINT32 sector_addr, PBYTE pdBuf, INT32 blockLen) ; | |
130 | BOOL ReadSectorFromSD(UINT32 sector_addr,PBYTE pdBuf,INT32 blockLen) ; | |
131 | #ifdef __cplusplus | |
132 | } | |
133 | #endif |