Go to the source code of this file.
|
|
|
|
|
|
|
|
|
returns an error if {blk,nb_blks} collides whith an elt from the set, else AREA_EZERO |
|
dump the set (debug) |
|
returns 1 if list is empty, else 0 |
|
find space coalescible with ref_llarea. all field of ref_llarea should be set excepted blk (included rec specific fields as it will call coalesce() ) |
|
get the space matching nb_blks according to fit_method |
|
get the first empty space matching nb_blks |
|
get the worst empty space matching nb_blks |
|
apply a function to all area_list in the set |
|
this function returns the best matching llarea. |
|
should not be called directly as it doesn't check anything, see rather llarea_set_add(9) |
|
|
|
|
|
|
|
Descr: Add specified llarea to set. Glue zones if possible (if they match). note there could be 0, 1 or 2 unused (or released) area_list. Input: Caller allocates "new" and set it with values. No need to set "unused1" and "unused2". Output: Free pointers "new" and "unused1" which are not NULL. |
|
Descr: Modify the specified llarea, eventually split existing llarea in zero, one or two pieces. this function eventually glue modified llarea to enclosing area_list if they matches. Input: Protocol here is the following: caller allocates 2 area_list and set a pointer to their address. "New" should be initialized with fields {blk, nb_blks, data+content}, and "new2" should be initialized with fields {data} (no content). After call, if they are set to NULL, it means they have been used. Two records, unused1 and unused2 could also be sent back. If "no_alloc" is set to 1 then one assertion will be done when using "new" and "new2". Output: free pointers "new", "new2", "unused1", "unused2" which are not NULL. |
|
Descr: Remove an arbitrary llarea from set. Input: "Todel" fields {blk, nb_blks, data} must be correctly filled altough "data" content has not to be initialized. Please note "todel" is not a pointer to an existing llarea but a newly allocated pointer that can be eventually used by API. "Unused1" is not allocated and not set to anything. If "no_alloc" is set to 1 then one assertion will be done when using "todel" Output: Free pointers "todel", "unused1" which are not used. Notes: copy() might be used on some parts of "todel". |
|
|
|
|
|
|
|
|
|
returns total size of set. match might be NULL |