summaryrefslogtreecommitdiff
path: root/sys/kern/uipc_mbuf.c
AgeCommit message (Collapse)Author
2002-07-03Change all variables definitions (int foo) in sys/sys/*.h to variableMiod Vallat
declarations (extern int foo), and compensate in the appropriate locations.
2002-03-14First round of __P removal in sysTodd C. Miller
2002-02-25Make pool_sethardlimit() check that it doesn't decrease the limit belowDaniel Hartmeier
the current size of the pool. ok art@
2002-02-17Patch from Daniel Lucq <daniel@lucq.org>Mats O Jansson
The patch allows you to change the value of NMBCLUSTERS, BUFCACHEPERCENT and NKMEMPAGES using the config command, instead of recompiling the kernel. This is the kernel part of the patch. I have compiled it on i386, sparc64, alpha and macppc. -moj ok art@ maja@
2002-02-05Zero-ize ext even if it has a free method defined.Angelos D. Keromytis
2002-02-05panic if a read-only mbuf is given to m_zero() --- from art@openbsd.orgAngelos D. Keromytis
2002-02-05Fix m_zero() yet again -- yesterday's fix wasn't sufficient.Angelos D. Keromytis
2002-02-04Also, cleanup any external buffers first (paranoid).Angelos D. Keromytis
2002-02-04Revision 1.37 was borked... This time, fix the casts and address theJason Wright
void * arithmetic problem correctly in m_zero()
2002-01-25Add a drain hook to each pool. This hook is called in three cases.Artur Grabowski
1. When a pool hit the hard limit. Just before bailing out/sleeping. 2. When an allocator fails to allocate memory (with PR_NOWAIT). 3. Just before trying to reclaim some page in pool_reclaim. The function called form the hook should try to free some items to the pool if possible. Convert m_reclaim hooks that were embedded in MCLGET, MGET and MGETHDR into a pool drain hook (making the code much cleaner).
2002-01-23move mb_map allocation to mbinit()Artur Grabowski
2002-01-23move definition of mb_map from zillions of machdep.c to uipc_mbuf.cArtur Grabowski
2002-01-23Pool deals fairly well with physical memory shortage, but it doesn't dealArtur Grabowski
well (not at all) with shortages of the vm_map where the pages are mapped (usually kmem_map). Try to deal with it: - group all information the backend allocator for a pool in a separate struct. The pool will only have a pointer to that struct. - change the pool_init API to reflect that. - link all pools allocating from the same allocator on a linked list. - Since an allocator is responsible to wait for physical memory it will only fail (waitok) when it runs out of its backing vm_map, carefully drain pools using the same allocator so that va space is freed. (see comments in code for caveats and details). - change pool_reclaim to return if it actually succeeded to free some memory, use that information to make draining easier and more efficient. - get rid of PR_URGENT, noone uses it.
2002-01-16Don't include <sys/map.h> when you don't need what's in it.Miod Vallat
2001-12-18NRL license cleaningTheo de Raadt
2001-11-28zap some typedefs.Artur Grabowski
vm_map_t -> struct vm_map * vm_map_entry_t -> struct vm_map_entry * simple_lock_data_t -> struct simplelock (uvm not done yet, coming in the next commit)
2001-11-06Replace inclusion of <vm/foo.h> with the correct <uvm/bar.h> when necessary.Miod Vallat
(Look ma, I might have broken the tree)
2001-09-12mbutl no moreArtur Grabowski
2001-06-27remove old vmArtur Grabowski
2001-06-27Update comment.Angelos D. Keromytis
2001-06-27Get rid of M_COPY_* macros; either use M_MOVE_* or M_DUP_*, dependingAngelos D. Keromytis
on how macros should be treated. Code by fgsch@, ok by me and itojun@
2001-06-26Appease gcc by not using void pointers in arithmetic operations; art@ okAaron Campbell
2001-06-25Don't reset M_PKTHDR before we copy the mbuf flags (bad Federico!)Angelos D. Keromytis
2001-06-25Move common post M_COPY_HDR manipulation to the macro itself; angelos@ ok.Federico G. Schwindt
2001-05-26Use m_tag_init() and M_COPY_HDR().Angelos D. Keromytis
2001-05-26Fix backpointer.Angelos D. Keromytis
2001-05-24If the copied tag container is empty, initialize it properly.Angelos D. Keromytis
2001-05-20m_tag_* routines, plus minor changes (convert from tdbi to tags)Angelos D. Keromytis
2001-05-18Use pool_page_alloc_nointr() and pool_page_free_nointr() since theyTodd C. Miller
are exported wheras pool_page_alloc() and pool_page_free() are static. In the non-UVM case these just call pool_page_alloc() and pool_page_free() anyway.
2001-05-17convert mbuf and cluster allocation to pool, mostly from NetBSDNiels Provos
okay art@ miod@
2001-05-16Introduce a new kernel option "SMALL_KERNEL" that will be used to keep theArtur Grabowski
kernel size down. Two changes. Uninline MALLOC and uninline a few mbuf macros. Saves 140k on alpha RAMDISK (although only 11k after gzip).
2001-05-05Get rid of CLSIZE and all related stuff.Artur Grabowski
CLSIZE -> 1 CLBYTES -> PAGE_SIZE OLOFSET -> PAGE_MASK etc. At the same time some archs needed some cleaning in vmparam.h so that goes in at the same time.
2001-04-05From angelos: (he can't commit this himself right now)Artur Grabowski
> I must have been on drugs...a deep copy is needed, or else there's double > free's when there's IPsec. [...] > This should solve the crash problems.
2001-03-30Be consistent when adjusting pkthdr.len; it doesn't matter currently,Angelos D. Keromytis
since the callers always do the right thing, but it might in the future. Pointed out by art@
2001-03-28Allow tdbi's to appear in mbufs throughout the stack; this allowsAngelos D. Keromytis
security properties of the packets to be pushed up to the application (not done yet). Eventually, this will be turned into a packet attributes framework. Make sure tdbi's are free'd/cleared properly whenever drivers (or NFS) does weird things with mbufs.
2001-03-25Not really a bug but one day panic might throw an exception or something. ↵Constantine Sapuntzakis
THanks to dawson and team for fix
2000-03-03Style.Angelos D. Keromytis
2000-03-03Remove extraneous newline.Angelos D. Keromytis
2000-03-02New function: m_getptr(), takes as argument an mbuf chain and anAngelos D. Keromytis
offset, returns a pointer to them specific mbuf and the offset inside it that corresponds to the offset argument (so one can find where the n'th byte is in an mbuf).
1999-12-31copy pkthdr correctly in m_split, okay angelos@Niels Provos
1999-12-05Add an m_inject()Angelos D. Keromytis
1999-10-01remove dependency on external storage managed by mclusters andJason Wright
add more support for external managers
1999-09-12style(9)Niklas Hallqvist
1999-08-17There was a line missing in the commit from rev 1.6 that resulted inTodd C. Miller
an uninitialized variable; art@stacken.kth.se
1999-08-09make panic messages uniqueTheo de Raadt
1999-07-02Added a simple but potentially very useful new mbuf function, m_apply().cmetz
It applies the supplied function f(state, p, len) to every contiguous region in a mbuf, thus mostly handling all the mbuf-isms for you. It's used by my TCP MD5 signature implementation to run MD5 over the TCP payload data in a mbuf so that I don't have to spread mbufism-loops all over. It might also be useful for IPsec.
1999-05-14OpenBSD has no ext_func, so that test is bogus.cmetz
1999-05-14m_zero will no longer zero the contents of a cluster if there's an alias to it.cmetz
(TCP uses cluster mbuf aliases for retransmission, and this would cause your data to get retransmitted zeroed-out)
1999-05-12Fix problem with data corruption for retransmitted TCP packetsHakan Olsson
in an IPSec ESP tunnel. OpenBSD PR 819.
1999-02-26kmem allocation changes for uvmArtur Grabowski