0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 struct ex_ecid {
0013 unsigned char r_irq:1;
0014 unsigned char r_zero:1;
0015 unsigned char r_fiq:1;
0016 unsigned char r_id:4;
0017 unsigned char r_a:1;
0018
0019 unsigned char r_cd:1;
0020 unsigned char r_is:1;
0021 unsigned char r_w:2;
0022 unsigned char r_r1:4;
0023
0024 unsigned char r_r2:8;
0025
0026 unsigned char r_prod[2];
0027
0028 unsigned char r_manu[2];
0029
0030 unsigned char r_country;
0031
0032 unsigned char r_fiqmask;
0033 unsigned char r_fiqoff[3];
0034
0035 unsigned char r_irqmask;
0036 unsigned char r_irqoff[3];
0037 };
0038
0039
0040
0041
0042 struct ex_chunk_dir {
0043 unsigned char r_id;
0044 unsigned char r_len[3];
0045 unsigned long r_start;
0046 union {
0047 char string[256];
0048 char data[1];
0049 } d;
0050 #define c_id(x) ((x)->r_id)
0051 #define c_len(x) ((x)->r_len[0]|((x)->r_len[1]<<8)|((x)->r_len[2]<<16))
0052 #define c_start(x) ((x)->r_start)
0053 };
0054
0055 typedef enum ecard_type {
0056 ECARD_IOC,
0057 ECARD_MEMC,
0058 ECARD_EASI
0059 } card_type_t;
0060
0061 typedef enum {
0062 ECARD_SLOW = 0,
0063 ECARD_MEDIUM = 1,
0064 ECARD_FAST = 2,
0065 ECARD_SYNC = 3
0066 } card_speed_t;