Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/kernel/ecard.h
10817 views
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
};
57
58
typedef enum ecard_type { /* Cards address space */
59
ECARD_IOC,
60
ECARD_MEMC,
61
ECARD_EASI
62
} card_type_t;
63
64
typedef enum { /* Speed for ECARD_IOC space */
65
ECARD_SLOW = 0,
66
ECARD_MEDIUM = 1,
67
ECARD_FAST = 2,
68
ECARD_SYNC = 3
69
} card_speed_t;
70
71