diff options
Diffstat (limited to 'arch/arm/kernel/ecard.h')
-rw-r--r-- | arch/arm/kernel/ecard.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/arch/arm/kernel/ecard.h b/arch/arm/kernel/ecard.h new file mode 100644 index 000000000000..d7c2dacf935d --- /dev/null +++ b/arch/arm/kernel/ecard.h | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * ecard.h | ||
3 | * | ||
4 | * Copyright 2007 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | /* Definitions internal to ecard.c - for it's use only!! | ||
12 | * | ||
13 | * External expansion card header as read from the card | ||
14 | */ | ||
15 | struct ex_ecid { | ||
16 | unsigned char r_irq:1; | ||
17 | unsigned char r_zero:1; | ||
18 | unsigned char r_fiq:1; | ||
19 | unsigned char r_id:4; | ||
20 | unsigned char r_a:1; | ||
21 | |||
22 | unsigned char r_cd:1; | ||
23 | unsigned char r_is:1; | ||
24 | unsigned char r_w:2; | ||
25 | unsigned char r_r1:4; | ||
26 | |||
27 | unsigned char r_r2:8; | ||
28 | |||
29 | unsigned char r_prod[2]; | ||
30 | |||
31 | unsigned char r_manu[2]; | ||
32 | |||
33 | unsigned char r_country; | ||
34 | |||
35 | unsigned char r_fiqmask; | ||
36 | unsigned char r_fiqoff[3]; | ||
37 | |||
38 | unsigned char r_irqmask; | ||
39 | unsigned char r_irqoff[3]; | ||
40 | }; | ||
41 | |||
42 | /* | ||
43 | * Chunk directory entry as read from the card | ||
44 | */ | ||
45 | struct ex_chunk_dir { | ||
46 | unsigned char r_id; | ||
47 | unsigned char r_len[3]; | ||
48 | unsigned long r_start; | ||
49 | union { | ||
50 | char string[256]; | ||
51 | char data[1]; | ||
52 | } d; | ||
53 | #define c_id(x) ((x)->r_id) | ||
54 | #define c_len(x) ((x)->r_len[0]|((x)->r_len[1]<<8)|((x)->r_len[2]<<16)) | ||
55 | #define c_start(x) ((x)->r_start) | ||
56 | }; | ||