summaryrefslogtreecommitdiffstats
path: root/sys/sys/queue.h
Commit message (Collapse)AuthorAgeFilesLines
* Correct the definition of CIRCLEQ_EMPTY. It would give a false positivegibbs1997-11-021-2/+2
| | | | | | if the queue contained only one element. Submitted by: Greg Ansley <gja@ansley.com>
* buf.h:gibbs1997-09-211-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the definition of a buffer queue so that bufqdisksort can properly deal with bordered writes. Add inline functions for accessing buffer queues. This should be considered an opaque data structure by clients. callout.h: New callout implementation. device.h: Add support for CAM interrupts. disk.h: disklabel.h: tqdisksort->bufqdisksort kernel.h: Add new configuration entries for configuration hooks and calling cpu_rootconf and cpu_dumpconf. param.h: Add a priority for sleeping waiting on config hooks. proc.h: Update for new callout implementation. queue.h: Add TAILQ_HEAD_INITIALIZER from NetBSD. systm.h: Add prototypes for cpu_root/dumpconf, splcam, splsoftcam, etc..
* Add SLIST_FOREACHphk1997-08-251-2/+5
|
* Add accessors for STAILQ.dfr1997-05-071-1/+6
| | | | Reviewed by: phk
* Add some more "member functions" to these. Still not complete.phk1997-04-271-1/+41
|
* Add LIST_FIRST, LIST_FOREACH and LIST_NEXTphk1997-04-141-1/+8
|
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-221-1/+1
| | | | ready for it yet.
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Addphk1996-12-291-1/+7
| | | | | | | | SLIST_EMPTY(head) SLIST_FIRST(head) SLIST_NEXT(elm, field) Which do the obvious things while hiding implementation details.
* This set of commits to the VM system does the following, and containdyson1996-05-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | contributions or ideas from Stephen McKay <syssgm@devetir.qld.gov.au>, Alan Cox <alc@cs.rice.edu>, David Greenman <davidg@freebsd.org> and me: More usage of the TAILQ macros. Additional minor fix to queue.h. Performance enhancements to the pageout daemon. Addition of a wait in the case that the pageout daemon has to run immediately. Slightly modify the pageout algorithm. Significant revamp of the pmap/fork code: 1) PTE's and UPAGES's are NO LONGER in the process's map. 2) PTE's and UPAGES's reside in their own objects. 3) TOTAL elimination of recursive page table pagefaults. 4) The page directory now resides in the PTE object. 5) Implemented pmap_copy, thereby speeding up fork time. 6) Changed the pv entries so that the head is a pointer and not an entire entry. 7) Significant cleanup of pmap_protect, and pmap_remove. 8) Removed significant amounts of machine dependent fork code from vm_glue. Pushed much of that code into the machine dependent pmap module. 9) Support more completely the reuse of already zeroed pages (Page table pages and page directories) as being already zeroed. Performance and code cleanups in vm_map: 1) Improved and simplified allocation of map entries. 2) Improved vm_map_copy code. 3) Corrected some minor problems in the simplify code. Implemented splvm (combo of splbio and splimp.) The VM code now seldom uses splhigh. Improved the speed of and simplified kmem_malloc. Minor mod to vm_fault to avoid using pre-zeroed pages in the case of objects with backing objects along with the already existant condition of having a vnode. (If there is a backing object, there will likely be a COW... With a COW, it isn't necessary to start with a pre-zeroed page.) Minor reorg of source to perhaps improve locality of ref.
* Add five macros to TAILQ family to improve readability.phk1996-04-081-1/+9
|
* Implement the SLIST and the STAILQ macros. This gives a program all thegibbs1996-03-311-3/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | aesthetics of using the 4.4 queue macros without paying undo space or time in scenartios where a singly-linked list works fine. From queue.h: /* * A singly-linked list is headed by a single forward pointer. The elements * are singly linked for minimum space and pointer manipulation overhead at * the expense of O(n) removal for arbitrary elements. New elements can be * added to the list after an existing element or at the head of the list. * Elements being removed from the head of the list should use the explicit * macro for this purpose for optimum efficiency. A singly-linked list may * only be traversed in the forward direction. Singly-linked lists are ideal * for applications with large datasets and few or no removals or for * implementing a LIFO queue. * * A singly-linked tail queue is headed by a pair of pointers, one to the * head of the list and the other to the tail of the list. The elements are * singly linked for minimum space and pointer manipulation overhead at the * expense of O(n) removal for arbitrary elements. New elements can be added * to the list after an existing element, at the head of the list, or at the * end of the list. Elements being removed from the head of the tail queue * should use the explicit macro for this purpose for optimum efficiency. * A singly-linked tail queue may only be traversed in the forward direction. * Singly-linked tail queues are ideal for applications with large datasets * and few or no removals or for implementing a FIFO queue. */
* Merge in Lite2: fix commenthsu1996-03-111-9/+9
| | | | | optimize TAILQ_INSERT_HEAD Reviewed by: davidg & bde
* 4.4Lite2 implemented the LIST_INSERT_BEFORE and TAILQ_INSERT_BEFOREgibbs1996-02-121-2/+2
| | | | | | | exactly as I did (should have checked there first I guess) except my macro for TAILQ_INSERT_BEFORE took an unneeded arg. We now match 4.4Lite2. Suggested by: Jeffrey Hsu <hsu@FreeBSD.org>
* Add LIST_INSERT_BEFORE and TAILQ_INSERT_BEFORE. These are used by thegibbs1996-01-291-1/+15
| | | | new eisaconf code.
* Moved inline functions for insque() and remque() to <sys/queue.h>.bde1995-12-031-3/+48
| | | | | | | Protected them with `#ifdef KERNEL' so that <sys/queue.h> is valid C++. Added the necessary #includes of <sys/queue.h>. These functions are bogus and should be replaced by the queue macros.
* Remove trailing whitespace.rgrimes1995-05-301-2/+2
|
* Added $Id$dg1994-08-021-0/+1
|
* BSD 4.4 Lite Kernel Sourcesrgrimes1994-05-241-0/+245
OpenPOWER on IntegriCloud