Commit Graph

222 Commits

Author SHA1 Message Date
jdolecek
e8e4da6b87 add new function sigismasked(), which checks whether passed signal
is ignored or masked by the process, and use it appropriately
instead of directly checking p->p_sigmask and p->p_sigignore
2000-11-05 15:37:09 +00:00
eeh
d85adca51f Make line disciplines modular so they can be added or removed dynamically. 2000-11-01 23:51:38 +00:00
mrg
32aa199ccf remove include of <vm/vm.h> 2000-06-27 17:41:07 +00:00
thorpej
8964c35eca Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor.  Test against SONPROC as appropriate rather than
combinations of SRUN and curproc.  Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
2000-05-26 00:36:42 +00:00
augustss
264f1d27c6 Get rid of register declarations. 2000-03-30 09:27:11 +00:00
kleink
2e68f6172e Cast timeval members to types we know the printf conversions of. 2000-03-28 18:39:03 +00:00
thorpej
b667a5a357 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:30:07 +00:00
tron
d5442d74c5 Fix NULL pointer access. Patch supplied by Dave Huang in PR kern/8055. 1999-07-24 15:10:02 +00:00
thorpej
2715b812d1 Rework the process exit path, in preparation for making process exit
and PID allocation MP-safe.  A new process state is added: SDEAD.  This
state indicates that a process is dead, but not yet a zombie (has not
yet been processed by the process reaper).

SDEAD processes exist on both the zombproc list (via p_list) and deadproc
(via p_hash; the proc has been removed from the pidhash earlier in the exit
path).  When the reaper deals with a process, it changes the state to
SZOMB, so that wait4 can process it.

