Commit Graph

1196 Commits

Author SHA1 Message Date
jhb
07bbce8416 Relocate sys/systm.h #include to quiet warning. 2000-09-11 05:19:37 +00:00
dfr
bd77d0334b Remove the manipulation of the Giant mutex from the interrupt entry
points. This can't work right anyway and needs to happen in the irq thread.
2000-09-10 15:39:23 +00:00
dfr
7b70f9c046 Fix printf warnings. 2000-09-10 13:32:39 +00:00
dfr
c601d6f575 Fix printf warnings in CTRx calls. 2000-09-10 13:04:20 +00:00
dfr
0aed0d505c Update to work with the current version of KTR. 2000-09-10 13:03:24 +00:00
jasone
e454be9f46 Style cleanups. No functional changes. 2000-09-09 23:18:48 +00:00
jasone
9d6c8a5123 Add file and line arguments to WITNESS_ENTER() and WITNESS_EXIT, since
__FILE__ and __LINE__ don't get expanded usefully in inline functions.

Add const to all witness*() arguments that are filenames.
2000-09-09 22:43:22 +00:00
alex
878835f148 LINT -> NOTES 2000-09-09 16:07:15 +00:00
jhb
3eeeb3783a Add missing \'s to multline macros used for assertions. 2000-09-09 00:14:27 +00:00
jasone
6c6d26fe03 Use inline functions instead of macros for mtx_enter(), mtx_try_enter(),
and mtx_exit().  This change tracks the i386 version.

Rename mtx_enter(), mtx_try_enter(), and mtx_exit() and wrap them with cpp
macros that expand to pass filename and line number information.  This is
necessary since we're using inline functions instead of macros now.

Add const to the filename pointers passed througout the mtx and witness
code.
2000-09-08 21:47:29 +00:00
jasone
f0159730c6 Only call kdb_trap() if the DDB config option is specified. 2000-09-08 09:51:16 +00:00
obrien
c6d630aab0 Minimal set of diffs from the i386 bits to the AlphaLinux.
Submitted by:	gallatin (content, minimization by me)
2000-09-07 06:12:41 +00:00
jasone
769e0f974d Major update to the way synchronization is done in the kernel. Highlights
include:

* Mutual exclusion is used instead of spl*().  See mutex(9).  (Note: The
  alpha port is still in transition and currently uses both.)

* Per-CPU idle processes.

* Interrupts are run in their own separate kernel threads and can be
  preempted (i386 only).

Partially contributed by:	BSDi (BSD/OS)
Submissions by (at least):	cp, dfr, dillon, grog, jake, jhb, sheldonh
2000-09-07 01:33:02 +00:00
jasone
acf1927de0 Add KTR, a facility that logs kernel events in order to to facilitate
debugging.

Acquired from:	BSDi (BSD/OS)
Submitted by:	dfr, grog, jake, jhb
2000-09-07 01:29:44 +00:00
obrien
eb510803eb Minimal set of diffs from the i386 bits to the AlphaLinux.
Submitted by:	gallatin (content, minimization by me)
2000-09-06 19:26:17 +00:00
obrien
007386c316 Add the AlphaLinux locore support.
Submitted by:	gallatin
2000-09-06 18:26:29 +00:00
peter
8a133f280c Revive these files in their new location. These were repo copied from
the old files before Marcel lost the history on them.

Requested by:	obrien
2000-09-06 17:59:21 +00:00
phk
6c07bccbf7 Introduce atomic_cmpset_int() and atomic_cmpset_long() from SMPng a
few hours earlier than the rest.

The next DEVFS commit needs these functions.

Alpha versions by: dfr
i386 versions by: jakeb

Approved by:    SMPng
2000-09-06 11:21:14 +00:00
marcel
745048429c When sigaltstack is called with a stack size that's not smaller
than LINUX_MINSIGSTKSZ but smaller than MINSIGSTKSZ, cheat and
pass MINSIGSTKSZ to the kernel. This is a workaround.

Submitted through: nate
2000-09-06 06:08:54 +00:00
wilko
e2584d8656 Add AS1200 (Tincup) to description 2000-09-04 20:47:35 +00:00
wilko
7be16cf6fe LINT -> NOTES 2000-09-04 20:45:15 +00:00
peter
c799b20bc3 Complain if we cannot find loader(8) metadata. 2000-09-03 04:13:03 +00:00
peter
49038354fc Find the module metadata before the console init rather than after.
This should repair consoles on the Alpha when using dynamic hints.
2000-09-03 04:07:41 +00:00
gallatin
87803cc21c A quick fix to get around a problem (described below) with cia based
machines.  The patch uses an existing global variable in place of the
newbus accessor to get at use_bwx.

This is a quick fix to get miatas booting again; somebody
with more newbus skills than I can muster will have to correct it.

Matt Jacob's description of the problem from the -alpha list:

The IVAR accessor stuff for pcib is incompletely specified for CIA. There's
only one accessor defined, and that's to get the BUS instance number.
<..>
The device methods that try and get at the use_bwx get overriden because
there's only one ivar for CIA's pcib, and that's for hose #, and it's always
zero.
2000-09-02 01:05:37 +00:00
gallatin
10142f72b7 Introduce explicit break statements in the various chipsets'
foo_pcib_[read|write]_config() functions rather than relying on
a break or return being in the CFG macro.

This fixes a panic later in the boot process on a UP1000.  From
inspection, it looks like this fixes a similar problem in the tsunami code.

Approved by: dfr
2000-08-31 16:19:27 +00:00
gallatin
c7b18640f7 fix a typo introduced by Doug's busspace changes that causes UP1000s to
crash very early in the boot process with a ksp not valid halt to the SRM.

submitted by: dfr
2000-08-31 16:11:20 +00:00
dfr
d6e66a5924 Remove a vestige of an older attempt at implementing this. 2000-08-29 08:50:17 +00:00
dfr
dd8b44b395 * Completely rewrite the alpha busspace to hide the implementation from
the drivers.
* Remove legacy inx/outx support from chipset and replace with macros
  which call busspace.
* Rework pci config accesses to route through the pcib device instead of
  calling a MD function directly.

With these changes it is possible to cleanly support machines which have
more than one independantly numbered PCI busses. As a bonus, the new
busspace implementation should be measurably faster than the old one.
2000-08-28 21:48:13 +00:00
mjacob
f948da2a6d *fix* commented out DEVFS 2000-08-27 21:57:31 +00:00
mjacob
0340948f7e add commented out DEVFS 2000-08-27 21:56:40 +00:00
marcel
cf2cbd89f2 Fix typo in license. 2000-08-25 07:32:24 +00:00
peter
2aff7a5e80 Comment out the static wiring of hints for GENERIC - the release process
now installs the hints file into /boot.
2000-08-24 18:56:54 +00:00
marcel
af4eb9aac2 Finish the Linuxulator MD/MI split.
In summary:
o  This file has been moved to sys/compat/linux,
o  Any MD syscalls in this file are moved to
   linux_machdep.c in sys/i386/linux,
o  Include directives, makefiles and config files
   have been updated.
2000-08-22 07:08:33 +00:00
marcel
29a36f349f Update include directives for Linuxulator headers after the
MD/MI split.
2000-08-22 05:57:55 +00:00
marcel
f0e7c766fc Collect the MD syscalls from /sys/compat/linux here. Since this
is a new file, fix most of the style bugs at the same time.
2000-08-22 02:24:02 +00:00
dwmalone
df0e25bf6c Replace the mbuf external reference counting code with something
that should be better.

The old code counted references to mbuf clusters by using the offset
of the cluster from the start of memory allocated for mbufs and
clusters as an index into an array of chars, which did the reference
counting. If the external storage was not a cluster then reference
counting had to be done by the code using that external storage.

NetBSD's system of linked lists of mbufs was cosidered, but Alfred
felt it would have locking issues when the kernel was made more
SMP friendly.

The system implimented uses a pool of unions to track external
storage. The union contains an int for counting the references and
a pointer for forming a free list. The reference counts are
incremented and decremented atomically and so should be SMP friendly.
This system can track reference counts for any sort of external
storage.

Access to the reference counting stuff is now through macros defined
in mbuf.h, so it should be easier to make changes to the system in
the future.

The possibility of storing the reference count in one of the
referencing mbufs was considered, but was rejected 'cos it would
often leave extra mbufs allocated. Storing the reference count in
the cluster was also considered, but because the external storage
may not be a cluster this isn't an option.

The size of the pool of reference counters is available in the
stats provided by "netstat -m".

PR:		19866
Submitted by:	Bosko Milekic <bmilekic@dsuper.net>
Reviewed by:	alfred (glanced at by others on -net)
2000-08-19 08:32:59 +00:00
peter
09f2cc343d Regen. (Fix SYS_exit) 2000-07-29 10:07:38 +00:00
peter
2acd9c62a7 Sigh. Fix SYS_exit problems. I misunderstood the significance of these
trailing options.
2000-07-29 10:05:25 +00:00
obrien
6b1c00b251 Move RAID controllers to the same position as in i386 GENERIC. 2000-07-29 02:13:42 +00:00
obrien
ff7cd1f740 Add the RAID controller that are known to work (or did on last test).
Reviewed by: 	msmith
2000-07-29 01:59:32 +00:00
obrien
bce65d4ea4 Comment out ncr' as sym' handles all that `ncr' does.
(only commented out to make it easy for people to find it that really
 wants it.)

Asked for by:	Peter
2000-07-29 01:31:09 +00:00
peter
564c126846 Regenerate with makesyscalls.sh 2000-07-29 00:21:50 +00:00
peter
b273253c9e Change the 'exit()' system call to 'sys_exit()'. This avoids overlapping
gcc's internal exit() prototypes and the (futile) hackery that we did to
try and avoid warnings.  main() was renamed for similar reasons.
Remove an exit related hack from makesyscalls.sh.
2000-07-29 00:16:28 +00:00
marcel
e68c0dd249 Remove the only use of SCARG and perform dead code elimination. 2000-07-27 01:22:24 +00:00
marcel
2f1d9ab5d2 Revert implementation of setfsuid and setfsgid due to security
issues.

Requested by: rwatson
Backed by: kris
2000-07-20 05:37:41 +00:00
obrien
5957e24e62 Remove an OBE comment. 2000-07-18 18:27:06 +00:00
obrien
12c4f3a19a KNF'ize. 2000-07-18 18:26:03 +00:00
mjacob
c6cca06ec0 oops- need reboot.h file 2000-07-18 16:47:49 +00:00
mjacob
526d04f70d Add case that David missed about setting RB_SERIAL. 2000-07-18 16:25:14 +00:00
obrien
559a513806 Set `boothowto' approapiately if our console is a serial one.
The "debug.boothowto" sysctl can now be used (as on the i386) to determine
if the console is a serial one.
2000-07-18 10:05:10 +00:00
marcel
38404736a1 Implement pread and pwrite.
PR: 17991
Submitted by: Geoffrey Speicher <geoff@caribbean.sea-incorporated.com>
2000-07-17 00:17:07 +00:00
marcel
53da591ed5 Add prototypes for linux_pread and linux_pwrite.
PR: 17991
Submitted by: Geoffrey Speicher <geoff@caribbean.sea-incorporated.com>
2000-07-17 00:13:38 +00:00
marcel
a29e7f6acf Implement setfsuid and setfsgid. Implementation derived from patch
in PR.

