Annotation of os2sdk/demos/examples/share/share.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * This is a common include file used by examples share.c and shrchild.c.
        !             3:  * It contains the declaration of the shared memory segment.
        !             4:  */
        !             5: 
        !             6: /* Convert an unsigned selector and an unsigned offset into a far pointer */
        !             7: 
        !             8: #define GETSEGPTR(seg, off)    ((char far *) (((long) seg << 16) + off))
        !             9: 
        !            10: /* size of shared memory segment */
        !            11: #define        SHRSEGSIZE      sizeof(struct ShareRec) 
        !            12: 
        !            13: #define SHRSEGNAME     "\\SHAREMEM\\SHARESEG.DAT"        /* shared seg name */
        !            14: #define        CIRCBUFSIZE     20              /* size of circular buffer */
        !            15: #define        TRUE            1
        !            16: #define FALSE          0
        !            17: #define WAITFOREVER    -1L             /* no timeout if semaphore is owned */
        !            18: 
        !            19: struct ShareRec {
        !            20:        unsigned long   fullsem;        /* buffer access semaphore */
        !            21:        unsigned long   emptysem;       /* buffer access semaphore */
        !            22:        unsigned long   mutexsem;       /* buffer access semaphore */
        !            23:        int             head;           /* buffer write pointer */
        !            24:        int             tail;           /* buffer read pointer */
        !            25:        char            CircBuffer[CIRCBUFSIZE];        /* circular buffer */
        !            26: };
        !            27: 
        !            28: /* definition of buffer full condition */
        !            29: #define BUFFUL(p) ((p->head==p->tail-1)||((p->tail==0)&&(p->head==CIRCBUFSIZE-1)))

unix.superglobalmegacorp.com

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