summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* style.Makefile(5).ru2004-02-0530-920/+759
| | | | OK'ed by: nectar
* Try harder to pick up the correct print_version.c. The old versionru2004-02-051-4/+3
| | | | | | | | works before bsd.dep.mk,v 1.44, whether .depend file exists or not, but the contents of .depend file is wrong. With bsd.dep.mk,v 1.44, the contents of .depend file is always broken, and build without a .depend file is broken too. With this change it works reliably in all cases. Ugh.
* Correct a reference counting bug in shmat(2). If vm_map_find(9)nectar2004-02-051-0/+1
| | | | | | | | failed, the reference count for the virtual memory object referenced by the specified shared memory segment would have been erroneously incremented. Reported by: Joost Pol <joost@pine.nl>
* Rename cn_unavailable to cnunavailable for little more consistency.kan2004-02-054-19/+7
| | | | | | Garbage collect unused cndebug() function. Suggested by: bde
* Fixed operation of -f to match its documentation and fsck_ffs. Itbde2004-02-053-7/+6
| | | | | | | | | has now has no effect except in combination with -p, and plain fsck checks all file systems instead of skipping clean ones for msdosfs only. Renamed the force flag to skipclean and inverted its logic as in fsck_ffs.
* Fixed some bugs in checkdirty(). The check for the clean bit wasbde2004-02-051-9/+27
| | | | | | | | | | | | | | | | | | | combined with the the signature check in a wrong way (basically (dirty:= signature_recognised() && !clean) instead of (mightbedirty:= !signature_recognized || !clean), so file systems with unrecognized signatures were considered clean. Many of the don't-care and reserved bits were not ignored, so some file systems with valid signatures were unrecognized. One of my FAT32 file systems has a signature of f8,ff,ff,ff,ff,ff,ff,f7 when dirty, but only f8,ff,ff,0f,ff,ff,ff,07 was recognised as dirty for FAT32, so the fail-unsafeness made my file system always considered clean. Check the i/o non-error bit in checkdirty(). Its absence would give an unrecognized signature in code that is unaware of it, but we now mask it out of the signature so we have to check it explicitly. This combines naturally with the check of the clean bit. Reviewed by: rnordier (except for final details)
* Updates cx driver information (Cronyx-Sigma)rik2004-02-051-1/+3
| | | | Approved by: imp (mentor)
* printed statistics about source address selection rules.ume2004-02-051-0/+25
| | | | Obtained from: KAME
* stops program if kvm_read fails.ume2004-02-051-2/+3
| | | | Obtained from: KAME
* - support hmac-ripemd160.ume2004-02-051-1/+10
| | | | | | - support AES XCBC MAC/AES counter mode. Obtained from: KAME
* print stats on SPD cache lookups.ume2004-02-051-0/+5
| | | | Obtained from: KAME
* - %d is 12 chars, not 10. use NI_MAX* where appropriate.ume2004-02-051-67/+52
| | | | | | | | - goodbye RC5. - use %llu directly. - KNF. Obtained from: KAME
* Use more generic directories (most prominently, s|/home/des|%%HOME%%|)des2004-02-051-3/+3
|
* Don't create a template file if we're not going to let the user edit it.des2004-02-051-19/+28
|
* Fix a typo in kan's last commit: cnavaiable() -> cnavailable()roam2004-02-051-1/+1
|
* Fix wrong check.pjd2004-02-052-2/+2
| | | | Approved by: jake, scottl (mentor)
* make(1) can now handle spaces surrounding parenthesis correctly.ru2004-02-051-1/+1
|
* Fixed some non-critical memory leaks and one temporary file leakpjd2004-02-051-1/+6
| | | | | | (theoretical). Approved by: phk, scottl (mentor)
* Style fixes: don't indent variable names.silby2004-02-051-6/+6
| | | | Submitted by: bde
* Document the dirty flag and other bits in the first 2 FAT entriesbde2004-02-051-0/+18
| | | | | | | | | | | | better. There is a related I/O error flag which we don't support in the kernel but must support here. (Support for bits that we don't understand here is mostly automatic by fail-safeness, but checkdirty() has fail-unsafeness.) There are some reserved and don't-care bits that weren't fully documented and aren't always masked properly. The comment about the bits in readfat() will be removed when the masking is fixed. Submitted by: rnordier
* - Locking for the per-process resource limits structure has eliminatedalc2004-02-052-5/+1
| | | | | | the need for Giant in vm_map_growstack(). - Use the proc * that is passed to vm_map_growstack() rather than curthread->td_proc.
* Prepare to fix checkdirty() by moving it from check.c to fat.c. It isbde2004-02-052-43/+43
| | | | | identical to a subset of readfat(), so it belongs near readfat() if not in it.
* libkse was renamed to libpthread.davidxu2004-02-052-2/+2
|
* Eliminate global cons_unavailable flag and replace it by the statuskan2004-02-058-18/+65
| | | | | bit maintained on a per-device basis. Single variable is inadequate on machines running with multiple consoles enabled.
* Compile on amd64. (pointer/int mismatches and printf int vs long )peter2004-02-051-5/+5
|
* Add crypto implemenation files (C versions (like alpha, unlike i386))peter2004-02-051-0/+4
|
* Don't cast a pointer to an int that isn't big enough.peter2004-02-051-1/+1
|
* Fix long/int printf format problems exposed by PMAP_DIAGNOSTICpeter2004-02-051-7/+7
|
* GC port.mkversion.des2004-02-051-3/+0
|
* Checkpoint a NOTES file I had as of Nov 23rd. It doesn't quite compilepeter2004-02-041-0/+419
| | | | due to triggering some printf breakage in some DIAGNOSTIC printfs.
* Remove Perl lines; it's better to let use.perl handle them.des2004-02-041-4/+0
|
* When creating raid5 or striped plexes, avoid falling out of boundsle2004-02-041-24/+27
| | | | | | | | when checking the given stripe size. Also move the code a bit around to avoid duplication. Approved by: joerg (mentor)
* Regen.jhb2004-02-0421-36/+36
|
* Fix typo, s/transmitts/transmits/johan2004-02-041-1/+1
| | | | | PR: 62346 Submitted by: Gavin Atkinson (gavin at ury.york.ac.uk)
* The following compat syscalls are now mpsafe: linux_getrlimit(),jhb2004-02-047-15/+15
| | | | | | | linux_setrlimit(), linux_old_getrlimit(), osf1_getrlimit(), osf1_setrlimit(), svr4_sys_ulimit(), svr4_sys_setrlimit(), svr4_sys_getrlimit(), svr4_sys_setrlimit64(), svr4_sys_getrlimit64(), ibcs2_sysconf(), and ibcs2_ulimit().
* Locking for the per-process resource limits structure.jhb2004-02-0442-397/+581
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - struct plimit includes a mutex to protect a reference count. The plimit structure is treated similarly to struct ucred in that is is always copy on write, so having a reference to a structure is sufficient to read from it without needing a further lock. - The proc lock protects the p_limit pointer and must be held while reading limits from a process to keep the limit structure from changing out from under you while reading from it. - Various global limits that are ints are not protected by a lock since int writes are atomic on all the archs we support and thus a lock wouldn't buy us anything. - All accesses to individual resource limits from a process are abstracted behind a simple lim_rlimit(), lim_max(), and lim_cur() API that return either an rlimit, or the current or max individual limit of the specified resource from a process. - dosetrlimit() was renamed to kern_setrlimit() to match existing style of other similar syscall helper functions. - The alpha OSF/1 compat layer no longer calls getrlimit() and setrlimit() (it didn't used the stackgap when it should have) but uses lim_rlimit() and kern_setrlimit() instead. - The svr4 compat no longer uses the stackgap for resource limits calls, but uses lim_rlimit() and kern_setrlimit() instead. - The ibcs2 compat no longer uses the stackgap for resource limits. It also no longer uses the stackgap for accessing sysctl's for the ibcs2_sysconf() syscall but uses kernel_sysctl() instead. As a result, ibcs2_sysconf() no longer needs Giant. - The p_rlimit macro no longer exists. Submitted by: mtm (mostly, I only did a few cleanups and catchups) Tested on: i386 Compiled on: alpha, amd64
* Expand the mask for the Avlab Technology, PCI IO 2S entry to cover thejhb2004-02-041-1/+1
| | | | | | | | 2S-650 and 2S-850 variants. PR: kern/45285 Submitted by: Andrey Zakharchenko <avz AT jscc.ru> MFC after: 1 week
* Fixed editing error in a comment in previous commit.bde2004-02-041-1/+1
|
* Removed TIOCMODG and TIOCMODS. They were superseded by TIOCMGET andbde2004-02-041-13/+24
| | | | | | | | | | | | | TIOCMSET before FreeBSD existed and have never been implemented by any FreeBSD serial driver (not even as aliases). Moved the TIOCM bit definitions to be with TIOCMGET. Added more comments gaps between ioctl numbers. There are now a large number of conflicts with ppp, slip, tap and tun ioctls (especially ppp ones) from closing gaps that weren't there. This mainly breaks decoding of ioctl numbers in kdump, but there are some serious conflicts where the interpretation of a tty ioctl depends on the line discipline.
* Unbreak build with OpenLDAP.ru2004-02-041-0/+2
| | | | Forgotten by: mr
* aic7xxx.c:gibbs2004-02-041-4/+2
| | | | | | | Shorten a diagnostic printf to fit in 80 columns. In ahc_abort_scbs() remove an incorrect diagnostic test that printed a spurious warning.
* aic79xx.c:gibbs2004-02-046-135/+327
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | aic79xx.seq: Convert the COMPLETE_DMA_SCB list to an "stailq". This allows us to safely keep the SCB that is currently being DMA'ed back the host on the head of the list while processing completions off of the bus. The newly completed SCBs are appended to the tail of the queue. In the past, we just dequeued the SCB that was in flight from the list, but this could result in a lost completion should the host perform certain types of error recovery that must cancel all in-flight SCB DMA operations. Switch from using a 16bit completion entry, holding just the tag and the completion valid bit, to a 64bit completion entry that also contains a "status packet valid" indicator. This solves two problems: o The SCB DMA engine on at least Rev B. silicon does not properly deal with a PCI disconnect that occurs at a non-64bit aligned offset in the chips "source buffer". When the transfer is resumed, the DMA engine continues at the correct offset, but may wrap to the head of the buffer causing duplicate completions to be reported to the host. By using a completion buffer in host memory that is 64bit aligned and using 64bit completion entries, such disconnects should only occur at aligned addresses. This assumes that the host bridge will only disconnect on cache-line boundaries and that cache-lines are multpiles of 64bits. o By embedding the status information in the completion entry we can avoid an extra memory reference to the HSCB for commands that complete without error. Use the comparison of a "host freeze count" and a "sequencer freeze count" to allow the host to process most SCBs that complete with non-zero status without having to clear critical sections. Instead the host can just pause the sequencer, performs any necessary cleanup in the waiting for selection list, increments its freeze count on the controller, and unpauses. This is only possible because the sequencer defers completions of SCBs with bad status until after all pending selections have completed. The sequencer then avoids referencing any data structures the host may touch during completion of the SCB until the freeze counts match. aic79xx.c: Change the strategy for allocating our sentinal HSCB for the QINFIFO. In the past, this allocation was tacked onto the QOUTFIFO allocation. Now that the qoutfifo has grown to accomodate larger completion entries, the old approach will result in a 64byte allocation that costs an extra page of coherent memory. We now do this extra allocation via ahd_alloc_scbs() where the "unused space" can be used to allocate "normal" HSCBs. In our packetized busfree handler, use the ENSELO bit to differentiate between packetized and non-packetized unexpected busfree events that occur just after selection, but before the sequencer has had the oportunity to service the selection. When cleaning out the waiting for selection list, use the SCSI mode instead of the command channel mode. The SCB pointer in the command channel mode may be referenced by the SCB dma engine even while the sequencer is paused, whereas the SCSI mode SCB pointer is only accessed by the sequencer. Print the "complete on qfreeze" sequencer SCB completion list in ahd_dump_card_state(). This list holds all SCB completions that are deferred until a pending select-out qfreeze event has taken effect. aic79xx.h: Add definitions and structures to handle the new SCB completion scheme. Add a controller flag that indicates if the controller is in HostRAID mode. aic79xx.reg: Remove macros used for toggling from one data fifo mode to the other. They have not been in use for some time. Add scratch ram fields for our new qfreeze count scheme, converting the complete dma list into an "stailq", and providing for the "complete on qfreeze" SCB completion list. Some other fields were moved to retain proper field alignment (alignment >= field size in bytes). aic79xx.seq: Add code to our idle loop to: o Process deferred completions once a qfreeze event has taken full effect. o Thaw the queue once the sequencer and host qfreeze counts match. Generate 64bit completion entries passing the SCB_SGPTR field as the "good status" indicator. The first bit in this field is only set if we have a valid status packet to send to the host. Convert the COMPLETE_DMA_SCB list to an "stailq". When using "setjmp" to register an idle loop handler, do not combine the "ret" with the block move to pop the stack address in the same instruction. At least on the A, this results in a return to the setjmp caller, not to the new address at the top of the stack. Since we want the latter (we want the newly registered handler to only be invoked from the idle loop), we must use a separate ret instruction. Add a few missing critical sections. Close a race condition that can occur on Rev A. silicon. If both FIFOs happen to be allocated before the sequencer has a chance to service the FIFO that was allocated first, we must take special care to service the FIFO that is not active on the SCSI bus first. This guarantees that a FIFO will be freed to handle any snapshot requests for the FIFO that is still on the bus. Chosing the incorrect FIFO will result in deadlock. Update comments. aic79xx_inline.h Correct the offset calculation for the syncing of our qoutfifo. Update ahd_check_cmdcmpltqueues() for the larger completion entries. aic79xx_pci.c: Attach to HostRAID controllers by default. In the future I may add a sysctl to modify the behavior, but since FreeBSD does not have any HostRAID drivers, failing to attach just results in more email and bug reports for the author. MFC After: 1week
* We don't really need a lockfile, and most likely can't create one atdes2004-02-042-10/+4
| | | | this point.
* Allow libc's version of sem_trywait() to work for non-pshared mutexes.deischen2004-02-041-2/+17
|
* Fixed breakage of POSIX support in rev.1.31. -pipe was added tobde2004-02-041-1/+2
| | | | | | CFLAGS in all cases, but POSIX requires a default of -O. Adding -pipe unconditionally still is still broken for non-gcc compilers in the non-POSIX case.
* Include <sys/queue.h> before <sys/_lock.h> instead of depending onbde2004-02-041-8/+7
| | | | | | | | | | | | | namespace pollution in other headers. <sys/types.h> is now the only prerequisite for <sys/sx.h>. Fixed some style bugs: - removed bogus LOCORE ifdef. Including this C header in assembler sources is just nonsense. - removed unused include of <sys/_mutex.h>. It finished rotting when the mutex in struct sx became indirect in rev.1.15. - removed most comments on #else and #endif's and cleaned up the others. All were misindented...
* - add a description of what .gdbinit should contain.grehan2004-02-041-9/+25
| | | | | | | | | - add an option for the output device in the hope that this can be made non-blocking at some stage. - define an alias for the disk device, required by dev/ofw/ofw_disk.c - shift iobus to 0x9000000 so as not to clash with the OpenFirmware entry point of 0x8000400 when address decoding. - down-tone comments about the disk dev config :-)
* Remove pmap_pvo_allocf zone alloc function. It was a way ofgrehan2004-02-043-81/+12
| | | | | | | | | | | | using the direct-mapping of physmem to force PTE data structures to be physically addressable so the interrupt-time real-mode DSI trap handler could perform PTE spills. However, the memory may have been > 256Mb, which would have caused a BAT spill and double-interrupt. The new trap code no longer handles PTE spills, so the requirement that these pages be direct-mapped no longer applies. The irony is UMA_MD_SMALL_ALLOC will return direct mappings for these structs :-)
* Major overhaul of common trap codegrehan2004-02-042-1616/+710
| | | | | | | | | | | | | | | | | | | | | | | | | - remove unused 601 and tlb exception code - remove interrupt-time PTE spill code. The pmap code will now take care of pinning kernel PTEs, and there are no longer issues about physical mapping of PTE data structures - All segment registers are switched on kernel entry/exit, allowing the kernel to have more virtual space and for user virtual space to extend to 4G. - The temporary register save area has been shifted from unused exception vector space to the per-cpu data area. This allows interrupts to be delivered to multiple CPUs - ISI traps no longer spill to BAT tables. It is assumed that all of kernel instruction memory is pinned. - shift from 'ldmw/stmw' instructions to individual register loads/stores when saving context. All PPC manuals indicate this should be much faster. - use '%r' for register names throughout. TODO: need to test if DSI traps were the result of kernel stack guard-page hits. Reworked from: NetBSD
* - remove unused trap definitionsgrehan2004-02-042-12/+22
| | | | | | - ISI traps are now handled by the generic trap routine - direct diagnostic traps to DDB if defined - remove unused asngen pcpu init
OpenPOWER on IntegriCloud