Annotation of kernel/driverkit/KernQueue.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.1 (the "License").  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License.
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: 
                     25: /*
                     26:  * Copyright (c) 1994 NeXT Computer, Inc.
                     27:  *
                     28:  * Kernel generic queue object(s).
                     29:  *
                     30:  * HISTORY
                     31:  *
                     32:  * 24 June 1994 ? at NeXT
                     33:  *     Created.
                     34:  */
                     35: 
                     36: #ifdef KERNEL_PRIVATE
                     37: 
                     38: #import <objc/Object.h>
                     39: 
                     40: typedef struct _QueueChain {
                     41:     void       *next;
                     42:     void       *prev;
                     43: } _QueueChain;
                     44: 
                     45: @interface KernQueue : Object
                     46: {
                     47: @private
                     48:     _QueueChain        _head;
                     49: }
                     50: 
                     51: - first;
                     52: - last;
                     53: 
                     54: - dequeueFirst;
                     55: - dequeueLast;
                     56: 
                     57: - dequeueFirstObject;
                     58: - dequeueLastObject;
                     59: 
                     60: - enqueueObjectAsFirst: object;
                     61: - enqueueObjectAsLast: object;
                     62: 
                     63: - (BOOL)isEmpty;
                     64: 
                     65: @end
                     66: 
                     67: @interface KernQueueEntry : Object
                     68: {
                     69: @private
                     70:     _QueueChain        _link;
                     71:     id         _queue;
                     72:     id         _object;
                     73: }
                     74: 
                     75: - initForQueue: queue
                     76:     withObject: object;
                     77: 
                     78: - freeObject;
                     79: 
                     80: - enterAsFirst;
                     81: - enterAsFirstOnQueue: queue;
                     82: - enterAsLast;
                     83: - enterAsLastOnQueue: queue;
                     84: 
                     85: - removeFromQueue;
                     86: - insertAfterEntry: prevEntry;
                     87: - insertBeforeEntry: nextEntry;
                     88: 
                     89: - next;
                     90: - prev;
                     91: - nextObject: (id *)nextEntry;
                     92: - prevObject: (id *)prevEntry;
                     93: 
                     94: - object;
                     95: - queue;
                     96: 
                     97: - (BOOL)isQueued;
                     98: 
                     99: @end
                    100: 
                    101: KernQueueEntry *
                    102: KernQueueFirst(
                    103:        KernQueue       *queue
                    104: );
                    105: KernQueueEntry *
                    106: KernQueueLast(
                    107:        KernQueue       *queue
                    108: );
                    109: KernQueueEntry *
                    110: KernQueueNext(
                    111:        KernQueueEntry  *entry
                    112: );
                    113: KernQueueEntry *
                    114: KernQueuePrev(
                    115:        KernQueueEntry  *entry
                    116: );
                    117: 
                    118: void *
                    119: KernQueueEntryObject(
                    120:        KernQueueEntry  *entry
                    121: );
                    122: void *
                    123: KernQueueNextObject(
                    124:        KernQueueEntry  **entry         /* IN/OUT */
                    125: );
                    126: void *
                    127: KernQueuePrevObject(
                    128:        KernQueueEntry  **entry         /* IN/OUT */
                    129: );
                    130: 
                    131: BOOL
                    132: KernQueueIsEmpty(
                    133:        KernQueue       *queue
                    134: );
                    135: BOOL
                    136: KernQueueEntryIsQueued(
                    137:        KernQueueEntry  *entry
                    138: );
                    139: 
                    140: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.