From: Chris Hanson Date: Thu, 5 Jan 1995 23:50:00 +0000 (+0000) Subject: Add messages for graphics and subprocess support. Also add new X-Git-Tag: 20090517-FFI~6826 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=7181b3435bd5ee52514d3bca980152bbf0a403a4;p=mit-scheme.git Add messages for graphics and subprocess support. Also add new mechanism for "unreading" messages from a message queue. --- diff --git a/v7/src/microcode/os2msg.h b/v7/src/microcode/os2msg.h index 7026d3f88..44710c94c 100644 --- a/v7/src/microcode/os2msg.h +++ b/v7/src/microcode/os2msg.h @@ -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 *); @@ -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;