Tags

Each structure (or tag) in the section starts the same way:

struct hwi_prefix {
    uint16_t        size;
    uint16_t        name;
};

The size field gives the size, in 4-byte quantities, of the structure (including the hwi_prefix).

The name field is an offset into the strings section of the system page, giving a zero-terminated string name for the structure. It might seem wasteful to use an ASCII string rather than an enumerated type to identify the structure, but it actually isn't. The system page is typically allocated in 4 KB granularity, so the extra storage required by the strings doesn't cost anything. On the upside, people can add new structures to the section without requiring QNX Software Systems to act as a central repository for handing out enumerated type values. When processing the section, code should ignore any tag that it doesn't recognize (using the size field to skip over it).