Add messages for graphics and subprocess support. Also add new
authorChris Hanson <org/chris-hanson/cph>
Thu, 5 Jan 1995 23:50:00 +0000 (23:50 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 5 Jan 1995 23:50:00 +0000 (23:50 +0000)
mechanism for "unreading" messages from a message queue.

v7/src/microcode/os2msg.h

index 7026d3f885d3583377a02a2c52d1b9b502d6a099..44710c94ccbbc0b0a4b696a6b31214ac5c420934 100644 (file)
@@ -1,8 +1,8 @@
 /* -*-C-*-
 
-$Id: os2msg.h,v 1.3 1994/12/19 22:31:34 cph Exp $
+$Id: os2msg.h,v 1.4 1995/01/05 23:50:00 cph Exp $
 
-Copyright (c) 1994 Massachusetts Institute of Technology
+Copyright (c) 1994-95 Massachusetts Institute of Technology
 
 This material was developed by the Scheme project at the Massachusetts
 Institute of Technology, Department of Electrical Engineering and
@@ -61,6 +61,11 @@ typedef enum
   /* This is a timer interrupt event.  It is generated automatically
      by the timer thread when the timer is active.  */
   mt_timer_event,
+  
+  /* This event signals the termination of a child process.  It is
+     generated automatically by the thread that monitors child
+     processes.  */
+  mt_child_death,
 
   /* These are error messages.  They are sent as a reply to a request
      when an error is generated during the processing of the request.  */
@@ -100,6 +105,13 @@ typedef enum
   mt_window_focusp_reply,
   mt_window_set_state,         /* raise/lower/hide/min/max/restore window */
   mt_window_set_colors,                /* set fg/bg colors of window */
+  mt_window_move_gcursor,      /* move graphics cursor */
+  mt_window_line,              /* draw line from graphics cursor to point */
+  mt_window_poly_line,         /* draw multiple connected lines */
+  mt_window_poly_line_disjoint,        /* draw multiple disjoint lines */
+  mt_window_set_line_type,     /* set line type */
+  mt_window_query_caps,                /* query display capabilities */
+  mt_window_set_title,         /* set title-bar text */
 
   /* These are messages that are automatically generated by the PM
      thread when the corresponding events occur.  */
@@ -169,18 +181,20 @@ extern void OS2_make_qid_pair (qid_t *, qid_t *);
 extern void OS2_open_qid (qid_t, tqueue_t *);
 extern int OS2_qid_openp (qid_t);
 extern void OS2_close_qid (qid_t);
+extern qid_t OS2_qid_twin (qid_t);
 extern void OS2_close_qid_pair (qid_t);
 extern void OS2_set_qid_receive_filter (qid_t, qid_receive_filter_t);
 extern msg_length_t OS2_message_type_length (msg_type_t);
 extern void OS2_set_message_type_length (msg_type_t, msg_length_t);
-extern msg_t * OS2_create_message (msg_type_t);
+extern msg_t * OS2_create_message_1 (msg_type_t, msg_length_t);
 extern void OS2_destroy_message (msg_t *);
 extern void OS2_send_message (qid_t, msg_t *);
 extern msg_t * OS2_receive_message (qid_t, int, int);
 extern msg_avail_t OS2_message_availablep (qid_t, int);
-extern int OS2_tqueue_select (tqueue_t *, int);
 extern msg_t * OS2_wait_for_message (qid_t, msg_type_t);
 extern msg_t * OS2_message_transaction (qid_t, msg_t *, msg_type_t);
+extern void OS2_unread_message (qid_t, msg_t *);
+extern int OS2_tqueue_select (tqueue_t *, int);
 extern tqueue_t * OS2_make_std_tqueue (void);
 extern void OS2_close_std_tqueue (tqueue_t *);
 \f
@@ -189,6 +203,8 @@ extern void OS2_close_std_tqueue (tqueue_t *);
 #define SET_MSG_TYPE_LENGTH(t, s)                                      \
   OS2_set_message_type_length ((t), (sizeof (s)))
 
+#define OS2_create_message(type) OS2_create_message_1 ((type), 0)
+
 typedef struct msg_list_s
 {
   msg_t * message;