1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-28 00:01:33 -08:00
Commit graph

27 commits

Author SHA1 Message Date
Gareth Rees
e0b5909232 Defend against the visitor function modifying the block.
Copied from Perforce
 Change: 186367
 ServerID: perforce.ravenbrook.com
2014-05-30 12:17:02 +01:00
Gareth Rees
51e39dc087 Pass and check special closure values unused_pointer, unused_size instead of null, 0.
Copied from Perforce
 Change: 186352
 ServerID: perforce.ravenbrook.com
2014-05-29 15:28:33 +01:00
Gareth Rees
8e4721db4c Fix problems identified by rb in review <https://info.ravenbrook.com/mail/2014/05/29/13-01-02/0/>.
Copied from Perforce
 Change: 186347
 ServerID: perforce.ravenbrook.com
2014-05-29 14:50:36 +01:00
Richard Brooksby
331306ee0e Fixing unbracketed macro parameter.
Copied from Perforce
 Change: 186345
 ServerID: perforce.ravenbrook.com
2014-05-29 14:07:24 +01:00
Gareth Rees
fd57486106 Fix problems identified by dl in review <https://info.ravenbrook.com/mail/2014/05/23/12-44-54/0/>.
Copied from Perforce
 Change: 186300
 ServerID: perforce.ravenbrook.com
2014-05-25 20:49:22 +01:00
Gareth Rees
181767e4db Split land iteration into two functions, one which deletes ranges, the other which does not.
Copied from Perforce
 Change: 186298
 ServerID: perforce.ravenbrook.com
2014-05-25 19:26:48 +01:00
Gareth Rees
64f59a3797 Ignore or use the result of landiterate.
Copied from Perforce
 Change: 186166
 ServerID: perforce.ravenbrook.com
2014-05-18 22:50:22 +01:00
Gareth Rees
bb21449097 Landiterate now returns a bool indicating whether all visitor calls returned true.
Copied from Perforce
 Change: 186165
 ServerID: perforce.ravenbrook.com
2014-05-18 22:46:16 +01:00
Gareth Rees
34cc9d49e4 Catch-up merge from master sources @186077 to branch/2014-03-30/addrset.
Copied from Perforce
 Change: 186081
 ServerID: perforce.ravenbrook.com
2014-05-13 16:21:39 +01:00
Gareth Rees
7620c6fcd1 Fix rash build on os x by adding the unused attribute to functions declared static that are not called in the rash variety.
Copied from Perforce
 Change: 185915
 ServerID: perforce.ravenbrook.com
2014-05-01 12:18:00 +01:00
Gareth Rees
3ea6e3af7d Use freelistend instead of null as the special value.
Copied from Perforce
 Change: 185617
 ServerID: perforce.ravenbrook.com
2014-04-17 00:19:45 +01:00
Gareth Rees
87b3880405 New generic function landsize returns the total size of ranges in a land (if the land supports it). implement it for all land classes.
The MVFF pool class doesn't have to maintain its free size any more: it can just call LandSize.
Move re-entrancy protection from CBS to Land. This allows us to remove some CBS functions. (But requires some adjustment in failoverDelete.)
In MVFF, do more checking of mvff->total.

Copied from Perforce
 Change: 185569
 ServerID: perforce.ravenbrook.com
2014-04-15 16:35:34 +01:00
Gareth Rees
a595c2ff20 Trying to create a freelist with too-small alignment is a static programming error, not a dynamic failure condition, so aver instead of returning resparam. (see job003485).
Copied from Perforce
 Change: 185426
 ServerID: perforce.ravenbrook.com
2014-04-10 13:02:22 +01:00
Gareth Rees
86a50c3d1c Fix file-at-a-time compilation.
Copied from Perforce
 Change: 185210
 ServerID: perforce.ravenbrook.com
2014-04-03 15:01:53 +01:00
Gareth Rees
0b159dc650 New module failover implements a fail-over allocator as a land class.
Use Failover in MVT and MVFF.
Test Failover in landtest.
Implementation of LandFindInZones for Freelist (untested).
Remove signature from RangeStruct so we can embed it without a space cost.

Copied from Perforce
 Change: 185196
 ServerID: perforce.ravenbrook.com
2014-04-03 12:52:23 +01:00
Gareth Rees
b409ae89f6 Turn freelist into a land class.
Copied from Perforce
 Change: 185155
 ServerID: perforce.ravenbrook.com
2014-04-02 14:01:18 +01:00
Gareth Rees
d2cbfda452 First pass at implementation of lands (collections of address ranges). 100% boilerplate!
Copied from Perforce
 Change: 185131
 ServerID: perforce.ravenbrook.com
2014-04-01 19:51:55 +01:00
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