diff options
| author | Marcus Brinkmann <marcus@gnu.org> | 2002-06-27 19:19:13 +0000 |
|---|---|---|
| committer | Marcus Brinkmann <marcus@gnu.org> | 2002-06-27 19:19:13 +0000 |
| commit | 0100a6e5bea180aa938ad618d7ed853dd0b7ed10 (patch) | |
| tree | fd7f58e3f4eea5a4bfad0509dad6619fc01a54f5 /hurd | |
| parent | 38a8adf4ff9c0ecfbb4adb432feeff58e5058180 (diff) | |
hurd/
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.
libdiskfs/
2002-06-26 Marcus Brinkmann <marcus@gnu.org>
* Makefile (DIST_FILES): Variable removed.
(MIGSTUBS): Use fs_notifyUser.o, not ourfs_notifyUser.o.
* ourfs_notify.defs: File removed.
* diskfs.h (struct node): New members DIRMOD_TICK and
FILEMOD_TICK.
* node-make.c (diskfs_make_node): Initialize DIRMOD_TICK and
FILEMOD_TICK.
* dir-chg.c: Include "fs_notify_U.h" instead "ourfs_notify_U.h".
(diskfs_S_dir_notice_changes): Use new dir_changed invocation
instead nowait_dir_changed.
(diskfs_notice_dirchange): Likewise. Increase tick number.
Ignore send timeout error.
* file-chg.c: Include "fs_notify_U.h" instead "ourfs_notify_U.h".
(diskfs_S_file_notice_changes): Use new file_changed invocation
instead nowait_file_changed.
(diskfs_notice_filechange): Likewise. Increase tick number.
Ignore send timeout error.
console/
2002-06-27 Marcus Brinkmann <marcus@gnu.org>
* Makefile (MIGSTUBS): Add fs_notifyUser.o.
(MIGSFLAGS): New variable.
* console.c: Include "fs_notify_U.h".
(struct modreq): New structure.
(struct cons): New members DIRMOD_REQS and DIRMOD_TICK.
(cons_notice_dirchange): New function.
(vcons_lookup): Call cons_notice_dirchange.
(netfs_S_dir_notice_changes): New function.
(main): Initialize new members in CONS.
* display.c (nowait_file_changed): Update to new interface (new
argument TICKNO).
(do_mach_notify_msg_accepted): Call nowait_file_changed with new argument.
(display_notice_changes): Likewise.
(display_notice_filechange): Likewise.
Diffstat (limited to 'hurd')
| -rw-r--r-- | hurd/ChangeLog | 9 | ||||
| -rw-r--r-- | hurd/fs_notify.defs | 21 | ||||
| -rw-r--r-- | hurd/hurd_types.defs | 13 | ||||
| -rw-r--r-- | hurd/hurd_types.h | 1 |
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'. */ |
