Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / kdump_sdhc.h
CommitLineData
6fa3eb70
S
1#ifdef __cplusplus
2extern "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
14typedef unsigned int UINT32 ;
15#endif
16
17#ifndef INT32
18typedef signed int INT32 ;
19#endif
20
21
22#ifndef BOOL
23typedef unsigned int BOOL ;
24#endif
25
26#ifndef WORD
27typedef unsigned short WORD ;
28#endif
29
30#ifndef DWORD
31typedef unsigned int DWORD ;
32#endif
33
34#ifndef BYTE
35typedef unsigned char BYTE ;
36#endif
37
38#ifndef PBYTE
39typedef 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
50typedef enum
51{
52 WRITE_FILE_DIRECT = 0,
53 FORMAT_BEF_WRITE = 1
54}FileWriteType;
55
56
57
58typedef enum FileSysType
59{
60 FAT_16 = 0,
61 FAT_32 = 1
62}FATType;
63
64typedef 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
83typedef 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
98typedef 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
111typedef 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
123extern BOOL MSDC_Init(void);
124extern BOOL MSDC_DeInit(void);
125extern BOOL OpenDumpFile_sd(FileHandler *pFileHandler);
126extern BOOL WriteDumpFile_sd(FileHandler *pFileHandler, BYTE *Ptr, DWORD Length, DWORD Total);
127extern BOOL CloseDumpFile_sd(FileHandler *pFileHandler);
128
129BOOL WriteSectorToSD(UINT32 sector_addr, PBYTE pdBuf, INT32 blockLen) ;
130BOOL ReadSectorFromSD(UINT32 sector_addr,PBYTE pdBuf,INT32 blockLen) ;
131#ifdef __cplusplus
132}
133#endif