| /* |
| * Wine server definitions |
| * |
| * Copyright (C) 1998 Alexandre Julliard |
| */ |
| |
| #ifndef __WINE_SERVER_H |
| #define __WINE_SERVER_H |
| |
| /* message header as sent on the wire */ |
| struct header |
| { |
| unsigned int len; /* total msg length (including this header) */ |
| unsigned int type; /* msg type */ |
| unsigned int seq; /* sequence number */ |
| }; |
| |
| /* max msg length (not including the header) */ |
| #define MAX_MSG_LENGTH (16384 - sizeof(struct header)) |
| |
| /* request from client to server */ |
| |
| enum request |
| { |
| REQ_TIMEOUT, /* internal timeout msg */ |
| REQ_KILL_THREAD, /* internal kill thread msg */ |
| REQ_NEW_THREAD, /* create a new thread (called from the creator) */ |
| REQ_INIT_THREAD, /* init a new thread (called by itself) */ |
| REQ_NB_REQUESTS |
| }; |
| |
| /* request structures */ |
| |
| struct new_thread_request |
| { |
| void *pid; /* process id for the new thread (or 0 if none yet) */ |
| }; |
| |
| struct new_thread_reply |
| { |
| void *tid; /* thread id */ |
| void *pid; /* process id (created if necessary) */ |
| }; |
| |
| struct init_thread_request |
| { |
| int pid; |
| /* char name[...];*/ |
| }; |
| |
| /* server-side functions */ |
| |
| extern void server_main_loop( int fd ); |
| |
| |
| /* client-side functions */ |
| |
| #ifndef __WINE_SERVER__ |
| struct _THDB; |
| extern int CLIENT_NewThread( struct _THDB *thdb ); |
| extern int CLIENT_InitThread(void); |
| #endif /* __WINE_SERVER__ */ |
| |
| #endif /* __WINE_SERVER_H */ |