kernel -- Import virtio & virtio-block drivers.
[dragonfly.git] / sys / dev / virtual / virtio / pci / virtio_bus_if.h
1 /*
2  * This file is produced automatically.
3  * Do not modify anything in here by hand.
4  *
5  * Created from source file
6  *   @/dev/virtio/virtio_bus_if.m
7  * with
8  *   makeobjops.awk
9  *
10  * See the source file for legal information
11  */
12
13 #ifndef _virtio_bus_if_h_
14 #define _virtio_bus_if_h_
15
16
17 struct vq_alloc_info;
18
19 extern struct kobjop_desc virtio_bus_negotiate_features_desc;
20 typedef uint64_t virtio_bus_negotiate_features_t(device_t dev,
21                                                  uint64_t child_features);
22 static __inline uint64_t VIRTIO_BUS_NEGOTIATE_FEATURES(device_t dev,
23                                                        uint64_t child_features)
24 {
25         kobjop_t _m;
26         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_negotiate_features);
27         return ((virtio_bus_negotiate_features_t *) _m)(dev, child_features);
28 }
29
30 extern struct kobjop_desc virtio_bus_with_feature_desc;
31 typedef int virtio_bus_with_feature_t(device_t dev, uint64_t feature);
32 static __inline int VIRTIO_BUS_WITH_FEATURE(device_t dev, uint64_t feature)
33 {
34         kobjop_t _m;
35         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_with_feature);
36         return ((virtio_bus_with_feature_t *) _m)(dev, feature);
37 }
38
39 extern struct kobjop_desc virtio_bus_alloc_virtqueues_desc;
40 typedef int virtio_bus_alloc_virtqueues_t(device_t dev, int flags, int nvqs,
41                                           struct vq_alloc_info *info);
42 static __inline int VIRTIO_BUS_ALLOC_VIRTQUEUES(device_t dev, int flags,
43                                                 int nvqs,
44                                                 struct vq_alloc_info *info)
45 {
46         kobjop_t _m;
47         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_alloc_virtqueues);
48         return ((virtio_bus_alloc_virtqueues_t *) _m)(dev, flags, nvqs, info);
49 }
50
51
52 #define VIRTIO_ALLOC_VQS_DISABLE_MSIX 0x1
53
54 extern struct kobjop_desc virtio_bus_setup_intr_desc;
55 typedef int virtio_bus_setup_intr_t(device_t dev);
56 static __inline int VIRTIO_BUS_SETUP_INTR(device_t dev)
57 {
58         kobjop_t _m;
59         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_setup_intr);
60         return ((virtio_bus_setup_intr_t *) _m)(dev);
61 }
62
63 extern struct kobjop_desc virtio_bus_stop_desc;
64 typedef void virtio_bus_stop_t(device_t dev);
65 static __inline void VIRTIO_BUS_STOP(device_t dev)
66 {
67         kobjop_t _m;
68         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_stop);
69         ((virtio_bus_stop_t *) _m)(dev);
70 }
71
72 extern struct kobjop_desc virtio_bus_reinit_desc;
73 typedef int virtio_bus_reinit_t(device_t dev, uint64_t features);
74 static __inline int VIRTIO_BUS_REINIT(device_t dev, uint64_t features)
75 {
76         kobjop_t _m;
77         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_reinit);
78         return ((virtio_bus_reinit_t *) _m)(dev, features);
79 }
80
81 extern struct kobjop_desc virtio_bus_reinit_complete_desc;
82 typedef void virtio_bus_reinit_complete_t(device_t dev);
83 static __inline void VIRTIO_BUS_REINIT_COMPLETE(device_t dev)
84 {
85         kobjop_t _m;
86         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_reinit_complete);
87         ((virtio_bus_reinit_complete_t *) _m)(dev);
88 }
89
90 extern struct kobjop_desc virtio_bus_notify_vq_desc;
91 typedef void virtio_bus_notify_vq_t(device_t dev, uint16_t queue);
92 static __inline void VIRTIO_BUS_NOTIFY_VQ(device_t dev, uint16_t queue)
93 {
94         kobjop_t _m;
95         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_notify_vq);
96         ((virtio_bus_notify_vq_t *) _m)(dev, queue);
97 }
98
99 extern struct kobjop_desc virtio_bus_read_device_config_desc;
100 typedef void virtio_bus_read_device_config_t(device_t dev, bus_size_t offset,
101                                              void *dst, int len);
102 static __inline void VIRTIO_BUS_READ_DEVICE_CONFIG(device_t dev,
103                                                    bus_size_t offset, void *dst,
104                                                    int len)
105 {
106         kobjop_t _m;
107         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_read_device_config);
108         ((virtio_bus_read_device_config_t *) _m)(dev, offset, dst, len);
109 }
110
111 extern struct kobjop_desc virtio_bus_write_device_config_desc;
112 typedef void virtio_bus_write_device_config_t(device_t dev, bus_size_t offset,
113                                               void *src, int len);
114 static __inline void VIRTIO_BUS_WRITE_DEVICE_CONFIG(device_t dev,
115                                                     bus_size_t offset,
116                                                     void *src, int len)
117 {
118         kobjop_t _m;
119         KOBJOPLOOKUP(((kobj_t)dev)->ops, virtio_bus_write_device_config);
120         ((virtio_bus_write_device_config_t *) _m)(dev, offset, src, len);
121 }
122
123 #endif /* _virtio_bus_if_h_ */