2005-05-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mono / io-layer / daemon-messages.h
index 1d3ba81100d674e811d3cce3f0a03ed69273a114..237e951b5e6abf9561d82a99e64eec4cf3090abf 100644 (file)
 #include <mono/io-layer/wapi-private.h>
 
 typedef enum {
+       WapiHandleRequestType_Error,
        WapiHandleRequestType_New,
        WapiHandleRequestType_Open,
        WapiHandleRequestType_Close,
        WapiHandleRequestType_Scratch,
        WapiHandleRequestType_ScratchFree,
        WapiHandleRequestType_ProcessFork,
+       WapiHandleRequestType_ProcessKill,
+       WapiHandleRequestType_GetOrSetShare,
+       WapiHandleRequestType_SetShare
 } WapiHandleRequestType;
 
 typedef struct 
@@ -49,7 +53,6 @@ typedef struct
 typedef struct 
 {
        guint32 cmd;
-       guint32 args;
        guint32 env;
        guint32 dir;
        guint32 stdin_handle;
@@ -59,6 +62,27 @@ typedef struct
        guint32 flags;
 } WapiHandleRequest_ProcessFork;
 
+typedef struct {
+       pid_t pid;
+       gint32 signo;
+} WapiHandleRequest_ProcessKill;
+
+typedef struct 
+{
+       dev_t device;
+       ino_t inode;
+       guint32 new_sharemode;
+       guint32 new_access;
+} WapiHandleRequest_GetOrSetShare;
+
+typedef struct
+{
+       dev_t device;
+       ino_t inode;
+       guint32 sharemode;
+       guint32 access;
+} WapiHandleRequest_SetShare;
+
 typedef struct 
 {
        WapiHandleRequestType type;
@@ -70,6 +94,9 @@ typedef struct
                WapiHandleRequest_Scratch scratch;
                WapiHandleRequest_ScratchFree scratch_free;
                WapiHandleRequest_ProcessFork process_fork;
+               WapiHandleRequest_ProcessKill process_kill;
+               WapiHandleRequest_GetOrSetShare get_or_set_share;
+               WapiHandleRequest_SetShare set_share;
        } u;
 } WapiHandleRequest;
 
@@ -81,6 +108,9 @@ typedef enum {
        WapiHandleResponseType_Scratch,
        WapiHandleResponseType_ScratchFree,
        WapiHandleResponseType_ProcessFork,
+       WapiHandleResponseType_ProcessKill,
+       WapiHandleResponseType_GetOrSetShare,
+       WapiHandleResponseType_SetShare
 } WapiHandleResponseType;
 
 typedef struct 
@@ -108,6 +138,7 @@ typedef struct
 typedef struct
 {
        guint32 idx;
+       gboolean remap;
 } WapiHandleResponse_Scratch;
 
 typedef struct
@@ -123,6 +154,23 @@ typedef struct
        guint32 tid;
 } WapiHandleResponse_ProcessFork;
 
+typedef struct
+{
+       guint32 err;
+} WapiHandleResponse_ProcessKill;
+
+typedef struct
+{
+       gboolean exists;
+       guint32 sharemode;
+       guint32 access;
+} WapiHandleResponse_GetOrSetShare;
+
+typedef struct
+{
+       guint32 dummy;
+} WapiHandleResponse_SetShare;
+
 typedef struct
 {
        WapiHandleResponseType type;
@@ -135,12 +183,21 @@ typedef struct
                WapiHandleResponse_Scratch scratch;
                WapiHandleResponse_ScratchFree scratch_free;
                WapiHandleResponse_ProcessFork process_fork;
+               WapiHandleResponse_ProcessKill process_kill;
+               WapiHandleResponse_GetOrSetShare get_or_set_share;
+               WapiHandleResponse_SetShare set_share;
        } u;
 } WapiHandleResponse;
 
 extern void _wapi_daemon_request_response (int fd, WapiHandleRequest *req,
                                           WapiHandleResponse *resp);
-extern void _wapi_daemon_request (int fd, WapiHandleRequest *req);
-extern void _wapi_daemon_response (int fd, WapiHandleResponse *resp);
+extern void _wapi_daemon_request_response_with_fds (int fd,
+                                                   WapiHandleRequest *req,
+                                                   WapiHandleResponse *resp,
+                                                   int in_fd, int out_fd,
+                                                   int err_fd);
+extern int _wapi_daemon_request (int fd, WapiHandleRequest *req, int *fds,
+                                gboolean *has_fds);
+extern int _wapi_daemon_response (int fd, WapiHandleResponse *resp);
 
 #endif /* _WAPI_DAEMON_MESSAGES_H_ */