X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=UDI%2Finclude%2Fudi%2Fattr.h;fp=UDI%2Finclude%2Fudi%2Fattr.h;h=729f46988e3daefbdab9b500a849e1fd072bc890;hb=9e64659133d3c12fb6e315ae8de74d9b912f90dd;hp=0000000000000000000000000000000000000000;hpb=82e814024416fac7949a1e158a4532a5a1ed546f;p=tpg%2Facess2.git diff --git a/UDI/include/udi/attr.h b/UDI/include/udi/attr.h new file mode 100644 index 00000000..729f4698 --- /dev/null +++ b/UDI/include/udi/attr.h @@ -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