2002-02-10 Marcus Brinkmann * term.h: Declare rdev. * main.c (options): New variable. (parse_opt): Handle case `n' to set rdev number. Also return EINVAL if terminal type is invalid. * users.c (trivfs_modify_stat): Set ST->st_rdev to global rdev. 2002-02-10 Marcus Brinkmann * hurdio.c: New file. * Makefile (SRCS): Add hurdio.c. * term.h: Add hurdio_bottom declaration. * main.c: Add T_HURDIO to enum of tty_type. (parse_opt): Add case for hurdio bottom handler. (term_argp): Likewise. (main): Likewise. 2002-02-10 Marcus Brinkmann * main.c: Include `argp.h' and `version.h'. (argp_program_version): New global variable. (tty_name, tty_type, tty_arg): Likewise. (parse_opt): New function. (term_argp): New global variable. (main): Call argp_parse, use new global variables to parse the options. Remove TYPE variable. Get the bootstrap port after checking the argument line. * term.h (pterm_name): Remove variable. (tty_arg): Declare variable. * devio.c (initial_open): Use tty_arg instead pterm_name. (devio_assert_dtr): Likewise. 2002-02-10 Marcus Brinkmann * term.h: Include `hurd/hurd_types.h'. (struct bottomhalf): Change the return types of the following members from void to error_t: abandon_physical_output, suspend_physical_output, notice_input_flushed, desert_dtr, set_break, clear_break, start_output, set_bits (which now takes an struct termios * as argument), mdmctl and mdmstate (which now takes an int * as argument). Add new members init and type. (bottom): Define as const. (devio_bottom, ptyio_bottom): Declare as const. (drop_output): Change return type from void to error_t. (ptyio_init): Remove prototype. * devio.c (devio_abandon_physical_output): Change return value to error_t, and return 0. (devio_suspend_physical_output): Likewise. (devio_notice_input_flushed): Likewise. (devio_desert_dtr): Likewise. (devio_set_break): Likewise. (devio_clear_break): Likewise. (devio_start_output): Likewise. (devio_set_bits): Likewise. (devio_mdmctl): Likewise. (devio_mdmstate): Likewise. (init_devio): Rename to ... (devio_init): ... this. Do not give constructor attribute. Change return type to error_t, and return an error value, rather than bailing out. Declare as static. (devio_bottom): Add type TERM_ON_MACHDEV and init function devio_init, and define as const. (devio_set_bits): Accept new argument STATE and use that to work out the terminal state, rather than changing the global termstate. (devio_mdmstate): Accept new argument STATE and use that to return the bits. * ptyio.c: Do not include `hurd/hurd_types.h'. (ptyio_suspend_physical_output): Change return value to error_t, and return 0. Likewise. (ptyio_notice_input_flushed): Likewise. (ptyio_desert_dtr): Likewise. (ptyio_set_bits): Likewise. (ptyio_set_break): Likewise. (ptyio_clear_break): Likewise. (ptyio_mdmctl): Likewise. (ptyio_start_output): Likewise. (ptyio_abandon_physical_output): Likewise. (ptyio_mdmstate): Likewise, and accept new argument STATE. (ptyio_init): Declare as static and change return type to error_t. (ptyio_bottom): Add type TERM_ON_MASTERPTY and init function ptyio_init, and define as const. (ptyio_set_bits): Accept new argument STATE and use that to work out the terminal state, rather than changing the global termstate. (ptyio_mdmstate): Accept new argument STATE and use that to return the bits. * munge.c (drop_output): Change return value to error_t. Only clear queue if there was no error. * users.c (S_term_get_bottom_type): Just return bottom->type. (set_state): Rework logic to take possible errors into account, and to delay changing the termstate until we know that we won't fail. (S_tioctl_tiocflush): Return errors properly, and clear queue only if notice_input_flushed succeeded. (open_hook): Save error value of set_bits. Save old termflags and restore them if if set_bits failed. Call set_bits with correct arguments. (S_tioctl_tiocmods): Set err to result of mdmctl. (S_tioctl_tiocmset): Likewise. (S_tioctl_tiocmbic): Likewise. (S_tioctl_tiocmbis): Likewise. (S_tioctl_tioccdtr): Likewise. (S_tioctl_tiocsdtr): Likewise. (S_tioctl_tioccbrk): Likewise for clear_break. (S_tioctl_tiocsbrk): Likewise for set_break. (S_tioctl_tiocstart): Likewise for start_output. Save old termflags and restore them if if start_output failed. (S_tioctl_tiocstop): Likewise for stop_output. (S_trivfs_io_write): Abort the operation if start_output fails. Do not call start_output if it just failed, or if there was no data to be written. * main.c (main): Initialize bottom handler (rather than special casing this for ptyio). * users.c (open_hook): Use memcpy instead bcopy and memset instead bzero. (S_tioctl_tiocgeta): Likewise. (set_state): Likewise. (open_hook): Likewise. * munge.c (rescan_inputq): Likewise. 2002-01-30 Marcus Brinkmann * users.c (trivfs_S_io_select): Remove IDTAG argument. Also in invocation of pty_io_select. * ptyio.c (pty_io_select): Likewise. * term.h (pty_io_select): Likewise. 2002-01-04 Marcus Brinkmann * devio.c (bogus_speed_to_real_speed): Handle B57600, B115200 if they are defined. Reported by Diego Roversi . 2001-12-17 Roland McGrath * munge.c (input_character): Fix DISCARD character handling so it doesn't process the character as plain input. 2001-10-14 Roland McGrath * devio.c (real_speed_to_bogus_speed): Handle B57600, B115200 if they are defined. Reported by Diego Roversi . 2001-04-01 Neal H Walfield * users.c (S_termctty_open_terminal): Use iohelp_create_empty_iouser. 2001-06-01 Roland McGrath * users.c (trivfs_S_io_select): Fix typo in last change. 2001-05-30 Roland McGrath * users.c (trivfs_S_io_select): Mask out SELECT_READ and/or SELECT_WRITE if those accesses are not allowed by the peropen. Don't keep old bits in AVAILABLE across waits, return only what is true at the moment we return. 2001-05-27 Roland McGrath * users.c (trivfs_S_io_select): Don't mask out SELECT_URG bit. Just let it never be set in the eventual result. Yes, this can mean blocking forever when SELECT_URG is the only bit set. 2001-05-26 Roland McGrath * users.c (trivfs_S_io_select): Don't diagnose an error for *TYPE containing irrelevant bits (i.e. SELECT_URG). It's always ok to ask even when the answer is always no. 2000-07-26 Mark Kettenis * Makefile (HURDLIBS): Reorder libs such that the threads lib comes before the ports lib. This makes sure the functions in libthreads properly override the stubs in libports with the new dynamic linker semantics in glibc 2.2. 2000-03-17 Thomas Bushnell, BSG * main.c (main): Don't use MAKE_SEND in Hurd RPC. 2000-03-17 Roland McGrath * devio.c (devio_abandon_physical_output): Use ports_get_send_right. (initial_open): Use ports_get_send_right. (device_open_reply): Use ports_get_send_right. * users.c (send_signal): Use ports_get_send_right. 1999-10-04 Thomas Bushnell, BSG * term.h, devio.c, users.c: Revert previous change. Do it this way instead: * users.c (report_carrier_error): New function. (carrier_error): New static global variable. (open_hook): Deal with errors from carrier open. * devio.c (device_open_reply): Move the !RETURNCODE case out of the "initial open" case and use report_carrier_error. * term.h (report_carrier_error): Declare new function. 1999-10-01 Roland McGrath * term.h (NO_DEVICE): New macro, bit for termflags. (termflags): Change type to uint_fast32_t. * devio.c (device_open_reply): For D_NO_SUCH_DEVICE error reply, set NO_DEVICE flag in termflags. * users.c (open_hook): If NO_DEVICE flag set, return ENXIO immediately. If we put out an open request, check for that bit as well as NO_CARRIER changing in termflags and diagnose with ENXIO. * Makefile (device_replyServer-CPPFLAGS): New variable, turn off TypeCheck for this stub. This is necessary for error replies to get through to our server-side functions in devio.c. 1999-09-13 Roland McGrath * users.c: Reverted changes related to io_map_segment. 1999-09-07 Thomas Bushnell, BSG * users.c (trivfs_S_io_map): Renamed to ... (trivfs_S_io_map_segment): ... here. 1999-07-23 Roland McGrath * term.h (ILCASE, OLCASE): Use IUCLC, OLCUC if defined. 1999-07-11 Roland McGrath * term.h: Add #include . 1999-07-09 Thomas Bushnell, BSG * ptyio.c (pty_io_read): Use mmap instead of vm_allocate. * users.c (trivfs_S_io_read): Likewise. 1999-05-24 Mark Kettenis * devio.c: Include , and . Do not include and . Reorganize the order of inclusion of the header files a bit and document the baud-rate hackery. Include explicitely. (init_devio): Use new local variable ERR instead of ERRNO. Use error instead of perror and exit to report failure. (devio_desert_dtr): Declare BITS as `int' instead of `dev_status_t'. 1999-05-13 Roland McGrath * users.c (trivfs_S_file_chown): Either arg being -1 means don't change that id. 1999-03-22 Roland McGrath * devio.c (initial_open): Fix typos. Wed Mar 17 16:32:05 1999 Thomas Bushnell, BSG * users.c (S_term_get_peername): Compare BOTTOM against the correct value, and call ports_port_deref with the proper name. Reported by Yamashita TAKAO (az207@epa.go.jp). * devio.c (devio_desert_dtr): Cast &BITS correctly in call to device_set_status. (device_open_reply): Alwas clean open_pending no matter what. Use ERR instead of ERRNO. On fake opens, close the device before deallocating the port. Reported by Mark Kettenis (kettenis@gnu.org). Tue Mar 16 01:04:06 1999 Thomas Bushnell, BSG * devio.c (open_pending): Make an enum. (devio_desert_dtr): Don't close the device, just set the TM_HUP modem bit, which should cause a hangup to occur. (devio_assert_dtr): Don't always open the device, instead use initial_open the first time, and schedule a fake open the other times. (initial_open): New function, guts from old device_assert_dtr. (device_open_reply): Distinguish replies from initial and fake opens appropriately. (ports_do_mach_notify_send_once): Test and set open_pending using new enum values. Mon Mar 15 14:58:33 1999 Thomas Bushnell, BSG * users.c (S_term_get_peername): Implement new RPC. * users.c (S_term_get_nodename): Return ENOENT if the name is not set. 1999-03-13 Mark Kettenis * users.c (po_destroy_hook): Only reset state and hardware if TTY_OPEN bit is set in TERMFLAGS. Mon Mar 1 09:11:06 1999 Thomas Bushnell, BSG * munge.c (output_width): If C is a tab, then the width is the offset from LOC, not the total final position of the tab. Reported by Kalle Olavi Niemitalo * users.c (trivfs_S_io_revoke): Use ports_class_iterate. Mon Feb 22 04:34:55 1999 Thomas Bushnell, BSG * users.c (trivfs_S_io_revoke): Protect the revocation by blocking all other rpcs. Sat Feb 20 04:59:15 1999 Thomas Bushnell, BSG * users.c (trivfs_S_io_revoke): Release global_lock before beginning the iteration. * users.c (trivfs_S_io_revoke): Add reply, reply_type args. 1999-02-06 Mark Kettenis * main.c (main): Initialize status from underlying node. * users.c (check_access_hook): New function. Correctly implement access permission checking. (trivfs_check_access_hook): Initialize with check_access_hook. (trivfs_S_file_check_access): Removed. Thu Feb 18 00:57:30 1999 Thomas Bushnell, BSG * devio.c (devio_assert_dtr): Bother to set open_pending. Reported by OKUJI Yoshinori (okuji@kuicr.kyoto-u.ac.jp). 1999-02-16 Roland McGrath * users.c (trivfs_S_io_revoke): Fix typos. Tue Feb 16 06:10:08 1999 Thomas Bushnell, BSG * users.c (trivfs_S_io_revoke): New function. 1999-02-05 Mark Kettenis * users.c (trivfs_S_file_chmod): Clear S_ISVTX bit instead of clearing all other bits. Sat Jan 30 00:27:14 1999 Thomas Bushnell, BSG * munge.c (create_queue): Make sure that malloc succeeds. Reported by OKUJI Yoshinori . 1998-10-24 Roland McGrath * users.c (open_hook): Assert DTR if NO_CARRIER, even for CLOCAL. This is the only thing that tells it to open the device. Mon Oct 26 16:47:18 1998 Thomas Bushnell, BSG * devio.c (char_size_mask_xxx): New variable. (devio_set_bits): Don't munge c_cflag here. Instead, set char_size_mask_xxx. (device_read_reply_inband): Mask off high bits from the input to simulate less than 8-bit channels. 1998-09-04 Roland McGrath * devio.c: Add #undef's for B19200, B38400, B57600, B115200, in case they are defined in too. 1998-07-20 Roland McGrath * users.c: Include for fshelp_isowner decl. * term.h (clear_queue): Change return type to void. Wed Aug 20 14:07:35 1997 Thomas Bushnell, n/BSG * main.c (main): New args for ports_manage_port_operations_multithread. Mon Jun 9 12:19:51 1997 Thomas Bushnell, n/BSG * users.c (trivfs_S_file_chmod): Fix typo. Tue May 27 12:04:00 1997 Thomas Bushnell, n/BSG * users.c (trivfs_S_file_chmod): Turn off S_ISPARE too. Fri Feb 21 13:17:48 1997 Miles Bader * users.c (open_hook): Add OPEN_COUNT hack to try and detect lossage. Thu Feb 20 02:25:29 1997 Miles Bader * main.c (main): Initialize TTY_CLASS & PTY_CLASS too instead of doing TTY_CNTL_CLASS & PTY_CNTL_CLASS twice. Wed Feb 19 13:10:47 1997 Miles Bader * main.c (trivfs_protid_portclasses, trivfs_protid_nportclasses, trivfs_cntl_portclasses, trivfs_cntl_nportclasses): Variables removed. (main): Don't set port class/bucket variables, use trivfs_add_{protid,control}_port_class instead. * Makefile (HURDLIBS): Add iohelp & shouldbeinlibc. Thu Dec 12 18:33:52 1996 Miles Bader * main.c (main): Add S_IROOT to TERM_MODE. * users.c (trivfs_S_file_chmod): Turn off S_ITRANS bits, and turn on S_IROOT in TERM_MODE. Sat Nov 23 16:28:36 1996 Thomas Bushnell, n/BSG * users.c: Include . (trivfs_S_file_chmod): Bother to fill in ST. Mon Nov 18 18:16:29 1996 Thomas Bushnell, n/BSG * users.c (trivfs_modify_stat): Omit pointless assignment. Fri Nov 15 17:37:12 1996 Thomas Bushnell, n/BSG * users.c (open_hook): New arg syntax. (trivfs_check_open_hook): Likewise. * ptyio.c (pty_open_hook): Likewise. * term.h (pty_open_hook): Likewise. * users.c (S_termctty_open_terminal): New syntax of trivfs_open. * users.c (trivfs_S_file_chown): Rewrite using idvecs. (trivfs_S_file_chmod): Likewise. Thu Oct 24 14:44:57 1996 Thomas Bushnell, n/BSG * users.c (open_hook): Always assert DTR (even if O_NONBLOCK). Don't return any errors if O_NONBLOCK and we don't have carrier. Tue Oct 8 22:46:09 1996 Miles Bader * users.c (open_hook): Zero WINDOW_SIZE during initialization. Fri Oct 4 12:30:22 1996 Miles Bader * users.c (S_tioctl_tiocswinsz): Correct test for a changed winsize. * ptyio.c (pty_open_hook): Reinitialize pty variables. * ptyio.c (pty_io_select): Return SELECT_READ if the slave isn't open. (pty_io_read): If the slave isn't open, return EOF. * users.c (set_state, open_hook): Call (*BOTTOM)->set_bits unconditionally. * devio.c (devio_set_bits): Only execute guts if CIGNORE isn't set. * ptyio.c (pty_io_read, pty_io_write): Honor O_NONBLOCK. Wed Oct 2 10:49:18 1996 Miles Bader * ptyio.c (S_tioctl_tiocsig, S_tioctl_tiocucntl, S_tioctl_tiocpkt): Hold GLOBAL_LOCK while frobbing (especially around send_signal). * ptyio.c (ptyio_set_bits): We need only be in packet mode to send TIOCPKT_NOSTOP & TIOCPKT_DOSTOP, regardless of the value of EXTERNAL_PROCESSING. Thu Sep 26 14:24:16 1996 Thomas Bushnell, n/BSG * ptyio.c: Include "tioctl_S.h". Thu Sep 12 16:34:37 1996 Thomas Bushnell, n/BSG * Makefile (HURDLIBS): New variable. (OBJS): Don't list libraries here. Thu Aug 29 17:26:37 1996 Thomas Bushnell, n/BSG * devio.c (device_open_reply): After error from ports_create_port, unlock global_lock before returning. * users.c (trivfs_S_io_readable): Likewise before returning EBADF. Thu Aug 15 16:07:07 1996 Thomas Bushnell, n/BSG * users.c (trivfs_S_io_pathconf): Implement function. * term.h (QUEUE_HIWAT, QUEUE_LOWAT): New macros. * main.c (main): Use these new macros to create inputq, rawq, and outputq. Thu Aug 15 15:32:47 1996 Miles Bader * users.c (trivfs_S_file_check_access): Renamed from `trivfs_S_file_access'. Mon Aug 12 11:04:28 1996 Thomas Bushnell, n/BSG * term.h (CTRL_BIT): Correct value is 0x40, not 0x20. * munge.c (poutput): Compute tab width using the same loop strategy as output_character and output_width. Thu Aug 8 17:16:06 1996 Thomas Bushnell, n/BSG * munge.c (echo_char): Compute non-ctrl version of control character correctly. * term.h (CHAR_SOH): Delete macro. (CTRL_BIT): New macro. Mon Jul 29 02:46:12 1996 Roland McGrath * munge.c (input_character): In LAST_LNEXT case, jump to `alldone' after putting the char on the queue. Fri Jul 19 23:46:39 1996 Michael I. Bushnell, p/BSG * users.c (trivfs_S_file_access): Implement locally always returning all access. Eventually, this needs to do the right thing when trivfs wises up wrt modes. Tue Jul 16 20:49:29 1996 Michael I. Bushnell, p/BSG * users.c (trivfs_S_io_read): Bother to set atime when appropriate. * users.c (trivfs_modify_stat): Fill in st->st_mode, st->st_uid, and st->st_gid ourselves. (trivfs_S_file_chown): New routine, to override trivfs default. (trivfs_S_file_chmod): Likewise. * main.c (main): Initialize term_owner, term_group, and term_mode. * term.h (term_owner, term_group, term_mode): New variables. Thu Jun 20 16:45:57 1996 Michael I. Bushnell, p/BSG * devio.c (devio_abandon_physical_output): Don't do anything if carrier is off. Thu Jun 20 16:26:07 1996 Miles Bader * Makefile (OBJS): Add ../libfshelp/libfshelp.a. Sat May 11 01:18:41 1996 Miles Bader * iomux.c (parse_opt): Use ARGP_ERR_UNKNOWN instead of EINVAL. Fri May 10 09:27:46 1996 Michael I. Bushnell, p/BSG * users.c: Include . * users.c (init_users): Order args correctly in call to ports_create_port. Thu May 9 19:32:50 1996 Michael I. Bushnell, p/BSG * users.c (call_asyncs): Provide sigcode arg in call to nowait_msg_sig_post. * users.c (init_users): Use new ports_create_port. * devio.c (device_open_reply): Likewise. Thu Apr 25 16:04:17 1996 Michael I. Bushnell, p/BSG * ptyio.c (pty_open_hook): Don't do increment of nptyperopens here. (pty_po_create_hook): Increment nptyperopens here, but only if this is for O_READ or O_WRITE. (pty_po_destroy_hook): Only do decrement if this was for O_READ or O_WRITE. * users.c (open_hook): Don't circumvent pty_open_hook, not even when FLAGS is clear. Wed Apr 24 09:24:29 1996 Miles Bader * users.c (call_asyncs): Add DIR argument; all callers changed. * term.h: Include . * users.c (call_asyncs): Remove FORCE argument; all callers changed. * term.h (enqueue_internal): Go back to only using call_asyncs when inputq becomes non-empty. (SUPPRESS_ASYNC): Flag removed. Tue Apr 23 17:44:25 1996 Miles Bader * term.h (enqueue_internal): Use call_asyncs on every character. (SUPPRESS_ASYNC): New flag. * users.c (po_create_hook, trivfs_S_io_set_some_openmodes, trivfs_S_io_set_all_openmodes): If setting ICKY_ASYNC, then use call_asyncs. (call_asyncs): New argument, FORCE, which use. All callers changed. (init_users): Give our self send rights to the async id ports, since hurd_sig_post uses COPY_SEND. (trivfs_S_io_get_icky_async_id): Renamed from ..._get_async_icky. (trivfs_S_file_set_size, trivfs_S_io_seek, trivfs_S_io_get_icky_async_id, trivfs_S_io_async): Add reply port args. * users.c (num_icky_async_peropens): New variable. (po_create_hook, po_destroy_hook, trivfs_S_io_set_all_openmodes, trivfs_S_io_set_some_openmodes, trivfs_S_io_clear_some_openmodes): Use it to enable ICKY_ASYNC to be turned off. Tue Apr 23 14:26:22 1996 Michael I. Bushnell, p/BSG * users.c (call_asyncs): Delete local decl; no longer static. * term.h (dequeue_quote): If this is the outputq, send SIGIO as appropriate with call_asyncs. (enqueue_internal): If this is the inputq, send SIGIO as appropriate with call_asyncs. (call_asyncs): Add decl. Mon Apr 22 14:55:20 1996 Michael I. Bushnell, p/BSG * devio.c (real_speed_to_bogus_speed): EXTB should be 38400, not 24800. Tue Apr 2 16:18:09 1996 Michael I. Bushnell, p/BSG * ptyio.c (pty_po_create_hook): Don't do anything here. (pty_open_hook): Increment nptyperopens here. Wed Mar 27 11:51:43 1996 Miles Bader * users.c (trivfs_S_io_read): Call call_asyncs *before* we release GLOBAL_LOCK. (pi_destroy_hook): Leak the hook for now, to try and catch a bug. XXX * ptyio.c (pty_io_read): Block using hurd_condition_wait instead of condition_wait. Sat Feb 24 13:56:46 1996 Miles Bader * ptyio.c (ptyio_init): This can't be a constructor because it frobs INPUTQ, which is assigned in main. * main.c (main): Call ptyio_init if appropriate. * term.h: Declare ptyio_init. Wed Feb 14 14:02:54 1996 Miles Bader * users.c (trivfs_S_io_set_all_openmodes, trivfs_S_io_set_some_openmodes): Set ICKY_ASYNC in TERMFLAGS if O_ASYNC is set in BITS. Thu Jan 25 22:54:04 1996 Miles Bader * main.c (main): Use trivfs_startup & trivfs_create_port instead of trivfs_handle_port. * devio.c (devio_assert_dtr): Use ports_create_port instead of ports_allocate_port. Thu Jan 18 11:50:29 1996 Michael I. Bushnell, p/BSG * users.c (report_carrier_off): Flush queues when carrier turns off. Tue Dec 26 16:58:55 1995 Miles Bader * users.c (trivfs_S_io_select): Ask for notification if our reply port dies. Pass REPLY to pty_io_select(). * ptyio.c (pty_io_select): Add new reply port parameter, and ask for notification if it dies. * term.h (pty_io_select): Add new reply port parameter. Fri Dec 22 14:34:38 1995 Miles Bader * main.c (main): Set PEERCNTL to &PTYCTL if we're a slave, not 0. Wed Dec 20 13:56:09 1995 Miles Bader * users.c (S_term_get_nodename, S_term_set_nodename): Get the node name from our cred->po->cntl->hook rather than NODENAME. * main.c (main): Put the nodename on ourcntl->hook rather than NODENAME, and also put our peer's nodname on peercntl->hook. * term.h (nodename): Variable removed. * ptyio.c (ptyopen, nptyperopens, pktnostop, output_stopped): Initialize to 0. Tue Dec 19 19:57:53 1995 Michael I. Bushnell, p/BSG * users.c (trivfs_S_io_read): After a block on the input queue, don't go back and check the input queue if there is a signal in progress; wait for the signal to complete first. (send_signal): Release global_lock around signal RPC. Call report_sig_start and report_sig_end around signal RPC. (call_asyncs): Likewise. (report_sig_start, report_sig_end): New functions. (sigs_in_progress, input_sig_wait, input_sig_wakeup): New variables. Thu Dec 14 12:48:08 1995 Michael I. Bushnell, p/BSG * ptyio.c (pty_io_read): When copying TIOCPKT_DATA; account for size correctly. * ptyio.c (pty_io_write): Always tell the user everything was written. Wed Dec 13 19:32:52 1995 Miles Bader * ptyio.c (pty_io_write): Keep track of how mount we wrote. Tue Dec 12 13:53:40 1995 Michael I. Bushnell, p/BSG * ptyio.c (ptyio_init): Make this a constructor function. * ptyio.c (pty_open_hook, pty_po_create_hook, pty_po_destroy_hook): New functions. (ptyopen, nptyperopens): New variables. * term.h (pty_open_hook, pty_po_create_hook, pty_po_destroy_hook): New declarations. * users.c (open_hook): If this is the pty, then call pty specific function. (po_create_hook): Likewise. (po_destroy_hook): Likewise. (pi_create_hook): Don't do anything for pty. (pi_destroy_hook): Likewise. * users.c (open_hook): Don't require carrier for opens that don't want to read or write. * users.c (S_tioctl_tiocgpgrp): Omit bogus extra attempt to lock global_lock. * users.c (S_term_get_bottom_type): Return TERM_ON_MASTERPTY when appropriate. * main.c (main): Set BOTTOM. Tue Dec 5 15:30:36 1995 Michael I. Bushnell, p/BSG * main.c (main): Totally rework arg parsing and translator linkage. No longer support being started s a shell program. Now support pty's, though no attempt is made to deal nicely with the node collision problem. Mon Dec 4 20:09:21 1995 Michael I. Bushnell, p/BSG * term.h (pty_cntl_class, ptyctl): New variables. * main.c (main): Initialize pty_class, pty_cntl_class, trivfs_protid_portclasses[1], and trivfs_cntl_portclasses[1]. (trivfs_protid_portclasses): Increase size to 2. (trivfs_cntl_portclasses): Likewise. (trivfs_protid_nportclasses): Increase initialization to 2. (trivfs_cntl_nportclasses): Likewise. * ptyio.c: Include . (ptyio_set_bits): If the stop char state has changed, dinkle the stop bits in the control_byte accordingly. * term.h: Include and . (pty_io_write, pty_io_read, pty_io_readable, pty_io_select): New declarations. * ptyio.c: Include . (pty_io_read): Add CRED arg. (pty_io_write): Likewise. (pty_io_select): Likewise. * users.c (trivfs_S_io_write): If this is a pty master, call pty routine to do the work. (trivfs_S_io_read): Likewise. (trivfs_S_io_readable): Likewise. (trivfs_S_io_select): Likewise. (S_tioctl_tiocmodg): Accept both pty and tty ports. (S_tioctl_tiocmods): Likewise. (S_tioctl_tiocexcl): Likewise. (S_tioctl_tiocnxcl): Likewise. (S_tioctl_tiocflush): Likewise. (S_tioctl_tiocgeta): Likewise. (set_state): Likewise. (S_tioctl_tiocgetd): Likewise. (S_tioctl_tiocsetd): Likewise. (S_tioctl_tiocdrain): Likewise. (S_tioctl_tiocswinsz): Likewise. (S_tioctl_tiocgwinsz): Likewise. (S_tioctl_tiocmget): Likewise. (S_tioctl_tiocmset): Likewise. (S_tioctl_tiocmbic): Likewise. (S_tioctl_tiocmbis): Likewise. (S_tioctl_tiocstart): Likewise. (S_tioctl_tiocstop): Likewise. (S_tioctl_tiocsti): Likewise. (S_tioctl_tiocoutq): Likewise. (S_tioctl_tiocspgrp): Likewise. (S_tioctl_tiocgpgrp): Likewise. (S_tioctl_tioccdtr): Likewise. (S_tioctl_tiocsdtr): Likewise. (S_tioctl_tioccbrk): Likewise. (S_tioctl_tiocsbrk): Likewise. (set_state): If this op is being done on the pty master, then flush output before beginning work. Fri Dec 1 14:08:44 1995 Michael I. Bushnell, p/BSG * users.c (trivfs_S_interrupt_operation): Delete function. * users.c (S_tioctl_tiocdrain): Free reference on CRED before returning. * munge.c (input_character): Skip much processing if external_processing is on. (output_character): Don't do tab expansion of external_processing is on. (echo_p): Never echo if external_processing is on. * users.c (set_state): Make EXTPROC bit read only. When external_processing, call set_bits even if CIGNORE. (S_tioctl_tiocext): Deleted function. * term.h (external_processing): New variable. * users.c (trivfs_S_io_readable): If remote_input_mode, then don't include extra final character as input. trivfs_S_io_read): If remote_input_mode, copy characters without interpretation; treat last character left in queue as junk. (S_tioctl_tiocremote): Deleted function. * term.h (remote_input_mode): New variable. * users.c (S_tioctl_tiocsig, S_tioctl_tiocpkt, S_tioctl_tiocucntl): Deleted functions. * term.h (ptyio_bottom, pty_class): New variables. * Makefile (SRCS): Added ptyio.c. * ptyio.c: New file. * term.h (struct bottomhalf): New member `notice_input_flushed'. * devio.c (devio_notice_input_flushed): New function. (devio_bottom): Add devio_notice_input_flushed. * users.c (po_destroy_hook): Call notice_input_flushed after flushing input queues. (S_tioctl_tiocflush): Likewise. (set_state): Likewise. * munge.c (input_character) [VSTOP]: Suspend physical output after setting flag. * term.h (struct bottomhalf): New member `suspend_physical_output'. * users.c (S_tioctl_tiocstart): Start output after clearing USER_OUTPUT_SUSP. (S_tioctl_tiocstop): Suspend physical output after setting flag. * devio.c (devio_start_output): Honor USER_OUTPUT_SUSP flag. Restart output if USER_OUTPUT_SUSP flag off and output_stopped true. (output_stopped): New variable. (devio_suspend_physical_output): New function. (devio_bottom): Add devio_suspend_physical_output. * users.c (trivfs_S_io_select): Return EINTR if we are cancelled. * munge.c (reprint_line): C-r is CHAR_DC2, not DC3. * term.h (CHAR_DC3): Correct value is '\023'. (CHAR_DC1, CHAR_DC2): New macros. Thu Nov 30 15:50:01 1995 Michael I. Bushnell, p/BSG * devio.c (start_output): Add devio_ prefix; declare static. All callers changed. (set_break): Likewise. (clear_break): Likewise. (abandon_physical_output): Likewise. (pending_output_size): Likewise. (assert_dtr): Likewise. (desert_dtr): Likewise. (set_bits): Likewise. (mdmctl): Likewise. (mdmstate): Likewise. (devio_bottom): New variable. * term.h (struct bottomhalf): New type. (bottom, devio_bottom): New variables. (start_output, set_break, clear_break, abandon_physical_output, pending_output_size, assert_dtr, desert_dtr, set_bits, mdmctl, mdmstate): Deleted declarations. * devio.c (ports_do_mach_notify_send_once): New function. Sun Nov 5 02:07:56 1995 Miles Bader * main.c (main): Add flags arg to fsys_startup call. Sat Sep 23 00:48:17 1995 Roland McGrath * term.h: Include errno.h. Mon Sep 18 14:51:40 1995 Miles Bader * users.c (trivfs_S_file_set_size): Renamed from trivfs_S_file_truncate. Sat Sep 16 13:03:40 1995 Roland McGrath * Makefile (DIST_FILES): Added ourmsg.defs. (ourmsg_U.h ourmsgUser.c, ourmsg.defs): Targets removed. Thu Sep 7 13:08:55 1995 Michael I. Bushnell, p/BSG * users.c (trivfs_S_io_write): Start pending output before blocking. Fri Sep 1 09:51:11 1995 Michael I. Bushnell, p/BSG * munge.c (input_character): Clear input queues correctly for VINTR/VQUIT, VSUSP, and input queue full. * users.c (init_users): New function. * main.c (main): Call init_users. * term.h (init_users): New decl. * users.c (open_hook): Turn on NO_OWNER for fresh opens. * main.c (main): Assert NO_OWNER in initial state. * term.h (output_psize): Delete decl. (write_character): New decl. * munge.c (output_character): Don't set echo_qsize or echo_pstart here. (write_character): New function. (echo_char): Use write_character for closing '/' of hderase. (output_psize): New decl. * users.c (trivfs_S_io_write): Use write_character instead of output_character. * main.c (main): Don't initialize output_psize.