New structures (semid_kernel and msqid_kernel) were added to parallel (and contain) semid_ds and msqid_ds respectively. This permits the kernel to maintain SIDs in the data structures without altering the public versions of each structure and the thereby the existing API. A number of small changes were made in sem.h, msg.h, sem.c and msg.c to accommodate the new structures. These are similar to the existing shmid_kernel structure which is used to maintain kernel mappings for memory segments. The addition of label data to each of these three structures is controlled by conditional compile directives, however, the new kernel structures themselves were added to the base code as were the related structure references.