Flush (work in progress)
[mono.git] / mono / io-layer / daemon-messages.h
index 78a4f024e9c567a9dd6e4ecf6ae771e75673398b..237e951b5e6abf9561d82a99e64eec4cf3090abf 100644 (file)
@@ -20,6 +20,9 @@ typedef enum {
        WapiHandleRequestType_Scratch,
        WapiHandleRequestType_ScratchFree,
        WapiHandleRequestType_ProcessFork,
+       WapiHandleRequestType_ProcessKill,
+       WapiHandleRequestType_GetOrSetShare,
+       WapiHandleRequestType_SetShare
 } WapiHandleRequestType;
 
 typedef struct 
@@ -50,7 +53,6 @@ typedef struct
 typedef struct 
 {
        guint32 cmd;
-       guint32 args;
        guint32 env;
        guint32 dir;
        guint32 stdin_handle;
@@ -60,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;
@@ -71,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;
 
@@ -82,6 +108,9 @@ typedef enum {
        WapiHandleResponseType_Scratch,
        WapiHandleResponseType_ScratchFree,
        WapiHandleResponseType_ProcessFork,
+       WapiHandleResponseType_ProcessKill,
+       WapiHandleResponseType_GetOrSetShare,
+       WapiHandleResponseType_SetShare
 } WapiHandleResponseType;
 
 typedef struct 
@@ -109,6 +138,7 @@ typedef struct
 typedef struct
 {
        guint32 idx;
+       gboolean remap;
 } WapiHandleResponse_Scratch;
 
 typedef struct
@@ -124,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;
@@ -136,6 +183,9 @@ 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;
 
@@ -146,8 +196,8 @@ extern void _wapi_daemon_request_response_with_fds (int fd,
                                                    WapiHandleResponse *resp,
                                                    int in_fd, int out_fd,
                                                    int err_fd);
-extern void _wapi_daemon_request (int fd, WapiHandleRequest *req, int *fds,
-                                 gboolean *has_fds);
-extern void _wapi_daemon_response (int fd, WapiHandleResponse *resp);
+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_ */