UDI - Adding an attempt at a BochsGA UDI GFX driver
[tpg/acess2.git] / UDI / drivers / helpers_gfx.h
diff --git a/UDI/drivers/helpers_gfx.h b/UDI/drivers/helpers_gfx.h
new file mode 100644 (file)
index 0000000..f4d9bcf
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * UDI Driver Helper Macros
+ *
+ * GFX-specific helpers
+ */
+#ifndef _HELPERS_GFX_H_
+#define _HELPERS_GFX_H_
+
+typedef struct {
+       udi_index_t     op;
+       udi_ubit32_t    arg_1;
+       udi_ubit32_t    arg_2;
+       udi_ubit32_t    arg_3;
+} gfxhelpers_op_t;
+
+typedef struct {
+       udi_index_t     op_count;
+       const gfxhelpers_op_t   *ops;
+} gfxhelpers_op_map_t;
+
+static inline udi_ubit32_t gfxhelpers_get_engine_op(
+       const gfxhelpers_op_map_t *map, udi_index_t index, udi_index_t prop
+       )
+{
+       if( index >= map->op_count ) {
+               return 0;
+       }
+       switch(prop) {
+       case UDI_GFX_PROP_OPERATOR_OPCODE:      return map->ops[index].op;
+       case UDI_GFX_PROP_OPERATOR_ARG_1:       return map->ops[index].arg_1;
+       case UDI_GFX_PROP_OPERATOR_ARG_2:       return map->ops[index].arg_2;
+       case UDI_GFX_PROP_OPERATOR_ARG_3:       return map->ops[index].arg_3;
+       }
+       return 0;
+}
+
+static inline void gfxhelpers_return_range_simple(
+       udi_gfx_range_connector_ack_op_t *callback, udi_gfx_range_cb_t *cb,
+       udi_ubit32_t min, udi_ubit32_t max, udi_ubit32_t step
+       )
+{
+       
+}
+
+static inline void gfxhelpers_return_range_set(
+       udi_gfx_range_connector_ack_op_t *callback, udi_gfx_range_cb_t *cb,
+       udi_ubit32_t count, ...
+       )
+{
+       
+}
+
+static inline void gfxhelpers_return_range_fixed(
+       udi_gfx_range_connector_ack_op_t *callback, udi_gfx_range_cb_t *cb,
+       udi_ubit32_t value
+       )
+{
+       gfxhelpers_return_range_simple(callback, cb, value, value, 1);
+}
+
+#endif
+

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