blob: ab3dcc80062445a1f055133374dc23f332b01781 [file] [log] [blame]
/*
* 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 */