Add a cramlimit function on page sizes

parent 3b9df28e
...@@ -199,13 +199,12 @@ npages(size_t size, unsigned bits) ...@@ -199,13 +199,12 @@ npages(size_t size, unsigned bits)
* not be smaller than 1<<bits * not be smaller than 1<<bits
*/ */
int8_t int8_t
BUDDYF(cramlimit_extent_minbits)(size_t sz, int8_t cram, int8_t bits) BUDDYF(cramlimit_page_minbits)(int8_t up, int8_t cram, int8_t bits)
{ {
int8_t up;
if (cram == 0) if (cram == 0)
return (cram); return (cram);
up = (int8_t)(uint8_t)log2up(sz);
assert(up >= bits); assert(up >= bits);
up -= bits; up -= bits;
if (abs(cram) <= up) if (abs(cram) <= up)
...@@ -213,6 +212,17 @@ BUDDYF(cramlimit_extent_minbits)(size_t sz, int8_t cram, int8_t bits) ...@@ -213,6 +212,17 @@ BUDDYF(cramlimit_extent_minbits)(size_t sz, int8_t cram, int8_t bits)
return (cram < 0 ? 0 - up : up); return (cram < 0 ? 0 - up : up);
} }
int8_t
BUDDYF(cramlimit_extent_minbits)(size_t sz, int8_t cram, int8_t bits)
{
if (cram == 0)
return (cram);
return (BUDDYF(cramlimit_page_minbits)(
(int8_t)(uint8_t)log2up(sz), cram, bits));
}
/************************************************************ /************************************************************
* init free map * init free map
......
...@@ -88,6 +88,7 @@ typedef struct BUDDY buddy_t; ...@@ -88,6 +88,7 @@ typedef struct BUDDY buddy_t;
*/ */
void * BUDDYF(mmap)(size_t *, void *); void * BUDDYF(mmap)(size_t *, void *);
void BUDDYF(unmap)(void **, size_t, void **); void BUDDYF(unmap)(void **, size_t, void **);
int8_t BUDDYF(cramlimit_page_minbits)(int8_t, int8_t, int8_t);
int8_t BUDDYF(cramlimit_extent_minbits)(size_t, int8_t, int8_t); int8_t BUDDYF(cramlimit_extent_minbits)(size_t, int8_t, int8_t);
static inline int static inline int
abslimit(int val, int lim) abslimit(int val, int lim)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment