DESRCIPTION

NOTES

SEE ALSO

hal_type_t − typedefs for HAL datatypes

typedef ...
**hal_bit_t;**

A volatile type which may have a value of 0 or nonzero.

typedef ...
**hal_s32_t**;

A volatile type which may have a value from -2147483648 to 2147483647.

typedef ...
**hal_u32_t**;

A volatile type which may have a value from 0 to 4294967295.

typedef ...
**hal_float_t**;

A volatile floating-point type,
which typically has the same precision and range as the C
type **double**.

typedef ... **real_t**;

A nonvolatile floating-point
type with at least as much precision as
**hal_float_t**.

typedef ... **ireal_t**;

A nonvolatile unsigned integral
type the same size as **hal_float_t**.

typedef enum
**hal_type_t**;

**HAL_BIT**

Corresponds to the type
**hal_bit_t**.

**HAL_FLOAT**

Corresponds to the type
**hal_float_t**.

**HAL_S32**

Corresponds to the type
**hal_s32_t**.

**HAL_U32**

Corresponds to the type
**hal_u32_t**.

**hal_bit_t**
is typically a typedef to an integer type whose range is
larger than just 0 and 1. When testing the value of a
**hal_bit_t**, never compare it to 1. Prefer one of the
following:

• |
if(b) |
|||

• |
if(b != 0) |

It is often useful to refer to a type that can represent all the values as a hal type, but without the volatile qualifier. The following types correspond with the hal types:

hal_bit_t |
int |
|||

hal_s32_t |
__s32 |
|||

hal_u32_t |
__u32 |
|||

hal_float_t |
hal_real_t |

Take care not
to use the types **s32** and **u32**. These will
compile in kernel modules but not in userspace, and not for
"realtime components" when using simulated
(userspace) realtime.

**hal_pin_new(3hal)**,
**hal_param_new(3hal)**