Gareth Rees
36bcd67544
Oops, forgot fl argument to freelistblocklimit.
...
Copied from Perforce
Change: 182586
ServerID: perforce.ravenbrook.com
2013-06-06 15:58:02 +01:00
Gareth Rees
997477468b
Extra-careful check after setting the limit.
...
Copied from Perforce
Change: 182585
ServerID: perforce.ravenbrook.com
2013-06-06 15:51:41 +01:00
Gareth Rees
5db8a1802d
Represent a block on the free list as a freelistblock rather than an addr (for better type safety). add many checks.
...
Copied from Perforce
Change: 182584
ServerID: perforce.ravenbrook.com
2013-06-06 15:47:37 +01:00
Gareth Rees
7288e21131
Avoid "variable may be used uninitialized" warnings.
...
Copied from Perforce
Change: 182513
ServerID: perforce.ravenbrook.com
2013-06-04 18:46:07 +01:00
Gareth Rees
f0def15a48
Freelistfindlargest() takes a size argument so that the interface matches cbsfindlargest().
...
New function FreelistFlushToCBS() tries to move all blocks out of a free list and into a CBS.
Copied from Perforce
Change: 182432
ServerID: perforce.ravenbrook.com
2013-06-03 16:17:28 +01:00
Gareth Rees
0260380dd3
Rename cbstest.c to fbmtest.c (free block management test) and generalize it so that it tests both the cbs and freelist modules.
...
Split FreelistFind into FreelistFindFirst and FreelistFindLast so that the interface exactly matches the CBS interface.
Fix errors in freelist.c: missing computation of size in FreelistBlockSetLimit; update linked list correct in coalesceRight case in FreelistInsert.
Avoid compiler warnings in freelist.c.
In cbs.c: use $U for Booleans ($B is for bit tables).
Copied from Perforce
Change: 182397
ServerID: perforce.ravenbrook.com
2013-06-02 21:34:23 +01:00
Gareth Rees
83aff660e2
Use a tag in the bottom bit to distinguish grains and blocks in the free list. this results in much simplification of the code.
...
Copied from Perforce
Change: 182362
ServerID: perforce.ravenbrook.com
2013-05-31 13:41:36 +01:00
Gareth Rees
915a41123c
Fix iteration in freelistfindlargest.
...
Copied from Perforce
Change: 182359
ServerID: perforce.ravenbrook.com
2013-05-31 10:44:02 +01:00
Gareth Rees
04f2738a18
Improve documentation. fix off-by-one errors in the setprevnext functions.
...
Copied from Perforce
Change: 182350
ServerID: perforce.ravenbrook.com
2013-05-31 00:41:28 +01:00
Gareth Rees
032657464b
New "freelist" module implementes a simple address-ordered linked list allocator (based on the "emergency list" allocator that was formerly part of the cbs module).
...
Copied from Perforce
Change: 182348
ServerID: perforce.ravenbrook.com
2013-05-31 00:12:49 +01:00