Annotation of xinu/h/q.h, revision 1.1.1.1

1.1       root        1: /* q.h - firstid, firstkey, isempty, lastkey, nonempty */
                      2: 
                      3: /* q structure declarations, constants, and inline procedures          */
                      4: 
                      5: #ifndef        NQENT
                      6: #define        NQENT           NPROC + NSEM + NSEM + 4 /* for ready & sleep    */
                      7:                                                /* & preemption         */
                      8: #endif
                      9: 
                     10: struct qent    {               /* one for each process plus two for    */
                     11:                                /* each list                            */
                     12:        short   qkey;           /* key on which the queue is ordered    */
                     13:        short   qnext;          /* pointer to next process or tail      */
                     14:        short   qprev;          /* pointer to previous process or head  */
                     15:        };
                     16: 
                     17: extern struct  qent q[];
                     18: extern int     nextqueue;
                     19: 
                     20: /* inline list manipulation procedures */
                     21: 
                     22: #define        isempty(list)   (q[(list)].qnext >= NPROC)
                     23: #define        nonempty(list)  (q[(list)].qnext < NPROC)
                     24: #define        firstkey(list)  (q[q[(list)].qnext].qkey)
                     25: #define lastkey(tail)  (q[q[(tail)].qprev].qkey)
                     26: #define firstid(list)  (q[(list)].qnext)
                     27: 
                     28: #define        EMPTY   -1              /* equivalent of null pointer           */

unix.superglobalmegacorp.com

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