1STRUCT UIO_INFO(9) Device drivers infrastructure STRUCT UIO_INFO(9)
2
3
4
6 struct_uio_info - UIO device capabilities
7
9 struct uio_info {
10 struct uio_device * uio_dev;
11 const char * name;
12 const char * version;
13 struct uio_mem mem[MAX_UIO_MAPS];
14 struct uio_port port[MAX_UIO_PORT_REGIONS];
15 long irq;
16 unsigned long irq_flags;
17 void * priv;
18 irqreturn_t (* handler) (int irq, struct uio_info *dev_info);
19 int (* mmap) (struct uio_info *info, struct vm_area_struct *vma);
20 int (* open) (struct uio_info *info, struct inode *inode);
21 int (* release) (struct uio_info *info, struct inode *inode);
22 int (* irqcontrol) (struct uio_info *info, s32 irq_on);
23 };
24
26 uio_dev
27 the UIO device this info belongs to
28
29 name
30 device name
31
32 version
33 device driver version
34
35 mem[MAX_UIO_MAPS]
36 list of mappable memory regions, size==0 for end of list
37
38 port[MAX_UIO_PORT_REGIONS]
39 list of port regions, size==0 for end of list
40
41 irq
42 interrupt number or UIO_IRQ_CUSTOM
43
44 irq_flags
45 flags for request_irq
46
47 priv
48 optional private data
49
50 handler
51 the device's irq handler
52
53 mmap
54 mmap operation for this uio device
55
56 open
57 open operation for this uio device
58
59 release
60 release operation for this uio device
61
62 irqcontrol
63 disable/enable irqs when 0/1 is written to /dev/uioX
64
66Kernel Hackers Manual 3.10 June 2019 STRUCT UIO_INFO(9)