The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/include/minix/com.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #ifndef _MINIX_COM_H
    2 #define _MINIX_COM_H 
    3 
    4 /*===========================================================================*
    5  *                              Magic process numbers                        *
    6  *===========================================================================*/
    7 
    8 #define ANY             0x7ace  /* used to indicate 'any process' */
    9 #define NONE            0x6ace  /* used to indicate 'no process at all' */
   10 #define SELF            0x8ace  /* used to indicate 'own process' */
   11 
   12 /*===========================================================================*
   13  *              Process numbers of processes in the system image             *
   14  *===========================================================================*/
   15 
   16 /* The values of several task numbers depend on whether they or other tasks
   17  * are enabled. They are defined as (PREVIOUS_TASK - ENABLE_TASK) in general.
   18  * ENABLE_TASK is either 0 or 1, so a task either gets a new number, or gets
   19  * the same number as the previous task and is further unused. Note that the
   20  * order should correspond to the order in the task table defined in table.c. 
   21  */
   22 
   23 /* Kernel tasks. These all run in the same address space. */
   24 #define IDLE             -4     /* runs when no one else can run */
   25 #define CLOCK            -3     /* alarms and other clock functions */
   26 #define SYSTEM           -2     /* request system functionality */
   27 #define KERNEL           -1     /* pseudo-process for IPC and scheduling */
   28 #define HARDWARE     KERNEL     /* for hardware interrupt handlers */
   29 
   30 /* Number of tasks. Note that NR_PROCS is defined in <minix/config.h>. */
   31 #define NR_TASKS          4 
   32 
   33 /* User-space processes, that is, device drivers, servers, and INIT. */
   34 #define PM_PROC_NR        0     /* process manager */
   35 #define FS_PROC_NR        1     /* file system */
   36 #define RS_PROC_NR        2     /* reincarnation server */
   37 #define MEM_PROC_NR       3     /* memory driver (RAM disk, null, etc.) */
   38 #define LOG_PROC_NR       4     /* log device driver */
   39 #define TTY_PROC_NR       5     /* terminal (TTY) driver */
   40 #define DRVR_PROC_NR      6     /* device driver for boot medium */
   41 #define DS_PROC_NR        7     /* data store server */
   42 #define INIT_PROC_NR      8     /* init -- goes multiuser */
   43 
   44 /* Number of processes contained in the system image. */
   45 #define NR_BOOT_PROCS   (NR_TASKS + INIT_PROC_NR + 1)
   46 
   47 /*===========================================================================*
   48  *                         Kernel notification types                         *
   49  *===========================================================================*/
   50 
   51 /* Kernel notification types. In principle, these can be sent to any process,
   52  * so make sure that these types do not interfere with other message types.
   53  * Notifications are prioritized because of the way they are unhold() and
   54  * blocking notifications are delivered. The lowest numbers go first. The
   55  * offset are used for the per-process notification bit maps. 
   56  */
   57 #define NOTIFY_MESSAGE            0x1000
   58 #define NOTIFY_FROM(p_nr)        (NOTIFY_MESSAGE | ((p_nr) + NR_TASKS)) 
   59 #  define SYN_ALARM     NOTIFY_FROM(CLOCK)      /* synchronous alarm */
   60 #  define SYS_SIG       NOTIFY_FROM(SYSTEM)     /* system signal */
   61 #  define HARD_INT      NOTIFY_FROM(HARDWARE)   /* hardware interrupt */
   62 #  define NEW_KSIG      NOTIFY_FROM(HARDWARE)   /* new kernel signal */
   63 #  define FKEY_PRESSED  NOTIFY_FROM(TTY_PROC_NR)/* function key press */
   64 #  define DEV_PING      NOTIFY_FROM(RS_PROC_NR) /* driver liveness ping */
   65 
   66 /* Shorthands for message parameters passed with notifications. */
   67 #define NOTIFY_SOURCE           m_source
   68 #define NOTIFY_TYPE             m_type
   69 #define NOTIFY_ARG              m2_l1
   70 #define NOTIFY_TIMESTAMP        m2_l2
   71 #define NOTIFY_FLAGS            m2_i1
   72 
   73 /*===========================================================================*
   74  *                Messages for BLOCK and CHARACTER device drivers            *
   75  *===========================================================================*/
   76 
   77 /* Message types for device drivers. */
   78 #define DEV_RQ_BASE   0x400     /* base for device request types */
   79 #define DEV_RS_BASE   0x500     /* base for device response types */
   80 
   81 #define CANCEL          (DEV_RQ_BASE +  0) /* force a task to cancel */
   82 #define DEV_READ        (DEV_RQ_BASE +  3) /* read from minor device */
   83 #define DEV_WRITE       (DEV_RQ_BASE +  4) /* write to minor device */
   84 #define DEV_IOCTL       (DEV_RQ_BASE +  5) /* I/O control code */
   85 #define DEV_OPEN        (DEV_RQ_BASE +  6) /* open a minor device */
   86 #define DEV_CLOSE       (DEV_RQ_BASE +  7) /* close a minor device */
   87 #define DEV_SCATTER     (DEV_RQ_BASE +  8) /* write from a vector */
   88 #define DEV_GATHER      (DEV_RQ_BASE +  9) /* read into a vector */
   89 #define TTY_SETPGRP     (DEV_RQ_BASE + 10) /* set process group */
   90 #define TTY_EXIT        (DEV_RQ_BASE + 11) /* process group leader exited */    
   91 #define DEV_SELECT      (DEV_RQ_BASE + 12) /* request select() attention */
   92 #define DEV_STATUS      (DEV_RQ_BASE + 13) /* request driver status */
   93 
   94 #define DEV_REPLY       (DEV_RS_BASE + 0) /* general task reply */
   95 #define DEV_CLONED      (DEV_RS_BASE + 1) /* return cloned minor */
   96 #define DEV_REVIVE      (DEV_RS_BASE + 2) /* driver revives process */
   97 #define DEV_IO_READY    (DEV_RS_BASE + 3) /* selected device ready */
   98 #define DEV_NO_STATUS   (DEV_RS_BASE + 4) /* empty status reply */
   99 
  100 /* Field names for messages to block and character device drivers. */
  101 #define DEVICE          m2_i1   /* major-minor device */
  102 #define PROC_NR         m2_i2   /* which (proc) wants I/O? */
  103 #define COUNT           m2_i3   /* how many bytes to transfer */
  104 #define REQUEST         m2_i3   /* ioctl request code */
  105 #define POSITION        m2_l1   /* file offset */
  106 #define ADDRESS         m2_p1   /* core buffer address */
  107 
  108 /* Field names for DEV_SELECT messages to device drivers. */
  109 #define DEV_MINOR       m2_i1   /* minor device */
  110 #define DEV_SEL_OPS     m2_i2   /* which select operations are requested */
  111 #define DEV_SEL_WATCH   m2_i3   /* request notify if no operations are ready */
  112 
  113 /* Field names used in reply messages from tasks. */
  114 #define REP_PROC_NR     m2_i1   /* # of proc on whose behalf I/O was done */
  115 #define REP_STATUS      m2_i2   /* bytes transferred or error number */
  116 #  define SUSPEND        -998   /* status to suspend caller, reply later */
  117 
  118 /* Field names for messages to TTY driver. */
  119 #define TTY_LINE        DEVICE  /* message parameter: terminal line */
  120 #define TTY_REQUEST     COUNT   /* message parameter: ioctl request code */
  121 #define TTY_SPEK        POSITION/* message parameter: ioctl speed, erasing */
  122 #define TTY_FLAGS       m2_l2   /* message parameter: ioctl tty mode */
  123 #define TTY_PGRP        m2_i3   /* message parameter: process group */  
  124 
  125 /* Field names for the QIC 02 status reply from tape driver */
  126 #define TAPE_STAT0      m2_l1
  127 #define TAPE_STAT1      m2_l2
  128 
  129 /*===========================================================================*
  130  *                         Messages for networking layer                     *
  131  *===========================================================================*/
  132 
  133 /* Message types for network layer requests. This layer acts like a driver. */
  134 #define NW_OPEN         DEV_OPEN
  135 #define NW_CLOSE        DEV_CLOSE
  136 #define NW_READ         DEV_READ
  137 #define NW_WRITE        DEV_WRITE
  138 #define NW_IOCTL        DEV_IOCTL
  139 #define NW_CANCEL       CANCEL
  140 
  141 /* Base type for data link layer requests and responses. */
  142 #define DL_RQ_BASE      0x800           
  143 #define DL_RS_BASE      0x900           
  144 
  145 /* Message types for data link layer requests. */
  146 #define DL_WRITE        (DL_RQ_BASE + 3)
  147 #define DL_WRITEV       (DL_RQ_BASE + 4)
  148 #define DL_READ         (DL_RQ_BASE + 5)
  149 #define DL_READV        (DL_RQ_BASE + 6)
  150 #define DL_INIT         (DL_RQ_BASE + 7)
  151 #define DL_STOP         (DL_RQ_BASE + 8)
  152 #define DL_GETSTAT      (DL_RQ_BASE + 9)
  153 #define DL_GETNAME      (DL_RQ_BASE +10)
  154 
  155 /* Message type for data link layer replies. */
  156 #define DL_INIT_REPLY   (DL_RS_BASE + 20)
  157 #define DL_TASK_REPLY   (DL_RS_BASE + 21)
  158 #define DL_NAME_REPLY   (DL_RS_BASE + 22)
  159 
  160 /* Field names for data link layer messages. */
  161 #define DL_PORT         m2_i1
  162 #define DL_PROC         m2_i2
  163 #define DL_COUNT        m2_i3
  164 #define DL_MODE         m2_l1
  165 #define DL_CLCK         m2_l2
  166 #define DL_ADDR         m2_p1
  167 #define DL_STAT         m2_l1
  168 #define DL_NAME         m3_ca1
  169 
  170 /* Bits in 'DL_STAT' field of DL replies. */
  171 #  define DL_PACK_SEND          0x01
  172 #  define DL_PACK_RECV          0x02
  173 #  define DL_READ_IP            0x04
  174 
  175 /* Bits in 'DL_MODE' field of DL requests. */
  176 #  define DL_NOMODE             0x0
  177 #  define DL_PROMISC_REQ        0x2
  178 #  define DL_MULTI_REQ          0x4
  179 #  define DL_BROAD_REQ          0x8
  180 
  181 /*===========================================================================*
  182  *                  SYSTASK request types and field names                    *
  183  *===========================================================================*/
  184 
  185 /* System library calls are dispatched via a call vector, so be careful when 
  186  * modifying the system call numbers. The numbers here determine which call
  187  * is made from the call vector.
  188  */ 
  189 #define KERNEL_CALL     0x600   /* base for kernel calls to SYSTEM */ 
  190 
  191 #  define SYS_FORK       (KERNEL_CALL + 0)      /* sys_fork() */
  192 #  define SYS_EXEC       (KERNEL_CALL + 1)      /* sys_exec() */
  193 #  define SYS_EXIT       (KERNEL_CALL + 2)      /* sys_exit() */
  194 #  define SYS_NICE       (KERNEL_CALL + 3)      /* sys_nice() */
  195 #  define SYS_PRIVCTL    (KERNEL_CALL + 4)      /* sys_privctl() */
  196 #  define SYS_TRACE      (KERNEL_CALL + 5)      /* sys_trace() */
  197 #  define SYS_KILL       (KERNEL_CALL + 6)      /* sys_kill() */
  198 
  199 #  define SYS_GETKSIG    (KERNEL_CALL + 7)      /* sys_getsig() */
  200 #  define SYS_ENDKSIG    (KERNEL_CALL + 8)      /* sys_endsig() */
  201 #  define SYS_SIGSEND    (KERNEL_CALL + 9)      /* sys_sigsend() */
  202 #  define SYS_SIGRETURN  (KERNEL_CALL + 10)     /* sys_sigreturn() */
  203 
  204 #  define SYS_NEWMAP     (KERNEL_CALL + 11)     /* sys_newmap() */
  205 #  define SYS_SEGCTL     (KERNEL_CALL + 12)     /* sys_segctl() */
  206 #  define SYS_MEMSET     (KERNEL_CALL + 13)     /* sys_memset() */
  207 
  208 #  define SYS_UMAP       (KERNEL_CALL + 14)     /* sys_umap() */
  209 #  define SYS_VIRCOPY    (KERNEL_CALL + 15)     /* sys_vircopy() */
  210 #  define SYS_PHYSCOPY   (KERNEL_CALL + 16)     /* sys_physcopy() */
  211 #  define SYS_VIRVCOPY   (KERNEL_CALL + 17)     /* sys_virvcopy() */
  212 #  define SYS_PHYSVCOPY  (KERNEL_CALL + 18)     /* sys_physvcopy() */
  213 
  214 #  define SYS_IRQCTL     (KERNEL_CALL + 19)     /* sys_irqctl() */
  215 #  define SYS_INT86      (KERNEL_CALL + 20)     /* sys_int86() */
  216 #  define SYS_DEVIO      (KERNEL_CALL + 21)     /* sys_devio() */
  217 #  define SYS_SDEVIO     (KERNEL_CALL + 22)     /* sys_sdevio() */
  218 #  define SYS_VDEVIO     (KERNEL_CALL + 23)     /* sys_vdevio() */
  219 
  220 #  define SYS_SETALARM   (KERNEL_CALL + 24)     /* sys_setalarm() */
  221 #  define SYS_TIMES      (KERNEL_CALL + 25)     /* sys_times() */
  222 #  define SYS_GETINFO    (KERNEL_CALL + 26)     /* sys_getinfo() */
  223 #  define SYS_ABORT      (KERNEL_CALL + 27)     /* sys_abort() */
  224 #  define SYS_IOPENABLE  (KERNEL_CALL + 28)     /* sys_enable_iop() */
  225 
  226 #define NR_SYS_CALLS    29      /* number of system calls */ 
  227 
  228 /* Field names for SYS_MEMSET, SYS_SEGCTL. */
  229 #define MEM_PTR         m2_p1   /* base */
  230 #define MEM_COUNT       m2_l1   /* count */
  231 #define MEM_PATTERN     m2_l2   /* pattern to write */
  232 #define MEM_CHUNK_BASE  m4_l1   /* physical base address */
  233 #define MEM_CHUNK_SIZE  m4_l2   /* size of mem chunk */
  234 #define MEM_TOT_SIZE    m4_l3   /* total memory size */
  235 #define MEM_CHUNK_TAG   m4_l4   /* tag to identify chunk of mem */
  236 
  237 /* Field names for SYS_DEVIO, SYS_VDEVIO, SYS_SDEVIO. */
  238 #define DIO_REQUEST     m2_i3   /* device in or output */
  239 #   define DIO_INPUT        0   /* input */
  240 #   define DIO_OUTPUT       1   /* output */
  241 #define DIO_TYPE        m2_i1   /* flag indicating byte, word, or long */ 
  242 #   define DIO_BYTE       'b'   /* byte type values */
  243 #   define DIO_WORD       'w'   /* word type values */
  244 #   define DIO_LONG       'l'   /* long type values */
  245 #define DIO_PORT        m2_l1   /* single port address */
  246 #define DIO_VALUE       m2_l2   /* single I/O value */
  247 #define DIO_VEC_ADDR    m2_p1   /* address of buffer or (p,v)-pairs */
  248 #define DIO_VEC_SIZE    m2_l2   /* number of elements in vector */
  249 #define DIO_VEC_PROC    m2_i2   /* number of process where vector is */
  250 
  251 /* Field names for SYS_SIGNARLM, SYS_FLAGARLM, SYS_SYNCALRM. */
  252 #define ALRM_EXP_TIME   m2_l1   /* expire time for the alarm call */
  253 #define ALRM_ABS_TIME   m2_i2   /* set to 1 to use absolute alarm time */
  254 #define ALRM_TIME_LEFT  m2_l1   /* how many ticks were remaining */
  255 #define ALRM_PROC_NR    m2_i1   /* which process wants the alarm? */
  256 #define ALRM_FLAG_PTR   m2_p1   /* virtual address of timeout flag */   
  257 
  258 /* Field names for SYS_IRQCTL. */
  259 #define IRQ_REQUEST     m5_c1   /* what to do? */
  260 #  define IRQ_SETPOLICY     1   /* manage a slot of the IRQ table */
  261 #  define IRQ_RMPOLICY      2   /* remove a slot of the IRQ table */
  262 #  define IRQ_ENABLE        3   /* enable interrupts */
  263 #  define IRQ_DISABLE       4   /* disable interrupts */
  264 #define IRQ_VECTOR      m5_c2   /* irq vector */
  265 #define IRQ_POLICY      m5_i1   /* options for IRQCTL request */
  266 #  define IRQ_REENABLE  0x001   /* reenable IRQ line after interrupt */
  267 #  define IRQ_BYTE      0x100   /* byte values */      
  268 #  define IRQ_WORD      0x200   /* word values */
  269 #  define IRQ_LONG      0x400   /* long values */
  270 #define IRQ_PROC_NR     m5_i2   /* process number, SELF, NONE */
  271 #define IRQ_HOOK_ID     m5_l3   /* id of irq hook at kernel */
  272 
  273 /* Field names for SYS_SEGCTL. */
  274 #define SEG_SELECT      m4_l1   /* segment selector returned */ 
  275 #define SEG_OFFSET      m4_l2   /* offset in segment returned */
  276 #define SEG_PHYS        m4_l3   /* physical address of segment */
  277 #define SEG_SIZE        m4_l4   /* segment size */
  278 #define SEG_INDEX       m4_l5   /* segment index in remote map */
  279 
  280 /* Field names for SYS_VIDCOPY. */
  281 #define VID_REQUEST     m4_l1   /* what to do? */
  282 #  define VID_VID_COPY     1    /* request vid_vid_copy() */
  283 #  define MEM_VID_COPY     2    /* request mem_vid_copy() */
  284 #define VID_SRC_ADDR    m4_l2   /* virtual address in memory */
  285 #define VID_SRC_OFFSET  m4_l3   /* offset in video memory */
  286 #define VID_DST_OFFSET  m4_l4   /* offset in video memory */
  287 #define VID_CP_COUNT    m4_l5   /* number of words to be copied */
  288 
  289 /* Field names for SYS_ABORT. */
  290 #define ABRT_HOW        m1_i1   /* RBT_REBOOT, RBT_HALT, etc. */
  291 #define ABRT_MON_PROC   m1_i2   /* process where monitor params are */
  292 #define ABRT_MON_LEN    m1_i3   /* length of monitor params */
  293 #define ABRT_MON_ADDR   m1_p1   /* virtual address of monitor params */
  294 
  295 /* Field names for _UMAP, _VIRCOPY, _PHYSCOPY. */
  296 #define CP_SRC_SPACE    m5_c1   /* T or D space (stack is also D) */
  297 #define CP_SRC_PROC_NR  m5_i1   /* process to copy from */
  298 #define CP_SRC_ADDR     m5_l1   /* address where data come from */
  299 #define CP_DST_SPACE    m5_c2   /* T or D space (stack is also D) */
  300 #define CP_DST_PROC_NR  m5_i2   /* process to copy to */
  301 #define CP_DST_ADDR     m5_l2   /* address where data go to */
  302 #define CP_NR_BYTES     m5_l3   /* number of bytes to copy */
  303 
  304 /* Field names for SYS_VCOPY and SYS_VVIRCOPY. */
  305 #define VCP_NR_OK       m1_i2   /* number of successfull copies */
  306 #define VCP_VEC_SIZE    m1_i3   /* size of copy vector */
  307 #define VCP_VEC_ADDR    m1_p1   /* pointer to copy vector */
  308 
  309 /* Field names for SYS_GETINFO. */
  310 #define I_REQUEST      m7_i3    /* what info to get */
  311 #   define GET_KINFO       0    /* get kernel information structure */
  312 #   define GET_IMAGE       1    /* get system image table */
  313 #   define GET_PROCTAB     2    /* get kernel process table */
  314 #   define GET_RANDOMNESS  3    /* get randomness buffer */
  315 #   define GET_MONPARAMS   4    /* get monitor parameters */
  316 #   define GET_KENV        5    /* get kernel environment string */
  317 #   define GET_IRQHOOKS    6    /* get the IRQ table */
  318 #   define GET_KMESSAGES   7    /* get kernel messages */
  319 #   define GET_PRIVTAB     8    /* get kernel privileges table */
  320 #   define GET_KADDRESSES  9    /* get various kernel addresses */
  321 #   define GET_SCHEDINFO  10    /* get scheduling queues */
  322 #   define GET_PROC       11    /* get process slot if given process */
  323 #   define GET_MACHINE    12    /* get machine information */
  324 #   define GET_LOCKTIMING 13    /* get lock()/unlock() latency timing */
  325 #   define GET_BIOSBUFFER 14    /* get a buffer for BIOS calls */
  326 #define I_PROC_NR      m7_i4    /* calling process */
  327 #define I_VAL_PTR      m7_p1    /* virtual address at caller */ 
  328 #define I_VAL_LEN      m7_i1    /* max length of value */
  329 #define I_VAL_PTR2     m7_p2    /* second virtual address */ 
  330 #define I_VAL_LEN2     m7_i2    /* second length, or proc nr */
  331 
  332 /* Field names for SYS_TIMES. */
  333 #define T_PROC_NR      m4_l1    /* process to request time info for */
  334 #define T_USER_TIME    m4_l1    /* user time consumed by process */
  335 #define T_SYSTEM_TIME  m4_l2    /* system time consumed by process */
  336 #define T_CHILD_UTIME  m4_l3    /* user time consumed by process' children */
  337 #define T_CHILD_STIME  m4_l4    /* sys time consumed by process' children */
  338 #define T_BOOT_TICKS   m4_l5    /* number of clock ticks since boot time */
  339 
  340 /* Field names for SYS_TRACE, SYS_SVRCTL. */
  341 #define CTL_PROC_NR    m2_i1    /* process number of the caller */
  342 #define CTL_REQUEST    m2_i2    /* server control request */
  343 #define CTL_MM_PRIV    m2_i3    /* privilege as seen by PM */
  344 #define CTL_ARG_PTR    m2_p1    /* pointer to argument */
  345 #define CTL_ADDRESS    m2_l1    /* address at traced process' space */
  346 #define CTL_DATA       m2_l2    /* data field for tracing */
  347 
  348 /* Field names for SYS_KILL, SYS_SIGCTL */
  349 #define SIG_REQUEST    m2_l2    /* PM signal control request */
  350 #define S_GETSIG           0    /* get pending kernel signal */
  351 #define S_ENDSIG           1    /* finish a kernel signal */
  352 #define S_SENDSIG          2    /* POSIX style signal handling */
  353 #define S_SIGRETURN        3    /* return from POSIX handling */
  354 #define S_KILL             4    /* servers kills process with signal */
  355 #define SIG_PROC       m2_i1    /* process number for inform */
  356 #define SIG_NUMBER     m2_i2    /* signal number to send */
  357 #define SIG_FLAGS      m2_i3    /* signal flags field */
  358 #define SIG_MAP        m2_l1    /* used by kernel to pass signal bit map */
  359 #define SIG_CTXT_PTR   m2_p1    /* pointer to info to restore signal context */
  360 
  361 /* Field names for SYS_FORK, _EXEC, _EXIT, _NEWMAP. */
  362 #define PR_PROC_NR     m1_i1    /* indicates a (child) process */
  363 #define PR_PRIORITY    m1_i2    /* process priority */
  364 #define PR_PPROC_NR    m1_i2    /* indicates a (parent) process */
  365 #define PR_PID         m1_i3    /* process id at process manager */
  366 #define PR_STACK_PTR   m1_p1    /* used for stack ptr in sys_exec, sys_getsp */
  367 #define PR_TRACING     m1_i3    /* flag to indicate tracing is on/ off */
  368 #define PR_NAME_PTR    m1_p2    /* tells where program name is for dmp */
  369 #define PR_IP_PTR      m1_p3    /* initial value for ip after exec */
  370 #define PR_MEM_PTR     m1_p1    /* tells where memory map is for sys_newmap */
  371 
  372 /* Field names for SYS_INT86 */
  373 #define INT86_REG86    m1_p1    /* pointer to registers */
  374 
  375 /* Field names for SELECT (FS). */
  376 #define SEL_NFDS       m8_i1
  377 #define SEL_READFDS    m8_p1
  378 #define SEL_WRITEFDS   m8_p2
  379 #define SEL_ERRORFDS   m8_p3
  380 #define SEL_TIMEOUT    m8_p4
  381 
  382 /*===========================================================================*
  383  *                Messages for the Reincarnation Server                      *
  384  *===========================================================================*/
  385 
  386 #define RS_RQ_BASE              0x700
  387 
  388 #define RS_UP           (RS_RQ_BASE + 0)        /* start system service */
  389 #define RS_DOWN         (RS_RQ_BASE + 1)        /* stop system service */
  390 #define RS_REFRESH      (RS_RQ_BASE + 2)        /* restart system service */
  391 #define RS_RESCUE       (RS_RQ_BASE + 3)        /* set rescue directory */
  392 #define RS_SHUTDOWN     (RS_RQ_BASE + 4)        /* alert about shutdown */
  393 
  394 #  define RS_CMD_ADDR           m1_p1           /* command string */
  395 #  define RS_CMD_LEN            m1_i1           /* length of command */
  396 #  define RS_PID                m1_i1           /* pid of system service */
  397 #  define RS_PERIOD             m1_i2           /* heartbeat period */
  398 #  define RS_DEV_MAJOR          m1_i3           /* major device number */
  399 
  400 /*===========================================================================*
  401  *                Messages for the Data Store Server                         *
  402  *===========================================================================*/
  403 
  404 #define DS_RQ_BASE              0x800
  405 
  406 #define DS_PUBLISH      (DS_RQ_BASE + 0)        /* publish information */
  407 #define DS_RETRIEVE     (DS_RQ_BASE + 1)        /* retrieve information */
  408 #define DS_SUBSCRIBE    (DS_RQ_BASE + 2)        /* subscribe to information */
  409 
  410 #  define DS_KEY                m2_i1           /* key for the information */
  411 #  define DS_FLAGS              m2_i2           /* flags provided by caller */
  412 #  define DS_AUTH               m2_p1           /* authorization of caller */
  413 #  define DS_VAL_L1             m2_l1           /* first long data value */
  414 #  define DS_VAL_L2             m2_l2           /* second long data value */
  415 
  416 /*===========================================================================*
  417  *                Miscellaneous messages used by TTY                         *
  418  *===========================================================================*/
  419 
  420 /* Miscellaneous request types and field names, e.g. used by IS server. */
  421 #define PANIC_DUMPS             97      /* debug dumps at the TTY on RBT_PANIC */
  422 #define FKEY_CONTROL            98      /* control a function key at the TTY */
  423 #  define FKEY_REQUEST       m2_i1      /* request to perform at TTY */
  424 #  define    FKEY_MAP           10      /* observe function key */
  425 #  define    FKEY_UNMAP         11      /* stop observing function key */
  426 #  define    FKEY_EVENTS        12      /* request open key presses */
  427 #  define FKEY_FKEYS          m2_l1     /* F1-F12 keys pressed */
  428 #  define FKEY_SFKEYS         m2_l2     /* Shift-F1-F12 keys pressed */
  429 #define DIAGNOSTICS     100     /* output a string without FS in between */
  430 #  define DIAG_PRINT_BUF      m1_p1
  431 #  define DIAG_BUF_COUNT      m1_i1
  432 #  define DIAG_PROC_NR        m1_i2
  433 #define GET_KMESS       101     /* get kmess from TTY */
  434 #  define GETKM_PTR           m1_p1
  435 
  436 
  437 #endif /* _MINIX_COM_H */ 

Cache object: 3d38bdb23a82c75d34be0d2632e45c3e


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.