shqueue.h revision 1
1N/A * See the file LICENSE for redistribution information. 1N/A * Copyright (c) 1996, 1997 1N/A * Sleepycat Software. All rights reserved. 1N/A * Copyright (c) 1998 by Sun Microsystems, Inc. 1N/A * All rights reserved. 1N/A#
pragma ident "%Z%%M% %I% %E% SMI" 1N/A * This file defines three types of data structures: lists, tail queues, and 1N/A * The difference is that this set of macros can be used for structures that 1N/A * reside in shared memory that may be mapped at different addresses in each 1N/A * process. In most cases, the macros for shared structures exactly mirror 1N/A * the normal macros, although the macro calls require an additional type 1N/A * parameter, only used by the HEAD and ENTRY macros of the standard macros. 1N/A * For details on the use of these macros, see the queue(3) manual page. 1N/A * Shared list definitions. 1N/A * Shared list functions. Since we use relative offsets for pointers, 1N/A * 0 is a valid offset. Therefore, we use -1 to indicate end of list. 1N/A * The macros ending in "P" return pointers without checking for end 1N/A * of list, the others check for end of list and evaluate to either a 1N/A * Take the element's next pointer and calculate what the corresponding 1N/A * Prev pointer should be -- basically it is the negation plus the offset 1N/A * of the next field in the structure. 1N/A * Shared tail queue definitions. 1N/A * Shared tail queue functions. 1N/A * Shared circular queue definitions. 1N/A * Shared circular queue functions. 1N/A#
endif /* !_SYS_SHQUEUE_H_ */