diff options
Diffstat (limited to 'xs.h')
-rw-r--r-- | xs.h | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -34,9 +34,7 @@ typedef char d_char; /* auto-destroyable strings */ #define xs __attribute__ ((__cleanup__ (_xs_destroy))) d_char -#define _XS_BLK_SIZE 16 -#define _xs_blk_size(sz) ((((sz) + _XS_BLK_SIZE) / _XS_BLK_SIZE) * _XS_BLK_SIZE) - +int _xs_blk_size(int sz); void _xs_destroy(char **var); #define xs_debug() raise(SIGTRAP) xstype xs_type(const char *data); @@ -97,6 +95,22 @@ void _xs_destroy(char **var) free(*var); } + +int _xs_blk_size(int sz) +/* calculates the block size */ +{ + int blk_size = 4096; + + if (sz < 256) + blk_size = 32; + else + if (sz < 4096) + blk_size = 256; + + return ((((sz) + blk_size) / blk_size) * blk_size); +} + + xstype xs_type(const char *data) /* return the type of data */ { |