X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Fdaemon-messages.h;h=237e951b5e6abf9561d82a99e64eec4cf3090abf;hb=b528bf6d0bf14441ba8150060f74951d547f38c6;hp=257dcd2d934ec4c87055ee6bcbdd73f5d3fa6a27;hpb=a4bb9199bf324547ad42de17902b0b0558d8a98d;p=mono.git diff --git a/mono/io-layer/daemon-messages.h b/mono/io-layer/daemon-messages.h index 257dcd2d934..237e951b5e6 100644 --- a/mono/io-layer/daemon-messages.h +++ b/mono/io-layer/daemon-messages.h @@ -13,11 +13,16 @@ #include 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 @@ -45,6 +50,39 @@ typedef struct guint32 idx; } WapiHandleRequest_ScratchFree; +typedef struct +{ + guint32 cmd; + guint32 env; + guint32 dir; + guint32 stdin_handle; + guint32 stdout_handle; + guint32 stderr_handle; + gboolean inherit; + 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; @@ -55,6 +93,10 @@ typedef struct WapiHandleRequest_Close close; 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; @@ -65,6 +107,10 @@ typedef enum { WapiHandleResponseType_Close, WapiHandleResponseType_Scratch, WapiHandleResponseType_ScratchFree, + WapiHandleResponseType_ProcessFork, + WapiHandleResponseType_ProcessKill, + WapiHandleResponseType_GetOrSetShare, + WapiHandleResponseType_SetShare } WapiHandleResponseType; typedef struct @@ -92,6 +138,7 @@ typedef struct typedef struct { guint32 idx; + gboolean remap; } WapiHandleResponse_Scratch; typedef struct @@ -99,6 +146,31 @@ typedef struct guint32 dummy; } WapiHandleResponse_ScratchFree; +typedef struct +{ + guint32 process_handle; + guint32 thread_handle; + guint32 pid; + 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; @@ -110,12 +182,22 @@ typedef struct WapiHandleResponse_Close close; 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_ */