PR: 16993
Submitted by: Bjoern Groenvall <bg@sics.se>
2000-07-16 21:23:34 +00:00
obrien
a80eeb0fe3 Add SOFTUPDATES to GENERIC (BOOTMFS has this filtered out) 2000-07-15 06:06:42 +00:00
archie
7357df6b48 Make all Ethernet drivers attach using ether_ifattach() and detach using
ether_ifdetach().

The former consolidates the operations of if_attach(), ng_ether_attach(),
and bpfattach(). The latter consolidates the corresponding detach operations.

Reviewed by:	julian, freebsd-net
2000-07-13 22:54:34 +00:00
gallatin
fa3f7856a5 magnetic tape support
Submitted by: Clem Cole <clemc@mro.dec.com>
2000-07-13 20:04:21 +00:00
mjacob
6ebbbb92bd Handle (for now) trivial one level bridge case so we can get the
slot that the bridge happens to be in so we get interrupts working
on bridged cards.
2000-07-13 03:45:11 +00:00
mjacob
8e224e7a68 Removing commented out devices I added. 2000-07-10 15:18:20 +00:00
kris
5fae984c0b Don't call printf with no format string.
Reviewed by:	msmith
2000-07-10 05:51:56 +00:00
mjacob
4175feb6ac Do the same thing for TurboLaser that was done for Rawhide- make room
for secondary (bridged) PCI busses by making primary PCI instances
16 units apart.
2000-07-10 02:40:49 +00:00
mjacob
448fe174f0 Coordinate with change to mcpcia_pci.c- major primary busses on each
hose are 16 PCI instances apart. This allows us to recognize secondary
PCI busses (at least to a first level) until the pci infrastructure is
fixed.

Turn on support for secondary cycles, too.  Redo debug printouts.
2000-07-10 00:34:18 +00:00
mjacob
e2f854c9d6 Don't let the infrastructure assign the 'next' PCI bus for us.
Instead, for now (until we get a pci infrastructure cleanup),
assign the PCI bus number to be mcpcia bus instance << 4. This
is to allow secondary bridges some room to be recongnized on
4100 systems.
2000-07-10 00:32:02 +00:00
mjacob
c711d7f105 Add in the commented out SCSI device entries of
#device         ses             # SCSI Environmental Services (and SAF-TE)
#device         targ            # SCSI Target Mode Code
#device         targbh          # SCSI Target Mode Blackhole Device
#define         pt              # SCSI Processor Target Device

so that people know that they are there.
2000-07-08 07:05:06 +00:00
jhb
b6e74b58eb Support for unsigned integer and long sysctl variables. Update the
SYSCTL_LONG macro to be consistent with other integer sysctl variables
and require an initial value instead of assuming 0.  Update several
sysctl variables to use the unsigned types.

PR:		15251
Submitted by:	Kelly Yancey <kbyanc@posi.net>
2000-07-05 07:46:41 +00:00
phk
e5de271d47 Previous commit changing SYSCTL_HANDLER_ARGS violated KNF.
Pointed out by:	bde
2000-07-04 11:25:35 +00:00
phk
61ff05be25 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)
2000-07-03 09:35:31 +00:00
gallatin
11a7e21e9c remove breakage that snuck in with my last commit
pointed out by: peter
2000-06-29 02:26:48 +00:00
peter
358ae698cb Report the line number where gethints.pl does not understand something
in an old device line.
2000-06-26 09:08:23 +00:00
markm
40aa2a9253 Get the memory range stuff properly declared. 2000-06-25 21:07:43 +00:00
markm
f61a88a6a8 Replace variable removed by overly sharp South African panga. 2000-06-25 21:02:10 +00:00
markm
4e467adcf0 Sort out headers and silence warnings. 2000-06-25 20:56:21 +00:00
gallatin
86f27e74e5 - print out the correct cputype & string for unconfigured API systems
- print out the correct cputype for unsupported API systems
2000-06-25 20:41:49 +00:00
dfr
76f2431455 Remove offensive language. 2000-06-25 09:30:53 +00:00
dfr
2f65145586 Fix typo in comment. 2000-06-25 09:30:17 +00:00
markm
c740c026d9 Get the build bits right for the new Architecture Independant null- and
entropy drivers.
Reviewed by:	dfr(mostly)
2000-06-25 09:18:13 +00:00
markm
d3a6a89218 Strip out the machine-independant parts of the memory device.
/dev/(u)random, /dev/null, /dev/zero are all moving to machine-independant
drivers.
2000-06-25 09:03:20 +00:00
mjacob
4b888d0234 Fix the breakage that occurred when somebody didn't do a complete
checkin of the changes to kern_prot.c.
2000-06-23 22:44:04 +00:00
gallatin
286e52d9dd Add UP1000 to GENERIC 2000-06-19 21:55:42 +00:00
gallatin
e4cce617f4 unbreak kernels without UP1000 support 2000-06-19 21:49:47 +00:00
gallatin
293ce673c8 Add support for the Alpha Processor, Inc. UP1000 system.
Reviewed by: dfr
Thanks to:  Alpha Processor Inc. for supplying the hardware.
2000-06-19 21:15:45 +00:00
gallatin
ccfeb47d98 Support bounce buffers for ISA DMA on the alpha. This is required for the
irongate chipset (used in the UP1000) which does not support scatter/gather
DMA.  We'll still use scatter gather if the core logic chipset supports it.

Reviewed by: dfr
2000-06-19 18:41:27 +00:00
peter
61ad2eac93 Deal with quoted arguments. This hack parser uses whitespace to delimit
fields, not lex/yacc grammar so it is not an exact match but should be
close enough for most cases.
Deal with 'port?', 'irq?' style specifications.  These are parsed as
seperate values in lex/yacc in config(8) but tripped up this helper tool.
2000-06-17 20:10:55 +00:00
peter
9b7f685f77 Use while (<>) instead of while(<STDIN>) so that perl will automagically
deal with filename arguments.  It is amazing how much you forget over time.

Thanks to the people that reminded me this.  I knew there was an easy way
that didn't involve messing with $argv, filehandles, etc, but just could
not remember - all of my books are on the opposite side of the planet..
2000-06-17 19:06:13 +00:00
peter
98de8beb88 Print error messages to stderr, not stdout. 2000-06-14 02:45:11 +00:00
peter
647ef85d48 Borrow phk's axe and apply the next stage of config(8)'s evolution.
Use Warner Losh's "hint" driver to decode ascii strings to fill the
resource table at boot time.

config(8) no longer generates an ioconf.c table - ie: the configuration
no longer has to be compiled into the kernel.  You can reconfigure your
isa devices with the likes of this at loader(8) time:
  set hint.ed.0.port=0x320

userconfig will be rewritten to use this style interface one day and will
move to /boot/userconfig.4th or something like that.

It is still possible to statically compile in a set of hints into a kernel
if you do not wish to use loader(8).  See the "hints" directive in GENERIC
as an example.

All device wiring has been moved out of config(8).  There is a set of
helper scripts (see i386/conf/gethints.pl, and the same for alpha and pc98)
that extract the 'at isa? port foo irq bar' from the old files and produces
a hints file.  If you install this file as /boot/device.hints (and update
/boot/defaults/loader.conf - You can do a build/install in sys/boot) then
loader will load it automatically for you.  You can also compile in the
hints directly with:  hints "device.hints"  as well.

There are a few things that I'm not too happy with yet.  Under this scheme,
things like LINT would no longer be useful as "documentation" of settings.
I have renamed this file to 'NOTES' and stored the example hints strings
in it.  However... this is not something that config(8) understands, so
there is a script that extracts the build-specific data from the
documentation file (NOTES) to produce a LINT that can be config'ed and
built.  A stack of man4 pages will need updating. :-/

Also, since there is no longer a difference between 'device' and
'pseudo-device' I collapsed the two together, and the resulting 'device'
takes a 'number of units' for devices that still have it statically
allocated.  eg:  'device fe 4' will compile the fe driver with NFE set
to 4.  You can then set hints for 4 units (0 - 3).  Also note that
'device fe0' will be interpreted as "zero units of 'fe'" which would be
bad, so there is a config warning for this.  This is only needed for
old drivers that still have static limits on numbers of units.
All the statically limited drivers that I could find were marked.

Please exercise EXTREME CAUTION when transitioning!

