UDI_ATTR32_SET, UDI_ATTR32_GET, UDI_ATTR32_INIT


Instance attribute encoding/decoding utilities

SYNOPSIS

	 #include <udi.h>
#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 }
 

ARGUMENTS aval is the attr_value array which holds an encoded UDI_ATTR_UBIT32 instance attribute value.

v is the udi_ubit32_t value for the instance attribute.

DESCRIPTION These utility macros are used to access values in the attr_value member of a udi_instance_attr_list_t structure when attr_type is UDI_ATTR_UBIT32. In this case, the 32-bit unsigned integer value is encoded as a little-endian value in the first four bytes of attr_value.

UDI_ATTR32_SET assigns a udi_ubit32_t value to an attr_value array, using the above encoding.

UDI_ATTR32_GET extracts a udi_ubit32_t value from an attr_value array, using the above encoding.

UDI_ATTR32_INIT initializes an attr_value from a udi_ubit32_t constant value as a compile-time initializer.

REFERENCES udi_mem_alloc, udi_instance_attr_list_t, udi_instance_attr_type_t


UDI Core Specification Contents