Sorting source tree a bit
[tpg/acess2.git] / KernelLand / Modules / Interfaces / UDI / include / physio / meta_bus.h
1 /**
2  * \file physio/meta_bus.h
3  */
4 #ifndef _PHYSIO_META_BUS_H_
5 #define _PHYSIO_META_BUS_H_
6
7 #include <udi.h>
8 #include <udi_physio.h>
9
10 typedef const struct udi_bus_device_ops_s       udi_bus_device_ops_t;
11 typedef const struct udi_bus_bridge_ops_s       udi_bus_bridge_ops_t;
12 typedef struct udi_bus_bind_cb_s        udi_bus_bind_cb_t;
13 typedef void    udi_bus_unbind_req_op_t(udi_bus_bind_cb_t *cb);
14 typedef void    udi_bus_unbind_ack_op_t(udi_bus_bind_cb_t *cb);
15 typedef void    udi_bus_bind_req_op_t(udi_bus_bind_cb_t *cb);
16 typedef void    udi_bus_bind_ack_op_t(
17         udi_bus_bind_cb_t       *cb,
18         udi_dma_constraints_t   dma_constraints,
19         udi_ubit8_t     preferred_endianness,
20         udi_status_t    status
21         );
22
23
24 struct udi_bus_device_ops_s
25 {
26         udi_channel_event_ind_op_t      *channel_event_ind_op;
27         udi_bus_bind_ack_op_t   *bus_bind_ack_op;
28         udi_bus_unbind_ack_op_t *bus_unbind_ack_op;
29         udi_intr_attach_ack_op_t        *intr_attach_ack_op;
30         udi_intr_detach_ack_op_t        *intr_detach_ack_op;
31 };
32 /* Bus Device Ops Vector Number */
33 #define UDI_BUS_DEVICE_OPS_NUM            1
34
35 struct udi_bus_bridge_ops_s
36 {
37      udi_channel_event_ind_op_t *channel_event_ind_op;
38      udi_bus_bind_req_op_t      *bus_bind_req_op;
39      udi_bus_unbind_req_op_t    *bus_unbind_req_op;
40      udi_intr_attach_req_op_t   *intr_attach_req_op;
41      udi_intr_detach_req_op_t   *intr_detach_req_op;
42 };
43 /* Bus Bridge Ops Vector Number */
44 #define UDI_BUS_BRIDGE_OPS_NUM
45
46 struct udi_bus_bind_cb_s
47 {
48      udi_cb_t gcb;
49 };
50 /* Bus Bind Control Block Group Number */
51 #define UDI_BUS_BIND_CB_NUM              1
52
53
54 extern void udi_bus_bind_req(udi_bus_bind_cb_t *cb);
55
56 extern void udi_bus_bind_ack(
57         udi_bus_bind_cb_t       *cb,
58         udi_dma_constraints_t   dma_constraints,
59         udi_ubit8_t     preferred_endianness,
60         udi_status_t    status
61         );
62 /* Values for preferred_endianness */
63 #define UDI_DMA_BIG_ENDIAN                (1U<<5)
64 #define UDI_DMA_LITTLE_ENDIAN             (1U<<6)
65 #define UDI_DMA_ANY_ENDIAN                (1U<<0)
66
67 extern void udi_bus_unbind_req(udi_bus_bind_cb_t *cb);
68 extern void udi_bus_unbind_ack(udi_bus_bind_cb_t *cb);
69
70
71
72
73
74 #endif

UCC git Repository :: git.ucc.asn.au