Moral support by: phk, msmith, dfr, asmodai, imp, and others
2000-06-13 22:28:50 +00:00
mjacob
6c90966cad Sometimes there isn't an ISA bus configured. 2000-06-12 17:07:57 +00:00
alc
4fc801a857 cpu_fork(): Check "flags" before dereferencing "p2". Otherwise,
the call "vm_fork(p1, 0, flags);" early in fork1 can cause a kernel
panic.
2000-06-11 06:22:01 +00:00
obrien
71af5885a4 It is not necessary to wrap usage of $f28 with ".set noat/at" pairs.
A very bogus gas warning gave people the impression it was.  noat/at had
no useful affect here.
2000-06-10 20:42:27 +00:00
alex
39f3a53286 Avoid useless check against NULL, since we assign the checked value
to the var anyways.

Reviewed by:	bde
2000-06-10 19:48:19 +00:00
jhb
0dc3aa298e Enable USB in GENERIC on the Alpha.
Reviewed by:	deathly silence on -alpha
2000-06-08 01:17:51 +00:00
mjacob
bd3e8a23cb Do an explicit getenv on boot_verbose. Now that we have a real FICL boot
loader for alpha (Yay!) we still need to explicitly look for boot_verbose-
I assume because the boothowto flags aren't passed to us at boot like x86.

Do some minor cosmetics as well.
2000-06-07 17:36:17 +00:00
obrien
b0024b9d67 Consistently protect f28 with noat/at pairs.
This may be be necessary.  But we are taking the conservative approach at
the moment.

Reviewed by:	mjacob, gallatin
2000-06-05 23:05:22 +00:00
green
5f28a02db5 Change sl(4) configuration lines to reflect its new dynamic nature. 2000-05-30 23:01:37 +00:00
dfr
14048face6 Brucify the pmap_enter_temporary() changes. 2000-05-29 19:21:01 +00:00
gallatin
bb14193380 Part of AS2100 support that I neglected to commit last night
pointed out by: dfr
2000-05-28 17:52:08 +00:00
dfr
3d3263476e Add a new pmap entry point, pmap_enter_temporary() to be used during
dumps to create temporary page mappings. This replaces the use of CADDR1
which is fairly x86 specific.

Reviewed by: dillon
2000-05-28 15:49:55 +00:00
dfr
2281181f80 Add taskqueue system for easy-to-use SWIs among other things.
Reviewed by: arch
2000-05-28 15:45:30 +00:00
gallatin
8baedda6af Add AlphaServer 2000 (demi-sable), 2100 (sable), and 2100A (lynx) support.
Only PCI and on-board ISA peripherials are supported at this time.

This support has been only lightly tested due to a lack of response to my
call for testers on the freebsd-alpha mailing list.  It works quite well
on the one AS2100 on which it has been tested, but it may not work on
an AS2100A and should therefore be regarded as experimental.
2000-05-28 02:52:54 +00:00
gallatin
11726c37b1 Allow platform specific isa interrupt setup & teardown routines in
preparation for sable/lynx support
2000-05-28 02:40:53 +00:00
dfr
d9bdefd5d5 Use bus_space_handle_t instead of bus_space_tag_t to hold the result
from rman_get_bushandle().
2000-05-27 10:02:32 +00:00
jake
961b97d434 Back out the previous change to the queue(3) interface.
It was not discussed and should probably not happen.

Requested by:		msmith and others
2000-05-26 02:09:24 +00:00
jake
d93fbc9916 Change the way that the queue(3) structures are declared; don't assume that
the type argument to *_HEAD and *_ENTRY is a struct.

Suggested by:	phk
Reviewed by:	phk
Approved by:	mdodd
2000-05-23 20:41:01 +00:00
dan
4e9d022872 sysctl'ize ICMP_BANDLIM and ICMP_BANDLIM_SUPPRESS_OUTPUT.
Suggested by: des/nbm
2000-05-22 16:12:28 +00:00
peter
7ae48d4d37 Ack, I made a typo moments before commit. :-( 2000-05-21 13:00:21 +00:00
peter
ee5cd6988f Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly
to various pmap_*() functions instead of looking up the physical address
and passing that.  In many cases, the first thing the pmap code was doing
was going to a lot of trouble to get back the original vm_page_t, or
it's shadow pv_table entry.

Inspired by: John Dyson's 1998 patches.

Also:
Eliminate pv_table as a seperate thing and build it into a machine
dependent part of vm_page_t.  This eliminates having a seperate set of
structions that shadow each other in a 1:1 fashion that we often went to
a lot of trouble to translate from one to the other. (see above)
This happens to save 4 bytes of physical memory for each page in the
system.  (8 bytes on the Alpha).

Eliminate the use of the phys_avail[] array to determine if a page is
managed (ie: it has pv_entries etc).  Store this information in a flag.
Things like device_pager set it because they create vm_page_t's on the
fly that do not have pv_entries.  This makes it easier to "unmanage" a
page of physical memory (this will be taken advantage of in subsequent
commits).

Add a function to add a new page to the freelist.  This could be used
for reclaiming the previously wasted pages left over from preloaded
loader(8) files.

Reviewed by:	dillon
2000-05-21 12:50:18 +00:00
peter
7c263c5bb0 Eliminate a couple of evil common declarations. 2000-05-18 23:38:33 +00:00
dfr
503e2bb45e Port ppc driver to alpha.
Submitted by: Andrew M. Miklic <miklic@ibm.net>
2000-05-14 13:47:57 +00:00
archie
fa21035b4e Move code to handle BPF and bridging for incoming Ethernet packets out
of the individual drivers and into the common routine ether_input().
Also, remove the (incomplete) hack for matching ethernet headers
in the ip_fw code.

The good news: net result of 1016 lines removed, and this should make
bridging now work with *all* Ethernet drivers.

The bad news: it's nearly impossible to test every driver, especially
for bridging, and I was unable to get much testing help on the mailing
lists.

Reviewed by:	freebsd-net
2000-05-14 02:18:43 +00:00
dfr
d066b07315 Enable EISA interrupts if the mcpcia has an attached EISA bus. 2000-05-13 21:33:57 +00:00
hoek
cda3a229f2 Change to comments only: spell FreeBSD.org correctly 2000-05-13 11:21:19 +00:00
peter
9b48bc5807 Make /dev/[k]mem work after last commit. Transfers were being double
counted due to break/continue changes that were missed.  There are
still too many diffs relative to the i386 version.
2000-05-13 07:43:00 +00:00
msmith
349ad5ad96 Fix a leak where a scratch buffer was not freed when reading from the
/dev/?random devices.  This appears to have been missed when the code
was brought across from the i386.  (This should fix the "world build
hangs with everything waiting on 'temp' problem.)

Also add some iovec fixup code in the error path which seems to have
been similarly fixed.

There are a number of other differences between the i386 and alpha
version which have not been examined.  This code should still be
considered suspect.
2000-05-13 05:38:25 +00:00
gallatin
9da6b3add6 Some white-box (NT) systems have SRM which reports a systype that's
the negative of their blue-box (UNIX/OVMS) counterpart.  This was
causing us to panic early in the boot process because we weren't
expecting a negative index into the cpuinit[] array.

Obtained from: NetBSD
Reported by: Brett Bump <bbump@mail.enetis.net>
2000-05-11 13:31:05 +00:00
jhb
13d30a3d17 Finish moving all IEEE fp types to be the same on all arch's. 2000-05-10 19:41:40 +00:00
jhb
a1a769d93e Handle PCI devices that actually use an ISA IRQ for the cia and tsunami
chipsets.  An example of this is the USB controller on these chipsets.
With this, I can now use USB devices on the test Alpha I am borrowing at
the moment.

Reviewed by:	dfr, obrien
2000-05-10 18:54:28 +00:00
bde
9bb1617433 Regenerated (fixed the calculation of sy_nargs in sysent tables). 2000-05-09 21:52:02 +00:00
bde
27f17df741 Fixed the return type for exit() and the args struct tag several NOPROTO
syscalls including exit().  These entries were unused, so the bugs had no
effect, but the the args struct tag will be used to calculate sy_nargs
correctly.  exit() was wrong in all emulators.
2000-05-09 18:23:16 +00:00
obrien
db44ba3753 Change floating point exception type to match the i386 one.
Submitted by:	Mark Abene <phiber@radicalmedia.com>
2000-05-09 17:43:20 +00:00
mjacob
0c19638e64 Change references/comments about 'secondary' to reflect that while we'd
like to see the true SRM bus number be passed to us, instead, we get FreeBSD's
PCI bus instance number (Brzzt! Wrong Answer!).

Also, once we've seen the MCPCIA that has the EISA bus on it, call
dec_kn300_cons_init just before configuring devices on this bus.
2000-05-09 02:20:44 +00:00
mjacob
a96a0e9328 Unhide dec_kn300_cons_init and don't make it something we call early.
We'll call it later when, in the natural order of things, we configure
the MCPCIA that has the EISA bus that a serial console and/or VGA and/or
keyboard.
2000-05-09 02:19:04 +00:00
mjacob
2fde06de69 Fix DELAY function to use the RPCC cycle counter register. 2000-05-07 22:44:27 +00:00
mjacob
d26e40cb27 oops! final piece for Rawhides 2000-05-07 17:44:50 +00:00
ps
7227818397 Fix checksum calculations. This should fix the network problems
in current where all packets were returning with bad checksums.
(observed with netstat -s).

Reviewed by:	alfred
2000-05-07 16:41:15 +00:00
mjacob
03dfcaef1f Well, for now at least, we'll also have the 4100 also have a prom console. 2000-05-07 06:15:37 +00:00
mjacob
82aa1232c9 Add option for Rawhide (AlphaServer 4100 systems). 2000-05-07 05:50:27 +00:00
mjacob
3e0d930966 Pass the vector on thru instead of checking EISA/ISA ints. It turns
out the FreeBSD code did the right thing by starting EISA/ISA vectors
at 0x800.
2000-05-07 05:49:27 +00:00
mjacob
66bc1a23cf EISA/ISA memory space is any pa < 8MB. 2000-05-07 05:31:39 +00:00
mjacob
5d89c8e504 add in dec_kn300 (Alpha 4100) case 2000-05-07 05:00:26 +00:00
mjacob
e26de8fee3 add in stubbie mcpcia_pci that will parent PCI busses 2000-05-07 04:59:30 +00:00
mjacob
e2b6c95f29 Add in a first pass at Alpha 4100 (Rawhide) support. It doesn't quite
boot all the way yet, but it's darn close (blows up somewhere probing
the PS/2 mouse on the EISA bus).
2000-05-07 04:53:04 +00:00
jlemon
eb42c6c103 Make in_cksum() a macro call to in_cksum_skip(), since it provides the
same functionality.  Sharing code should help cache issues.

