Diff for /src/sys/sys/msgport.h between versions 1.16 and 1.17

version 1.16, 2004/04/15 00:50:05 version 1.17, 2004/04/20 01:52:24
Line 26  typedef struct lwkt_port *lwkt_port_t; Line 26  typedef struct lwkt_port *lwkt_port_t;
 typedef TAILQ_HEAD(lwkt_msg_queue, lwkt_msg) lwkt_msg_queue;  typedef TAILQ_HEAD(lwkt_msg_queue, lwkt_msg) lwkt_msg_queue;
   
 /*  /*
    * LWKT command message operator type.  This type holds a message's
    * 'command'.  The command format is opaque to the LWKT messaging system,
    * meaning that it is specific to whatever convention the API chooses.
    * By convention lwkt_cmd_t is passed by value and is expected to
    * efficiently fit into a machine register.
    */
   typedef union lwkt_cmd {
       int         cm_op;
       int         (*cm_func)(lwkt_msg_t msg);
   } lwkt_cmd_t;
   
   /*
  * The standard message and port structure for communications between   * The standard message and port structure for communications between
  * threads.  See kern/lwkt_msgport.c for documentation on how messages and   * threads.  See kern/lwkt_msgport.c for documentation on how messages and
  * ports work.   * ports work.
Line 44  typedef TAILQ_HEAD(lwkt_msg_queue, lwkt_ Line 56  typedef TAILQ_HEAD(lwkt_msg_queue, lwkt_
  * a forwarding or reply op).  An abort may cause a reply to be delayed   * a forwarding or reply op).  An abort may cause a reply to be delayed
  * until the abort catches up to it.   * until the abort catches up to it.
  *   *
 * Finally, note that an abort can requeue a message to its current target * Messages which support an abort will have MSGF_ABORTABLE set, indicating
 * port after the message has been pulled off of it, so you CANNOT use * that the ms_abort field has been initialized.  An abort will cause a
 * ms_node for your own purposes after you have pulled a message request * message to be requeued to the target port so the target sees the same
 * off its port. * message twice:  once during initial processing of the message, and a
  * second time to process the abort request.  lwkt_getport() will detect
  * the requeued abort and will copy ms_abort into ms_cmd before returning
  * the requeued message the second time.  This makes target processing a 
  * whole lot less complex.
  *   *
  * NOTE! 64-bit-align this structure.   * NOTE! 64-bit-align this structure.
  */   */
Line 61  typedef struct lwkt_msg { Line 77  typedef struct lwkt_msg {
     lwkt_port_t ms_target_port;         /* current target or relay port */      lwkt_port_t ms_target_port;         /* current target or relay port */
     lwkt_port_t ms_reply_port;          /* async replies returned here */      lwkt_port_t ms_reply_port;          /* async replies returned here */
     lwkt_port_t ms_abort_port;          /* abort chasing port */      lwkt_port_t ms_abort_port;          /* abort chasing port */
    int         ms_cmd;                 /* message command */    lwkt_cmd_t        ms_cmd;                 /* message command operator */
     lwkt_cmd_t  ms_abort;               /* message abort operator */
     int         ms_flags;               /* message flags */      int         ms_flags;               /* message flags */
 #define ms_copyout_start        ms_msgsize  #define ms_copyout_start        ms_msgsize
     int         ms_msgsize;             /* size of message */      int         ms_msgsize;             /* size of message */
Line 85  typedef struct lwkt_msg { Line 102  typedef struct lwkt_msg {
 #define MSGF_REPLY1     0x0002          /* asynch message has been returned */  #define MSGF_REPLY1     0x0002          /* asynch message has been returned */
 #define MSGF_QUEUED     0x0004          /* message has been queued sanitychk */  #define MSGF_QUEUED     0x0004          /* message has been queued sanitychk */
 #define MSGF_ASYNC      0x0008          /* sync/async hint */  #define MSGF_ASYNC      0x0008          /* sync/async hint */
#define MSGF_ABORTED    0x0010          /* message was aborted flag */#define MSGF_ABORTED    0x0010          /* indicate pending abort */
 #define MSGF_PCATCH     0x0020          /* catch proc signal while waiting */  #define MSGF_PCATCH     0x0020          /* catch proc signal while waiting */
 #define MSGF_REPLY2     0x0040          /* reply processed by rport cpu */  #define MSGF_REPLY2     0x0040          /* reply processed by rport cpu */
   #define MSGF_ABORTABLE  0x0080          /* message supports abort */
   #define MSGF_RETRIEVED  0x0100          /* message retrieved on target */
   
 #define MSG_CMD_CDEV    0x00010000  #define MSG_CMD_CDEV    0x00010000
 #define MSG_CMD_VFS     0x00020000  #define MSG_CMD_VFS     0x00020000
 #define MSG_CMD_SYSCALL 0x00030000  #define MSG_CMD_SYSCALL 0x00030000
 #define MSG_CMD_NETMSG  0x00040000  
 #define MSG_SUBCMD_MASK 0x0000FFFF  #define MSG_SUBCMD_MASK 0x0000FFFF
   
 #ifdef _KERNEL  #ifdef _KERNEL

Removed from v.1.16  
changed lines
  Added in v.1.17