diff options
author | Michael I. Bushnell <mib@gnu.org> | 1994-04-29 23:45:04 +0000 |
---|---|---|
committer | Michael I. Bushnell <mib@gnu.org> | 1994-04-29 23:45:04 +0000 |
commit | 067ef5e0d6f6c7360611052489880f57681fc538 (patch) | |
tree | db2964ec5a51ad971a9b96ec42dd984a5b68e70a | |
parent | 9139e06ed3fbe4cf2b8b5a603bb61f6307460d52 (diff) |
Formerly io.defs.~58~
-rw-r--r-- | hurd/io.defs | 65 |
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); |