/* -*-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
/* 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. */
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. */
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
#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;