Label APIs
The label APIs are introduced in Chapter 2, Labels and Clearances. Sample code is provided in
Chapter 3, Label Code Examples. A fully described example is provided in Chapter 4, Printing and the Label APIs.
The following lists the types of label-related APIs and shows the prototype
declarations of the routines and system calls for each type:
- Accessing the label_encodings file - m_label_t *m_label_alloc(const m_label_type_t label_type); 
- int m_label_dup(m_label_t **dst, const m_label_t *src); 
- void m_label_free(m_label_t *label); 
- int label_to_str(const m_label_t *label, char **string, const m_label_str_t conversion_type, uint_t flags); 
 
- Comparing level relationships - int blequal(const m_label_t *level1, const m_label_t *level2); 
- int bldominates(const m_label_t *level1, const m_label_t *level2); 
- int blstrictdom(const m_label_t *level1, const m_label_t *level2); 
- int blinrange(const m_label_t *level, const brange_t *range); 
- void blmaximum(m_label_t *maximum_label, const m_label_t *bounding_label); 
- void blminimum(m_label_t *minimum_label, const m_label_t *bounding_label); 
 
- Accessing label ranges 
- Accessing labels in zones - char *getpathbylabel(const char *path, char *resolved_path, size_t bufsize, const m_label_t *sl); 
- m_label_t *getzonelabelbyid(zoneid_t zoneid); 
- m_label_t *getzonelabelbyname(const char *zonename); 
- zoneid_t *getzoneidbylabel(const m_label_t *label); 
- char *getzonerootbyid(zoneid_t zoneid); 
- char *getzonerootbylabel(const m_label_t *label); 
- char *getzonerootbyname(const char *zonename); 
 
- Obtaining the remote host type 
- Accessing and modifying sensitivity labels - int fgetlabel(int fd, m_label_t *label_p); 
- int getlabel(const char *path, m_label_t *label_p); 
- int setflabel(const char *path, const m_label_t *label_p); 
- int getplabel(m_label_t *label_p); 
- int label_to_str(const m_label_t *label, char **string, const m_label_str_t conversion_type, uint_t flags); 
- int str_to_label(const char *string, m_label_t **label, const m_label_type_t label_type, uint_t flags, int *error);