Remove in_cksum_partial, since its not being used, and we now have
a way to compute partial checksums on mbuf chains.
2000-05-06 18:18:32 +00:00
peter
fdc55cbab2 Add a version tag for the rtc port to depend on. 2000-05-06 01:36:04 +00:00
phk
36c3965ff9 Separate the struct bio related stuff out of <sys/buf.h> into
<sys/bio.h>.

<sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall
not be made a nested include according to bdes teachings on the
subject of nested includes.

Diskdrivers and similar stuff below specfs::strategy() should no
longer need to include <sys/buf.> unless they need caching of data.

Still a few bogus uses of struct buf to track down.

Repocopy by:    peter
2000-05-05 09:59:14 +00:00
phk
5ea491d29e remove unneeded #include <sys/buf.h> 2000-05-05 09:24:00 +00:00
peter
22f6069a2a Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
peter
1adeb7ffb1 Move the MSG* and SEM* options to opt_sysvipc.h
Remove evil allocation macros from machdep.c (why was that there???) and
use malloc() instead.
Move paramters out of param.h and into the code itself.
Move a bunch of internal definitions from public sys/*.h headers (without
#ifdef _KERNEL even) into the code itself.

I had hoped to make some of this more dynamic, but the cost of doing
wakeups on all sleeping processes on old arrays was too frightening.
The other possibility is to initialize on the first use, and allow
dynamic sysctl changes to parameters right until that point. That would
allow /etc/rc.sysctl to change SEM* and MSG* defaults as we presently
do with SHM*, but without the nightmare of changing a running system.
2000-05-01 13:33:56 +00:00
dfr
6ce4f5d79e Include <sys/random.h> for rand_initialize(). 2000-04-30 09:41:35 +00:00
obrien
3cd4c01f8e Hookup /dev/[u]random on the Alpha. 2000-04-28 17:18:48 +00:00
obrien
269551b3ef Initialise entropy pool.
Submitted by:	dfr
2000-04-28 17:17:41 +00:00
dillon
ce08285d5a Fix #! script exec under linux emulation. If a script is exec'd from a
program running under linux emulation, the script binary is checked for
    in /compat/linux first.  Without this patch the wrong script binary
    (i.e. the FreeBSD binary) will be run instead of the linux binary.
    For example, #!/bin/sh, thus breaking out of linux compatibility mode.

    This solves a number of problems people have had installing linux
    software on FreeBSD boxes.
2000-04-26 20:58:40 +00:00
mjacob
9139bffc24 Remove dummy read_random function since we now have a real one. 2000-04-26 06:49:39 +00:00
mjacob
45e79987b8 Well, make intrhand2_t take a void * arg then. Matches i386. 2000-04-26 06:48:54 +00:00
phk
75e82c815e Remove unneeded <sys/buf.h> includes.
Due to some interesting cpp tricks in lockmgr, the LINT kernel shrinks
by 924 bytes.
2000-04-18 15:15:39 +00:00
obrien
0eac6bbc67 Change our ELF binary branding to something more acceptable to the Binutils
maintainers.

After we established our branding method of writing upto 8 characters of
the OS name into the ELF header in the padding; the Binutils maintainers
and/or SCO (as USL) decided that instead the ELF header should grow two new
fields -- EI_OSABI and EI_ABIVERSION.  Each of these are an 8-bit unsigned
integer.  SCO has assigned official values for the EI_OSABI field.  In
addition to this, the Binutils maintainers and NetBSD decided that a better
ELF branding method was to include ABI information in a ".note" ELF
section.

With this set of changes, we will now create ELF binaries branded using
both "official" methods.  Due to the complexity of adding a section to a
binary, binaries branded with ``brandelf'' will only brand using the
EI_OSABI method.  Also due to the complexity of pulling a section out of an
ELF file vs. poking around in the ELF header, our image activator only
looks at the EI_OSABI header field.

Note that a new kernel can still properly load old binaries except for
Linux static binaries branded in our old method.

  *
  * For a short period of time, ``ld'' will also brand ELF binaries
  * using our old method.  This is so people can still use kernel.old
  * with a new world.  This support will be removed before 5.0-RELEASE,
  * and may not last anywhere upto the actual release.  My expiration
  * time for this is about 6mo.
  *
2000-04-18 02:39:26 +00:00
roger
50c4fe3c29 Add include files to alpha/include directory.
Eventually the i386/include and alpha/include header files for the bktr
driver will be moved to a common directory.
2000-04-15 08:07:56 +00:00
phk
aaaef0b54e Complete the bio/buf divorce for all code below devfs::strategy
Exceptions:
        Vinum untouched.  This means that it cannot be compiled.
        Greg Lehey is on the case.

        CCD not converted yet, casts to struct buf (still safe)

        atapi-cd casts to struct buf to examine B_PHYS
2000-04-15 05:54:02 +00:00
dfr
c9bf4be3c2 * Factor out the object system from new-bus so that it can be used by
non-device code.
* Re-implement the method dispatch to improve efficiency. The new system
  takes about 40ns for a method dispatch on a 300Mhz PII which is only
  10ns slower than a direct function call on the same hardware.

This changes the new-bus ABI slightly so make sure you re-compile any
driver modules which you use.
2000-04-08 14:17:18 +00:00
phk
8ee11d587f Move B_ERROR flag to b_ioflags and call it BIO_ERROR.
(Much of this done by script)

Move B_ORDERED flag to b_ioflags and call it BIO_ORDERED.

Move b_pblkno and b_iodone_chain to struct bio while we transition, they
will be obsoleted once bio structs chain/stack.

Add bio_queue field for struct bio aware disksort.

Address a lot of stylistic issues brought up by bde.
2000-04-02 15:24:56 +00:00
billf
4431d75b8d Avoid dividing by zero when beeping with a zero pitch. This was bad.
PR:		alpha/17637
Submitted by:	Bosko Milekic <bmilekic@dsuper.net>
Reported by:	Dennis Lindroos <lindroos@nls.fi>
2000-03-30 22:39:48 +00:00
peter
7f3e149212 Make sysv-style shared memory tuneable params fully runtime adjustable
via sysctl.  It's done pretty simply but it should be quite adequate.
Also move SHMMAXPGS from $machine/include/vmparam.h as the comments that
went with it were wrong... we don't allocate KVM space for the pages so
that comment is bogus..  The only practical limit is how much physical
ram you want to lock up as this stuff isn't paged out or swap backed.
2000-03-30 07:17:05 +00:00
peter
64a882c3a4 Try and make the Alpha kernel compile. There are still some loose ends
(eg: common declarations in includes that I think are causing gensetdefs
 warnings) that need to be tied up, but it compiles and runs.
2000-03-30 06:44:50 +00:00
dillon
689641c1ea Commit major SMP cleanups and move the BGL (big giant lock) in the
syscall path inward.  A system call may select whether it needs the MP
    lock or not (the default being that it does need it).

    A great deal of conditional SMP code for various deadended experiments
    has been removed.  'cil' and 'cml' have been removed entirely, and the
    locking around the cpl has been removed.  The conditional
    separately-locked fast-interrupt code has been removed, meaning that
    interrupts must hold the CPL now (but they pretty much had to anyway).
    Another reason for doing this is that the original separate-lock for
    interrupts just doesn't apply to the interrupt thread mechanism being
    contemplated.

    Modifications to the cpl may now ONLY occur while holding the MP
    lock.  For example, if an otherwise MP safe syscall needs to mess with
    the cpl, it must hold the MP lock for the duration and must (as usual)
    save/restore the cpl in a nested fashion.

    This is precursor work for the real meat coming later: avoiding having
    to hold the MP lock for common syscalls and I/O's and interrupt threads.
    It is expected that the spl mechanisms and new interrupt threading
    mechanisms will be able to run in tandem, allowing a slow piecemeal
    transition to occur.

    This patch should result in a moderate performance improvement due to
    the considerable amount of code that has been removed from the critical
    path, especially the simplification of the spl*() calls.  The real
    performance gains will come later.

Approved by: jkh
Reviewed by: current, bde (exception.s)
Some work taken from: luoqi's patch
2000-03-28 07:16:37 +00:00
dillon
8fb4c6b599 Commit the buffer cache cleanup patch to 4.x and 5.x. This patch fixes a
fragmentation problem due to geteblk() reserving too much space for the
    buffer and imposes a larger granularity (16K) on KVA reservations for
    the buffer cache to avoid fragmentation issues.  The buffer cache size
    calculations have been redone to simplify them (fewer defines, better
    comments, less chance of running out of KVA).

    The geteblk() fix solves a performance problem that DG was able reproduce.

    This patch does not completely fix the KVA fragmentation problems, but
    it goes a long way

Mostly Reviewed by: bde and others
Approved by: jkh
2000-03-27 21:29:33 +00:00
jlemon
0dcc5bc0d1 Add support for offloading IP/TCP/UDP checksums to NIC hardware which
supports them.
2000-03-27 19:14:27 +00:00
mjacob
dc393630a7 It's the parent that is a CPU node- not GBus itself. 2000-03-27 08:22:23 +00:00
mjacob
b17700648d complain when you do not create a TLSB node 2000-03-27 08:20:44 +00:00
bde
47452562a1 Fixed my breakage of SPLASSERT() in rev.1.15. There was a stray semicolon
after "if ()".
2000-03-23 18:46:44 +00:00
obrien
80e776a27e Switch to the new time counter code to follow the i386.
Assisted by:	phk
2000-03-23 10:22:52 +00:00
phk
a246e10f55 Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new
field in struct buf: b_iocmd.  The b_iocmd is enforced to have
exactly one bit set.

B_WRITE was bogusly defined as zero giving rise to obvious coding
mistakes.

Also eliminate the redundant struct buf flag B_CALL, it can just
as efficiently be done by comparing b_iodone to NULL.

Should you get a panic or drop into the debugger, complaining about
"b_iocmd", don't continue.  It is likely to write on your disk
where it should have been reading.

This change is a step in the direction towards a stackable BIO capability.

A lot of this patch were machine generated (Thanks to style(9) compliance!)

Vinum users:  Greg has not had time to test this yet, be careful.
2000-03-20 10:44:49 +00:00
ps
98dc3507a2 Make SPLASSERT sysctl and boot time tunable with kern.splassertmode.
The following values are understood:  0 (ignore), 1 (log), and 2
(panic).

The default value is 1.

Reviewed by:	peter
2000-03-19 14:55:42 +00:00
peter
04628b6a2c Add the COMPAT_OLDPCI option for the alpha so GENERIC compiles. 2000-03-19 13:57:09 +00:00
yokota
b91cbcb4f1 - Add Support for the following PS/2 mice:
- Microsoft IntelliMouse Explorer: 2 buttons on top, 2 side buttons
    and a wheel which also acts as the middle button.  The mouse is
    recognized as "IntelliMouse Explorer".
  - Genius NetScroll Optical: 2 buttons on top, 2 side buttons and a
    wheel which also acts as the middle button.  The mouse is recognized
    as "NetMouse/NetScroll Optical".
  - MouseSystems SmartScroll Mouse (OEM from Genius?): 3 buttons on top,
    1 side button and a wheel.  The mouse is recognized as Genius
    "NetScroll".
  - IBM ScrollPoint: 2 buttons on top and a stick between the buttons.
    The stick can perform "horizontal scroll" in W*ndows environment.
    The horizontal movement of the stick is detected.  It is currently
    mapped to the Z axis movement in the same way as the first wheel.
    The mouse is recognized as "MouseMan+", as it is considered to be
    a variation of MouseMan.
  - A4 Tech 4D and 4D+ mice. These mice have two wheels! The movement
    of the second wheel is reported as the Z axis movement in the
    same way as the first wheel. These mice are recognized as "4D
    Mouse" and "4D+ Mouse".
  - Tweak IntelliMouse support code a bit so that less-than-compatible
    wheel mice can work properly with the psm driver.
- Add driver configuration flags which correspond to the kernel
  options PSM_HOOKRESUME and PSM_RESETAFTERSUSPEND, so that we don't
  need to recompile the kernel when we need these functions.
- Properly keep track of the irq resource.
- Add a watchdog timer in case interrupts are lost (experimental).
- Add `detach' function (experimental).
2000-03-18 15:21:40 +00:00
mjacob
c8efd36b91 Alpha 8200: remove the SIMOS usage of zs_cnattach- we have a real
zs_cnattach now.
2000-03-18 08:04:23 +00:00
mjacob
15c42a3f3d Alpha 8200: Redo console attachment to be more 'normal'. Make sure the
halt function *stays* halted.
2000-03-18 08:03:48 +00:00
mjacob
acbe7de3e6 Alpha 8200: redo prom console code to be more up to date, etc. This
is now a functional PROM console (previously broken). Do the correct
promcnatach && CONS_DRIVER dance.
2000-03-18 08:02:35 +00:00
mjacob
4818c4633d Alpha 8200: add DEC_KN8AE (TurboLaser) platform option. 2000-03-18 08:01:34 +00:00
mjacob
eb7200c222 Alpha 8200: Add prototype from promcnattach. 2000-03-18 08:00:51 +00:00
mjacob
0ad839b4bf Alpha 8200: Add in a dummy child of dwlpx so that we can make the leap
from DWLPX to PCI space. Just a methods holder such that we have a parent
which is a "pcib" and we create a child which is a "pci". Add the appropriate
ivar code (which is for a hose #).
2000-03-18 08:00:13 +00:00
mjacob
39774c0cfa Alpha 8200: Do some compilation cleanup. Conditionalize some IDE stuff
based upon presence/absence of ISA (there is no ISA bus on an 8200- okay,
well, there *could* be one in a DWLPX tray, but we don't support it)).

Most importantly change the interrupt resource map to cover a whole 16
bits. The 8200 uses 16 bit interrupt vectors which we construct that
contain the I/O-board, hose, an pci slot in them, and then we write these
vectors into the appropriate DWLPX registers. At any rate, a flat array
of 64 'IRQs' isn't enough.
2000-03-18 07:57:58 +00:00
mjacob
3e368a3368 Alpha 8200: Reinsert licence from NetBSD that should have been there
to begin with. Redo newbus attachment code so that all the DMA mapping
and further pci attachment is done right. Insert config space functions
(jeez- how do you do type 1 cycles?). Do the interrupt setups, etc.
Basically, this is the core I/O module for 8200s, even though logically
it's the 3rd level down from the nominal principle backplane bus
(turbolaser). Still to be done here: S/G code isn't done yet, so we
better live with 2GB or less primary memory.
2000-03-18 07:54:11 +00:00
mjacob
0f58b4a728 Alpha 8200: Remove clause 3 of licence. Clean up code slightly. 2000-03-18 07:50:58 +00:00
mjacob
47eb9b40b9 Alpha 8200: Remove clause 3 of licence. Redo KFTXX bus attachment
code (merge in progress made in NetBSD since the initial import to
FreeBSD). Create dwlpx as the child device. Of course, if we had
more h/w and time, we could find out whether the child device was
a FutureBus module, etc...Anyone ever actually seen one?
2000-03-18 07:49:53 +00:00
mjacob
698a74f5c8 Alpha 8200: Remove clause 3 of licence and and some KFTXX defines. 2000-03-18 07:48:15 +00:00
mjacob
d9802b7c62 Alpha 8200: minor formatting tweaks; removal of clause 3 of licence. 2000-03-18 07:46:34 +00:00
mjacob
a3bf492b1a Alpha 8200: Rework to get working properly with real h/w. This isn't a
clean MI/MD driver, but it *does* actually work at this time. Updated
to use new make_dev stuff. A CONS_DRIVER declaration is also put in
so that this can be the real console for the 8200s.
2000-03-18 07:46:05 +00:00
mjacob
f6538420c6 Alpha 8200: Ooops on last delta- real changes include redoing bus attachment
code and interrupt mapping code.
2000-03-18 07:44:18 +00:00
mjacob
1de0f61bdd Alpha 8200: Some minor formatting tweaks and removal of clause 3 of licence. 2000-03-18 07:42:13 +00:00
mjacob
0b099e7dbd Alpha 8200: add a dummy driver for TLSB CPU nodes. Not so dummy, actually,
as you have to hook a GBus into it.
2000-03-18 07:40:17 +00:00
mjacob
b3742ecec0 Alpha 8200: Add in variables and defines for DWLPX PCI controllers. 2000-03-18 07:30:06 +00:00
mjacob
5ae2a3d0d5 Alpha8200: Update this stub memory board driver for using newbus. 2000-03-18 07:28:27 +00:00
phk
6b3385b773 Eliminate the undocumented, experimental, non-delivering and highly
dangerous MAX_PERF option.
2000-03-16 08:51:55 +00:00
nsayer
2b0ea40f68 Fix some style bugs. The long line is in a chunk of code that's
being rewritten, though.

Submitted by:	bde
2000-03-13 15:27:19 +00:00
phk
be2ec35ee6 Remove #ifdef UVM stuff which will never be relevant. 2000-03-13 11:12:30 +00:00
phk
8e89e2d03f Stop isadma from abusing the B_READ, B_RAW and B_WRITE flags.
Define ISADMA_{READ,WRITE,RAW} macros with the same numeric
values as the B_{READ,WRITE,RAW} and use them instead throughout.
2000-03-13 10:19:32 +00:00
nsayer
1ed48e03ed Implement Linux BLKGETSIZE ioctl, and open the door to implementing
other BLK.* ioctls should the desire arize.

Approved by:	jkh (via dufault)
2000-03-09 15:14:14 +00:00
dufault
705c38904d I applied the wrong patch set. Back out anything associated
with the known bogus currtpriority.  This undoes the previous changes to
sys/i386/i386/trap.c, sys/alpha/alpha/trap.c, sys/sys/systm.h

Now we have the patch set approved by bde.

Approved by:	bde
2000-03-02 22:03:49 +00:00
dufault
0bdb67cb26 Patches that eliminate extra context switches in FIFO case.
Fixes p1003_1b regression test in the simple case of no RR and
FIFO processes competing.

Reviewed by:	jkh, bde
2000-03-02 16:20:07 +00:00
dfr
ef6ca25ea6 * Fix the memory probing code so that it sees all memory clusters, not
just the first one.
* Don't reserve extra memory for the prom console unless the platform
  actually uses it.
* Fix some historical confusion and a minor bug in the message buffer
  initialisation.

Submitted by: gallatin for the prom console part
Approved by: jkh
2000-02-29 08:48:10 +00:00
green
5d3f60ab1a Do some cleanups of the IPv6 stuff. This is a non-functional change.
Approved by:	jkh
2000-02-27 07:35:42 +00:00
jkh
dd779457c8 Enable IPv6 options 2000-02-26 22:13:21 +00:00
jdp
d28a31c220 Fix two bugs in the fault handler for copy{in,out} and friends.
First, it was failing to reset the PCB's pcb_onfault member to NULL.
Under some really obscure circumstances this might cause a wild jump
within the kernel when a panic would otherwise occur.  Second, the
handler was loading the GP register needlessly and with an incorrect
value.

Reviewed by:	Doug Rabson <dfr>
Approved by:	Jordan Hubbard <jkh>
2000-02-25 03:26:10 +00:00
sos
6feaaed878 Update the ata driver to take more advantage of newbus, this
was needed to make attach/detach of devices work, which is
needed for the PCCARD support.
(PCCARD support is still not working though, more to come on that)

Support the CMD646 chip which is used on many alphas, sadly only
in WDMA2 mode, as the silicon is broken beyond belief for UDMA modes.

Lots of cosmetic fixes here and there.

Sorry for the size of this megapatchfromhell but it was not
possible otherwise...

newbus patches based on work from: dfr (Doug Rabson)
2000-02-18 20:57:33 +00:00
bde
170be2ce12 Don't include <machine/ipl.h> in <sys/systm.h> in the i386 case. This
fixes some namespace pollution in general and breakage of modules that
aren't in the sys tree in particular (<machine/ipl.h> includes further
headers that aren't installed under /usr/include).

Reimplemented SPLASSERT() so that it is more machine independent and
less bloated and doesn't require the <machine/ipl.h> include spam.
In particular, don't assume that `cpl' can be printed using %08x
format.  The alpha arch doesn't even have `cpl'.  SPLASSERT() was
harmless on alphas because it isn't actually used.
2000-02-17 18:37:45 +00:00
gallatin
5bbce83cb7 o Wilko Bulte has tested our AlphaServer 1000A ("Noritake") support
code & it survives a buildworld.  So remove the dire warnings about
  Noritake support being untested.

o Remove a disconserting printf() left over from NetBSD

Approved by: 	jkh
2000-02-15 18:47:51 +00:00
peter
cd600f27a0 Oops, forgot this from the previous commit. Remove obsolete #ifdef ISO.
Approved by:	jkh
2000-02-13 03:55:16 +00:00
peter
a5441090de Clean up some loose ends in the network code, including the X.25 and ISO
#ifdefs.  Clean out unused netisr's and leftover netisr linker set gunk.
Tested on x86 and alpha, including world.

Approved by:	jkh
2000-02-13 03:32:07 +00:00
dfr
69be10ec73 Add functions which allow i/o memory to be accessed without forcing a
memory barrier (needed for XFree86 4.0).

Approved by: jkh
2000-02-12 14:57:01 +00:00
jkh
df484c9af9 Clean up POSIX options, syncronize generics. 2000-02-04 07:02:53 +00:00
peter
c4b6cd7f5c Remove 'conflicts' token - it has been effectively doing absolutely
nothing for quite some time.  The only thing that cared was userconfig,
but it was for one invisible device so we never saw it's effects.
2000-01-29 18:07:07 +00:00
mjacob
1428bfa051 update copyright 2000-01-29 17:23:41 +00:00
mjacob
eb4cc7eefa Wrong patch had been applied. 2000-01-29 16:57:03 +00:00
mjacob
db5f0c8dcf Update copyright and pull some newer definitions from NetBSD version. 2000-01-29 16:41:08 +00:00
mjacob
32980fbceb Put tslb_device structure in this file. Put a pointer to to primary
CPU's structure.
2000-01-29 16:40:17 +00:00
mjacob
c9c14d15b4 Clean up some compilation warnings and errors. 2000-01-29 16:39:21 +00:00
peter
f27f68a3d1 Regen after pointing to the real setres[ug]id(). Remove dummy function.
(Note: getres[ug]id is still a dummy as it returns via pointers to a
 different sized integer and does need real wrappers.)
2000-01-29 12:45:36 +00:00
peter
ddc73d8c39 Use the real setres[ug]id(2) rather than dummy stubs. Newer glibc's
call this.
2000-01-29 12:43:29 +00:00
gallatin
d609003da5 changes to osf1_wait4()
- only allocate rusage struct when caller wants rusage info
- fix a stupid paren mismatch bug that was causing EPERM to get returned
  to callers rather then ECHILD
2000-01-29 06:31:27 +00:00
imp
9d11326d86 Mitigate the stream.c attacks
o Drop all broadcast and multicast source addresses in tcp_input.
o Enable ICMP_BANDLIM in GENERIC.
o Change default to 200/s from 100/s.  This will still stop the attack, but
  is conservative enough to do this close to code freeze.

This is not the optimal patch for the problem, but is likely the least
intrusive patch that can be made for this.

Obtained from: Don Lewis and Matt Dillon.
Reviewed by: freebsd-security
2000-01-28 06:13:09 +00:00
peter
148cc5b79c Remove a no-op "port ?" declaration. 2000-01-24 08:51:16 +00:00
peter
e33b0631fe Update GENERIC/SIMOS to leave out the useless trailing digit in pci
and other unwired devices.
2000-01-23 12:22:25 +00:00
wilko
13ab50b3d1 updated comments 2000-01-21 20:19:18 +00:00
gallatin
e5fa3c588c Make devices behind PPBs work on DS10s (and any other single pchip tsunamis)
I was wagering on DEC being elegant & numbering PCI buses normally on
machines with one pchip.  It looks like they went with consistent -- buses
behind ppbs begin with bus 2.
2000-01-20 16:49:18 +00:00
mjacob
cf6baaf862 Fix breakage from last commit- macro was broken. I appreciate the
committer's fixing things for alpha, but I sure wish they could
have compiled on one!
2000-01-16 19:02:29 +00:00
wilko
4d73c6b7b1 Removed outdated comment on experimental nature of ata. Added comment to esp 2000-01-16 18:46:21 +00:00
wilko
a799895a49 Correct comments / point to right LINT file (./LINT does not exist for Alpha) 2000-01-16 12:39:24 +00:00
gallatin
e9bf4a720b The kernel side of per-process unaligned access control (printing, fixing &
delivering SIGBUS).  This will allow a non-superuser to control unaligned
access behaviour on a per-process basis once a userland control program
(uac) is written.

Reviewed by: obrien
Tested by:   obrien
2000-01-16 07:07:33 +00:00
jmb
23e040daad Add SPLASSERT() macro. SPLASSERT() compiles to a no-op
unless both "option INVARIANTS" and "options INVARIANT_SUPPORT"
        are defined in the kernel's config(8) file.

        SPLASSERT(expression, msg) used KASSERT to check that the
        expression is true, panic()ing the kernel otherwise.

Approved by: jkh
Reviewed by: jdp, dfr, phk, eivind and green
2000-01-16 02:10:21 +00:00
bde
14487c9009 Don't clobber the sources when plain "make" is run. Just print a message
as in all other Makefiles that create syscall files.

Fixed some style bugs.
2000-01-15 19:40:08 +00:00
wpaul
25bfa75395 Add device driver support for USB ethernet adapters based on the CATC
USB-EL1202A chipset. Between this and the other two drivers, we should
have support for pretty much every USB ethernet adapter on the market.
The only other USB chip that I know of is the SMC USB97C196, and right
now I don't know of any adapters that use it (including the ones made
by SMC :/ ).

Note that the CATC chip supports a nifty feature: read and write combining.
This allows multiple ethernet packets to be transfered in a single USB
bulk in/out transaction. However I'm again having trouble with large
bulk in transfers like I did with the ADMtek chip, which leads me to
believe that our USB stack needs some work before we can really make
use of this feature. When/if things improve, I intend to revisit the
aue and cue drivers. For now, I've lost enough sanity points.
2000-01-14 03:14:49 +00:00
obrien
7bec37caf3 Sort. 2000-01-12 02:30:42 +00:00
yokota
715966bf8a 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
2000-01-11 14:54:01 +00:00
marcel
92c098293e Update syscalls to Linux kernel 2.3.38. These syscalls are
implemented as dummies to ease problem solving.
2000-01-10 22:19:06 +00:00
marcel
3814a8bd83 Update the syscalls to Linux kernel 2.3.38. 2000-01-10 22:16:35 +00:00
bde
048fce75c0 Fixed bounds checking of unit number in promopen(). Minor numbers can
be negative.
2000-01-09 16:24:55 +00:00
peter
e826bee2b9 Put on my asbestos suit and move $mach/conf/*.$mach to conf/*.$mach as
hinted at in the previous config(8) commits.  I've spoken about this with
a few people and after the initial suprise wore off they thought it wasn't
a bad idea.  The upshot of it is that all the files*, Makefile*, options*
files are all right next to each other in the hope that people making
changes to one set will remember the others.

Note, config(8) looks to sys/conf first, and falls back to sys/$mach/conf
still, so this doesn't stop people working in subdirs for new platforms.
But once it's in the tree it can be moved next to the other files so that
the non-i386 platforms are (hopefully) treated a little better than as if
they were "second class" ports.

This does not change any user editable files.  the config program is
still run in the same directory as before, the per-platform files
(GENERIC, LINT etc) are still in the same place.
2000-01-09 15:29:10 +00:00
kato
8dcdc1434d Synced with sys/i386/conf/Makefile.i386 (MACHINE -> MACHINE_ARCH).
Pointed out by:	peter
2000-01-09 14:56:07 +00:00
peter
3dc75ce0ff Bump configversion. The controller/device changes are upwards but not
downwards compatable.  If you try and config a s/controller/device/ kernel
with an old config(8), the results will be less than satisfactory.
2000-01-09 07:10:27 +00:00
bde
79cf6b7201 Include <stddef.h> here so that <sys/assym.h> can be unpolluted.
Include <sys/param.h> before <sys/assym.h> in case any of the magic
in the former is ever needed in the latter.
2000-01-08 19:53:18 +00:00
peter
914c86f25f Further sync Alpha and i386 Makefiles. Remove KERNFORMAT = elf stuff as
it's always true on these platforms (and is likely to be on others as
well since loader is the one that is configured for whatever the boot
requirements are)
2000-01-08 17:31:35 +00:00
marcel
7aebc62b33 Sync with i386
\begin{quote}
Compile genassym.c with ordinary ${CFLAGS}.  The (small) needs for
${GEN_CFLAGS} and -U_KERNEL became negative when all all the
genassym.c's were converted to be cross-built.

Makefile.*:
- Cleanups associated with the old genassym.
- Fixed deprecated spelling of ${.IMPSRC} as "$<".
\end{quote}

Submitted by: bde
2000-01-08 16:43:46 +00:00
peter
1b479380dd s/controller/device/ as per config(8) 2000-01-08 16:03:57 +00:00
marcel
094d031ba0 Use genassym(1). 2000-01-07 14:58:47 +00:00
peter
60cca837b4 Revert back all the way to 1.11 - the problem was that Makefile.alpha was
out of sync.
2000-01-07 05:32:08 +00:00
peter
b06ae99df1 Bring the Alpha and x86 Makefiles closer together. 2000-01-07 05:12:12 +00:00
msmith
34d480a4de Don't include <sys/systm.h>. It doesn't do anything, and with recent
changes it breaks building genassym.
2000-01-07 00:38:02 +00:00
peter
65fe2b0cb9 Missed s/KERNEL/_KERNEL/ here.. *blush*.
Submitted by:	bde
2000-01-06 13:14:51 +00:00
gallatin
c00c4144da implement OSF_GET_MAX_UPROCS portion of osf1_getsysinfo() for AT&T ksh 2000-01-06 02:37:45 +00:00
gallatin
2e5d302c12 Shutup complaints about unimplemented SVR4 ioctls 2000-01-06 02:35:44 +00:00
wpaul
a0156fbe84 Add device driver support for USB ethernet adapters based on the
Kawasaki LSI KL5KUSB101B chip, including the LinkSys USB10T, the
Entrega NET-USB-E45, the Peracom USB Ethernet Adapter, the 3Com
3c19250 and the ADS Technologies USB-10BT. This device is 10mbs
half-duplex only, so there's miibus or ifmedia support. This device
also requires firmware to be loaded into it, however KLSI allows
redistribution of the firmware images (I specifically asked about
this; they said it was ok).

Special thanks to Annelise Anderson for getting me in touch with
KLSI (eventually) and thanks to KLSI for providing the necessary
programming info.

Highlights:
- Add driver files to /sys/dev/usb
- update usbdevs and regenerate attendate files
- update usb_quirks.c
- Update HARDWARE.TXT and RELNOTES.TXT for i386 and alpha
- Update LINT, GENERIC and others for i386, alpha and pc98
- Add man page
- Add module
- Update sysinstall and userconfig.c
2000-01-05 04:27:24 +00:00
mjacob
a8574b3888 Per BDE- make this more like the i386 code in that, as per the comment,
the simple calculation is good enough.
Submitted by:	bde@freebsd.org
2000-01-04 11:30:01 +00:00
mjacob
3ada76392a add wx0 driver 2000-01-04 11:17:35 +00:00
mjacob
bd182639a3 fix leap year calculation 2000-01-04 03:27:04 +00:00
marcel
80b06aacc8 Make offsetof equivalent with <stddef.h>. This paves the way for
further enhancements/reorganisations.

Discussed with: bde
2000-01-03 16:49:39 +00:00
mjacob
1c3f382986 untangle some includes and clean up for compilation cleanliness. 2000-01-03 09:36:55 +00:00
peter
15b9bcb121 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 04:46:21 +00:00
wpaul
b39a79861d This commit adds device driver support for the ADMtek AN986 Pegasus
USB ethernet chip. Adapters that use this chip include the LinkSys
USB100TX. There are a few others, but I'm not certain of their
availability in the U.S. I used an ADMtek eval board for development.
Note that while the ADMtek chip is a 100Mbps device, you can't really
get 100Mbps speeds over USB. Regardless, this driver uses miibus to
allow speed and duplex mode selection as well as autonegotiation.
Building and kldloading the driver as a module is also supported.

Note that in order to make this driver work, I had to make what some
may consider an ugly hack to sys/dev/usb/usbdi.c. The usbd_transfer()
function will use tsleep() for synchronous transfers that don't complete
right away. This is a problem since there are times when we need to
do sync transfers from an interrupt context (i.e. when reading registers
from the MAC via the control endpoint), where tsleep() us a no-no.
My hack allows the driver to have the code poll for transfer completion
subject to the xfer->timeout timeout rather that calling tsleep().
This hack is controlled by a quirk entry and is only enabled for the
ADMtek device.

Now, I'm sure there are a few of you out there ready to jump on me
and suggest some other approach that doesn't involve a busy wait. The
only solution that might work is to handle the interrupts in a kernel
thread, where you may have something resembling a process context that
makes it okay to tsleep(). This is lovely, except we don't have any
mechanism like that now, and I'm not about to implement such a thing
myself since it's beyond the scope of driver development. (Translation:
I'll be damned if I know how to do it.) If FreeBSD ever aquires such
a mechanism, I'll be glad to revisit the driver to take advantage of
it. In the meantime, I settled for what I perceived to be the solution
that involved the least amount of code changes. In general, the hit
is pretty light.

Also note that my only USB test box has a UHCI controller: I haven't
I don't have a machine with an OHCI controller available.

Highlights:

- Updated usb_quirks.* to add UQ_NO_TSLEEP quirk for ADMtek part.
- Updated usbdevs and regenerated generated files
- Updated HARDWARE.TXT and RELNOTES.TXT files
- Updated sysinstall/device.c and userconfig.c
- Updated kernel configs -- device aue0 is commented out by default
- Updated /sys/conf/files
- Added new kld module directory
1999-12-28 02:01:18 +00:00
bde
444fb5c38d Synced with Makefile.i386. The following cleanups in Makefile.i386
rev.1.168 should have been committed concurrently:

Fixed some style bugs (always use precisely 1 space after `:' in
dependency specifications).
Removed bogus dependency of ${FULLKERNEL} on ${BEFORE_DEPEND}.

Reminded by:	peter
1999-12-27 12:06:11 +00:00
bde
e449cadeeb Changed the type used to represent the user stack pointer from `long *'
to `register_t *'.  This fixes bugs like misplacement of argc and argv
on the user stack on i386's with 64-bit longs.  We still use longs to
represent "words" like argc and argv, and assume that they are on the
stack (and that there is stack).  The suword() and fuword() families
should also use register_t.
1999-12-27 10:42:55 +00:00
peter
ff43778838 Include opt_nfs.h
PR:		15711
Submitted by:	Wilko Bulte <wilko@yedi.iaf.nl>
1999-12-27 07:51:05 +00:00
peter
28fa8aa8fa Zap the kvm_kernel.db juggling at 'make install' time, it isn't needed
any more.
1999-12-27 07:19:45 +00:00
marcel
95103d1312 Use genassym(1) and <sys/assym.h> to generate assembler symbols. 1999-12-23 19:59:47 +00:00
obrien
5a32c01606 Turn on the sym' driver by default. It lives well beside the ncr' driver
now.  On one machine with <825a> and <875> controllers, `sym' correctly
attached.  On another one with only a <ncr 53c810 fast10 scsi>, the `ncr'
driver correctly attached.
1999-12-22 05:52:04 +00:00
peter
de7c062727 Only compile gusc for isa (the #if NISA inside gusc effectively covers
the whole file)
1999-12-21 13:53:49 +00:00
steve
2778635d50 MFS_ROOT is deprecated so use MD_ROOT instead. Also add the md
pseudo-device to make it easier to build releases.
1999-12-20 05:11:51 +00:00
peter
4d14b7fce6 Be more consistant in using perl vs. perl5. We were using perl5 in the
kernel builds so as not to confuse with perl4 when bootstrapping from old
systems.  I don't know if this is still applicable but it shouldn't hurt
to be consistant at least.

Also copy vnode_if.sh to vnode_if.pl.  Doing a 'sh vnode_if.sh' when it
was a perl script was kinda silly.
1999-12-17 22:07:43 +00:00
yokota
a917920b0c - Add the device resume method. It supercedes the existing resume
routine which hooks the apm driver.
- Rename the PSM_HOOKAPM option to PSM_HOOKRESUME.
- Delete unnecessary #include.
1999-12-15 10:04:05 +00:00
gallatin
1283b07cd1 Add NetBSD's explanation of why it would be hard to emulate the Mach
system calls.

obtained from: NetBSD
1999-12-14 22:39:27 +00:00
gallatin
47701a1290 Add generated files 1999-12-14 22:37:09 +00:00
gallatin
1b39d5d377 Finally add the Alpha OSF/1 compat code. I will add it to the
sys/modules Makefile after completing a buildworld.

History:

The bulk of this code was obtained from NetBSD approximately one year
ago (I have taken care to preserve the original NetBSD copyrights and
I thank the authors for their work.) At that time, the OSF/1 code was
what was left over from their initial bootstrapping off of OSF/1 and
did not provide support for executing shared binaries.

I have independently added support for shared libraries, and support
for some of the more obscure system calls.  This code has been
available for testing and comment since January of 1999 and running on
production machines here at Duke since April.

Known working applications include:

- Netscape (all versions I've tried)
- Mathematica 3.0.2
- Splus 3.4
- ArcInfo 7.1
- Matlab (version unknown)
- SimOS
- Atom instrumented binaries (built on a real OSF/1 system)

Applications which are known not to work:

- All applications linking to libmach
- Adobe Acrobat  (uses libmach)

This has been tested with applications running against shared
libraries from OSF/1 (aka Tru64) 4.0D and 4.0F.

Reviewed by: marcel, obrien
BDE-lint by: obrien
Agreed in principal to by: msmith
1999-12-14 22:35:36 +00:00
gallatin
4c83e2cd18 Stop calling everthing an XP1000. 1999-12-14 17:50:00 +00:00
gallatin
06a35cd8cd Improve the mapping between the hardware PCI bus numbering on multi-hose
tsunami systems and the PCI bus-numbering system of FreeBSD.  Eg, the former
allows for 2 PCI bus 2's (one each on hoses 0 and 1) while the latter
needs to give each PCI bus a unique monotonically increasing number.

It has been fairly well tested and correctly maps machines with a ppb on
hose 1 as well as machines with ppbs on both hoses.

DS10s remain untested, as I do not have a pci card with a ppb which will
pass POST in a tsunami.

This is a house of cards.
1999-12-14 17:35:08 +00:00
yokota
cf0d380405 - Pull in kbd.c when sc or vt is included in the kernel, even if
no keyboard driver is defined in the kernel config file.
1999-12-13 13:01:00 +00:00
peter
11dc0d394d Argh, fix a stupid typo. :-( 1999-12-12 21:36:19 +00:00
peter
e6736871b8 Use a seperate -c and -h mode. The vnode_if.c file is compiled only into
the kernel while the vnode_if.h header is a bunch of inlines to call the
code that is in the kernel. Generating the .h file on the fly is kinda
bogus because it has to match the one compiled into the kernel.

IMHO we should have kern/vnode_if.c and sys/vnode_if.h committed in the
tree but that's another battle.
1999-12-12 16:43:05 +00:00
dfr
2f2990e953 Allow kernel accesses to a small region of the user stack which is used
by the Linux emulator (and other emulators) for syscall argument
translation. The x86 port currently seems to allow unrestricted kernel
accesses to user memory.

Reviewed by: alc, gallatin
1999-12-11 09:58:06 +00:00
archie
c6d289b2ad Move source files common to all platforms from <arch>/conf/files.<arch>
to conf/files.  If/when these files are optimized for each platform,
they can be moved back.
1999-12-09 19:38:20 +00:00
dan
dd77f5d4fb Move libkern/arc4random.c into conf/files. I was planning on doing an
optimized alpha version, but I'll leave that alone for the time being.
1999-12-09 18:47:54 +00:00
ken
cdf669dd0c [ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the
background ]

Rename sys/pci/pci_ioctl.h to sys/sys/pciio.h to make it easier for
userland programs to use this interface.  Reformat the file, and add a
BSD-style copyright to it.

Add a new man page for pci(4).  The PCIOCGETCONF, PCIOCREAD, and PCIOCWRITE
ioctls are documented, but the PCIOCATTACHED ioctl is not documented
because it is not implemented.

Change includes of <pci/pci_ioctl.h> to <sys/pciio.h> or remove them
altogether.  In many cases, pci_ioctl.h was unused.

Reviewed by:	steve
1999-12-08 17:44:04 +00:00
peter
3524c347b0 Make this compile again. (missing #include for RFPROC) 1999-12-06 18:12:29 +00:00
luoqi
5c9244cd12 User ldt sharing. 1999-12-06 04:53:08 +00:00
wpaul
cdd3a692fe Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers
which it replaces. The new driver supports all of the chips supported
by the ones it replaces, as well as many DEC/Intel 21143 10/100 cards.

This also completes my quest to convert things to miibus and add
Alpha support.
1999-12-04 17:41:31 +00:00
marcel
ab78406859 Implement pluggable ioctl handlers.
Other modules can register and unregister ioctl handlers to extend the
ioctls known by the Linuxulator. A recent application is the vmware
port. The Linuxulator itself uses the new interface to register its
handlers as well. Handlers for the following types of ioctls have been
defined:
	cdrom
	console (=keyboard and VT handling)
	socket
	sound
	termio

All ioctl related defines and declarations have been moved to a new
file (linux_ioctl.h), except for the pluggable ioctl handler interface
definition.

While there, cleanup linux.h some more.

linux.h and linux_ioctl.[ch] have been made to conform to style(9) as
much as possible.

Inspired and reviewed by: Vladimir N. Silyaev
1999-12-04 11:10:22 +00:00
mdodd
87e31f4b90 Remove the 'ivars' arguement to device_add_child() and
device_add_child_ordered().  'ivars' may now be set using the
device_set_ivars() function.

This makes it easier for us to change how arbitrary data structures are
associated with a device_t.  Eventually we won't be modifying device_t
to add additional pointers for ivars, softc data etc.

Despite my best efforts I've probably forgotten something so let me know
if this breaks anything.  I've been running with this change for months
and its been quite involved actually isolating all the changes from
the rest of the local changes in my tree.

Reviewed by:	peter, dfr
1999-12-03 08:41:24 +00:00
mjacob
d7c9e9ad5f Set RB_VERBOSE into boothowto (provide proper layering from boot loader
(eventually) settings to kernel settings).

Prototype read_random to quiesce a warning.
1999-12-03 07:20:22 +00:00
gallatin
e0b4381b55 A port of NetBSD's AlphaServer 1000 and 1000A support. Thanks to Cristian
Angelini for allowing me to use his AS1000 to do the port.

Note that this is untested on AlphaServer 1000A hardware.

Reviewed by:	dfr
Tested by:   	Cristian Angelini <chr.ang@biella.alpcom.it>
Obtained From: 	NetBSD
1999-12-01 15:25:04 +00:00
dima
047f08a518 dummy version of read_random() until the real random driver is ported. 1999-11-30 23:49:54 +00:00
dima
b573ebb022 Add arc4random.c.
Please note that kernel is still broken on alpha.
1999-11-30 20:18:20 +00:00
marcel
e25c88391a Implement linux_sigaltstack. 1999-11-30 15:02:28 +00:00
marcel
ce9f30fbf1 Implement sigaltstack. 1999-11-30 15:00:17 +00:00
alfred
d7ac1dffb8 add linuxulator wrapper for SNDCTL_DSP_GETODELAY 1999-11-29 23:03:34 +00:00
gallatin
85af5ac744 inline spl functions.
In combination with Doug's recent alpha_cpu.h, this reduces the cost
of ipl raising/lowering significantly.  This is most pronounced when
doing file reads.

Reviewed by: dfr
1999-11-29 20:31:45 +00:00
dfr
8aa3813a4d Implement inline assembler wrappers for PALcode calls and for alpha
specific instructions such as rpcc and mb. This should provide some
performance improvements and will allow me to delete the file pal.s.
To allow people time to update their loadable modules, I will leave pal.s
alone for now.
1999-11-29 19:57:51 +00:00
obrien
35494eb053 Sort PCI SCSI controlers. 1999-11-28 00:59:03 +00:00
obrien
85441bb239 /sys adjustments to add the `sym' controler driver.
This is commented out in GENERIC as you cannot mix `sym' with `ncr' right now.
Note that LINT is no more broken by this commit.
1999-11-28 00:48:15 +00:00
marcel
8d58d1e492 Implement linux_ustat.
Reviewed by: bde
1999-11-27 16:55:14 +00:00
marcel
36c9f10d7d Change prototype of linux_ustat. 1999-11-27 16:50:54 +00:00
marcel
b35fbc0583 Implement fdatasync in terms of fsync. The regeneration of proto.h,
syscall.h and sysent.h was probably forgotten after the last change
syscalls.master.
1999-11-26 10:20:10 +00:00
peter
7cd73c98f5 Add pcm entries for the alpha too, since they were taken out of
conf/files and moved to i386/conf/files.i386

Forgotten by: tanimura
1999-11-22 16:10:26 +00:00
peter
01330ff49e Update the Alpha makefile to be more in line with the x86 version. It
was getting quite dated.  Attempt to minimize diffs between the two so
it's not as painful to do this next time.
1999-11-22 15:39:13 +00:00
peter
f01ff83295 Use %ll instead of %q as gcc moans bitterly about it. 1999-11-22 15:23:58 +00:00
peter
baa766d3ee Zap some latent problems hidden by differences between KERNEL and _KERNEL.
The KAME code intruduces _KERNEL, which exposes some of them.
1999-11-22 15:14:56 +00:00
n_hibma
2fabfe01a4 Add MOUSE_MSC_MAXBUTTON and MOUSE_IF_USB. 1999-11-22 14:38:11 +00:00
phk
b506adfada Use LIST_FOREACH to traverse the allproc list.
Submitted by:   Jake Burkholder jake@checker.org
1999-11-19 21:34:50 +00:00
gallatin
3544d646b5 Properly attribute interrupt time on alpha. Previously, interrupt time
was likely to be counted as idle time.

Note that we are counting time spent in software interrupt handlers as
interrupt time, so this invalidates the i386 meaning of intr_nesting_level.

Reviewed by: dfr, bde
Tested by: anderson@cs.duke.edu
1999-11-19 13:38:22 +00:00
peter
76de652082 Move Alpha conflicting entries (98,99) to 135,136. Renumber the zsc
CDEV_MAJOR entry to match..  Is "ipr" in the tree?  I can't find it.
1999-11-18 04:20:23 +00:00
n_hibma
3ce448a56f Typo 1999-11-16 22:02:16 +00:00
gallatin
3862469671 Mchines whose interrupts are not routed through the ISA pic were still
registering their interrupts with rman as though they were going through
the ISA pic.  This prevents a conflict between isa & pci for irqs on such
machines.

Also hookup the chipset struct before calling platform.pci_intr_init().
This allows me to call inw/outw down in the platform code.

Add interrupt printfs to match the CIA chipset.

Reviewed by: dfr
Tested by: wilko
1999-11-16 14:01:12 +00:00
dfr
f2208af484 Add the ata devices to the GENERIC kernel. Hopefully, this should allow
it to install from ATA cds and to ATA disks. I'll check after my next
release builds.
1999-11-15 09:09:00 +00:00
dfr
6dfb400106 Re-organise the code which manages the owner of the FP state (fpcurproc).
The old code was spread out through the machdep code and was sloppy about
enabling and disabling the FEN bit (which controls access to the FP
register set). This caused a DIAGNOSTIC warning "DANGER WILL ROBINSON:
FEN SET IN cpu_fork!" sometimes when operating under high loads and could
conceivably lead to processes getting incorrect FP results.

The new code is much more strict about the FEN bit and makes sure that
*only* fpcurproc ever has it enabled. This also allows us to remove a
section of code from the exception_return path which might improve
performance marginally.

Reviewed by: gallatin
1999-11-10 21:14:25 +00:00
dfr
b1f829ffa6 Drop ipl to zero before calling ast(). Make sure that this only happens
if we are really going to call ast() to avoid unexpected interrupt
recursion.

Reviewed by: bde, gallatin
1999-11-09 21:43:12 +00:00