Modules/UDI - Moved UDI headers to /UDI/include
[tpg/acess2.git] / UDI / include / udi / attr.h
diff --git a/UDI/include/udi/attr.h b/UDI/include/udi/attr.h
new file mode 100644 (file)
index 0000000..729f469
--- /dev/null
@@ -0,0 +1,54 @@
+/**
+ * \file udi_attr.h
+ */
+#ifndef _UDI_ATTR_H_
+#define _UDI_ATTR_H_
+
+typedef struct udi_instance_attr_list_s        udi_instance_attr_list_t;
+typedef udi_ubit8_t    udi_instance_attr_type_t;
+
+/* Instance attribute limits */
+#define UDI_MAX_ATTR_NAMELEN   32
+#define UDI_MAX_ATTR_SIZE              64
+
+#define UDI_ATTR32_SET(aval, v) \
+       { udi_ubit32_t vtmp = (v); \
+       (aval)[0] = (vtmp) & 0xff; \
+       (aval)[1] = ((vtmp) >> 8) & 0xff; \
+       (aval)[2] = ((vtmp) >> 16) & 0xff; \
+       (aval)[3] = ((vtmp) >> 24) & 0xff; }
+#define UDI_ATTR32_GET(aval) \
+       ((aval)[0] + ((aval)[1] << 8) + \
+       ((aval)[2] << 16) + ((aval)[3] << 24))
+#define UDI_ATTR32_INIT(v) \
+       { (v) & 0xff, ((v) >> 8) & 0xff, \
+       ((v) >> 16) & 0xff, ((v) >> 24) & 0xff }
+
+/**
+ * \brief Instance Attribute
+ */
+struct udi_instance_attr_list_s
+{
+     char      attr_name[UDI_MAX_ATTR_NAMELEN];
+     udi_ubit8_t       attr_value[UDI_MAX_ATTR_SIZE];
+     udi_ubit8_t       attr_length;
+     udi_instance_attr_type_t  attr_type;
+};
+
+
+/**
+ * \brief Instance Attribute Types
+ * \see ::udi_instance_attr_type_t
+ */
+enum
+{
+       UDI_ATTR_NONE,
+       UDI_ATTR_STRING,
+       UDI_ATTR_ARRAY8,
+       UDI_ATTR_UBIT32,
+       UDI_ATTR_BOOLEAN,
+       UDI_ATTR_FILE
+};
+
+
+#endif

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