#
335659 |
|
26-Jun-2018 |
avg |
MFC r334340: add support for console resuming, implement it for uart, use on x86
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
283291 |
|
22-May-2015 |
jkim |
CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten years for head. However, it is continuously misused as the mpsafe argument for callout_init(9). Deprecate the flag and clean up callout_init() calls to make them more consistent.
Differential Revision: https://reviews.freebsd.org/D2613 Reviewed by: jhb MFC after: 2 weeks
|
#
280015 |
|
14-Mar-2015 |
ian |
Include the nulterm byte in the sysctl string.
PR: 195668
|
#
276626 |
|
03-Jan-2015 |
hselasky |
Rework r276532 a bit. Always avoid recursing into the console drivers clients, hence they might not handle it very well. This change allows debugging mutex problems with kernel console drivers when "debug.witness.skipspin=0" is set in the boot environment.
MFC after: 1 week
|
#
276532 |
|
02-Jan-2015 |
hselasky |
The "cnputs_mtx" mutex must be allowed to recurse. Debug prints and/or witness printouts in the console driver clients can cause this mutex to recurse by calls to "printf()" from witness for example. In particular this can happen if "debug.witness.skipspin=0" is set in the boot environment.
MFC after: 1 week
|
#
274711 |
|
19-Nov-2014 |
zbb |
Stop using early_putc immediately after configuring console with cninit()
Early UART should be released right after system console initialization is completed. Otherwise, after cninit() both early and system console coexist what may lead to various issues (i.a. writing to unmapped early UART address). This cannot be done in cninit_finish() since it can be called late at the end of MI configuration.
Obtained from: Semihalf Reviewed by: andrew Sponsored by: The FreeBSD Foundation
|
#
274085 |
|
04-Nov-2014 |
dumbbell |
Enable vt(4) by default
vt(4) is a new console driver which brings features such as: o Support for Unicode and double-width characters o Integration with the KMS kernel video drivers o Support for UEFI
You may need to update your console settings in /etc/rc.conf, most probably the keymap. During boot, /etc/rc.d/syscons will indicate what you need to do.
vt(4) still has issues and lacks some features compared to syscons(4). See the wiki for up-to-date information: https://wiki.freebsd.org/Newcons
If you want to keep using syscons(4), you can do so by adding the following line to /boot/loader.conf: kern.vty=sc
Differential Revision: https://reviews.freebsd.org/D1005 Discussed with: emaste@, nwhitehorn@, ray@ Relnotes: yes
|
#
271963 |
|
22-Sep-2014 |
jhb |
Convert from timeout(9) to callout(9).
|
#
268160 |
|
02-Jul-2014 |
emaste |
Fix typos in VTY constant names from r268158
|
#
268158 |
|
02-Jul-2014 |
emaste |
Prefer vt(4) for UEFI boot
The UEFI framebuffer driver vt_efifb requires vt(4), so add a mechanism for the startup routine to set the preferred console. This change is ugly because console init happens very early in the boot, making a cleaner interface difficult. This change is intended only to facilitate the sc(4) / vt(4) transition, and can be reverted once vt(4) is the default.
|
#
267992 |
|
28-Jun-2014 |
hselasky |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
#
267985 |
|
27-Jun-2014 |
gjb |
Revert r267961, r267973:
These changes prevent sysctl(8) from returning proper output, such as:
1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
#
267973 |
|
27-Jun-2014 |
emaste |
Add CTLFLAG_NOFETCH flag; console vty code runs before tunable fetch
Also remove redundant "" assignment for string in BSS.
Submitted by: hselasky@
|
#
267965 |
|
27-Jun-2014 |
emaste |
Use a common tunable to choose between vt(4)/sc(4)
With this change and previous work from ray@ it will be possible to put both in GENERIC, and have one enabled by default, but allow the other to be selected via the loader.
(The previous implementation had separate kern.vt.disable and hw.syscons.disable tunables, and would panic if both drivers were compiled in and neither was explicitly disabled.)
MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
261786 |
|
11-Feb-2014 |
ian |
Rework the EARLY_PRINTF mechanism. Instead of defining a special eprintf() routine, now a platform can provide a pointer to an early_putc() routine which is used instead of cn_putc(). Control can be handed off from early printf support to standard console support by NULLing out the pointer during standard console init.
This leverages all the existing error reporting that uses printf calls, such as panic() which can now be usefully employed even in early platform init code (useful at least to those who maintain that code and build kernels with EARLY_PRINTF defined).
Reviewed by: imp, eadler
|
#
260118 |
|
31-Dec-2013 |
imp |
Delete echoed doesn't rub out the previous character, so always use <backspace> <space> <backspace> instead. This fixes hitting DELETE instead of BACKSPACE at mountroot> prompt.
|
#
241295 |
|
06-Oct-2012 |
avg |
cngetc: use cpu_spinwait to ease the cncheckc loop a tiny bit
Reviewed by: julian MFC after: 10 days
|
#
228643 |
|
17-Dec-2011 |
avg |
belatedly transfer copyrights from libkern/gets.c to kern_cons.c
MFC after: 2 months MFC with: r228642
|
#
228633 |
|
17-Dec-2011 |
avg |
introduce cngets, a method for kernel to read a string from console
This is intended as a replacement for libkern's gets and mostly borrows its implementation. It uses cngrab/cnungrab to delimit kernel's access to console input.
Note: libkern's gets obviously doesn't share any bits of implementation iwth libc's gets. They also have different APIs and the former doesn't have the overflow problems of the latter.
Inspired by: bde MFC after: 2 months
|
#
228632 |
|
17-Dec-2011 |
avg |
introduce cngrab/cnungrab stub calls in some places where they make sense
MFC after: 2 months
|
#
228631 |
|
17-Dec-2011 |
avg |
kern cons: introduce infrastructure for console grabbing by kernel
At the moment grab and ungrab methods of all console drivers are no-ops.
Current intended meaning of the calls is that the kernel takes control of console input. In the future the semantics may be extended to mean that the calling thread takes full ownership of the console (e.g. console output from other threads could be suspended).
Inspired by: bde MFC after: 2 months
|
#
211102 |
|
09-Aug-2010 |
gavin |
Add descriptions to a handful of sysctl nodes.
PR: kern/148580 Submitted by: Galimov Albert <wtfcrap mail.ru> MFC after: 1 week
|
#
196506 |
|
24-Aug-2009 |
ed |
Allow multiple console devices per driver without insane code duplication.
Say, a driver wants to have multiple console devices to pick from, you would normally write down something like this:
CONSOLE_DRIVER(dev1); CONSOLE_DRIVER(dev2);
Unfortunately, this means that you have to declare 10 cn routines, instead of 5. It also isn't possible to initialize cn_arg on beforehand.
I noticed this restriction when I was implementing some of the console bits for my vt(4) driver in my newcons branch. I have a single set of cn routines (termcn_*) which are shared by all vt(4) console devices.
In order to solve this, I'm adding a separate consdev_ops structure, which contains all the function pointers. This structure is referenced through consdev's cn_ops field.
While there, I'm removing CONS_DRIVER() and cn_checkc, which have been deprecated for years. They weren't used throughout the source, until the Xen console driver showed up. CONSOLE_DRIVER() has been changed to do the right thing. It now declares both the consdev and consdev_ops structure and ties them together. In other words: this change doesn't change the KPI for drivers that used the regular way of declaring console devices.
If drivers want to use multiple console devices, they can do this as follows:
static const struct consdev_ops mydriver_cnops = { .cn_probe = mydriver_cnprobe, ... }; static struct mydriver_softc cons0_softc = { ... }; CONSOLE_DEVICE(cons0, mydriver_cnops, &cons0_softc); static struct mydriver_softc cons1_softc = { ... }; CONSOLE_DEVICE(cons1, mydriver_cnops, &cons1_softc);
Obtained from: //depot/user/ed/newcons/...
|
#
189072 |
|
26-Feb-2009 |
ed |
Remove unneeded variable `ocn_mute'.
Found by: LLVM's scan-build
|
#
185539 |
|
02-Dec-2008 |
peter |
Delete a bunch of empty mergeinfo records caused by local copies.
|
#
184521 |
|
01-Nov-2008 |
ed |
Reimplement the /dev/console device node.
One of the pieces of code that I had left alone during the development of the MPSAFE TTY layer, was tty_cons.c. This file actually has two different functions:
- It contains low-level console input/output routines (cnputc(), etc).
- It creates /dev/console and wraps all its cdevsw calls to the appropriate TTY.
This commit reimplements the second set of functions by moving it directly into the TTY layer. /dev/console is now a character device node that's basically a regular TTY, but does a lookup of `si_drv1' each time you open it. d_write has also been changed to call log_console(). d_close() is not present, because we must make sure we don't revoke the TTY after writing a log message to it.
Even though I'm not convinced this is in line with the future directions of our console code, it is a good move for now. It removes recursive locking from the top half of the TTY layer. The previous implementation called into the TTY layer with Giant held.
I'm renaming tty_cons.c to kern_cons.c now. The code hardly contains any TTY related bits, so we'd better give it a less misleading name.
Tested by: Andrzej Tobola <ato iem pw edu pl>, Carlos A.M. dos Santos <unixmania gmail com>, Eygene Ryabinkin <rea-fbsd codelabs ru>
|
#
181905 |
|
20-Aug-2008 |
ed |
Integrate the new MPSAFE TTY layer to the FreeBSD operating system.
The last half year I've been working on a replacement TTY layer for the FreeBSD kernel. The new TTY layer was designed to improve the following:
- Improved driver model:
The old TTY layer has a driver model that is not abstract enough to make it friendly to use. A good example is the output path, where the device drivers directly access the output buffers. This means that an in-kernel PPP implementation must always convert network buffers into TTY buffers.
If a PPP implementation would be built on top of the new TTY layer (still needs a hooks layer, though), it would allow the PPP implementation to directly hand the data to the TTY driver.
- Improved hotplugging:
With the old TTY layer, it isn't entirely safe to destroy TTY's from the system. This implementation has a two-step destructing design, where the driver first abandons the TTY. After all threads have left the TTY, the TTY layer calls a routine in the driver, which can be used to free resources (unit numbers, etc).
The pts(4) driver also implements this feature, which means posix_openpt() will now return PTY's that are created on the fly.
- Improved performance:
One of the major improvements is the per-TTY mutex, which is expected to improve scalability when compared to the old Giant locking. Another change is the unbuffered copying to userspace, which is both used on TTY device nodes and PTY masters.
Upgrading should be quite straightforward. Unlike previous versions, existing kernel configuration files do not need to be changed, except when they reference device drivers that are listed in UPDATING.
Obtained from: //depot/projects/mpsafetty/... Approved by: philip (ex-mentor) Discussed: on the lists, at BSDCan, at the DevSummit Sponsored by: Snow B.V., the Netherlands dcons(4) fixed by: kan
|
#
179246 |
|
23-May-2008 |
ed |
Move TTY unrelated bits out of <sys/tty.h>.
For some reason, the <sys/tty.h> header file also contains routines of the clists and console that are used inside the TTY layer. Because the clists are not only used by the TTY layer (example: various input drivers), we'd better move the entire clist programming interface into <sys/clist.h>. Also remove a declaration of nonexistent variable.
The <sys/tty.h> header also contains various definitions for the console code (tty_cons.c). Also move these to <sys/cons.h>, because they are not implemented inside the TTY layer.
While there, create separate malloc pools for the clist and console code.
Approved by: philip (mentor)
|
#
177642 |
|
26-Mar-2008 |
phk |
The "free-lance" timer in the i8254 is only used for the speaker these days, so de-generalize the acquire_timer/release_timer api to just deal with speakers.
The new (optional) MD functions are: timer_spkr_acquire() timer_spkr_release() and timer_spkr_setfreq()
the last of which configures the timer to generate a tone of a given frequency, in Hz instead of 1/1193182th of seconds.
Drop entirely timer2 on pc98, it is not used anywhere at all.
Move sysbeep() to kern/tty_cons.c and use the timer_spkr*() if they exist, and do nothing otherwise.
Remove prototypes and empty acquire-/release-timer() and sysbeep() functions from the non-beeping archs.
This eliminate the need for the speaker driver to know about i8254frequency at all. In theory this makes the speaker driver MI, contingent on the timer_spkr_*() functions existing but the driver does not know this yet and still attaches to the ISA bus.
Syscons is more tricky, in one function, sc_tone(), it knows the hz and things are just fine.
In the other function, sc_bell() it seems to get the period from the KDMKTONE ioctl in terms if 1/1193182th second, so we hardcode the 1193182 and leave it at that. It's probably not important.
Change a few other sysbeep() uses which obviously knew that the argument was in terms of i8254 frequency, and leave alone those that look like people thought sysbeep() took frequency in hertz.
This eliminates the knowledge of i8254_freq from all but the actual clock.c code and the prof_machdep.c on amd64 and i386, where I think it would be smart to ask for help from the timecounters anyway [TBD].
|
#
177253 |
|
16-Mar-2008 |
rwatson |
In keeping with style(9)'s recommendations on macros, use a ';' after each SYSINIT() macro invocation. This makes a number of lightweight C parsers much happier with the FreeBSD kernel source, including cflow's prcc and lxr.
MFC after: 1 month Discussed with: imp, rink
|
#
175294 |
|
13-Jan-2008 |
attilio |
VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in conjuction with 'thread' argument passing which is always curthread. Remove the unuseful extra-argument and pass explicitly curthread to lower layer functions, when necessary.
KPI results broken by this change, which should affect several ports, so version bumping and manpage update will be further committed.
Tested by: kris, pho, Diego Sardina <siarodx at gmail dot com>
|
#
174905 |
|
25-Dec-2007 |
wkoszek |
Rewrite kern.console handling in sbuf(9). My intention is to leave kern.console format as is. Thus, no difference in output format should appear after this commit.
Reviewed by: cognet@ (mentor) Approved by: cognet@ (mentor)
|
#
170152 |
|
31-May-2007 |
kib |
Revert UF_OPENING workaround for CURRENT. Change the VOP_OPEN(), vn_open() vnode operation and d_fdopen() cdev operation argument from being file descriptor index into the pointer to struct file.
Proposed and reviewed by: jhb Reviewed by: daichi (unionfs) Approved by: re (kensmith)
|
#
164033 |
|
06-Nov-2006 |
rwatson |
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking.
Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
|
#
163932 |
|
03-Nov-2006 |
jb |
Always init the console before trying to cnadd it to avoid the case where the console name isn't set and cnadd wants to use printf to complain about it.
|
#
163858 |
|
01-Nov-2006 |
jb |
Add a cnputs() function to write a string to the console with a lock to prevent interspersed strings written from different CPUs at the same time.
To avoid putting a buffer on the stack or having to malloc one, space is incorporated in the per-cpu structure. The buffer size if 128 bytes; chosen because it's the next power of 2 size up from 80 characters.
String writes to the console are buffered up the end of the line or until the buffer fills. Then the buffer is flushed to all console devices.
Existing low level console output via cnputc() is unaffected by this change. ithread calls to log() are also unaffected to avoid blocking those threads.
A minor change to the behaviour in a panic situation is that console output will still be buffered, but won't be written to a tty as before. This should prevent interspersed panic output as a number of CPUs panic before we end up single threaded running ddb.
Reviewed by: scottl, jhb MFC after: 2 weeks
|
#
158946 |
|
26-May-2006 |
phk |
If the console has no cncheckc method, use cngetc instead.
|
#
158944 |
|
26-May-2006 |
phk |
Don't use CONS_DRIVER() macro to insert dummy element in cons_set
|
#
158941 |
|
26-May-2006 |
phk |
GC the cn_dbctl_t hook for consoles, it is unused.
This used to make syscons switch to vty0 when we entered DDB but this was lost in the KDB shuffle. We may want to bring it back down the road but it should be done by calling cn_init_t/cn_term_t instead, possibly with a flag argument saying "Debugger!"
|
#
158450 |
|
11-May-2006 |
phk |
Remove more straggling CPU_ macro references
|
#
142702 |
|
27-Feb-2005 |
phk |
Use dynamic major number allocation for /dev/console, there is no longer any benefit from hard wiring it.
Remove special hack used to wire major to zero despite zero having a different magic meaning as well.
|
#
139804 |
|
06-Jan-2005 |
imp |
/* -> /*- for copyright notices, minor format tweaks as necessary
|
#
138249 |
|
01-Dec-2004 |
scottl |
Remove the last vestiges of the userconfig option. None of this actually did anything, so this commit should be considered a NO-OP.
|
#
135721 |
|
24-Sep-2004 |
phk |
Hold threadcount reference when we call into the underlying console driver.
|
#
133741 |
|
15-Aug-2004 |
jmg |
Add locking to the kqueue subsystem. This also makes the kqueue subsystem a more complete subsystem, and removes the knowlege of how things are implemented from the drivers. Include locking around filter ops, so a module like aio will know when not to be unloaded if there are outstanding knotes using it's filter ops.
Currently, it uses the MTX_DUPOK even though it is not always safe to aquire duplicate locks. Witness currently doesn't support the ability to discover if a dup lock is ok (in some cases).
Reviewed by: green, rwatson (both earlier versions)
|
#
131931 |
|
10-Jul-2004 |
marcel |
Update for the KDB framework: o Check kdb_active instead of db_active and do so unconditionally.
|
#
130640 |
|
17-Jun-2004 |
phk |
Second half of the dev_t cleanup.
The big lines are: NODEV -> NULL NOUDEV -> NODEV udev_t -> dev_t udev2dev() -> findcdev()
Various minor adjustments including handling of userland access to kernel space struct cdev etc.
|
#
130585 |
|
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
#
127911 |
|
05-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
#
126080 |
|
21-Feb-2004 |
phk |
Device megapatch 4/6:
Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION.
Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
|
#
125810 |
|
14-Feb-2004 |
phk |
Use standard style for cdevsw initialization.
|
#
125487 |
|
05-Feb-2004 |
kan |
Rename cn_unavailable to cnunavailable for little more consistency. Garbage collect unused cndebug() function.
Suggested by: bde
|
#
125467 |
|
04-Feb-2004 |
kan |
Eliminate global cons_unavailable flag and replace it by the status bit maintained on a per-device basis. Single variable is inadequate on machines running with multiple consoles enabled.
|
#
121204 |
|
18-Oct-2003 |
phk |
I think rwatson got the sign wrong here...
|
#
121183 |
|
18-Oct-2003 |
rwatson |
Wrap db_active check in #ifdef DDB, as db_active is not defined ifndef DDB.
|
#
121182 |
|
18-Oct-2003 |
rwatson |
Add a new cn_flags fields to struct consdev, the low-level console definition structure. Define one flag, CN_FLAG_NODEBUG, which indicates the console driver cannot be used in the context of the debugger. This may be used, for example, if the console device interacts with kernel services that cannot be used from the debugger context, such as the network stack. These drivers are skipped over for calls to cn_checkc() and cn_putc(), and the calling function simply moves on to the next available console.
|
#
120491 |
|
26-Sep-2003 |
phk |
OK, I messed up /dev/console with what I had hoped would be compat code. Convert remaining console drivers and hope for the best.
|
#
120456 |
|
26-Sep-2003 |
phk |
Remove wrongly sized cnd_name field, we now store the name in the consdev structure.
If the consdev name is not set and we have a cn_dev, set the name from there. Try to issue a printf about this, even though it may not have a place to go.
Modify the sysctl related code to pick up the name from the consdev instead.
|
#
118094 |
|
27-Jul-2003 |
phk |
Add fdidx argument to vn_open() and vn_open_cred() and pass -1 throughout.
|
#
116663 |
|
22-Jun-2003 |
iedowse |
Use a new message buffer `consmsgbuf' to forward messages to a TIOCCONS console (e.g. xconsole) via a timeout routine instead of calling into the tty code directly from printf(). This fixes a number of cases where calling printf() at the wrong time (such as with locks held) would cause a panic if xconsole is running.
The TIOCCONS message buffer is 8k in size by default, but this can be changed with the kern.consmsgbuf_size sysctl. By default, messages are checked for 5 times per second. The timer runs and the buffer memory remains allocated only at times when a TIOCCONS console is active.
Discussed on: freebsd-arch
|
#
116182 |
|
10-Jun-2003 |
obrien |
Use __FBSDID().
|
#
112046 |
|
09-Mar-2003 |
phk |
Don't call make_dev() before we are ready for it.
|
#
112035 |
|
09-Mar-2003 |
phk |
Add one little hack to allow us to make MAJOR_AUTO be zero:
Let the console driver ask for major 256 and magically change this to mean zero.
|
#
111821 |
|
03-Mar-2003 |
phk |
Make nokqfilter() return the correct return value.
Ditch the D_KQFILTER flag which was used to prevent calling NULL pointers.
|
#
111815 |
|
03-Mar-2003 |
phk |
Gigacommit to improve device-driver source compatibility between branches:
Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values.
This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386.
Approved by: re(scottl)
|
#
111194 |
|
20-Feb-2003 |
phk |
Change the console interface to pass a "struct consdev *" instead of a dev_t to the method functions.
The dev_t can still be found at struct consdev *->cn_dev.
Add a void *cn_arg element to struct consdev which the drivers can use for retrieving their softc.
|
#
111119 |
|
19-Feb-2003 |
imp |
Back out M_* changes, per decision of the TRB.
Approved by: trb
|
#
109623 |
|
21-Jan-2003 |
alfred |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
#
107984 |
|
17-Dec-2002 |
phk |
Remove unused variable cn_devfsdev.
|
#
105354 |
|
17-Oct-2002 |
robert |
Use strlcpy() instead of strncpy() to copy NUL terminated strings for safety and consistency.
|
#
101436 |
|
06-Aug-2002 |
jake |
Remove new console devices with cnremove before initializing them in cninit. This allows a console driver to replace the existing console by calling cninit again, eg during the device probe. Otherwise the multiple console code sends output to both, which is unfortunate if they're using the same hardware.
|
#
93593 |
|
01-Apr-2002 |
jhb |
Change the suser() API to take advantage of td_ucred as well as do a general cleanup of the API. The entire API now consists of two functions similar to the pre-KSE API. The suser() function takes a thread pointer as its only argument. The td_ucred member of this thread must be valid so the only valid thread pointers are curthread and a few kernel threads such as thread0. The suser_cred() function takes a pointer to a struct ucred as its first argument and an integer flag as its second argument. The flag is currently only used for the PRISON_ROOT flag.
Discussed on: smp@
|
#
91406 |
|
27-Feb-2002 |
jhb |
Simple p_ucred -> td_ucred changes to start using the per-thread ucred reference.
|
#
87649 |
|
11-Dec-2001 |
guido |
Fix boot -p for DDBless kernels
Pointed out by: John Hay <jhay@icomtek.csir.co.za>
|
#
87620 |
|
10-Dec-2001 |
guido |
Add new boot flag to i386 boot: -p. This flag adds a pausing utility. When ran with -p, during the kernel probing phase, the kernel will pause after each line of output. This pausing can be ended with the '.' key, and is automatically suspended when entering ddb.
This flag comes in handy at systems without a serial port that either hang during booting or reser. Reviewed by: (partly by jlemon) MFC after: 1 week
|
#
85884 |
|
02-Nov-2001 |
jlemon |
+ Fix another possible vn_close race, in the same fashion as r1.95. + Check that the cached vnode type != VBAD before calling devsw(), this can happen if the vnode has been revoked.
|
#
85458 |
|
25-Oct-2001 |
jlemon |
cnclose() can potentially race against itself. To avoid vn_close() races, NULL-out cnd_vp before calling the latter, as it may block.
Submitted by: dillon
|
#
85448 |
|
24-Oct-2001 |
jlemon |
Force FWRITE on when opening the console, so that the flags passed to vn_close match those from vn_open. This fixes the panic some people were seeing about "vrele: missed vn_close".
|
#
85373 |
|
23-Oct-2001 |
jlemon |
Implement multiple low-level console support.
|
#
83366 |
|
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
#
78161 |
|
13-Jun-2001 |
peter |
With this commit, I hereby pronounce gensetdefs past its use-by date.
Replace the a.out emulation of 'struct linker_set' with something a little more flexible. <sys/linker_set.h> now provides macros for accessing elements and completely hides the implementation.
The linker_set.h macros have been on the back burner in various forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()), John Polstra (ELF clue) and myself (cleaned up API and the conversion of the rest of the kernel to use it).
The macros declare a strongly typed set. They return elements with the type that you declare the set with, rather than a generic void *.
For ELF, we use the magic ld symbols (__start_<setname> and __stop_<setname>). Thanks to Richard Henderson <rth@redhat.com> for the trick about how to force ld to provide them for kld's.
For a.out, we use the old linker_set struct.
NOTE: the item lists are no longer null terminated. This is why the code impact is high in certain areas.
The runtime linker has a new method to find the linker set boundaries depending on which backend format is in use.
linker sets are still module/kld unfriendly and should never be used for anything that may be modular one day.
Reviewed by: eivind
|
#
74810 |
|
26-Mar-2001 |
phk |
Send the remains (such as I have located) of "block major numbers" to the bit-bucket.
|
#
72521 |
|
15-Feb-2001 |
jlemon |
Extend kqueue down to the device layer.
Backwards compatible approach suggested by: peter
|
#
70239 |
|
20-Dec-2000 |
phk |
Replace logwakeup() with "int msgbuftrigger". There is little point in calling a function just to set a flag.
Keep better track of the syslog FAC/PRI code and try to DTRT if they mingle.
Log all writes to /dev/console to syslog with <console.info> priority. The formatting is not preserved, there is no robust, way of doing it. (Ideas with patches welcome).
|
#
69930 |
|
12-Dec-2000 |
mjacob |
only include sys/proc.h once
|
#
69929 |
|
12-Dec-2000 |
obrien |
Include sys/proc.h so this compiles [on the Alpha].
|
#
69928 |
|
12-Dec-2000 |
mjacob |
We reference curproc, ergo need <sys/proc.h>
|
#
67893 |
|
29-Oct-2000 |
phk |
Move suser() and suser_xxx() prototypes and a related #define from <sys/proc.h> to <sys/systm.h>.
Correctly document the #includes needed in the manpage.
Add one now needed #include of <sys/systm.h>. Remove the consequent 48 unused #includes of <sys/proc.h>.
|
#
62573 |
|
04-Jul-2000 |
phk |
Previous commit changing SYSCTL_HANDLER_ARGS violated KNF.
Pointed out by: bde
|
#
62454 |
|
03-Jul-2000 |
phk |
Style police catches up with rev 1.26 of src/sys/sys/sysctl.h:
Sanitize SYSCTL_HANDLER_ARGS so that simplistic tools can grog our sources:
-sysctl_vm_zone SYSCTL_HANDLER_ARGS +sysctl_vm_zone (SYSCTL_HANDLER_ARGS)
|
#
56582 |
|
25-Jan-2000 |
bde |
Don't follow null pointers if we somehow have a null devswitch entry despite having a non-null cn_tab entry. This case now works the same as if there is no physical console, except i/o at the kernel printf level may still work. This frees drivers of physical console drivers from the responsibility of attaching the device no matter what.
|
#
56525 |
|
24-Jan-2000 |
bde |
Fixed some style bugs (mainly ones associated with the bogus name condev_t for a non-typedef).
|
#
55823 |
|
11-Jan-2000 |
yokota |
Add a new mechanism, cndbctl(), to tell the console driver that ddb is entered. Don't refer to `in_Debugger' to see if we are in the debugger. (The variable used to be static in Debugger() and wasn't updated if ddb is entered via traps and panic anyway.)
- Don't refer to `in_Debugger'. - Add `db_active' to i386/i386/db_interface.d (as in alpha/alpha/db_interface.c). - Remove cnpollc() stub from ddb/db_input.c. - Add the dbctl function to syscons, pcvt, and sio. (The function for pcvt and sio is noop at the moment.)
Jointly developed by: bde and me
(The final version was tweaked by me and not reviewed by bde. Thus, if there is any error in this commit, that is entirely of mine, not his.)
Some changes were obtained from: NetBSD
|
#
53334 |
|
18-Nov-1999 |
peter |
Remove cdevsw_add() - the necessary make_dev() is already there.
|
#
51658 |
|
25-Sep-1999 |
phk |
Remove five now unused fields from struct cdevsw. They should never have been there in the first place. A GENERIC kernel shrinks almost 1k.
Add a slightly different safetybelt under nostop for tty drivers.
Add some missing FreeBSD tags
|
#
51654 |
|
25-Sep-1999 |
phk |
This patch clears the way for removing a number of tty related fields in struct cdevsw:
d_stop moved to struct tty. d_reset already unused. d_devtotty linkage now provided by dev_t->si_tty.
These fields will be removed from struct cdevsw together with d_params and d_maxio Real Soon Now.
The changes in this patch consist of:
initialize dev->si_tty in *_open() initialize tty->t_stop remove devtotty functions rename ttpoll to ttypoll a few adjustments to these changes in the generic code a bump of __FreeBSD_version add a couple of FreeBSD tags
|
#
50477 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
50092 |
|
20-Aug-1999 |
julian |
First small steps at merging DEVFS and PHK's Dev_t stuff.
|
#
49680 |
|
13-Aug-1999 |
phk |
Register our dev_t with make_dev
|
#
49559 |
|
09-Aug-1999 |
phk |
make alpha compile again.
|
#
49558 |
|
09-Aug-1999 |
phk |
Merge the cons.c and cons.h to the best of my ability. alpha may or may not compile, I can't test it.
|
#
49049 |
|
24-Jul-1999 |
yokota |
- Correctly initialize cn_dev_t and cn_udev_t. - Add D_TTY for alpha.
Reviewed by: bde, dfr
|
#
48242 |
|
26-Jun-1999 |
peter |
Quieten some warnings as a result of changes in ls_items[] constness over time.
|
#
48104 |
|
22-Jun-1999 |
yokota |
The second phase of syscons reorganization.
- Split syscons source code into manageable chunks and reorganize some of complicated functions.
- Many static variables are moved to the softc structure.
- Added a new key function, PREV. When this key is pressed, the vty immediately before the current vty will become foreground. Analogue to PREV, which is usually assigned to the PrntScrn key. PR: kern/10113 Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de>
- Modified the kernel console input function sccngetc() so that it handles function keys properly.
- Reorganized the screen update routine.
- VT switching code is reorganized. It now should be slightly more robust than before.
- Added the DEVICE_RESUME function so that syscons no longer hooks the APM resume event directly.
- New kernel configuration options: SC_NO_CUTPASTE, SC_NO_FONT_LOADING, SC_NO_HISTORY and SC_NO_SYSMOUSE. Various parts of syscons can be omitted so that the kernel size is reduced.
SC_PIXEL_MODE Made the VESA 800x600 mode an option, rather than a standard part of syscons.
SC_DISABLE_DDBKEY Disables the `debug' key combination.
SC_ALT_MOUSE_IMAGE Inverse the character cell at the mouse cursor position in the text console, rather than drawing an arrow on the screen. Submitted by: Nick Hibma (n_hibma@FreeBSD.ORG)
SC_DFLT_FONT makeoptions "SC_DFLT_FONT=_font_name_" Include the named font as the default font of syscons. 16-line, 14-line and 8-line font data will be compiled in. This option replaces the existing STD8X16FONT option, which loads 16-line font data only.
- The VGA driver is split into /sys/dev/fb/vga.c and /sys/isa/vga_isa.c.
- The video driver provides a set of ioctl commands to manipulate the frame buffer.
- New kernel configuration option: VGA_WIDTH90 Enables 90 column modes: 90x25, 90x30, 90x43, 90x50, 90x60. These modes are mot always supported by the video card. PR: i386/7510 Submitted by: kbyanc@freedomnet.com and alexv@sui.gda.itesm.mx.
- The header file machine/console.h is reorganized; its contents is now split into sys/fbio.h, sys/kbio.h (a new file) and sys/consio.h (another new file). machine/console.h is still maintained for compatibility reasons.
- Kernel console selection/installation routines are fixed and slightly rebumped so that it should now be possible to switch between the interanl kernel console (sc or vt) and a remote kernel console (sio) again, as it was in 2.x, 3.0 and 3.1.
- Screen savers and splash screen decoders Because of the header file reorganization described above, screen savers and splash screen decoders are slightly modified. After this update, /sys/modules/syscons/saver.h is no longer necessary and is removed.
|
#
47640 |
|
31-May-1999 |
phk |
Simplify cdevsw registration.
The cdevsw_add() function now finds the major number(s) in the struct cdevsw passed to it. cdevsw_add_generic() is no longer needed, cdevsw_add() does the same thing.
cdevsw_add() will print an message if the d_maj field looks bogus.
Remove nblkdev and nchrdev variables. Most places they were used bogusly. Instead check a dev_t for validity by seeing if devsw() or bdevsw() returns NULL.
Move bdevsw() and devsw() functions to kern/kern_conf.c
Bump __FreeBSD_version to 400006
This commit removes: 72 bogus makedev() calls 26 bogus SYSINIT functions
if_xe.c bogusly accessed cdevsw[], author/maintainer please fix.
I4b and vinum not changed. Patches emailed to authors. LINT probably broken until they catch up.
|
#
47625 |
|
30-May-1999 |
phk |
This commit should be a extensive NO-OP:
Reformat and initialize correctly all "struct cdevsw".
Initialize the d_maj and d_bmaj fields.
The d_reset field was not removed, although it is never used.
I used a program to do most of this, so all the files now use the same consistent format. Please keep it that way.
Vinum and i4b not modified, patches emailed to respective authors.
|
#
46676 |
|
08-May-1999 |
phk |
I got tired of seeing all the cdevsw[major(foo)] all over the place.
Made a new (inline) function devsw(dev_t dev) and substituted it.
Changed to the BDEV variant to this format as well: bdevsw(dev_t dev)
DEVFS will eventually benefit from this change too.
|
#
46153 |
|
28-Apr-1999 |
dt |
s/static foo_devsw_installed = 0;/static int foo_devsw_installed;/. (Edited automatically)
|
#
46116 |
|
27-Apr-1999 |
phk |
Change suser_xxx() to suser() where it applies.
|
#
46112 |
|
27-Apr-1999 |
phk |
Suser() simplification:
1: s/suser/suser_xxx/
2: Add new function: suser(struct proc *), prototyped in <sys/proc.h>.
3: s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/
The remaining suser_xxx() calls will be scrutinized and dealt with later.
There may be some unneeded #include <sys/cred.h>, but they are left as an exercise for Bruce.
More changes to the suser() API will come along with the "jail" code.
|
#
42373 |
|
07-Jan-1999 |
yokota |
Remove a hard-coded table of kernel console I/O functions exported from sc, vt and sio drivers. Use instead a linker_set to collect them.
Staticize ??cngetc(), ??cnputc(), etc functions in sc and vt drivers. We must still have siocngetc() and siocnputc() as globals because they are directly referred to by i386-gdbstub.c :-(
Oked by: bde
|
#
41612 |
|
09-Dec-1998 |
eivind |
Get rid of CTLTYPE_OPAQUE in a SYSCTL_OPAQUE - it is added my the SYSCTL_OPAQUE macro.
|
#
38485 |
|
23-Aug-1998 |
bde |
Added D_TTY to the cdevswitch flags for all tty drivers. This is required for the Lite2 fix for always returning EIO in dead_read().
Cleaned up the cdevswitch initializers for all tty drivers.
Removed explicit calls to ttsetwater() from all (tty) drivers. ttsetwater() is now called centrally for opens, not just for parameter changes.
|
#
36735 |
|
07-Jun-1998 |
dfr |
This commit fixes various 64bit portability problems required for FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change.
The prototype FreeBSD/alpha machdep will follow in a couple of days time.
|
#
34924 |
|
28-Mar-1998 |
bde |
Moved some #includes from <sys/param.h> nearer to where they are actually used.
|
#
32726 |
|
24-Jan-1998 |
eivind |
Make all file-system (MFS, FFS, NFS, LFS, DEVFS) related option new-style.
This introduce an xxxFS_BOOT for each of the rootable filesystems. (Presently not required, but encouraged to allow a smooth move of option *FS to opt_dontuse.h later.)
LFS is temporarily disabled, and will be re-enabled tomorrow.
|
#
29368 |
|
14-Sep-1997 |
peter |
Update select -> poll in drivers.
|
#
27983 |
|
08-Aug-1997 |
julian |
Make a function static to quieten gcc
|
#
27982 |
|
08-Aug-1997 |
julian |
Clean up the console muting functionality. this has been in production now for a long time with no known effects.
|
#
27129 |
|
30-Jun-1997 |
bde |
Removed extra definition of constty. It is defined in subr_prf.c.
|
#
22975 |
|
22-Feb-1997 |
peter |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
21673 |
|
14-Jan-1997 |
jkh |
Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
19268 |
|
30-Oct-1996 |
julian |
if there is no console, cngetc should act like getc and return -1
make callers aware of this in those cases where it can occur.
|
#
18951 |
|
15-Oct-1996 |
julian |
Add support for embedded operation withou console The boot.c patch is applied only to teh JULIAN_HACK branch the muted console is controlable by a sysctl variable kern.consmute
|
#
18287 |
|
14-Sep-1996 |
bde |
Changed cncheckc() interface so that it is 8-bit clean - return -1 instead of 0 if there is no input.
|
#
15500 |
|
01-May-1996 |
bde |
Removed unused #include.
|
#
14880 |
|
28-Mar-1996 |
bde |
Undid the last 2 commits. Rev.1.43 reversed the changes in rev.1.42 and rev.1.44 was a subset of them.
|
#
14873 |
|
28-Mar-1996 |
scrappy |
Switched from using devfs_add_sw() to using devfs_add_swf()
Reviewed by: julian@freebsd.org
|
#
14846 |
|
27-Mar-1996 |
bde |
Fixed permissions of /devfs/*random.
Fixed group and permissions of /devfs/perfmon.
|
#
14845 |
|
27-Mar-1996 |
bde |
Fixed mode of /devfs/console.
|
#
12960 |
|
22-Dec-1995 |
phk |
Remove crufty "pg" function.
|
#
12813 |
|
13-Dec-1995 |
julian |
devsw tables are now arrays of POINTERS to struct [cb]devsw seems to work hre just fine though I can't check every file that changed due to limmited h/w, however I've checked enught to be petty happy withe hte code..
WARNING... struct lkm[mumble] has changed so it might be an idea to recompile any lkm related programs
|
#
12701 |
|
09-Dec-1995 |
phk |
Move sysctl machdep.consdev to cons.c
|
#
12678 |
|
08-Dec-1995 |
phk |
Julian forgot to make the *devsw structures static.
|
#
12675 |
|
08-Dec-1995 |
julian |
Pass 3 of the great devsw changes most devsw referenced functions are now static, as they are in the same file as their devsw structure. I've also added DEVFS support for nearly every device in the system, however many of the devices have 'incorrect' names under DEVFS because I couldn't quickly work out the correct naming conventions. (but devfs won't be coming on line for a month or so anyhow so that doesn't matter)
If you "OWN" a device which would normally have an entry in /dev then search for the devfs_add_devsw() entries and munge to make them right.. check out similar devices to see what I might have done in them in you can't see what's going on.. for a laugh compare conf.c conf.h defore and after... :) I have not doen DEVFS entries for any DISKSLICE devices yet as that will be a much more complicated job.. (pass 5 :)
pass 4 will be to make the devsw tables of type (cdevsw * ) rather than (cdevsw) seems to work here.. complaints to the usual places.. :)
|
#
12521 |
|
29-Nov-1995 |
julian |
If you're going to mechanically replicate something in 50 files it's best to not have a (compiles cleanly) typo in it! (sigh)
|
#
12517 |
|
29-Nov-1995 |
julian |
OK, that's it.. That's EVERY SINGLE driver that has an entry in conf.c.. my next trick will be to define cdevsw[] and bdevsw[] as empty arrays and remove all those DAMNED defines as well..
Each of these drivers has a SYSINIT linker set entry that comes in very early.. and asks teh driver to add it's own entry to the two devsw[] tables.
some slight reworking of the commits from yesterday (added the SYSINIT stuff and some usually wrong but token DEVFS entries to all these devices.
BTW does anyone know where the 'ata' entries in conf.c actually reside? seems we don't actually have a 'ataopen() etc...
If you want to add a new device in conf.c please make sure I know so I can keep it up to date too..
as before, this is all dependent on #if defined(JREMOD) (and #ifdef DEVFS in parts)
|
#
10666 |
|
10-Sep-1995 |
bde |
Make pcvt and syscons live in the same kernel. If both are enabled, then the first one in the config has priority. They can be switched using userconfig().
i386/i386/conf.c: Initialize the shared syscons/pcvt cdevsw entry to `nx'.
Add cdevsw registration functions.
Use devsw functions of the correct type if they exist.
i386/i386/cons.c: Add renamed syscons entry points to constab.
i386/i386/cons.h: Declare the renamed syscons entry points.
i386/i386/machdep.c: Repeat console initialization after userconfig() in case the current console has become wrong. This depends on cn functions not wiring down anything important.
sys/conf.h: Declare new functions.
i386/isa/isa.[ch]: Add a function to decide which display driver has priority. Should be done better.
i386/isa/syscons.c: Rename pccn* -> sccn*.
Initialize CRTC start address in case the previous driver has moved it.
i386/isa/syscons.c, i386/isa/pcvt/* Initialize the bogusly shared variable Crtat dynamically in case the stored value was changed by the previous driver.
Initialize cdevsw table from a template.
Don't grab the console if another display driver has priority.
i386/isa/syscons.h, i386/isa/pcvt/pcvt_hdr.h: Don't externally declare now-static cdevsw functions.
i386/isa/pcvt/pcvt_hdr.h: Set the sensitive hardware flag so that pcvt doesn't always have lower priority than syscons. This also fixes the "stupid" detection of the display after filling the display with text.
i386/isa/pcvt/pcvt_out.c: Don't be confused the off-screen cursor offset 0xffff set by syscons.
kern/subr_xxx.c: Add enough nxio/nodev/null devsw functions of the correct type for syscons and pcvt.
|
#
10665 |
|
10-Sep-1995 |
bde |
cons.c: Split off cdevsw initialization in cninit() into a new function cninit_finish() that isn't called until all hardware device drivers have been attached. The bdevsw entry of the driver for the physical console needs to be hooked after the physical driver has been attached in case the attachment modified the entry.
Rearrange cninit() to avoid changing cn_tab until the driver for the physical console has been initialized, so that the previous driver (if any) can be used for debugging.
Start removing half-baked lint support. bdevsw functions usually have unused args but /*ARGSUSED*/ was used for only about 5% of them.
cons.h: Declare cn_init_finish().
autoconf.c: Call cn_init_finish().
Start adding prototypes. Functions with bogus linkage (extern where static is probably should be static) are explicitly declared as extern so that the can be found easily (extern in a non-header is usually wrong).
All: Continue cleaning up init stuff: init functions shall be static; INITs should be at the start of files...
|
#
10653 |
|
09-Sep-1995 |
dg |
Fixed init functions argument type - caddr_t -> void *. Fixed a couple of compiler warnings.
|
#
10537 |
|
03-Sep-1995 |
julian |
devfs changes.. changes to allow devices that don't probe (e.g. /dev/mem) to create devfs entries this required giving 'configure' its own SYSINIT entry so we could duck in just before it with a DEVFS init and some device inits.. my devfs now looks like: ./misc ./misc/speaker ./misc/mem ./misc/kmem ./misc/null ./misc/zero ./misc/io ./misc/console ./misc/pcaudio ./misc/pcaudioctl ./disks ./disks/rfloppy ./disks/rfloppy/fd0.1440 ./disks/rfloppy/fd1.1200 ./disks/floppy ./disks/floppy/fd0.1440 ./disks/floppy/fd1.1200 also some sligt cleanups.. DEVFS needs a lot of work but I'm getting back to it..
|
#
9326 |
|
26-Jun-1995 |
bde |
Partially fix `sysctl machdep.console_device'. The fix will be complete when syscons stops mapping the console to minor MAXCONS. There is usually no corresponding device in /dev, and the correct device has minor 0.
cons.c: Initialize cn_tty properly, so that CPU_CONSDEV can work. Comment about too many variants of the console tty pointer.
machdep.c: Return device NODEV and not error EFAULT when there is no console device.
|
#
9217 |
|
14-Jun-1995 |
bde |
Output \n as \r\n, not as \n\r.
|
#
8876 |
|
30-May-1995 |
rgrimes |
Remove trailing whitespace.
|
#
8047 |
|
24-Apr-1995 |
bde |
Undo the move of `#include "sc.h"' etc. to cons.h. It broke anything that includes <machine/cons.h>.
|
#
8023 |
|
23-Apr-1995 |
bde |
Declare the console switch functions completely.
Move declarations of console functions to cons.h (they should be config(8)ed).
|
#
7680 |
|
08-Apr-1995 |
joerg |
Implement a simple hook (or hack?) to allow graphics device console drivers to protect DDB from being invoked while the console is in process-controlled (i.e., graphics) mode.
Implement the logic to use this hook from within pcvt. (I'm sure Søren will do the syscons part RSN).
I've still got one occasion where the system stalled, but my attempts to trigger the situation artificially resulted int the expected behaviour. It's hard to track bugs without the console and DDB available. :-/
|
#
7588 |
|
02-Apr-1995 |
joerg |
Attempt to fix the `you can log into console only once' problem (PR #179). The fix implements a ttyhalfclose() (sort of), resetting the session and pgrp pointers when the physical device is about to be closed.
Suggested by: bde
|
#
6731 |
|
26-Feb-1995 |
bde |
Eliminate my private type `bool_t'.
|
#
6712 |
|
25-Feb-1995 |
pst |
(a) remove the pointer to each driver's tty structure array from cdevsw (b) add a function callback vector to tty drivers that will return a pointer to a valid tty structure based upon a dev_t (c) make syscons structures the same size whether or not APM is enabled so utilities don't crash if NAPM changes (and make the damn kernel compile!) (d) rewrite /dev/snp ioctl interface so that it is device driver and i386 independant
|
#
5805 |
|
23-Jan-1995 |
dg |
Kill redundant declarations of d_open_t and d_close_t.
|
#
5764 |
|
21-Jan-1995 |
bde |
Keep track of open devices better to avoid closing the console device when the physical device is closed. Previously only the reverse case was handled. Abuse the cdevsw interface instead of the vfs interface to do this.
Remove unnecessary #includes.
|
#
5161 |
|
18-Dec-1994 |
joerg |
Ooops, i forgot one NVT > 0 in a previous commit. Now pcvt will also work as the system's console.
|
#
5160 |
|
18-Dec-1994 |
joerg |
Move the code providing the equivalent of ICRNL for console input from the device driver(s) to cons.c.
|
#
4031 |
|
31-Oct-1994 |
joerg |
Added hooks for an easy drop-in of the pcvt concole driver. Don't panic:-), this is simple stuff just doing exactly the same as for syscons. (files.i386 did already contain the necessary stuff.)
|
#
3728 |
|
19-Oct-1994 |
phk |
Peter Dufaults comconsole changes.
Submitted by: Peter Dufault
|
#
2423 |
|
31-Aug-1994 |
dg |
Conditionalized support for syscons as the console so that it can be made optional in the kernel config file.
Submitted by: John Hay
|
#
2415 |
|
30-Aug-1994 |
dg |
Cleaned up after Bruce: there were still some things that included com.h/lpa.h. Removed all vestiges of com/lpa out of conf.c and also fixed up the end of cdevsw/bdevsw to have "no" routines instead of a NULL pointer (suggested by someone a few weeks back).
|
#
2056 |
|
13-Aug-1994 |
wollman |
Change all #includes to follow the current Berkeley style. Some of these ``changes'' are actually not changes at all, but CVS sometimes has trouble telling the difference.
This also includes support for second-directory compiles. This is not quite complete yet, as `config' doesn't yet do the right thing. You can still make it work trivially, however, by doing the following:
rm /sys/compile mkdir /usr/obj/sys/compile ln -s M-. /sys/compile cd /sys/i386/conf config MYKERNEL cd ../../compile/MYKERNEL ln -s /sys @ rm machine ln -s @/i386/include machine make depend make
|
#
1549 |
|
25-May-1994 |
rgrimes |
The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.
Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman
|
#
1021 |
|
26-Jan-1994 |
dg |
Remove confusing and incorrect comment inherited from patchkit days.
|
#
1007 |
|
23-Jan-1994 |
dg |
Much better fix for the hanging console problem. This one actually works.
|
#
1005 |
|
23-Jan-1994 |
dg |
Backed out previous commit as it requires additional kludges to work completely, and it looks like syscons might solve the problem a different way (although what about serial consoles??).
|
#
1004 |
|
22-Jan-1994 |
dg |
Brute-force fix for the "hanging console" problem. Simply _don't_ call the device close routine. This works because the device close calls the line discipline close (which only flushes the output buffers) and the ttyclose() routine, which does little of nothing except screw with the session and process group fields (which is what was causing all the problems).
|
#
849 |
|
12-Dec-1993 |
dg |
1) Added proc file system from Paul Kranenburg with changes from John Dyson to make it reliably work under FreeBSD. 2) Added and enabled PROCFS in the GENERICxx and LINT kernels. 3) New execve() from me. Still work to be done here, but this version works well and is needed before other changes can be made. For a description of the design behind this, see freebsd-arch or ask me. 4) Rewrote stack fault code; made user stack VM grow as needed rather than all up front; improves performance a little and reduces process memory requirements. 5) Incorporated fix from Gene Stark to fault/wire a user page table page to fix a problem in copyout. This is a temporary fix and is not appropriate for pageable page tables. For a description of the problem, see Gene's post to the freebsd-hackers mailing list. 6) Tighten up vm_page struct to reduce memory requirements for it. ifdef pager page lock code as it's not being used currently. 7) Introduced new element to vmspace struct - vm_minsaddr; initial (minimum) stack address. Compliment to vm_maxsaddr. 8) Added a panic if the allocation for process u-pages fails. 9) Improve performance and accuracy of kernel profiling by putting in a little inline assembly instead of spl(). 10) Made serial console with sio driver work. Still has problems with serial input, but is almost useable. 11) Added -Bstatic to SYSTEM_LD in Makefile.i386 so that kernels will build properly with the new ld.
|
#
798 |
|
24-Nov-1993 |
wollman |
Make the LINT kernel compile with -W -Wreturn-type -Wcomment -Werror, and add same (sans -Werror) to Makefile for future compilations.
|
#
718 |
|
07-Nov-1993 |
wollman |
Made all header files idempotent and moved incorrect common data from headers into a related source file. (This is the only change to locore.s). Also fixed pg() to be properly declared and use stdargs.
|
#
629 |
|
18-Oct-1993 |
dg |
Yank out Christoph Robitschko's hack for the hanging console problem as it didn't actually fix it, and because starting the getty on /dev/console instead of /dev/vga is a good work-around.
|
#
620 |
|
16-Oct-1993 |
rgrimes |
Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some minor cleanup. Added $Id$ to files that did not have any version info, etc
|
#
301 |
|
20-Aug-1993 |
alm |
patch 1of2 to prevent kill -1 syslogd from hanging the console blindly applied patch provided by Christoph Robitschko: *** cons.c.orig Sat Jun 12 07:57:53 1993 --- cons.c Thu Aug 19 22:34:53 1993 *************** *** 56,61 **** --- 56,62 ---- #include "sys/tty.h" #include "sys/file.h" #include "sys/conf.h" + #include "sys/vnode.h"
#include "cons.h"
*************** *** 105,118 **** --- 106,130 ---- (*cp->cn_init)(cp); }
+ static struct vnode *cnopenvp = NULLVP; + + cnopen(dev, flag, mode, p) dev_t dev; int flag, mode; struct proc *p; { + int error; + + if (cn_tab == NULL) return (0); dev = cn_tab->cn_dev; + if (cnopenvp == NULLVP) + if ((error = getdevvp(dev, &cnopenvp, VCHR))) { + printf("cnopen: getdevvp returned %d !\n", error); + return(error); + } return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p)); }
*************** *** 121,130 **** int flag, mode; struct proc *p; { if (cn_tab == NULL) return (0); dev = cn_tab->cn_dev; ! return ((*cdevsw[major(dev)].d_close)(dev, flag, mode, p)); }
cnread(dev, uio, flag) --- 133,153 ---- int flag, mode; struct proc *p; { + int error; + + if (cn_tab == NULL) return (0); dev = cn_tab->cn_dev; ! if (vcount(cnopenvp) <= 1) ! error = (*cdevsw[major(dev)].d_close)(dev, flag, mode, p); ! else ! error = 0; ! if (error == 0) { ! vrele(cnopenvp); ! cnopenvp = NULLVP; ! return(error); ! } }
cnread(dev, uio, flag)
|
#
5 |
|
12-Jun-1993 |
rgrimes |
This commit was generated by cvs2svn to compensate for changes in r4, which included commits to RCS files with non-trunk default branches.
|
#
4 |
|
12-Jun-1993 |
rgrimes |
Initial import, 0.1 + pk 0.2.4-B1
|