summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1994-04-29 23:45:04 +0000
committerMichael I. Bushnell <mib@gnu.org>1994-04-29 23:45:04 +0000
commit067ef5e0d6f6c7360611052489880f57681fc538 (patch)
treedb2964ec5a51ad971a9b96ec42dd984a5b68e70a
parent9139e06ed3fbe4cf2b8b5a603bb61f6307460d52 (diff)
Formerly io.defs.~58~
-rw-r--r--hurd/io.defs65
1 files changed, 51 insertions, 14 deletions
diff --git a/hurd/io.defs b/hurd/io.defs
index 8109915c..7276505d 100644
--- a/hurd/io.defs
+++ b/hurd/io.defs
@@ -29,6 +29,15 @@ subsystem io 21000;
IO_IMPORTS
#endif
+#ifdef REPLY_PORTS
+type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic
+ ctype: mach_port_t;
+#define RPT sreplyport reply: reply_port_t
+#else
+#define RPT
+#endif
+
+
/* Write data to an IO object. If offset is -1, write at the object
maintained file pointer. If the object is not seekable, offset is
ignored. The amount successfully written is returned in amount. A
@@ -39,6 +48,7 @@ IO_IMPORTS
/*INTR */
routine io_write (
io_object: io_t;
+ RPT;
data: data_t;
offset: off_t;
out amount: int);
@@ -49,6 +59,7 @@ routine io_write (
/* INTR */
routine io_read (
io_object: io_t;
+ RPT;
out data: data_t;
offset: off_t;
amount: int);
@@ -57,6 +68,7 @@ routine io_read (
/* INTR */
routine io_seek (
io_object: io_t;
+ RPT;
offset: off_t;
whence: int;
out newp: off_t);
@@ -66,6 +78,7 @@ routine io_seek (
by the nonblocking flag. */
routine io_readable (
io_object: io_t;
+ RPT;
out amount: int);
/* These four routines modify the O_APPEND, O_ASYNC, O_FSYNC, and
@@ -75,18 +88,22 @@ routine io_readable (
I/O is done through io_async which is orthogonal to these calls. */
routine io_set_all_openmodes (
io_object: io_t;
+ RPT;
newbits: int);
routine io_get_openmodes (
io_object: io_t;
+ RPT;
out bits: int);
routine io_set_some_openmodes (
io_object: io_t;
+ RPT;
bits_to_set: int);
routine io_clear_some_openmodes (
io_object: io_t;
+ RPT;
bits_to_clear: int);
/* This requests that the IO object send SIGIO and SIGURG signals,
@@ -98,8 +115,9 @@ routine io_clear_some_openmodes (
*/
routine io_async (
io_object: io_t;
- notify_port: mach_port_t;
- out async_id_port: mach_port_t);
+ RPT;
+ notify_port: mach_port_send_t;
+ out async_id_port: mach_port_send_t);
/* Get/set the owner of the IO object. For terminals, this affects
controlling terminal behavior (see term_become_ctty). For all
@@ -109,10 +127,12 @@ routine io_async (
filesystems). An owner of 0 indicates that there is no owner. */
routine io_mod_owner (
io_object: io_t;
+ RPT;
owner: pid_t);
routine io_get_owner (
io_object: io_t;
+ RPT;
out owner: pid_t);
/* This provides "old style" async IO. This is deprecated, and
@@ -130,7 +150,8 @@ routine io_get_owner (
/* Fetch the current old-style async ID port. */
routine io_get_icky_async_id (
io_object: io_t;
- out icky_async_id_port: mach_port_t);
+ RPT;
+ out icky_async_id_port: mach_port_send_t);
/* Select_type is the or of SELECT_READ, SELECT_WRITE, and SELECT_URG.
If any of the requested types of IO are immediately possible, the
@@ -141,6 +162,7 @@ routine io_get_icky_async_id (
send-once right. */
routine io_select (
io_object: io_t;
+ RPT;
select_type: int;
return_port: mach_port_make_send_once_t;
id_tag: int;
@@ -153,6 +175,7 @@ routine io_select (
/* INTR */
routine io_stat (
stat_object: io_t;
+ RPT;
out stat_info: io_statbuf_t);
/* Get a reauthenticated port to an io object. The user should follow
@@ -161,6 +184,7 @@ routine io_stat (
authentication. */
simpleroutine io_reauthenticate (
auth_object: io_t;
+ RPT;
rend_int: int);
/* Return another port which has been restricted to do only those
@@ -168,6 +192,7 @@ simpleroutine io_reauthenticate (
do. */
routine io_restrict_auth (
io_object: io_t;
+ RPT;
out new_object: mach_port_send_t;
uids: idarray_t;
gids: idarray_t);
@@ -175,11 +200,13 @@ routine io_restrict_auth (
/* Return a new port with the same semantics as the existing port. */
routine io_duplicate (
io_object: io_t;
+ RPT;
out newport: mach_port_send_t);
/* Get version information about the server exporting the IO object. */
routine io_server_version (
vers_object: io_t;
+ RPT;
out server_name: string_t;
out server_major_version: int;
out server_minor_version: int;
@@ -197,6 +224,7 @@ routine io_server_version (
objects can still be accessed by io_read and io_write. */
routine io_map (
io_object: io_t;
+ RPT;
out memobjrd: mach_port_send_t;
out memobjwt: mach_port_send_t);
@@ -210,7 +238,8 @@ routine io_map (
*/
routine io_map_cntl (
io_object: io_t;
- out memobj: memory_object_t);
+ RPT;
+ out memobj: mach_port_send_t);
/* Users of the shared page who don't have the conch and want it
should call this function. The server will endeavor to have
@@ -218,7 +247,8 @@ routine io_map_cntl (
in a loop for safety. */
/* INTR */
routine io_get_conch (
- io_object: io_t);
+ io_object: io_t;
+ RPT);
/* When the user is done with the shared page, while holding the
conch, the filesystem may have changed the conch status to
@@ -230,7 +260,8 @@ routine io_get_conch (
the conch status might be either USER_COULD_HAVE_CONCH or
USER_HAS_NOT_CONCH. */
routine io_release_conch (
- io_object: io_t);
+ io_object: io_t;
+ RPT);
/* This routine should be called while the user has the conch, after
the user has encountered an eof condition (where the file pointer
@@ -239,7 +270,8 @@ routine io_release_conch (
routine should be called while the user has the conch. The user
will keep it upon return. */
routine io_eofnotify (
- io_object: io_t);
+ io_object: io_t;
+ RPT);
/* If the user wants to write past the prenotify size, a call needs to
be made to io_prenotify giving the paramters of the write. Upon
@@ -249,8 +281,9 @@ routine io_eofnotify (
will keep it upon return. */
routine io_prenotify (
io_object: io_t;
- write_start: int;
- write_end: int);
+ RPT;
+ write_start: vm_offset_t;
+ write_end: vm_offset_t);
/* After doing a write which extends past the postnotify_size, the
user needs to call io_postnotify. The routine should be called
@@ -258,23 +291,27 @@ routine io_prenotify (
*/
routine io_postnotify (
io_object: io_t;
- write_start: int;
- write_end: int);
+ RPT;
+ write_start: vm_offset_t;
+ write_end: vm_offset_t);
/* After moving rd_file_pointer past readnotify_size, the user should
call this routine, while holding the conch. The user will keep the
conch upon return. */
routine io_readnotify (
- io_object: io_t);
+ io_object: io_t;
+ RPT);
/* This routine sleeps until the read_size is increased. The routine
should be called while the user has the conch. The user will keep
it upon return. */
/* INTR */
routine io_readsleep (
- io_object: io_t);
+ io_object: io_t;
+ RPT);
/* The shared user has just done some IO, and a signal needs to be
sent for async users. */
routine io_sigio (
- io_object: io_t);
+ io_object: io_t;
+ RPT);