steve [Thu, 4 Dec 1997 03:44:46 +0000 (03:44 +0000)]
Use 'proto <tcp|udp|all>' to select the protocol to display
in netstat-mode to avoid a conflict with tcp-mode. Also
while documenting this new feature in the manpage, fix a
minor display nit.
PR: 5159
Submitted by: Sergei Chechetkin <csl@whale.sunbay.crimea.ua>
imp [Thu, 4 Dec 1997 02:40:00 +0000 (02:40 +0000)]
The Libretto's BIOS doesn't set edx on the APM_GETPWSTATUS call, so
the barrery time remaining is reported as a random number. Initialize
edx to 0xffff in this case, and to 0 in all other cases. This change
should be benign on other machines.
Reviewed by: jdp
brian [Wed, 3 Dec 1997 23:28:02 +0000 (23:28 +0000)]
Fix the CCP Type field value for DEFLATE.
(I *really* meant to do this *before* committing the
deflate changes in the first place - oops).
Pppd is horribly broken in this respect - refer to the
ppp man page for details. Ppp *WON'T* negotiate deflate
with pppd by default - you must ``enable'' and ``accept''
``pppd-deflate'' in your config.
While I'm in there, update the cftypes in ccp.c so that
we recognise some more protocols (we don't actually do
anything with them - just send a REJ).
bde [Wed, 3 Dec 1997 16:46:21 +0000 (16:46 +0000)]
Fixed corruption of the per-group used directories count. It wasn't
decremented when directories were removed because rev.1.12 broke the
fixup of the i_mode of the inode being removed.
sef [Wed, 3 Dec 1997 02:45:50 +0000 (02:45 +0000)]
Work around for the Intel Pentium F00F bug; this is Intel's recommended
workaround. Note that this currently eats up two pages extra in the system;
this could be alleviated by aligning idt correctly, and then only dealing with
that (as opposed to the current method of allocated two pages and copying the
IDT table to that, and then setting that to be the IDT table).
nate [Tue, 2 Dec 1997 23:23:14 +0000 (23:23 +0000)]
- Remove the code that cleared out the registers (previously enabled by the
option PCIC_NOCLRREGS). This is now the default behavior since it's
apparently required for the CLPD6832, and doesn't negatively affect
any of my test machines.
Fix size of start queue to 32 entries, independent of the default
number of tags (NCR_SCSI_DFLT_TAGS), which is 0 in the FAILSAFE case.
This should fix the incompatibility between kernel and ncrcontrol,
which is the result of FAILSAFE being defined in the kernel config
file, invisible to the build of ncrcontrol. (See kern/5133, which
should be fixed by this change.)
wollman [Tue, 2 Dec 1997 21:46:58 +0000 (21:46 +0000)]
Now that it's built at the same time as its source, disable building 07.lpr
here. Hopefully this will set a trend. (What was I thinking when I set
this up the first time?)
nate [Tue, 2 Dec 1997 21:26:41 +0000 (21:26 +0000)]
- Framework for PCI/CardBus controllers running in PCMCIA emulation
mode. Currently, the only supported controller is the Cirrus Logic
PD6832, but others can be supported with docs on them.
wollman [Tue, 2 Dec 1997 20:46:22 +0000 (20:46 +0000)]
Mega lpd/lpd upgrade, part I:
- Get rid of a lot of the static variables which were shared by
many routines and programs in the suite.
- Create an abstract interface to the printcap database, so that
other retrieval and iteration mechanisms could be developed
(e.g., YP, Hesiod, or automatic retrieval from a trusted server).
- Give each capability a human-readable name in addition to the historic
two-character one.
- Otherwise generally clean up a lot of dark corners. Many still remain.
- When submitting jobs, use the official login name record (from getlogin())
if there is one, rather than reverse-mapping the uid.
peter [Tue, 2 Dec 1997 11:56:36 +0000 (11:56 +0000)]
"un-bump" the major number for libtermcap.so. This brings -current back
to the same version numbers as 2.2.x.
The problem with the way things were was:
- if you took a 2.2.x binary, it either wouldn't run on -current or
if you had the old -current version of libtermcap.so.2.1 then it could
potentially be a security problem.
- the alternative is to start a compat22 tree dist for -current with a
uuencoded binary. This makefile hack is less cost.
libtermcap.so.3.0 is provided via /usr/lib/compat to avoid transition
problems.
dyson [Mon, 1 Dec 1997 19:04:00 +0000 (19:04 +0000)]
Fix a serious problem during resizing buffers where old buffers
address space wasn't being properly reclaimed.
Submitted by: Bruce Evans <bde@freebsd.org>
dyson [Mon, 1 Dec 1997 18:41:08 +0000 (18:41 +0000)]
Fix a problem when creating a new kernel thread. In some cases, aio_read
or aio_write can return the pid of the new thread. This is due to the
way that return values from system calls being passed by side-effect in
the proc structure now. This commit fixes the problem with aio_read and
aio_write.
dyson [Mon, 1 Dec 1997 07:01:45 +0000 (07:01 +0000)]
Fix error handling for VCHR type I/O. Also, fix another spl problem, and
remove alot of overly verbose debugging statements.
ioproclist {
int aioprocflags; /* AIO proc flags */
TAILQ_ENTRY(aioproclist) list; /* List of processes */
struct proc *aioproc; /* The AIO thread */
TAILQ_HEAD (,aiocblist) jobtorun; /* suggested job to run */
};
/*
* data-structure for lio signal management
*/
struct aio_liojob {
int lioj_flags;
int lioj_buffer_count;
int lioj_buffer_finished_count;
int lioj_queue_count;
int lioj_queue_finished_count;
struct sigevent lioj_signal; /* signal on all I/O done */
TAILQ_ENTRY (aio_liojob) lioj_list;
struct kaioinfo *lioj_ki;
};
#define LIOJ_SIGNAL 0x1 /* signal on all done (lio) */
#define LIOJ_SIGNAL_POSTED 0x2 /* signal has been posted */
/*
* per process aio data structure
*/
struct kaioinfo {
int kaio_flags; /* per process kaio flags */
int kaio_maxactive_count; /* maximum number of AIOs */
int kaio_active_count; /* number of currently used AIOs */
int kaio_qallowed_count; /* maxiumu size of AIO queue */
int kaio_queue_count; /* size of AIO queue */
int kaio_ballowed_count; /* maximum number of buffers */
int kaio_queue_finished_count; /* number of daemon jobs finished */
int kaio_buffer_count; /* number of physio buffers */
int kaio_buffer_finished_count; /* count of I/O done */
struct proc *kaio_p; /* process that uses this kaio block */
TAILQ_HEAD (,aio_liojob) kaio_liojoblist; /* list of lio jobs */
TAILQ_HEAD (,aiocblist) kaio_jobqueue; /* job queue for process */
TAILQ_HEAD (,aiocblist) kaio_jobdone; /* done queue for process */
TAILQ_HEAD (,aiocblist) kaio_bufqueue; /* buffer job queue for process */
TAILQ_HEAD (,aiocblist) kaio_bufdone; /* buffer done queue for process */
};
#define KAIO_RUNDOWN 0x1 /* process is being run down */
#define KAIO_WAKEUP 0x2 /* wakeup process when there is a significant
event */
TAILQ_HEAD (,aioproclist) aio_freeproc, aio_activeproc;
TAILQ_HEAD(,aiocblist) aio_jobs; /* Async job list */
TAILQ_HEAD(,aiocblist) aio_bufjobs; /* Phys I/O job list */
TAILQ_HEAD(,aiocblist) aio_freejobs; /* Pool of free jobs */
static void aio_init_aioinfo(struct proc *p) ;
static void aio_onceonly(void *) ;
static int aio_free_entry(struct aiocblist *aiocbe);
static void aio_process(struct aiocblist *aiocbe);
static int aio_newproc(void) ;
static int aio_aqueue(struct proc *p, struct aiocb *job, int type) ;
static void aio_physwakeup(struct buf *bp);
static int aio_fphysio(struct proc *p, struct aiocblist *aiocbe, int type);
static int aio_qphysio(struct proc *p, struct aiocblist *iocb);
static void aio_daemon(void *uproc);
/*
* Init the per-process aioinfo structure.
* The aioinfo limits are set per-process for user limit (resource) management.
*/
void
aio_init_aioinfo(struct proc *p)
{
struct kaioinfo *ki;
if (p->p_aioinfo == NULL) {
ki = zalloc(kaio_zone);
p->p_aioinfo = ki
jmb [Mon, 1 Dec 1997 00:15:38 +0000 (00:15 +0000)]
improve anti-spam rulesets: check_relay, check_mail, check_rcpt.
break each ruleset into identified sections. (called groups).
note which groups can be reordered.
each group accepts and returns the same strings,
as much as possible.
reactivate Paul Vixie's RBL (in check_mail)
add rules to limit mail relaying to a list of hosts and domains
in the R class (check_rcpt, not active on hub.freebsd.org)
Submitted by: jmb
jmb [Sun, 30 Nov 1997 23:28:26 +0000 (23:28 +0000)]
improve anti-spam rulesets: check_relay, check_mail, check_rcpt.
break each ruleset into identified sections. (called groups).
note which groups can be reordered.
each group accepts and returns the same strings,
as much as possible.
reactivate Paul Vixie's RBL (in check_mail)
add rules to limit mail relaying to a list of hosts and domains
in the R class (check_rcpt, not active on hub.freebsd.org)
dyson [Sun, 30 Nov 1997 04:36:31 +0000 (04:36 +0000)]
Finish up the vast majority of the AIO/LIO functionality. Proper signal
support was missing in the previous version of the AIO code. More
tunables added, and very efficient support for VCHR files has been added.
Kernel threads are not used for VCHR files, all work for such files is
done for the requesting process directly. Some attempt has been made to
charge the requesting process for resource utilization, but more work
is needed. aio_fsync is still missing (but the original fsync system
call can be used for now.) aio_cancel is essentially a noop, but that
is okay per POSIX. More aio_cancel functionality can be added later,
if it is found to be needed.
The code has been implemented to support the POSIX spec 1003.1b
(formerly known as POSIX 1003.4 spec) features of the above. The
async I/O features are truly async, with the VCHR mode of operation
being essentially the same as physio (for appropriate files) for
maximum efficiency. This code also supports the signal capability,
is highly tunable, allowing management of resource usage, and
has been written to allow a per process usage quota.
Both the O'Reilly POSIX.4 book and the actual POSIX 1003.1b document
were the reference specs used. Any filedescriptor can be used with
these new system calls. I know of no exceptions where these
system calls will not work. (TTY's will also probably work.)
peter [Sat, 29 Nov 1997 11:30:57 +0000 (11:30 +0000)]
Work around the problems caused by calling issetugid() in libtermcap in
a similar way to libc. Sigh. This is not pretty but seems to work.
Somthing like this was needed in preference to bogusly bumping the major
library number here.
The syscall(SYS_issetugid) idea is originally Bruce's.
jdp [Sat, 29 Nov 1997 03:32:48 +0000 (03:32 +0000)]
Get rid of the dynamic linker's internal malloc package, and arrange
things so that it uses the same malloc as is used by the program
being executed. This has several advantages, the big one being
that you can now debug core dumps from dynamically linked programs
and get useful information out of them. Until now, that didn't
work. The internal malloc package placed the tables describing
the loaded shared libraries in a mapped region of high memory that
was not written to core files. Thus the debugger had no way of
determining what was loaded where in memory. Now that the dynamic
linker uses the application's malloc package (normally, but not
necessarily, the system malloc), its tables end up in the regular
heap area where they will be included in core dumps. The debugger
now works very well indeed, thank you very much.
Also ...
Bring the program a little closer to conformance with style(9).
There is still a long way to go.
Add minimal const correctness changes to get rid of compiler warnings
caused by the recent const changes in <dlfcn.h> and <link.h>.
Improve performance by eliminating redundant calculations of symbols'
hash values.
dyson [Sat, 29 Nov 1997 02:57:46 +0000 (02:57 +0000)]
Disable the VCHR optimization for AIO until I have implemented it. Just in
case anyone wants to play with the POSIX AIO/LIO stuff. (As it is, it should
work with ANY vnode, on UP systems only, for now.)
jdp [Fri, 28 Nov 1997 19:05:11 +0000 (19:05 +0000)]
Remove the prototypes for dlopen and related functions. They don't
belong here. The standard place for them is <dlfcn.h>, and there is
already another copy of the prototypes there.
jdp [Thu, 27 Nov 1997 21:26:08 +0000 (21:26 +0000)]
The previous revision (objfiles.c:1.2) fixed backtracing in the
absence of full debugging symbols for the kernel, but broke it for
application programs. This commit disables that change except when
kernel debugging mode is in effect.
This needs to go into -2.2 as well, after a suitable burn-in period.
markm [Tue, 25 Nov 1997 19:30:38 +0000 (19:30 +0000)]
From the author:
Here are the remanding changes required to support the Ensoniq
Soundscape using FreeBSD 3.0-current.
Notes:
1) ad1848_init already has code to detect if DMA_DUPLEX should
be set so it is not necessary (and is in fact a mistake) to
hard code setting it. Not all soundcards (i.e. the current
sscape driver) are capable of using DMA_DUPLEX.
2) The other changes are hopefully self explanatory. Feel free
to let me know if you need additional information.
nate [Tue, 25 Nov 1997 19:15:59 +0000 (19:15 +0000)]
- Don't worry about the previous state of the card (insert/removed), and
instead Do The Right Thing when the kernel states a card was
inserted/removed. This isn't a complete fix, but better than nothing.
julian [Tue, 25 Nov 1997 07:07:48 +0000 (07:07 +0000)]
Shift a few SYSINT() calls around.
this results in a few functions becoming static, and
the SYSINITs being close to the code they are related to.
setting up the dump device is with dumpsys() and
kicking off the scheduler is with the scheduler.
Mounting root is with the code that does it.
alex [Tue, 25 Nov 1997 01:29:16 +0000 (01:29 +0000)]
Modify the return values to comply with POSIX. Previously these
functions would return -1 and set errno to indicate the specific error.
POSIX requires that the functions return the error code as the return
value of the function instead.
bde [Mon, 24 Nov 1997 19:25:24 +0000 (19:25 +0000)]
Fixed missing #include of "opt_quota.h".
Sorted the functions into the same order as in ufs_vnops.c so that this
can be compared with the latter without getting 2627 lines of diffs.
Now we get only 1920 lines of diffs.