1
2
3
4
5
6
7
8
9 #define C2PORT_NAME_LEN 32
10
11 struct device;
12
13
14
15
16
17
18 struct c2port_ops;
19 struct c2port_device {
20 unsigned int access:1;
21 unsigned int flash_access:1;
22
23 int id;
24 char name[C2PORT_NAME_LEN];
25 struct c2port_ops *ops;
26 struct mutex mutex;
27
28 struct device *dev;
29
30 void *private_data;
31 };
32
33
34 struct c2port_ops {
35
36 unsigned short block_size;
37 unsigned short blocks_num;
38
39
40 void (*access)(struct c2port_device *dev, int status);
41
42
43 void (*c2d_dir)(struct c2port_device *dev, int dir);
44
45
46 int (*c2d_get)(struct c2port_device *dev);
47 void (*c2d_set)(struct c2port_device *dev, int status);
48
49
50 void (*c2ck_set)(struct c2port_device *dev, int status);
51 };
52
53
54
55
56
57 extern struct c2port_device *c2port_device_register(char *name,
58 struct c2port_ops *ops, void *devdata);
59 extern void c2port_device_unregister(struct c2port_device *dev);