From f11f597777ba1d6b5f59e59ebbbe921ce4f8806c Mon Sep 17 00:00:00 2001 From: David van Moolenbroek Date: Thu, 1 Oct 2009 10:33:01 +0000 Subject: [PATCH] Make message type ranges in com.h (eventually) unique --- include/minix/com.h | 83 +++++++++++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 25 deletions(-) diff --git a/include/minix/com.h b/include/minix/com.h index f507d2f99..9b5c76572 100755 --- a/include/minix/com.h +++ b/include/minix/com.h @@ -1,3 +1,29 @@ +/* This file defines constants for use in message communication (mostly) + * between system processes. + * + * A number of protocol message request and response types are defined. For + * debugging purposes, each protocol is assigned its own unique number range. + * The following such message type ranges have been allocated: + * + * 1 - 0xFF POSIX requests (see callnr.h) + * 0x200 - 0x2FF Data link layer requests and responses + * 0x300 - 0x3FF Bus controller requests and responses + * 0x400 - 0x4FF Block and character device requests + * 0x500 - 0x5FF Block and character device responses + * 0x600 - 0x6FF Kernel calls to SYSTEM task + * 0x700 - 0x7FF Reincarnation Server (RS) requests + * 0x800 - 0x8FF Data Store (DS) requests + * 0x900 - 0x9FF Requests from PM to VFS, and responses + * (0xA00 - 0xAFF old TTY and LOG requests, being phased out) + * 0xA00 - 0xAFF Requests from VFS to file systems (see vfsif.h) + * 0xB00 - 0xBFF Requests from VM to VFS + * 0xC00 - 0xCFF Virtual Memory (VM) requests + * 0xD00 - 0xDFF IPC server requests + * 0x1000 - 0x10FF Notify messages + * + * Zero and negative values are widely used for OK and error responses. + */ + #ifndef _MINIX_COM_H #define _MINIX_COM_H @@ -215,8 +241,8 @@ #define NW_CANCEL CANCEL /* Base type for data link layer requests and responses. */ -#define DL_RQ_BASE 0x800 -#define DL_RS_BASE 0x900 +#define DL_RQ_BASE 0x200 +#define DL_RS_BASE 0x280 /* Message types for data link layer requests. */ #define DL_WRITE (DL_RQ_BASE + 3) @@ -472,8 +498,6 @@ #define T_BOOTTIME m4_l3 /* Boottime in seconds (also for SYS_STIME) */ #define T_BOOT_TICKS m4_l5 /* number of clock ticks since boot time */ - - /* vm_map */ #define VM_MAP_ENDPT m4_l1 #define VM_MAP_MAPUNMAP m4_l2 @@ -697,31 +721,32 @@ * Messages used between PM and VFS * *===========================================================================*/ -#define PM_BASE 0xE00 +#define PM_RQ_BASE 0x900 +#define PM_RS_BASE 0x980 /* Requests from PM to VFS */ -#define PM_SETUID (PM_BASE + 1) /* Tell FS about the new user IDs */ -#define PM_SETGID (PM_BASE + 2) /* Tell FS about the new group IDs */ -#define PM_SETSID (PM_BASE + 3) /* Tell FS about the session leader */ -#define PM_EXIT (PM_BASE + 4) /* Tell FS about the exiting process */ -#define PM_DUMPCORE (PM_BASE + 5) /* Ask FS to generate a core dump */ -#define PM_EXEC (PM_BASE + 6) /* Forward exec call to FS */ -#define PM_FORK (PM_BASE + 7) /* Tell FS about the new process */ -#define PM_FORK_NB (PM_BASE + 8) /* Tell FS about the fork_nb call */ -#define PM_UNPAUSE (PM_BASE + 9) /* interrupted process */ -#define PM_REBOOT (PM_BASE + 10) /* Tell FS that we about to reboot */ +#define PM_SETUID (PM_RQ_BASE + 1) /* Set new user ID */ +#define PM_SETGID (PM_RQ_BASE + 2) /* Set group ID */ +#define PM_SETSID (PM_RQ_BASE + 3) /* Set session leader */ +#define PM_EXIT (PM_RQ_BASE + 4) /* Process exits */ +#define PM_DUMPCORE (PM_RQ_BASE + 5) /* Process is to dump core */ +#define PM_EXEC (PM_RQ_BASE + 6) /* Forwarded exec call */ +#define PM_FORK (PM_RQ_BASE + 7) /* Newly forked process */ +#define PM_FORK_NB (PM_RQ_BASE + 8) /* Non-blocking fork */ +#define PM_UNPAUSE (PM_RQ_BASE + 9) /* Interrupt process call */ +#define PM_REBOOT (PM_RQ_BASE + 10) /* System reboot */ /* Replies from VFS to PM */ -#define PM_SETUID_REPLY (PM_BASE + 21) -#define PM_SETGID_REPLY (PM_BASE + 22) -#define PM_SETSID_REPLY (PM_BASE + 23) -#define PM_EXIT_REPLY (PM_BASE + 24) -#define PM_CORE_REPLY (PM_BASE + 25) -#define PM_EXEC_REPLY (PM_BASE + 26) -#define PM_FORK_REPLY (PM_BASE + 27) -#define PM_FORK_NB_REPLY (PM_BASE + 28) -#define PM_UNPAUSE_REPLY (PM_BASE + 29) -#define PM_REBOOT_REPLY (PM_BASE + 30) +#define PM_SETUID_REPLY (PM_RS_BASE + 21) +#define PM_SETGID_REPLY (PM_RS_BASE + 22) +#define PM_SETSID_REPLY (PM_RS_BASE + 23) +#define PM_EXIT_REPLY (PM_RS_BASE + 24) +#define PM_CORE_REPLY (PM_RS_BASE + 25) +#define PM_EXEC_REPLY (PM_RS_BASE + 26) +#define PM_FORK_REPLY (PM_RS_BASE + 27) +#define PM_FORK_NB_REPLY (PM_RS_BASE + 28) +#define PM_UNPAUSE_REPLY (PM_RS_BASE + 29) +#define PM_REBOOT_REPLY (PM_RS_BASE + 30) /* Standard parameters for all requests and replies, except PM_REBOOT */ # define PM_PROC m1_i1 /* process */ @@ -766,10 +791,18 @@ #define EXC_RS_PROC m1_i1 /* process that needs to be restarted */ #define EXC_RS_RESULT m1_i2 /* result of the exec */ +/*===========================================================================* + * Messages used from VFS to file servers * + *===========================================================================*/ + #define VFS_BASE 0xA00 /* Requests sent by VFS to filesystem * implementations. See */ +/*===========================================================================* + * Messages used from VM to VFS * + *===========================================================================*/ + /* Requests sent by VM to VFS, done on behalf of a user process. */ #define VM_VFS_BASE 0xB00 #define VM_VFS_OPEN (VM_VFS_BASE+0) /* open() on behalf of user process. */