summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Warning fix.mux2002-06-221-3/+3
| | | | Reviewed by: peter
* OLDCARD version of GENERIC.imp2002-06-221-0/+243
|
* o Reduce the scope of Giant in vm_mmap() to just the code that manipulatesalc2002-06-221-4/+2
| | | | a vnode. (Thus, MAP_ANON and MAP_STACK never acquire Giant.)
* Fix a bug in vfs_bio_clrbuf(). The single-page-clrbuf optimization wasdillon2002-06-221-5/+10
| | | | | | | | improperly clearing more then just the invalid portions of the page. (This bug is not known to have been triggered by anything). Submitted by: tegge MFC after: 7 days
* o Replace mtx_assert(&Giant, MA_OWNED) in dev_pager_alloc()alc2002-06-221-11/+17
| | | | | | with the acquisition and release of Giant. (Annotate as MPSAFE.) o Reorder the sanity checks in dev_pager_alloc() to reduce the time that Giant is held.
* Use rm -f in the clean target, as seems to be common practice, and also avoidsjmallett2002-06-222-2/+2
| | | | | | errors if no LINT exists. Submitted by: dwcjr
* o Remove the initialization of unused fields in the structmux2002-06-223-50/+11
| | | | | | | | | | uio now that we don't use uiomove() anymore. o Enforce stricter checks on the length of the iov's in nmount(2) since we now malloc() them individually and corrupted iov's could make the kernel crash in malloc() with "kmem_map too small". Reviewed by: phk
* o In vm_map_insert(), replace GIANT_REQUIRED by the acquisition andalc2002-06-221-5/+6
| | | | | | | | release of Giant around the direct manipulation of the vm_object and the optional call to pmap_object_init_pt(). o In vm_map_findspace(), remove GIANT_REQUIRED. Instead, acquire and release Giant around the occasional call to pmap_growkernel(). o In vm_map_find(), remove GIANT_REQUIRED.
* Make this compile on Alpha.n_hibma2002-06-221-2/+2
|
* Clock frequencies reported by sysctl should be unsigned values. Discoveredmp2002-06-225-10/+10
| | | | | | | | when machdep.tsc_freq returned a negative number on a 2.2GHz Xeon. Submitted by: Brian Harrison <bharrison@ironport.com> Reviewed by: phk MFC after: 1 week
* Remove (almost all) global variables that were used to holdluigi2002-06-2212-474/+532
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | packet forwarding state ("annotations") during ip processing. The code is considerably cleaner now. The variables removed by this change are: ip_divert_cookie used by divert sockets ip_fw_fwd_addr used for transparent ip redirection last_pkt used by dynamic pipes in dummynet Removal of the first two has been done by carrying the annotations into volatile structs prepended to the mbuf chains, and adding appropriate code to add/remove annotations in the routines which make use of them, i.e. ip_input(), ip_output(), tcp_input(), bdg_forward(), ether_demux(), ether_output_frame(), div_output(). On passing, remove a bug in divert handling of fragmented packet. Now it is the fragment at offset 0 which sets the divert status of the whole packet, whereas formerly it was the last incoming fragment to decide. Removal of last_pkt required a change in the interface of ip_fw_chk() and dummynet_io(). On passing, use the same mechanism for dummynet annotations and for divert/forward annotations. option IPFIREWALL_FORWARD is effectively useless, the code to implement it is very small and is now in by default to avoid the obfuscation of conditionally compiled code. NOTES: * there is at least one global variable left, sro_fwd, in ip_output(). I am not sure if/how this can be removed. * I have deliberately avoided gratuitous style changes in this commit to avoid cluttering the diffs. Minor stule cleanup will likely be necessary * this commit only focused on the IP layer. I am sure there is a number of global variables used in the TCP and maybe UDP stack. * despite the number of files touched, there are absolutely no API's or data structures changed by this commit (except the interfaces of ip_fw_chk() and dummynet_io(), which are internal anyways), so an MFC is quite safe and unintrusive (and desirable, given the improved readability of the code). MFC after: 10 days
* Define an mbuf type, MT_TAG, used for volatile annotationsluigi2002-06-221-2/+3
| | | | | | prepended to mbuf chains in the network stack. Reuse a previoulsy unused value to avoid changes in other data structures.
* Always drop the p_args reference we held for copyout, even if we're aboutmini2002-06-221-3/+2
| | | | | | | to change it. This fixes a leak triggered by setproctitle(3). Approved by: alfred Noticed by: Peter Jeremy <peter.jeremy@alcatel.com.au>
* o Replace GIANT_REQUIRED in swap_pager_alloc() by the acquisition andalc2002-06-221-3/+4
| | | | release of Giant. (Annotate as MPSAFE.)
* o Remove GIANT_REQUIRED from phys_pager_alloc(). If handle isn't NULL,alc2002-06-221-3/+8
| | | | | acquire and release Giant. If handle is NULL, Giant isn't needed. o Annotate phys_pager_alloc() and phys_pager_dealloc() as MPSAFE.
* o Replace GIANT_REQUIRED in vnode_pager_alloc() by the acquisition andalc2002-06-221-6/+5
| | | | | | | release of Giant. (Annotate as MPSAFE.) o Also, in vnode_pager_alloc(), remove an unnecessary re-initialization of struct vm_object::flags and move a statement that is duplicated in both branches of an if-else.
* o Remove GIANT_REQUIRED from vslock().alc2002-06-221-1/+10
| | | | | | o Annotate kernacc(), useracc(), and vslock() as MPSAFE. Motivated by: alfred
* Fix logic which resulted in missing a call to INP_UNLOCK().hsu2002-06-211-5/+2
| | | | Submitted by: jlemon, mux
* TCP notify functions can change the pcb list.hsu2002-06-212-4/+4
|
* Enable cd9660 support by default.jake2002-06-211-1/+1
|
* Enable UFS1_AND_UFS2 support for sparc64 by default. Booting from ufs1 orjake2002-06-211-0/+2
| | | | ufs2 filesystems seems to work fine.
* Remove CAPABILITIES from NOTESrwatson2002-06-211-2/+0
|
* Revert the part of Kirks UFS2 commit which added divdi3.c and moddi3.cphk2002-06-215-11/+8
| | | | to libi386, this issue was resolved already in a cleaner way.
* This commit adds basic support for the UFS2 filesystem. The UFS2mckusick2002-06-2146-1243/+2797
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | filesystem expands the inode to 256 bytes to make space for 64-bit block pointers. It also adds a file-creation time field, an ability to use jumbo blocks per inode to allow extent like pointer density, and space for extended attributes (up to twice the filesystem block size worth of attributes, e.g., on a 16K filesystem, there is space for 32K of attributes). UFS2 fully supports and runs existing UFS1 filesystems. New filesystems built using newfs can be built in either UFS1 or UFS2 format using the -O option. In this commit UFS1 is the default format, so if you want to build UFS2 format filesystems, you must specify -O 2. This default will be changed to UFS2 when UFS2 proves itself to be stable. In this commit the boot code for reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c) as there is insufficient space in the boot block. Once the size of the boot block is increased, this code can be defined. Things to note: the definition of SBSIZE has changed to SBLOCKSIZE. The header file <ufs/ufs/dinode.h> must be included before <ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and ufs_lbn_t. Still TODO: Verify that the first level bootstraps work for all the architectures. Convert the utility ffsinfo to understand UFS2 and test growfs. Add support for the extended attribute storage. Update soft updates to ensure integrity of extended attribute storage. Switch the current extended attribute interfaces to use the extended attribute storage. Add the extent like functionality (framework is there, but is currently never used). Sponsored by: DARPA & NAI Labs. Reviewed by: Poul-Henning Kamp <phk@freebsd.org>
* o Remove GIANT_REQUIRED from vm_map_stack().alc2002-06-211-2/+0
|
* Update for libpcap 0.7.1fenner2002-06-211-14/+46
| | | | Originally-committed-to-wrong-repository by: fenner
* o Remove GIANT_REQUIRED from vm_pager_allocate() and vm_pager_deallocate().alc2002-06-211-3/+0
|
* Add some #define's for mbuf annotations.luigi2002-06-201-0/+48
| | | | | | | | | | | | | | | | | | | | | As the comment in the code says, eventually there will be a proper data structure (e.g NetBSD's struct m_tag) to store chains of annotations, and mbuf-handling procedures will handle these chains in the correct way. Right now, these chains do not exist, and we just use the constants defined here to implement simple ad-hoc solutions to remove some global variables used so far to pass around informations about packets being processed. Global variables are not only ugly and make the code unreadable, they also prevent from using parallelism in network stack processing. (the 3-days MFC only refers to this commit, i.e. the PACKET_TAG_* constants; the full mechanism will be committed and MFC'ed on a longer timescale). MFC after: 3 days
* {f,s}usword -> {f,s}uword16. Implement {f,s}uword32.jake2002-06-202-46/+94
| | | | Requested by: peter
* Change the way we internally store the mount options tomux2002-06-204-134/+83
| | | | | | | | | | a linked list. This is to allow the merging of the mount options in the MNT_UPDATE case, as the current data structure is unsuitable for this. There are no functional differences in this commit. Reviewed by: phk
* Implement SO_NOSIGPIPE option for sockets. This allows one to request thatalfred2002-06-204-2/+7
| | | | | | | an EPIPE error return not generate SIGPIPE on sockets. Submitted by: lioux Inspired by: Darwin
* o Remove an incorrect cast from obreak(). This cast would,alc2002-06-201-5/+5
| | | | | | | | | | | for example, break an sbrk(>=4GB) on 64-bit architectures even if the resource limit allowed it. o Correct an off-by-one error. o Correct a spelling error in a comment. o Reorder an && expression so that the commonly FALSE expression comes first. Submitted by: bde (bullets 1 and 2)
* Don't leak resources if fdcheckstd() fails during exec.alfred2002-06-201-5/+10
| | | | Submitted by: Mike Makonnen <makonnen@pacbell.net>
* Display the mutex name in the ^T status line if the selected threadiedowse2002-06-201-2/+3
| | | | | is blocked on a mutex. Prepend a '*' to distinguish this case as is done in top(1).
* Quick fix for the type of the bitmap in sigset_t. It was an array ofbde2002-06-201-3/+3
| | | | | | | | | | | 4 u_ints but needs to be an array of 4 uint32_t's to work, at least if unsigned ints have less than 32 bits. It should be a non-array of 1 uint128_t on 128-bit machines, especially if u_int has 128 bits. The headers that declare uint32_t (actually __uint32_t) are intentionally not included here since this header should only be included by other headers. Fixed some style bugs (space instead of tab after #ifndef and #endif).
* Update an 'XXX what is this?' type comment about suswintr and fuswintr.peter2002-06-203-6/+6
| | | | These are 16 bit short values used only by the profiling code.
* Use suword16/fuword16 instead of susword/fusword - this has two differentpeter2002-06-205-23/+23
| | | | | definitions so far.. 16 bit on x86 and appears to be 32 bit on sparc64. Be explicit to avoid suprises.
* Deorbit suibyte(). It was only used for split address space systemspeter2002-06-2011-72/+15
| | | | for supporting UIO_USERISPACE (ie: it wasn't used).
* Remove UIO_USERISPACE - we do not support any split instruction/datapeter2002-06-202-7/+0
| | | | | address space machines (eg: pdp-11) and are not likely to ever do so. Nothing in our kernel sets this.
* ia32 %edx return comes from td_retval[1], not td_retval[0]peter2002-06-201-1/+1
| | | | Obtained from: dfr
* Use suword32/64 and fuword32/64 like elsewhere instead of inventingpeter2002-06-204-32/+37
| | | | suhword/fuhword.
* Add boot_serial and boot_multicons variables to set RB_SERIAL andpeter2002-06-208-0/+16
| | | | | RB_MULTIPLE since this seems to be the easiest way to add these flags for non-forth loaders etc.
* panic rather than fault and explode if we fail to contigmalloc a kernelpeter2002-06-201-0/+3
| | | | | stack. This is still bad(TM), but at least we have a clue when we get hit when contigmalloc fails.
* Use the canonical pmap_{new,dispose,swapin,swapout}_proc() functions,peter2002-06-201-16/+110
| | | | | in this case cut/pasted from sparc64 instead of messing with contigmalloc where it is not needed.
* Move the "- 1" into the RQB_FFS(mask) macro itself so thatpeter2002-06-207-8/+7
| | | | | | | | | | | | | | implementations can provide a base zero ffs function if they wish. This changes #define RQB_FFS(mask) (ffs64(mask)) foo = RQB_FFS(mask) - 1; to #define RQB_FFS(mask) (ffs64(mask) - 1) foo = RQB_FFS(mask); On some platforms we can get the "- 1" for free, eg: those that use the C code for ffs64(). Reviewed by: jake (in principle)
* o Acquire and release the vm_map lock instead of Giant in obreak().alc2002-06-201-11/+7
| | | | | | Consequently, use vm_map_insert() and vm_map_delete(), which expect the vm_map to be locked, instead of vm_map_find() and vm_map_remove(), which do not.
* Solve the 'unregistered netisr 18' information notice with a sledgehammer.peter2002-06-201-4/+7
| | | | | | Register the ISR early, but do not actually kick off the timer until we see some activity. This still saves us from running the arp timers on a system with no network cards.
* - Move the computation of pflags out of the page allocation loop injeff2002-06-191-17/+21
| | | | | | | kmem_malloc() - zero fill pages if PG_ZERO bit is not set after allocation in kmem_malloc() Suggested by: alc, jake
* - Remove the lock(9) protecting the kernel linker system.arr2002-06-191-14/+46
| | | | | | | | | | | - Added a mutex, kld_mtx, to protect the kernel_linker system. Note that while ``classes'' is global (to that file), it is only read only after SI_SUB_KLD, SI_ORDER_ANY. - Add a SYSINIT to flip a flag that disallows class registration after SI_SUB_KLD, SI_ORDER_ANY. Idea for ``classes'' read only by: jake Reviewed by: jake
* - Remove bogus use of kmem_alloc that was inherited from the old zonejeff2002-06-192-17/+18
| | | | | | | | | allocator. - Properly set M_ZERO when talking to the back end page allocators for non malloc zones. This forces us to zero fill pages when they are first brought into a cache. - Properly handle M_ZERO in uma_zalloc_internal. This fixes a problem where per cpu buckets weren't always getting zeroed.
OpenPOWER on IntegriCloud