Browse Prior Art Database

Data Structures and Algorithms to Support the Emulation of UNIX Message Queue System Calls in OS/2

IP.com Disclosure Number: IPCOM000114662D
Original Publication Date: 1995-Jan-01
Included in the Prior Art Database: 2005-Mar-29

Publishing Venue

IBM

Related People

Collum, B: AUTHOR [+3]

Abstract

Disclosed is an invention which provides a set of data structures and algorithms to implement emulations of the UNIX* message queue system calls in OS/2**. The emulation of UNIX system calls is an accepted approach to porting UNIX C source code to OS/2. The differences in interprocess message queue interface and semantics between these two operating systems makes the emulation of the message queue handling system calls particularly challenging.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 59% of the total text.

Data Structures and Algorithms to Support the Emulation of UNIX Message
Queue System Calls in OS/2

      Disclosed is an invention which provides a set of data
structures and algorithms to implement emulations of the UNIX*
message queue system calls in OS/2**.  The emulation of UNIX system
calls is an accepted approach to porting UNIX C source code to OS/2.
The differences in interprocess message queue interface and semantics
between these two operating systems makes the emulation of the
message queue handling system calls particularly challenging.

      The disclosed algorithms are based on the following set of data
structures: (1) A Queue Information Block.  (2) A per-process table
of Queue Information Blocks (QIB table).  (3) A per-system-queue
Message Information Block Table (MIB table).  (4) A Message
Information Block Table header (MIB table header).

      The QIB table is organized as two static link lists of Queue
Information Blocks: a free list and a used list.  The nextquib field
in the QIB structure is used to link QIBs in one list or the other.
Two per-process global variables are used to anchor each of the
lists.  A QIB stores the handles for the OS/2 resources allocated to
the queue, so these can be accessed by the message queue system
calls.  It also stores the address of the MIB table and the MIB
header.

      The per-system-queue Message Information Block Table consists
of a shared memory link list of Message Information Blocks, ea...