aboutsummaryrefslogtreecommitdiff
path: root/sys/conf
Commit message (Collapse)AuthorAgeFilesLines
* Push m_apply() and m_getptr() up into the colleciton of standard mbufBruce M Simpson2003-12-151-1/+0
| | | | | | | | | | | routines, and purge them from opencrypto. Reviewed by: sam Obtained from: NetBSD Sponsored by: spc.org Notes: svn path=/head/; revision=123557
* Fix a locking problem with MD_ROOT_SIZE.Poul-Henning Kamp2003-12-131-1/+0
| | | | | | | Retire md(4)'s static major number. Notes: svn path=/head/; revision=123521
* Commit the first cut of Project Evil, also known as the NDISulator.Bill Paul2003-12-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Yes, it's what you think it is. Yes, you should run away now. This is a special compatibility module for allowing Windows NDIS miniport network drivers to be used with FreeBSD/x86. This provides _binary_ NDIS compatibility (not source): you can run NDIS driver code, but you can't build it. There are three main parts: sys/compat/ndis: the NDIS compat API, which provides binary compatibility functions for many routines in NDIS.SYS, HAL.dll and ntoskrnl.exe in Windows (these are the three modules that most NDIS miniport drivers use). The compat module also contains a small PE relocator/dynalinker which relocates the Windows .SYS image and then patches in our native routines. sys/dev/if_ndis: the if_ndis driver wrapper. This module makes use of the ndis compat API and can be compiled with a specially prepared binary image file (ndis_driver_data.h) containing the Windows .SYS image and registry key information parsed out of the accompanying .INF file. Once if_ndis.ko is built, it can be loaded and unloaded just like a native FreeBSD kenrel module. usr.sbin/ndiscvt: a special utility that converts foo.sys and foo.inf into an ndis_driver_data.h file that can be compiled into if_ndis.o. Contains an .inf file parser graciously provided by Matt Dodd (and mercilessly hacked upon by me) that strips out device ID info and registry key info from a .INF file and packages it up with a binary image array. The ndiscvt(8) utility also does some manipulation of the segments within the .sys file to make life easier for the kernel loader. (Doing the manipulation here saves the kernel code from having to move things around later, which would waste memory.) ndiscvt is only built for the i386 arch. Only files.i386 has been updated, and none of this is turned on in GENERIC. It should probably work on pc98. I have no idea about amd64 or ia64 at this point. This is still a work in progress. I estimate it's about %85 done, but I want it under CVS control so I can track subsequent changes. It has been tested with exactly three drivers: the LinkSys LNE100TX v4 driver (Lne100v4.sys), the sample Intel 82559 driver from the Windows DDK (e100bex.sys) and the Broadcom BCM43xx wireless driver (bcmwl5.sys). It still needs to have a net80211 stuff added to it. To use it, you would do something like this: # cd /sys/modules/ndis # make; make load # cd /sys/modules/if_ndis # ndiscvt -i /path/to/foo.inf -s /path/to/foo.sys -o ndis_driver_data.h # make; make load # sysctl -a | grep ndis All registry keys are mapped to sysctl nodes. Sometimes drivers refer to registry keys that aren't mentioned in foo.inf. If this happens, the NDIS API module creates sysctl nodes for these keys on the fly so you can tweak them. An example usage of the Broadcom wireless driver would be: # sysctl hw.ndis0.EnableAutoConnect=1 # sysctl hw.ndis0.SSID="MY_SSID" # sysctl hw.ndis0.NetworkType=0 (0 for bss, 1 for adhoc) # ifconfig ndis0 <my ipaddr> netmask 0xffffff00 up Things to be done: - get rid of debug messages - add in ndis80211 support - defer transmissions until after a status update with NDIS_STATUS_CONNECTED occurs - Create smarter lookaside list support - Split off if_ndis_pci.c and if_ndis_pccard.c attachments - Make sure PCMCIA support works - Fix ndiscvt to properly parse PCMCIA device IDs from INF files - write ndisapi.9 man page Notes: svn path=/head/; revision=123474
* Move the ia32_sigtramp.S file back under amd64/. This interfaces closelyPeter Wemm2003-12-111-1/+1
| | | | | | | | | with the sendsig code in the MD area. It is not safe to assume that all the register conventions will be the same. Also, the way of producing 32 bit code (.code32 directives) in this file is amd64 specific. Notes: svn path=/head/; revision=123424
* Assimilate ia64 back into the fold with the common freebsd32/ia32 code.Peter Wemm2003-12-111-3/+6
| | | | | | | | | | | The split-up code is derived from the ia64 code originally. Note that I have only compile-tested this, not actually run-tested it. The ia64 side of the force is missing some significant chunks of signal delivery code. Notes: svn path=/head/; revision=123423
* Use gcc's superior ffs() builtin.Peter Wemm2003-12-101-1/+0
| | | | Notes: svn path=/head/; revision=123419
* The DEV_ACPI option is no longer used, so g/c it.John Baldwin2003-12-101-1/+0
| | | | Notes: svn path=/head/; revision=123404
* Remove duplicate script for locore.oAndrew Gallatin2003-12-091-3/+0
| | | | Notes: svn path=/head/; revision=123358
* Add PowerPC CFLAGS.David E. O'Brien2003-12-071-0/+9
| | | | | | | Submitted by: gallatin Notes: svn path=/head/; revision=123230
* Remote meteor driver. It hasn't compiled in over 3 years. If someoneWarner Losh2003-12-074-25/+1
| | | | | | | | makes it compile again, and can test it, we can restore the driver to the tree. Notes: svn path=/head/; revision=123213
* Now that we have the en(4) driver, we no longer need the hea driver.Warner Losh2003-12-072-15/+0
| | | | | | | Approved by: harti@ Notes: svn path=/head/; revision=123210
* The dgb driver is redundant with the digi driver in the tree. It usesWarner Losh2003-12-074-4/+1
| | | | | | | | | | | lots of old interfaces, and digi now supports all cards that dgb supported. The author of the driver says that this is no longer necessary. Approved by: babkin@ Notes: svn path=/head/; revision=123208
* Continue to remove drivers that don't compile and haven't compiled inWarner Losh2003-12-072-2/+0
| | | | | | | | | | | | | a long time: lmc The LAN Media Corp PCI WAN driver based on tulip. This driver hasn't compiled for 3 years since the PCI compat shims were removed, and Lan Media appears to have gone out of business. These cards appear to be rare (a recent search of ebay had no hits). Should someone wish to revive this driver, submitting patches to make it compile plus a testing report will bring it back. Notes: svn path=/head/; revision=123201
* HEAD is at 5.2-CURRENT nowScott Long2003-12-071-1/+1
| | | | Notes: svn path=/head/; revision=123195
* First part of the removal of drivers for hardware that isn't relevantWarner Losh2003-12-072-2/+0
| | | | | | | | | | | | | | | or whose drivers haven't even compiled for years. The loran hardware was very unique, and only a few copies of it ever existed. It used the old COMPAT_ISA_DRIVER and when the author was contacted, he indicated that he had no intention of ever updating this driver and it was no longer relevant to the FreeBSD world and can be removed without impact to anybody. Approved by: phk Notes: svn path=/head/; revision=123194
* Connect the cx driver to its new location in the tree.Warner Losh2003-12-032-3/+6
| | | | | | | | | | | | Update notes to reflect that cx is no longer a counted device Update options for new cx option # commented out ELAN_PPS and ELAN_XTAL since they produced errors Submitted by: rik@cronyx.ru Approved by: re@ <scottl> Notes: svn path=/head/; revision=123139
* There is no such thing as a pc98 machine with ISA expansion slots, norWarner Losh2003-12-031-3/+0
| | | | | | | | | is there a C-BUS Cronyx Sigma board. Remove it from pc98 files and lint. Approved by: re <scottl> Notes: svn path=/head/; revision=123137
* Export a few SMP related symbols in UP kernels as well. This is needed toJohn Baldwin2003-12-031-1/+1
| | | | | | | | | | | | | aid other kernel code, especially code which can be in a module such as the acpi_cpu(4) driver, to work properly with both SMP and UP kernels. The exported symbols include mp_ncpus, all_cpus, mp_maxid, smp_started, and the smp_rendezvous() function. This also means that CPU_ABSENT() is now always implemented the same on all kernels. Approved by: re (scottl) Notes: svn path=/head/; revision=123125
* Align the .ctors section correctly.Poul-Henning Kamp2003-12-031-0/+1
| | | | | | | | | This fixes the 75% probable panic when using basic block profiling. Approved by: re@ Notes: svn path=/head/; revision=123121
* Major 186 for sx driver (for Specialix I/O8+) by frank@exit.comWarner Losh2003-12-021-0/+1
| | | | Notes: svn path=/head/; revision=123097
* Rename the ELAN_* options to CPU_ELAN_* according the the brucification.Poul-Henning Kamp2003-12-011-2/+2
| | | | | | | | | This commit was forgotten a few days ago. Approved by: re@ Notes: svn path=/head/; revision=123091
* Turns out that building modules with the kernel opt files isWarner Losh2003-11-251-1/+0
| | | | | | | | | | | | | | uncovering some interesting problems. Be conservative and effecitvely disable this by default. Interested parties may still define KERNBUILDDIR by hand to achive the same effect. I plan on referting this change after 5.2 is released, or sooner if the issues with building releases are resolved and re@ approves. Approved by: re@ (scottl, marcel) Notes: svn path=/head/; revision=122982
* Move us into 5.2-BETAScott Long2003-11-221-2/+2
| | | | Notes: svn path=/head/; revision=122955
* New major number:Warner Losh2003-11-211-0/+1
| | | | | | | | | | | 185 ce Cronyx Tau-32 E1 adapter <rik@cronyx.ru> (likely unneeded for current, but required for older versions of FreeBSD). Approved by: re@ (scottl) Notes: svn path=/head/; revision=122943
* Introduce tcp_hostcache and remove the tcp specific metrics fromAndre Oppermann2003-11-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | the routing table. Move all usage and references in the tcp stack from the routing table metrics to the tcp hostcache. It caches measured parameters of past tcp sessions to provide better initial start values for following connections from or to the same source or destination. Depending on the network parameters to/from the remote host this can lead to significant speedups for new tcp connections after the first one because they inherit and shortcut the learning curve. tcp_hostcache is designed for multiple concurrent access in SMP environments with high contention and is hash indexed by remote ip address. It removes significant locking requirements from the tcp stack with regard to the routing table. Reviewed by: sam (mentor), bms Reviewed by: -net, -current, core@kame.net (IPv6 parts) Approved by: re (scottl) Notes: svn path=/head/; revision=122922
* o Remove @- from the ln and change it to a -sf. This was bogus, andWarner Losh2003-11-191-1/+1
| | | | | | | | | | | | | | | regocnized as such at the time. Now that the other bogons in the tree have been fixed, we can remove this ugly kludge. o Remove stale/bogus opt_foo.h files. These are left over from by-gone resources. And they point to the need, yet again, to improve the build system so meta information is only in one place. Submitted by: ru Reviewed by: bde Approved by: re@ (jhb) Notes: svn path=/head/; revision=122894
* Initial landing of SMP support for FreeBSD/amd64.Peter Wemm2003-11-172-59/+42
| | | | | | | | | | | | | | | | | | | - This is heavily derived from John Baldwin's apic/pci cleanup on i386. - I have completely rewritten or drastically cleaned up some other parts. (in particular, bootstrap) - This is still a WIP. It seems that there are some highly bogus bioses on nVidia nForce3-150 boards. I can't stress how broken these boards are. I have a workaround in mind, but right now the Asus SK8N is broken. The Gigabyte K8NPro (nVidia based) is also mind-numbingly hosed. - Most of my testing has been with SCHED_ULE. SCHED_4BSD works. - the apic and acpi components are 'standard'. - If you have an nVidia nForce3-150 board, you are stuck with 'device atpic' in addition, because they somehow managed to forget to connect the 8254 timer to the apic, even though its in the same silicon! ARGH! This directly violates the ACPI spec. Notes: svn path=/head/; revision=122849
* Ignore errors on ln. This is a quick fix for the make depend twice inWarner Losh2003-11-171-1/+1
| | | | | | | | a row being broken. A better filx will come as soon as I have time to analyse things more deeply. Notes: svn path=/head/; revision=122837
* Copy ukbdmap.h rules from .i386.Warner Losh2003-11-171-0/+6
| | | | | | | | | # maybe this should be in files. # This may fix sparc64 tinderbox. I'll kinow in a few hours. Notes: svn path=/head/; revision=122832
* Make interrupt pipe interval time configurable.Shunsuke Akiyama2003-11-162-0/+8
| | | | | | | | | | - Add kernel options: {UPLCOM,UVSCOM}_INTR_INTERVAL - Add sysctl variables: 'hw.usb.{uplcom,uvscom}.interval' MFC after: 1 week Notes: svn path=/head/; revision=122796
* As mentioned by warner, previous revision (opt_ddb.h) was just a fluke --Brian Feldman2003-11-161-3/+1
| | | | | | | | | I'm having bad luck with different parts of the sys tree being checked out at slightly different times. Back it out, noting it doesn't cause harm in any case. Tinderbox also makes these things more fun. Notes: svn path=/head/; revision=122788
* It appears opt_global.h may cause opt_ddb.h to be needed. Adding itBrian Feldman2003-11-161-1/+3
| | | | | | | | with the full path on the command line like with -include opt_global.h currently unbreaks tinderbox. Notes: svn path=/head/; revision=122786
* Fix the building of null module. In the DIAGNOSTICS case, we includeWarner Losh2003-11-161-0/+12
| | | | | | | | | | | | | | opt_ddb.h. These changes expand green's work of including opt_global.h to prefer opt files in the kernel directory. Further refinement might be needed, but I think this is good. Note: While this is a step on the path to moving the meta information about modules into the config files, it doesn't actually do that. It just pulls in the opt files in a way that allows one to build 'generic' modules outside the tree. Notes: svn path=/head/; revision=122773
* Implement Cx CPU idle states and updated throttling support.Nate Lawson2003-11-151-0/+1
| | | | | | | | | | | | | | | * Use the cpu_idle_hook() to do idling for C1-C3. * Use both _CST and the FADT to detect Cx states. * Use both _PTC and P_CNT for controlling throttling. * Add a notify handler to detect changes in _CST and _PSS * Call the _INI function for each processor if present. This will be done by ACPI-CA in the future. * Fix a bug on SMP systems where CPUs will attach multiple times if the bus is rescan. * Document new sysctls for controlling idling. Notes: svn path=/head/; revision=122766
* MFi386: revision 1.201.Yoshihiro Takahashi2003-11-151-6/+8
| | | | Notes: svn path=/head/; revision=122754
* Moved $FreeBSD$ to the beginning of the file.Bruce Evans2003-11-141-6/+5
| | | | | | | Improved wording in a nearby comment. Notes: svn path=/head/; revision=122715
* Introduce ip_fastforward and remove ip_flow.Andre Oppermann2003-11-141-1/+1
| | | | | | | | | | | | | | | | | | Short description of ip_fastforward: o adds full direct process-to-completion IPv4 forwarding code o handles ip fragmentation incl. hw support (ip_flow did not) o sends icmp needfrag to source if DF is set (ip_flow did not) o supports ipfw and ipfilter (ip_flow did not) o supports divert, ipfw fwd and ipfilter nat (ip_flow did not) o returns anything it can't handle back to normal ip_input Enable with sysctl -w net.inet.ip.fastforwarding=1 Reviewed by: sam (mentor) Notes: svn path=/head/; revision=122702
* University of Michigan's Citi NFSv4 kernel client code.Alfred Perlstein2003-11-141-0/+9
| | | | | | | Submitted by: Jim Rees <rees@umich.edu> Notes: svn path=/head/; revision=122698
* Include opt_global.h in the modules build, when building from a normalBrian Feldman2003-11-142-0/+4
| | | | | | | | | | | kernel build. This makes it possible for me not to get pissed off that random.ko crashes the system trying to rdtsc() when the i386/cpu.h support code decides it's okay to call that op when neither I386_CPU or I486_CPU is defined. I guess it also makes WITNESS/INVARIANTS defines get picked up by the modules. Notes: svn path=/head/; revision=122672
* Add sbp_targ(4).Hidetoshi Shimokawa2003-11-141-0/+1
| | | | Notes: svn path=/head/; revision=122660
* avoid module name conflict with opencrypto/rijndael.c.Hajimu UMEMOTO2003-11-121-1/+1
| | | | | | | Reported by: tinderbox Notes: svn path=/head/; revision=122531
* Modify the MAC Framework so that instead of embedding a (struct label)Robert Watson2003-11-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in various kernel objects to represent security data, we embed a (struct label *) pointer, which now references labels allocated using a UMA zone (mac_label.c). This allows the size and shape of struct label to be varied without changing the size and shape of these kernel objects, which become part of the frozen ABI with 5-STABLE. This opens the door for boot-time selection of the number of label slots, and hence changes to the bound on the number of simultaneous labeled policies at boot-time instead of compile-time. This also makes it easier to embed label references in new objects as required for locking/caching with fine-grained network stack locking, such as inpcb structures. This change also moves us further in the direction of hiding the structure of kernel objects from MAC policy modules, not to mention dramatically reducing the number of '&' symbols appearing in both the MAC Framework and MAC policy modules, and improving readability. While this results in minimal performance change with MAC enabled, it will observably shrink the size of a number of critical kernel data structures for the !MAC case, and should have a small (but measurable) performance benefit (i.e., struct vnode, struct socket) do to memory conservation and reduced cost of zeroing memory. NOTE: Users of MAC must recompile their kernel and all MAC modules as a result of this change. Because this is an API change, third party MAC modules will also need to be updated to make less use of the '&' symbol. Suggestions from: bmilekic Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories Notes: svn path=/head/; revision=122524
* Add an implementation of turnstiles and change the sleep mutex code to useJohn Baldwin2003-11-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | turnstiles to implement blocking isntead of implementing a thread queue directly. These turnstiles are somewhat similar to those used in Solaris 7 as described in Solaris Internals but are also different. Turnstiles do not come out of a fixed-sized pool. Rather, each thread is assigned a turnstile when it is created that it frees when it is destroyed. When a thread blocks on a lock, it donates its turnstile to that lock to serve as queue of blocked threads. The queue associated with a given lock is found by a lookup in a simple hash table. The turnstile itself is protected by a lock associated with its entry in the hash table. This means that sched_lock is no longer needed to contest on a mutex. Instead, sched_lock is only used when manipulating run queues or thread priorities. Turnstiles also implement priority propagation inherently. Currently turnstiles only support mutexes. Eventually, however, turnstiles may grow two queue's to support a non-sleepable reader/writer lock implementation. For more details, see the comments in sys/turnstile.h and kern/subr_turnstile.c. The two primary advantages from the turnstile code include: 1) the size of struct mutex shrinks by four pointers as it no longer stores the thread queue linkages directly, and 2) less contention on sched_lock in SMP systems including the ability for multiple CPUs to contend on different locks simultaneously (not that this last detail is necessarily that much of a big win). Note that 1) means that this commit is a kernel ABI breaker, so don't mix old modules with a new kernel and vice versa. Tested on: i386 SMP, sparc64 SMP, alpha SMP Notes: svn path=/head/; revision=122514
* cleanup rijndael API.Hajimu UMEMOTO2003-11-111-1/+1
| | | | | | | | | | since there are naming conflicts with opencrypto, #define was added to rename functions intend to avoid conflicts. Obtained from: KAME Notes: svn path=/head/; revision=122509
* Disable probing of HTT CPUs by default for the MP Table case. HTT CPUsJohn Baldwin2003-11-112-0/+2
| | | | | | | | | | | | should only be used if they are enabled in the BIOS. Now that we support enumerating CPUs using the ACPI MADT, any HTT machine using ACPI should respect the BIOS setting. For HTT machines with ACPI disabled in the kernel, the MPTABLE_FORCE_HTT kernel option can be used to try to probe HTT CPUs like have done in the past for the MP Table case. This option should only be enabled if HTT is enabled in the BIOS. Notes: svn path=/head/; revision=122490
* Add a uart attachment/syscons keyboard driver for sun keyboards. In theoryJake Burkholder2003-11-111-0/+1
| | | | | | | | this will work with any uart backend, currently supported hardware uses either ns8250 or z8530. Notes: svn path=/head/; revision=122470
* enable aes-xcbc-mac and aes-ctr, again.Hajimu UMEMOTO2003-11-101-3/+3
| | | | Notes: svn path=/head/; revision=122412
* Rename npx.c to fpu.c (it isn't an extension, its part of the corePeter Wemm2003-11-081-1/+1
| | | | | | | architecture now). Notes: svn path=/head/; revision=122279
* Fixed insertion sort errors in the opt_cpu.h section.Bruce Evans2003-11-071-12/+10
| | | | | | | | | | | Removed banal comments about ELAN*. Complain about ELAN* being misnamed instead (so that these options are not obviously related to a CPU and don't sort with CPU_ELAN). Complain about CPU_DISABLE_CMPXCHG being in the wrong namespace. Notes: svn path=/head/; revision=122230
* Allow the ng_uni node (NgATM signalling layer) to be built into theHartmut Brandt2003-11-073-0/+11
| | | | | | | kernel via options NGATM_UNI. Notes: svn path=/head/; revision=122220