Add a P_ZOMBIE() macro, which treats a proc in SZOMB or SDEAD as a zombie,
and update various parts of the kernel to reflect the new state.
1999-07-22 18:13:36 +00:00
simonb
5d8b1ef3e4 g/c REAL_CLISTS. 1999-04-25 02:56:26 +00:00
mycroft
fb526e055c Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
  versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
  sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
  sys_sigpending() and sys_sigsuspend() into separate functions, and call them
  from all the emulations rather than hard-coding everything.  (Avoids uses
  the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
  pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
  bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
  in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified.  Other ports and
emulations need to be updated.
1998-09-11 12:50:05 +00:00
thorpej
ad5e377513 Use the pool allocator and the "nointr" pool page allocator for tty
structures.
1998-09-01 00:23:28 +00:00
thorpej
7cc905f5c8 Add some braces to make egcs happy (ambiguous else warning). 1998-08-18 06:27:01 +00:00
perry
275d1554aa Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one.
bcopy(x, y, z) ->  memcpy(y, x, z)
ovbcopy(x, y, z) -> memmove(y, x, z)
   bcmp(x, y, z) ->  memcmp(x, y, z)
  bzero(x, y)    ->  memset(x, 0, y)
1998-08-04 04:03:10 +00:00
perry
730baa7431 fix sizeofs so they comply with the KNF style guide. yes, it is pedantic. 1998-07-31 22:50:48 +00:00
mycroft
2bb5067e13 Move the code to wait for carrier on a tty into a common function, since it
depends only on device-independent state bits.
Implement SunOS-style `dialout' devices.
1998-03-22 00:55:37 +00:00
mycroft
2ada4b4af1 Replace TS_WOPEN with t_wopen, per mail on tech-kern. 1998-03-21 04:02:47 +00:00
fvdl
e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
thorpej
c1538fb038 Implement TIOCGSID. 1998-02-14 01:26:50 +00:00
kleink
af9cc34b3c Add ONOCR and ONLRET output modes, from XPG4.2. 1998-02-13 21:53:44 +00:00
kleink
0dc9b5452d Fix variable declarations: register -> register int. 1998-02-12 20:39:41 +00:00
drochner
a9006ce5b9 Make ttyblock() work as intended and documented in canonical mode.
(operator precedence problem)
closes PR kern/2131 (Matthias Pfaller)
1997-12-12 12:49:40 +00:00
thorpej
3569d48361 defopt UCONSOLE 1997-10-28 01:53:50 +00:00
mycroft
b8267c1737 Count characters even when !OPOST and FLUSHO.
Don't output the \r for ONLCR if FLUSHO.
1997-10-19 20:35:21 +00:00
mycroft
64d080efe0 Make various standard wmesg strings const. 1997-10-09 12:59:50 +00:00
mycroft
7f35228e7e Make wmesg arguments to various functions const. 1997-10-09 12:49:44 +00:00
kleink
df14b3b830 Add some robustness to ttymodem(), e.g. do not SIGHUP when there hasn't been
an actual carrier transition; from Charles M. Hannum.
1997-06-20 10:50:11 +00:00
kleink
a0696b91ad When a background process attempts to TIOC[CS]BRK (a.k.a. tcsendbreak()) or
TIOCSTART (a.k.a tcflow()), send its process group a SIGTTOU.
1997-06-18 15:32:33 +00:00
kleink
93da19a2f1 Rewrote break/parity/framing error handling from spec. 1997-06-17 20:41:59 +00:00
kleink
b7ba6138b6 If the pgrp_id argument of TIOCSPGRP (a.k.a. tcsetpgrp()) does not specify
an existing process group, return EINVAL.
1997-05-22 17:35:42 +00:00
kleink
91830a9500 When a background process attempts to TIOCDRAIN (a.k.a. tcdrain()), send
its process group a SIGTTOU signal.
1997-05-20 13:11:33 +00:00
thorpej
92c113aebb Fix printf format botch. 1997-05-17 00:19:02 +00:00
gwr
09da7e273e Eliminate vmspace.vm_pmap and all references to it unless
__VM_PMAP_HACK is defined (for temporary compatibility).
The __VM_PMAP_HACK code should be removed after all the
ports that define it have removed all vm_pmap references.
1997-05-16 21:39:50 +00:00
kleink
a0dca5145e Fix a CRNL/NLCR botch I made after looking this up in the X/Open spec.
Fixes PR 3453; from John Kohl and Enami Tsugutomo.
1997-04-07 16:09:28 +00:00
kleink
4256cf1898 Add some clarification about the TTBREAKC macro's purpose; suggested by
Chris G. Demetriou.
1997-04-06 14:44:44 +00:00
cgd
c65f7b2d9a fix missing parenthesis in TTBREAKC() 1997-04-06 08:15:17 +00:00
kleink
dbf70fddf5 If TOSTOP is set, and the process group of the writing process is orphaned,
and the writing process is not ignoring or blocking SIGTTOU, do not signal
the process but return EIO.
1997-04-05 21:40:34 +00:00
kleink
c028733220 Recognize EOL2 as a delimiter/"break" character only if IEXTEN is set. 1997-04-05 19:50:18 +00:00
mycroft
c4cd861045 Remove unintended piece of last change. 1997-04-04 21:05:00 +00:00
mycroft
00f128b69f Fix several bugs related to MDMBUF. Also, remove the partial handling from
ttymodem(); it's not complete, it's better done in the driver, and only the
com driver ever supported it anyway.
1997-04-04 21:02:28 +00:00
kleink
4d65b07afa As specified in POSIX.1 (and termios(4)!), when cc[VMIN]==0 a read() shall
be satisfied by any amount of data actually read.
1997-04-04 15:10:34 +00:00
kleink
080aeda54f WERASE, REPRINT, STATUS and DSUSP are extensions to the POSIX.1 GTI
set of special characters: recognize them only if IEXTEN is set.
1997-04-03 14:24:45 +00:00
kleink
2da2c50987 KNF glitch in last commit, pointed out by Chris G. Demetriou. 1997-04-02 03:23:01 +00:00
kleink
6b58679ffa Implement OCRNL "\r" -> "\n" tty output translation.
Fixes PR standards/3434.
1997-04-02 03:10:51 +00:00
christos
ee29ff37a9 PR/3396: Klaus Klein: If CREAD is not set drop incoming data. 1997-03-29 23:26:27 +00:00
cgd
9fa0b6391e don't thow away char_type's 'const'ness via a cast when passing it to scanc().
(1) that causes -Wcast-qual to be unhappy, and (2) the cast is unnecessary!
1996-10-25 22:11:39 +00:00
christos
f443b89c92 backout previous kprintf change 1996-10-13 02:32:29 +00:00
christos
60d201973e printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:46:11 +00:00
mycroft
2bc736661a Implement poll(2). 1996-09-07 12:40:22 +00:00
mrg
8def9fa734 don't tty_detach() in ttyfree(). make the user of ttyfree() do
the tty_detach() as not all ttymalloc()'ed ttys are tty_attach()ed.
1996-06-06 15:31:24 +00:00
mrg
b9c4c21d8e add a comment on how to use tty_attach(). 1996-06-04 13:59:10 +00:00
cgd
2fc4279f35 a few minor KNF nits 1996-05-30 23:43:31 +00:00
mrg
13eaf2e29b check tty_count first (from cgd). 1996-05-30 23:32:33 +00:00
mrg
5583238255 impliment ttylist stats based on disk stats. 1996-05-29 02:02:42 +00:00
christos
174916004d Fix another printf format warning. 1996-03-29 01:55:12 +00:00
christos
c9e746a335 Fix printf() formats. 1996-03-16 23:17:04 +00:00
christos
09afd77655 More proto fixes 1996-02-09 18:59:18 +00:00
christos
8a5b1b92e2 First pass at prototyping 1996-02-04 02:15:01 +00:00
pk
ba8a7101f0 Correct test for ECHONL (from der Mouse; PR#1922). 1996-01-10 20:52:27 +00:00
mycroft
2dd293d3c3 Add hooks for COMPAT_FREEBSD, from Noriyuki Soda. 1995-10-10 01:26:36 +00:00
cgd
08cae70f24 fix annoying but non-critical rounding but in ttyinfo(). (If
microseconds goes over 10^6 when rounding, increment seconds.)
1995-09-22 00:11:35 +00:00
mycroft
9a4505cb89 Close routines take file flags, not I/O flags. Fix two incorrect usages. 1995-07-02 18:13:02 +00:00
mycroft
3e6f699a75 Only do software flow control if IXOFF is set. Also fix hardware flow control
case in ttyblock().
1995-06-04 14:01:37 +00:00
mycroft
3cd36c72ef Use ISSET() and CLR() in two cases. 1995-06-04 12:57:52 +00:00
mycroft
20b6b4f24d Change ttselect() to use a callback to get the tty structure. 1995-04-19 18:46:10 +00:00
christos
3e935d8a0d Added ifdef COMPAT_SVR4 to the kernel compat code needed. 1994-11-17 20:27:10 +00:00
mycroft
7c29d675ec Change argument list of ttioctl() to match other ioctl functions. 1994-10-30 22:11:05 +00:00
cgd
6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
mycroft
4bad1511b7 Fix a bug I introduced in the last commit, regarding a VTIME timeout causing
EWOULDBLOCK to be returned rather than looping again to see if any characters
are pending.  Also, fix another bug in the original code; if someone changed
VMIN behind our back, last_cc might be uninitialized when we reference it.
1994-10-24 09:09:06 +00:00
mycroft
8f5b447fb2 Remove the need for some untimeouts. 1994-10-12 13:38:16 +00:00
deraadt
1ec7a8fcbe fix PR#484 relating to backspacing over a tab. 1994-09-18 18:32:51 +00:00
mycroft
2f710a54ee Convert process, file, and namei lists and hash tables to use queue.h. 1994-08-30 03:04:28 +00:00
mycroft
743c8ea38e Clear t_flags on first open. 1994-08-02 08:45:46 +00:00
cgd
cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
deraadt
2070652356 use u_char's instead of char's; else the TTY_QUOTE bit can get accidentally
be set.
1994-05-25 09:58:53 +00:00
cgd
ff49fed069 upgrade to 4.4-Lite's tty code. our bug fixes included, some might need GC. 1994-05-12 03:48:33 +00:00
cgd
a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
cgd
4bbabd8e7a Rename a lot of process flags. 1994-05-04 03:41:12 +00:00
deraadt
55dacae6ea FIONREAD plays with an int, not an off_t. 1994-04-09 22:35:00 +00:00
cgd
02dd2aa8ab fix somebody's typo 1994-03-18 04:01:15 +00:00
cgd
fa2051edb1 add hw input flow control support 1994-03-18 03:48:30 +00:00
mycroft
676007bcd2 Don't do TIOCHPCL if !COMPAT_43. In the new world, you use termios. 1994-03-05 22:42:54 +00:00
mycroft
f663fac02d Return a legitimate value from ttylclose(). 1994-02-20 17:24:19 +00:00
mycroft
6adb7d5015 Don't send SIGINFO if ISIG off. 1994-02-20 16:56:56 +00:00
mycroft
678e80720a Some formatting changes. 1994-02-20 16:55:10 +00:00
ws
fbf99acae8 (Hopefully) do the right thing with VTIME > 0 and select 1994-02-14 18:22:39 +00:00
mycroft
bbb3e7618c All ioctl routines take a struct proc * now. 1994-02-09 21:06:46 +00:00
deraadt
425f5d3170 more untimouts needed, from someone at freebsd 1994-02-01 15:09:52 +00:00
deraadt
6aac4eb9f1 undo totally misguided changes from Andrew Chernov in rev. 1.7:
RTS has nothing to do with ttyblock()
also, close a race.
1994-01-28 11:32:43 +00:00
deraadt
abf6a6bfdd more COMPAT_SUNOS changes. 1994-01-23 06:06:21 +00:00
cgd
163a1d473e do the *right* thing with resident set size 1994-01-07 19:13:17 +00:00
deraadt
d4e74a7cda really fix the tab code 1994-01-07 17:51:24 +00:00
cgd
582eb13c4a from Mike Karels <karels@bsdi.com>: clear the PENDIN flag if ICANON
is cleared, and retain the PENDIN flag if set when ICANON is set
1994-01-05 16:25:37 +00:00
cgd
1424954c16 print out what we think is the resident set size. very nasty; the field
in the proc's vmspace struct should be updated, but isn't...
Also, if the process is a zombie or infantile, don't print, because
that could cause a null pointer deref.
1993-12-30 12:05:16 +00:00
deraadt
6e81a663bd OXTABS expansion was putting fewer than the required spaces if the clists
became full. we now retry the tab expansion later.
1993-12-24 01:07:40 +00:00
cgd
a6eecc8e2a load average changes from magnum 1993-12-20 12:42:34 +00:00
mycroft
7f50bd1829 Canonicalize all #includes. 1993-12-18 04:21:37 +00:00
deraadt
493603cecd fix from Daniel Harris <daniel@werple.apana.org.au>
VTIME code must untimeout
1993-12-16 18:09:08 +00:00
deraadt
252dd4bb0e VMIN/VTIME support from Marc Teitelbaum <marc@vangogh.cs.berkeley.edu> 1993-12-13 14:40:31 +00:00
deraadt
3cf1d8505e echo ^V^? correctly as ^?. From Edward Wang <edward@homer.CS.Berkeley.EDU> 1993-12-09 22:58:17 +00:00
mycroft
22ab556e04 If ospeed is set to 0, SIGHUP the session leader (if any). 1993-08-23 16:36:42 +00:00
mycroft
4862b84c92 Add RCS identifiers (this time on the correct side of the branch), and
incorporate recent changes in netbsd-0-9 branch.
1993-08-01 19:22:24 +00:00
mycroft
7aecc812a5 Move flushq() macro into tty.h. 1993-07-19 05:52:27 +00:00
mycroft
ec99160f49 Use flushq() macro instead. 1993-07-19 05:48:01 +00:00
mycroft
b8756ae04c Use ndflush(), not while(getc()). 1993-07-19 05:10:30 +00:00
mycroft
bfc1b68bb5 Change tty code to use clist interface, but with ring buffer implementation.
Also, fix a couple of bugs in tty.c and pccons.c, and some gross kluginess
in the hp300 stuff.
1993-07-12 11:16:07 +00:00
cgd
daacc668f9 re-add two changes which had been deleted by commit of r1.7 1993-07-11 07:22:52 +00:00
mycroft
c5fdaf369a Blasted ftpd! 1993-07-02 03:11:11 +00:00
mycroft
50974047ed Fix bugs in rb_write and rb_cwrite, and make tab handling use rb_cwrite. 1993-07-02 03:04:51 +00:00
mycroft
c414ffef06 Fix a situation where we might forget to splx(). 1993-07-01 00:22:10 +00:00
andrew
4d08b29158 * ansifications
* question about whether the "tp->t_state |= TS_ISOPEN" in ttyopen() should
  be shifted to the end of the block in which it appears.
1993-06-27 06:06:14 +00:00
andrew
4c0169f317 Fixed ECHONL. 1993-06-20 04:52:53 +00:00
cgd
f1b8c74730 make getc() and ungetc() be rb{un,}getc(), so getc() and ungetc()
don't conflict w/ansi prototypes...
1993-06-06 23:04:42 +00:00
deraadt
2f0c0eb674 tty dynamic allocation 1993-05-26 10:06:41 +00:00
cgd
8d6c77881c make kernel select interface be one-stop shopping & clean it all up. 1993-05-18 18:18:40 +00:00
deraadt
5760558f80 various 8-bit patches from Andrew Chernov <ache@astral.msk.su>
tty_compat.c is cleaned up, as is STOP+TIOCSTI in tty.c
1993-05-13 20:58:26 +00:00
cgd
37b890c63c from Luke Mewburn <zak@rmit.edu.au>:
add TIOCSTAT ioctl to give load average stats if requested (for tcsh)
1993-05-13 06:42:56 +00:00
deraadt
64f341ec2a ring buffer now uses rbchar's (shorts) instead of chars. 1993-05-10 23:15:37 +00:00
sef
0be333bc99 Oops. Inserted at the wrong place. 1993-03-24 20:22:51 +00:00
sef
e4eea462cf Handle one-word cases in word-erase. 1993-03-24 19:41:48 +00:00
cgd
e541169ce2 after 0.2.2 "stable" patches applied 1993-03-21 18:04:42 +00:00
cgd
61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00