summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
Diffstat (limited to 'hurd')
-rw-r--r--hurd/ChangeLog9
-rw-r--r--hurd/fs_notify.defs21
-rw-r--r--hurd/hurd_types.defs13
-rw-r--r--hurd/hurd_types.h1
4 files changed, 38 insertions, 6 deletions
diff --git a/hurd/ChangeLog b/hurd/ChangeLog
index 33eefc82..6d69acc8 100644
--- a/hurd/ChangeLog
+++ b/hurd/ChangeLog
@@ -1,3 +1,12 @@
+2002-06-26 Marcus Brinkmann <marcus@gnu.org>
+
+ * fs_notify.defs: Add MsgOption for send timeout.
+ (dir_changed): Changed to simpleroutine. Change type of first
+ argument to fs_notify_t. Add TICKNO argument.
+ (file_changed): Likewise.
+ * hurd_types.defs (fs_notify_t): New type.
+ * hurd_types.h (fs_notify_t): Likewise.
+
2002-06-14 Roland McGrath <roland@frob.com>
* paths.h (_SERVERS_DEFPAGER): New macro.
diff --git a/hurd/fs_notify.defs b/hurd/fs_notify.defs
index ce53eb44..3a30fe6d 100644
--- a/hurd/fs_notify.defs
+++ b/hurd/fs_notify.defs
@@ -25,22 +25,31 @@ subsystem fs_notify 20500;
FS_NOTIFY_IMPORTS
#endif
+/* For maximum robustness, the server must not wait for the client to
+ receive the notification message. This is achieved by setting a
+ send timeout (XXX which is implicitely 0 with MACH_MSG_TIMEOUT_NONE). */
+MsgOption MACH_SEND_TIMEOUT;
/* This is sent by a filesystem (after being requested with
dir_notice_changes) every time a directory is changed.
CHANGE identifies the sort of change that has occurred (see hurd_types.h);
- NAME is the name that was changed. */
-routine dir_changed (
- notify_port: mach_port_t;
+ NAME is the name that was changed. TICKNO is a sequential number
+ that allows the client to verify that it got all notifications. */
+simpleroutine dir_changed (
+ notify_port: fs_notify_t;
+ tickno: natural_t;
change: dir_changed_type_t;
name: string_t);
/* This is sent by a filesystem (after being requested with
file_notice_changes) every time a file or its stat info is changed.
CHANGE identifies the sort of change that has occurred (see hurd_types.h);
- START and END identify the affected regions of the file's data. */
-routine file_changed (
- notify_port: mach_port_t;
+ START and END identify the affected regions of the file's data.
+ TICKNO is a sequential number that allows the client to verify that
+ it got all notifications. */
+simpleroutine file_changed (
+ notify_port: fs_notify_t;
+ tickno: natural_t;
change: file_changed_type_t;
start: loff_t;
end: loff_t);
diff --git a/hurd/hurd_types.defs b/hurd/hurd_types.defs
index 3771c4a1..e8677375 100644
--- a/hurd/hurd_types.defs
+++ b/hurd/hurd_types.defs
@@ -144,6 +144,19 @@ destructor: STARTUP_DESTRUCTOR
#endif
;
+type fs_notify_t = mach_port_copy_send_t
+#ifdef FS_NOTIFY_INTRAN
+intran: FS_NOTIFY_INTRAN
+#endif
+#ifdef FS_NOTIFY_OUTTRAN
+outtran: FS_NOTIFY_OUTTRAN
+#endif
+#ifdef FS_NOTIFY_DESTRUCTOR
+destructor: FS_NOTIFY_DESTRUCTOR
+#endif
+;
+
+
type proccoll_t = mach_port_copy_send_t;
type sreply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic
diff --git a/hurd/hurd_types.h b/hurd/hurd_types.h
index b957a0bf..86b9bcbe 100644
--- a/hurd/hurd_types.h
+++ b/hurd/hurd_types.h
@@ -44,6 +44,7 @@ typedef mach_port_t socket_t;
typedef mach_port_t pf_t; /* Protocol family */
typedef mach_port_t addr_port_t;
typedef mach_port_t startup_t;
+typedef mach_port_t fs_notify_t;
typedef mach_port_t proccoll_t;
#include <errno.h> /* Defines `error_t'. */