3 * - By John Hodge (thePowersGang)
9 #define UDI_VERSION 0x101
10 #define UDI_GFX_VERSION 0x101
14 #include <api_drv_video.h>
17 typedef struct rdata_s
23 // --- Management metalang
24 void acessgfx_usage_ind(udi_usage_cb_t *cb, udi_ubit8_t resource_level);
25 void acessgfx_devmgmt_req(udi_mgmt_cb_t *cb, udi_ubit8_t mgmt_op, udi_ubit8_t parent_ID);
26 void acessgfx_final_cleanup_req(udi_mgmt_cb_t *cb);
28 void acessgfx_channel_event_ind(udi_channel_event_cb_t *cb);
29 void acessgfx_bind_ack(udi_gfx_bind_cb_t *cb, udi_index_t sockets, udi_index_t engines, udi_status_t status);
30 void acessgfx_unbind_ack(udi_gfx_bind_cb_t *cb);
31 void acessgfx_set_connector_ack(udi_gfx_state_cb_t *cb);
32 void acessgfx_get_connector_ack(udi_gfx_state_cb_t *cb, udi_ubit32_t value);
33 void acessgfx_range_connector_ack(udi_gfx_range_cb_t *cb);
34 void acessgfx_set_engine_ack(udi_gfx_state_cb_t *cb);
35 void acessgfx_get_engine_ack(udi_gfx_state_cb_t *cb, udi_ubit32_t value);
36 void acessgfx_range_engine_ack(udi_gfx_range_cb_t *cb);
37 void acessgfx_command_ack(udi_gfx_command_cb_t *cb);
40 void acessgfx_usage_ind(udi_usage_cb_t *cb, udi_ubit8_t resource_level)
42 rdata_t *rdata = UDI_GCB(cb)->context;
44 // Set up structures that don't need interegating the card to do
49 void acessgfx_channel_event_ind(udi_channel_event_cb_t *cb)
51 rdata_t *rdata = UDI_GCB(cb)->context;
55 case UDI_CHANNEL_CLOSED:
56 udi_channel_event_complete(cb);
58 case UDI_CHANNEL_BOUND:
59 rdata->active_cb = UDI_GCB(cb);
60 acessgfx_channel_event_ind$bound(cb->params.parent_bound.bind_cb);
63 // TODO: emit an error of some form?
68 void acessgfx_channel_event_ind$bound(udi_gfx_bind_cb_t *cb)
70 rdata_t *rdata = UDI_GCB(bind_cb)->context;
72 // request metalanguage-level bind
73 udi_gfx_bind_req(bind_cb)
74 // Continued in acessgfx_bind_ack
77 void acessgfx_bind_ack(udi_gfx_bind_cb_t *cb, udi_index_t sockets, udi_index_t engines, udi_status_t status)
79 rdata_t *rdata = UDI_GCB(bind_cb)->context;
81 if( status != UDI_OK ) {
90 // === UDI Bindings ===