Trusted Solaris Developer's Guide

Initialize Clearance Structure

A clearance can be initialized to ADMIN_LOW or ADMIN_HIGH and have its type checked. This example initializes undef to undefined (similar to NULL) and loclear to ADMIN_LOW. It then checks the type on loclear, sets the type to undefined, and checks it again. A clearance is undefined when its ID field is initialized to SUN_CLR_UN. An undefined clearance is invalid. A clearance is defined when the ID field in the label structure is initialized to SUN_CLR_ID.

#include <tsol/label.h>

main()
{
	int          retval;
	bclear_t     loclear, undef;

	bclearlow(&loclear);
	bclearundef(&undef);

	retval = bltype(&loclear, SUN_CLR_ID);
	printf("Is clearance defined? %d\n", retval);

	setbltype(&loclear, SUN_CLR_UN);
	retval = bltype(&loclear, SUN_CLR_ID);
	printf("Is clearance defined? %d\n", retval);
}

The printf(1) statement prints the following where non-zero is True and 0 is False.


Is clearance defined? 1
Is clearance defined? 0