Annotation of researchv10dc/630/include/dmdproc.h, revision 1.1

1.1     ! root        1: /*       Copyright (c) 1987 AT&T   */
        !             2: /*       All Rights Reserved       */
        !             3: 
        !             4: /*       THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T   */
        !             5: /*       The copyright notice above does not evidence any      */
        !             6: /*       actual or intended publication of such source code.   */
        !             7: 
        !             8: #include <sccsid.h>
        !             9: HVERSION(dmdproc, @(#)dmdproc.h        1.1.1.8 (5/10/87));
        !            10: 
        !            11: #ifndef PROC_H
        !            12: #define PROC_H 1
        !            13: 
        !            14: #define        NPROC           8       /* caution - this is repeated in io.h -
        !            15:                                        total xt connections to a host */
        !            16: #define        STKSIZE         ((unsigned long)2048) /* default per-process stack size */
        !            17: #define MAGIC          0xaaaaaaaa  /* magic number for stack overflow check */
        !            18: #define        CBSIZE          64      /* NPROC*CBSIZE <= queue.h/NCHARS */
        !            19: #define IO_Q_SIZE      512     /* queue size interrupt handlers use */
        !            20: #define RCVQBUFSIZE    (CBSIZE*3) /* size of per process receive queue */
        !            21: #define KBDQBUFSIZE    128     /* size of kbdqueue */
        !            22: 
        !            23: typedef struct Queue {
        !            24:        unsigned char *first;           /* position before first character */
        !            25:        unsigned char *last;            /* pointer to last character */
        !            26:        unsigned char *array;           /* address of start of circular buffer */
        !            27:        unsigned char *array_last;      /* address of end of circular buffer */
        !            28:        unsigned short c_cc;            /* characters currently in the queue */
        !            29:        unsigned short size;            /* size of the queue */
        !            30:        unsigned short ipl;             /* ipl for this queue - not currently used */
        !            31:        long pad[2];                    /* for the future */
        !            32: } Queue;
        !            33: 
        !            34: typedef struct Timer {
        !            35:        unsigned long waketime; /* time to wake up */
        !            36:        int (*tfire)();         /* control executes this when alarm fires */
        !            37:        long targ;              /* unique argument to the above function */
        !            38:        struct Timer *tnext;    /* links to the next Timer */
        !            39: } Timer;
        !            40: 
        !            41: typedef struct Proc {
        !            42:        long    *sp;            /* stack pointer (really frame pointer) */
        !            43:        char    *text;          /* address of text */
        !            44:        char    *data;          /* address of data */
        !            45:        char    *bss;           /* address of bss */
        !            46:        long    state;          /* see definitions below */
        !            47:        long    state2;         /* for the future */
        !            48:        long    state3;         /* for the future */
        !            49:        long    appl;           /* for applications to use (wproc uses it) */
        !            50:        Rectangle uDrect;       /* application's Drect */
        !            51:        Bitmap  *uJdisplayp;    /* application's display */
        !            52:        int     uargc;          /* application's argc */
        !            53:        char    **uargv;        /* application's argv */
        !            54:        struct Mouse umouse;    /* application's mouse */
        !            55:        Point   (*ctob)();      /* characters to bits, args are (x,y,P) */
        !            56:        Point   (*btoc)();      /* bits to characters, args are (x,y,P) */
        !            57:        long    pad1[8];        /* for the future */
        !            58:        struct Logio *host;     /* logical host device for this proc */
        !            59:        struct Layer *layer;    /* layer structure for this process */
        !            60:        long    caches;         /* what caches this process has requested objects from */
        !            61:        struct Msqid_q *msqid_q;/* link list of message queue id's */
        !            62:        long    pad2[6];        /* for the future */
        !            63:        Rectangle rect;         /* rectangle on screen (Drect) */
        !            64:        long    pad3[4];        /* for the future */
        !            65:        long    traploc;        /* for the debugger */
        !            66:        short   traptype;       /* for the debugger */
        !            67:        long    pad4[3];        /* more pad */
        !            68:        Point   scurpt;         /* Current pt as offset from Drect.origin in
        !            69:                                   screen coordinates for printf, etc. */
        !            70:        Point   curpt;          /* Current pt in layer coordinates for the
        !            71:                                   jline etc. crowd */
        !            72:        Timer   timer;          /* timer for this process, used for alarm */
        !            73:        long    pad5[4];        /* more pad */
        !            74:        Texture16 *cursor;      /* mouse cursor for this process */
        !            75:        short   inhibited;      /* stack for cursor tracking */
        !            76:        long    pad6[12];       /* for the future */
        !            77:        struct Proc *nextproc;  /* next process in the linked list */
        !            78:        short   xtchan;         /* xt channel this process is connected to */
        !            79:        Queue kbdqueue;         /* kbd queue for processes who requested kbd */
        !            80:        long    pad7[12];       /* more pad */
        !            81:        int     kbd_LEDs;       /* per process keyboard LED status */
        !            82:        char    enterkey[6];    /* per process definition for the enter key */
        !            83:        Queue   rcvq;           /* per process receive character queue */
        !            84:        long    pad8[6];        /* for the future */
        !            85:        int     *stack; /* pointer to per process stack - int for alignment  */
        !            86:        unsigned long stksize;  /* size of stack pointed to by stack  */
        !            87:        long    pad9[12];       /* for the future */
        !            88:        unsigned char kbdqueue_buf[KBDQBUFSIZE];  /* buffer for kbdqueue */
        !            89:        unsigned char rcvq_buf[RCVQBUFSIZE];  /* buffer for rcvq */
        !            90: } Proc;
        !            91: 
        !            92: 
        !            93: #define PROCSTATES
        !            94: 
        !            95: 
        !            96: #ifdef MPXTERM
        !            97: #define PROCSTATES
        !            98: #endif
        !            99: #ifdef PANDORA
        !           100: #define PROCSTATES
        !           101: #endif
        !           102: 
        !           103: #ifdef DMODEL
        !           104: #define PROCSTATES
        !           105: #endif
        !           106: 
        !           107: #ifdef PROCSTATES
        !           108: /*
        !           109:  * Data at start of user program.
        !           110:  * This has been put into the Proc structure.
        !           111:  *
        !           112:  *struct udata {
        !           113:  *     Rectangle Drect;
        !           114:  *     struct Layer * Jdisplayp;
        !           115:  *     int argc;
        !           116:  *     char **argv;
        !           117:  *     struct Mouse mouse;
        !           118:  *};
        !           119:  */
        !           120: 
        !           121: /*
        !           122:  * if(P->host == LOCAL) process has no host connection
        !           123: */
        !           124: #define LOCAL  (struct Logio *)0
        !           125: 
        !           126: /*
        !           127:  * states
        !           128: */
        !           129: #define        RUN             0x1       /* ready to be scheduled */
        !           130: #define        OKTOUNBLK       0x2       /* ready to unblock a BLOCKED process */
        !           131: #define        BLOCKED         0x4       /* blocked by user with ^S */
        !           132: #define        USER            0x8       /* a user-32ld'd process */
        !           133: #define        KBDLOCAL        0x10      /* has requested the KBD */
        !           134: #define        MOUSELOCAL      0x20      /* has requested the MOUSE */
        !           135: #define        GOTMOUSE        0x40      /* currently owns MOUSE */
        !           136: #define        WAKEUP          0x80      /* indicate an alarm has fired */
        !           137: #define        MOVED           0x100     /* layer got moved */
        !           138: #define        UNBLOCKED       0x200     /* Has been unblocked */
        !           139: #define        ZOMBIE          0x400     /* proc died horribly; waiting for debugger */
        !           140: #define        RESHAPED        0x800     /* layer got reshaped */
        !           141: #define        ZOMBOOT         0x1000    /* put in ZOMBIE state after booting */
        !           142: #define        ALARMREQD       0x2000    /* has requested an alarm */
        !           143: #define LOCKLAYER      0x4000    /* can't delete layer with mouse */
        !           144: #define NOPFEXPAND     0x8000    /* do not expand the PF keys */
        !           145: #define NOPADEXPAND    0x10000   /* do not expand right key pad */
        !           146: #define NOCURSEXPAND   0x20000   /* do not expand arrow keys and HOME key */
        !           147: #define NOTRANSLATE    0x40000   /* send keyboard raw codes to process */
        !           148: #define SCR_LOCK       0x80000   /* process is scroll locked */
        !           149: #define LABEL          0x100000  /* process has a label area */
        !           150: #define NO_RESHAPE     0x200000  /* window is not reshapable */
        !           151: #define CURSXY_ONLY    0x400000  /* mouse move along xy axes only */
        !           152: #define RESHAPE_OK     0x800000  /* reshape to fixed size ok */
        !           153: #define MODCURRENT     0x1000000 /* current state gets changed */
        !           154: #define SCRLOCKREQD    0x2000000 /* do scroll lock led and label bar */
        !           155: #define USERDELETE      0x4000000 /* user tried to delete LOCKLAYER'ed layer */
        !           156: #define DONTCRASH      0x8000000 /* don't generate an exeception message -
        !           157:                                     just zombie process - used by dmdpi agent */
        !           158: #define MSG_WAKE       0x10000000/* message status has changed */
        !           159: 
        !           160: #define        setrun(p)       ((p)->state|=RUN)
        !           161: #define        setnorun(p)     ((p)->state&=~RUN)
        !           162: 
        !           163: #else
        !           164: #define        MOVED           0x100     /* layer got moved */
        !           165: #define        RESHAPED        0x800     /* layer got reshaped */
        !           166: #define LOCKLAYER      0x4000    /* can't delete layer with mouse */
        !           167: #define NOPFEXPAND     0x8000    /* do not expand the PF keys */
        !           168: #define NOPADEXPAND    0x10000   /* do not expand right key pad */
        !           169: #define NOCURSEXPAND   0x20000   /* do not expand arrow keys and HOME key */
        !           170: #define NOTRANSLATE    0x40000   /* send keyboard raw codes to process */
        !           171: #define SCR_LOCK       0x80000   /* process is scroll locked */
        !           172: #define SCRLOCKREQD    0x2000000 /* do scroll lock led and label bar */
        !           173: #define USERDELETE      0x4000000 /* user tried to delete LOCKLAYER'ed layer */
        !           174: #endif /* PROCSTATES */
        !           175: 
        !           176: 
        !           177: #define INSET  4
        !           178: #define NULLP  (Proc *)0
        !           179: #define PROCSIZ  sizeof (Proc)
        !           180: #endif

unix.superglobalmegacorp.com

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