Hi,

When initially ported blist from DragonFlyBSD, we used custom type bsblk_t and 
bsbmp_t instead of the one used by DragonFlyBSD (swblk_t and u_swblk_t).

The reason was swblk_t is already defined on OpenBSD, and was incompatible with 
blist (int32_t). It is defined, but not used (outside some regress file which 
seems to be not affected by type change).

This diff changes the __swblk_t definition in sys/_types.h to be 'unsigned 
long', and switch back blist to use swblk_t (and u_swblk_t, even if it isn't 
'unsigned swblk_t').

It makes the diff with DragonFlyBSD more thin. I added a comment with the git 
id 
used for the initial port.

I tested it on i386 and amd64 (kernel and userland).

By changing bitmap type from 'u_long' to 'u_swblk_t' ('u_int64_t'), it makes 
the 
regress the same on 64 and 32bits archs (and it success on both).

Comments or OK ?
-- 
Sebastien Marie

diff /home/semarie/repos/openbsd/src
commit - 73f52ef7130cefbe5a8fe028eedaad0e54be7303
path + /home/semarie/repos/openbsd/src
blob - e05867429cdd81c434f9ca589c1fb8c6d25957f8
file + sys/sys/_types.h
--- sys/sys/_types.h
+++ sys/sys/_types.h
@@ -60,7 +60,7 @@ typedef       __uint8_t       __sa_family_t;  /* sockaddr 
address f
 typedef        __int32_t       __segsz_t;      /* segment size */
 typedef        __uint32_t      __socklen_t;    /* length type for network 
syscalls */
 typedef        long            __suseconds_t;  /* microseconds (signed) */
-typedef        __int32_t       __swblk_t;      /* swap offset */
+typedef        unsigned long   __swblk_t;      /* swap offset */
 typedef        __int64_t       __time_t;       /* epoch time */
 typedef        __int32_t       __timer_t;      /* POSIX timer identifiers */
 typedef        __uint32_t      __uid_t;        /* user id */
blob - 102ca95dd45ba6d9cab0f3fcbb033d6043ec1606
file + sys/sys/blist.h
--- sys/sys/blist.h
+++ sys/sys/blist.h
@@ -1,4 +1,5 @@
 /* $OpenBSD: blist.h,v 1.1 2022/07/29 17:47:12 semarie Exp $ */
+/* DragonFlyBSD:7b80531f545c7d3c51c1660130c71d01f6bccbe0:/sys/sys/blist.h */
 /*
  * Copyright (c) 2003,2004 The DragonFly Project.  All rights reserved.
  * 
@@ -65,15 +66,13 @@
 #include <sys/types.h>
 #endif
 
-#define        SWBLK_BITS 64
-typedef u_long bsbmp_t;
-typedef u_long bsblk_t;
+typedef u_int64_t      u_swblk_t;
 
 /*
  * note: currently use SWAPBLK_NONE as an absolute value rather then
  * a flag bit.
  */
-#define SWAPBLK_NONE   ((bsblk_t)-1)
+#define SWAPBLK_NONE   ((swblk_t)-1)
 
 /*
  * blmeta and bl_bitmap_t MUST be a power of 2 in size.
@@ -81,39 +80,39 @@ typedef u_long bsblk_t;
 
 typedef struct blmeta {
        union {
-           bsblk_t     bmu_avail;      /* space available under us     */
-           bsbmp_t     bmu_bitmap;     /* bitmap if we are a leaf      */
+           swblk_t     bmu_avail;      /* space available under us     */
+           u_swblk_t   bmu_bitmap;     /* bitmap if we are a leaf      */
        } u;
-       bsblk_t         bm_bighint;     /* biggest contiguous block hint*/
+       swblk_t         bm_bighint;     /* biggest contiguous block hint*/
 } blmeta_t;
 
 typedef struct blist {
-       bsblk_t         bl_blocks;      /* area of coverage             */
+       swblk_t         bl_blocks;      /* area of coverage             */
        /* XXX int64_t bl_radix */
-       bsblk_t         bl_radix;       /* coverage radix               */
-       bsblk_t         bl_skip;        /* starting skip                */
-       bsblk_t         bl_free;        /* number of free blocks        */
+       swblk_t         bl_radix;       /* coverage radix               */
+       swblk_t         bl_skip;        /* starting skip                */
+       swblk_t         bl_free;        /* number of free blocks        */
        blmeta_t        *bl_root;       /* root of radix tree           */
-       bsblk_t         bl_rootblks;    /* bsblk_t blks allocated for tree */
+       swblk_t         bl_rootblks;    /* swblk_t blks allocated for tree */
 } *blist_t;
 
-#define BLIST_META_RADIX       (sizeof(bsbmp_t)*8/2)   /* 2 bits per */
-#define BLIST_BMAP_RADIX       (sizeof(bsbmp_t)*8)     /* 1 bit per */
+#define BLIST_META_RADIX       (sizeof(u_swblk_t)*8/2) /* 2 bits per */
+#define BLIST_BMAP_RADIX       (sizeof(u_swblk_t)*8)   /* 1 bit per */
 
 /*
  * The radix may exceed the size of a 64 bit signed (or unsigned) int
- * when the maximal number of blocks is allocated.  With a 32-bit bsblk_t
+ * when the maximal number of blocks is allocated.  With a 32-bit swblk_t
  * this corresponds to ~1G x PAGE_SIZE = 4096GB.  The swap code usually
  * divides this by 4, leaving us with a capability of up to four 1TB swap
  * devices.
  *
- * With a 64-bit bsblk_t the limitation is some insane number.
+ * With a 64-bit swblk_t the limitation is some insane number.
  *
  * NOTE: For now I don't trust that we overflow-detect properly so we divide
  *      out to ensure that no overflow occurs.
  */
 
-#if SWBLK_BITS == 64
+#if defined(_LP64)
 #define BLIST_MAXBLKS          (0x4000000000000000LL /         \
                                 (BLIST_BMAP_RADIX / BLIST_META_RADIX))
 #else
@@ -123,14 +122,14 @@ typedef struct blist {
 
 #define BLIST_MAX_ALLOC                BLIST_BMAP_RADIX
 
-blist_t blist_create(bsblk_t);
+blist_t blist_create(swblk_t);
 void blist_destroy(blist_t);
-bsblk_t blist_alloc(blist_t, bsblk_t);
-bsblk_t blist_allocat(blist_t, bsblk_t, bsblk_t);
-void blist_free(blist_t, bsblk_t, bsblk_t);
-bsblk_t blist_fill(blist_t, bsblk_t, bsblk_t);
+swblk_t blist_alloc(blist_t, swblk_t);
+swblk_t blist_allocat(blist_t, swblk_t, swblk_t);
+void blist_free(blist_t, swblk_t, swblk_t);
+swblk_t blist_fill(blist_t, swblk_t, swblk_t);
 void blist_print(blist_t);
-void blist_resize(blist_t *, bsblk_t, int);
-void blist_gapfind(blist_t, bsblk_t *, bsblk_t *);
+void blist_resize(blist_t *, swblk_t, int);
+void blist_gapfind(blist_t, swblk_t *, swblk_t *);
 
 #endif /* _SYS_BLIST_H_ */
blob - 4cf6259417df583dadc5d63e7bb1753628eb8b50
file + sys/kern/subr_blist.c
--- sys/kern/subr_blist.c
+++ sys/kern/subr_blist.c
@@ -1,4 +1,5 @@
 /* $OpenBSD: subr_blist.c,v 1.1 2022/07/29 17:47:12 semarie Exp $ */
+/* 
DragonFlyBSD:7b80531f545c7d3c51c1660130c71d01f6bccbe0:/sys/kern/subr_blist.c */
 /*
  * BLIST.C -   Bitmap allocator/deallocator, using a radix tree with hinting
  * 
@@ -133,29 +134,29 @@
  * static support functions
  */
 
-static bsblk_t blst_leaf_alloc(blmeta_t *scan, bsblk_t blkat,
-                               bsblk_t blk, bsblk_t count);
-static bsblk_t blst_meta_alloc(blmeta_t *scan, bsblk_t blkat,
-                               bsblk_t blk, bsblk_t count,
-                               bsblk_t radix, bsblk_t skip);
-static void blst_leaf_free(blmeta_t *scan, bsblk_t relblk, bsblk_t count);
-static void blst_meta_free(blmeta_t *scan, bsblk_t freeBlk, bsblk_t count,
-                                       bsblk_t radix, bsblk_t skip,
-                                       bsblk_t blk);
-static bsblk_t blst_leaf_fill(blmeta_t *scan, bsblk_t blk, bsblk_t count);
-static bsblk_t blst_meta_fill(blmeta_t *scan, bsblk_t fillBlk, bsblk_t count,
-                                       bsblk_t radix, bsblk_t skip,
-                                       bsblk_t blk);
-static void blst_copy(blmeta_t *scan, bsblk_t blk, bsblk_t radix,
-                               bsblk_t skip, blist_t dest, bsblk_t count);
-static bsblk_t blst_radix_init(blmeta_t *scan, bsblk_t radix,
-                                               bsblk_t skip, bsblk_t count);
-static int blst_radix_gapfind(blmeta_t *scan, bsblk_t blk, bsblk_t radix, 
bsblk_t skip,
-    int state, bsblk_t *maxbp, bsblk_t *maxep, bsblk_t *bp, bsblk_t *ep);
+static swblk_t blst_leaf_alloc(blmeta_t *scan, swblk_t blkat,
+                               swblk_t blk, swblk_t count);
+static swblk_t blst_meta_alloc(blmeta_t *scan, swblk_t blkat,
+                               swblk_t blk, swblk_t count,
+                               swblk_t radix, swblk_t skip);
+static void blst_leaf_free(blmeta_t *scan, swblk_t relblk, swblk_t count);
+static void blst_meta_free(blmeta_t *scan, swblk_t freeBlk, swblk_t count, 
+                                       swblk_t radix, swblk_t skip,
+                                       swblk_t blk);
+static swblk_t blst_leaf_fill(blmeta_t *scan, swblk_t blk, swblk_t count);
+static swblk_t blst_meta_fill(blmeta_t *scan, swblk_t fillBlk, swblk_t count,
+                                       swblk_t radix, swblk_t skip,
+                                       swblk_t blk);
+static void blst_copy(blmeta_t *scan, swblk_t blk, swblk_t radix,
+                               swblk_t skip, blist_t dest, swblk_t count);
+static swblk_t blst_radix_init(blmeta_t *scan, swblk_t radix,
+                                               swblk_t skip, swblk_t count);
+static int blst_radix_gapfind(blmeta_t *scan, swblk_t blk, swblk_t radix, 
swblk_t skip,
+    int state, swblk_t *maxbp, swblk_t *maxep, swblk_t *bp, swblk_t *ep);
 
 #if defined(BLIST_DEBUG) || defined(DDB)
-static void    blst_radix_print(blmeta_t *scan, bsblk_t blk,
-                                       bsblk_t radix, bsblk_t skip, int tab);
+static void    blst_radix_print(blmeta_t *scan, swblk_t blk,
+                                       swblk_t radix, swblk_t skip, int tab);
 #endif
 
 /*
@@ -171,18 +172,18 @@ static void       blst_radix_print(blmeta_t *scan, 
bsblk_t b
  */
 
 blist_t
-blist_create(bsblk_t blocks)
+blist_create(swblk_t blocks)
 {
        blist_t bl;
-       bsblk_t radix;
-       bsblk_t skip = 0;
+       swblk_t radix;
+       swblk_t skip = 0;
 
        KASSERT(blocks > 0);
 
        /*
         * Calculate radix and skip field used for scanning.
         *
-        * Radix can exceed BLIST_BMAP_RADIX bits even if bsblk_t is limited
+        * Radix can exceed BLIST_BMAP_RADIX bits even if swblk_t is limited
         * to BLIST_BMAP_RADIX bits.
         *
         * XXX check overflow
@@ -236,10 +237,10 @@ blist_destroy(blist_t bl)
  *                  not be allocated.
  */
 
-bsblk_t
-blist_alloc(blist_t bl, bsblk_t count)
+swblk_t
+blist_alloc(blist_t bl, swblk_t count)
 {
-       bsblk_t blk = SWAPBLK_NONE;
+       swblk_t blk = SWAPBLK_NONE;
 
        if (bl) {
                if (bl->bl_radix == BLIST_BMAP_RADIX)
@@ -253,10 +254,10 @@ blist_alloc(blist_t bl, bsblk_t count)
        return(blk);
 }
 
-bsblk_t
-blist_allocat(blist_t bl, bsblk_t count, bsblk_t blkat)
+swblk_t
+blist_allocat(blist_t bl, swblk_t count, swblk_t blkat)
 {
-       bsblk_t blk = SWAPBLK_NONE;
+       swblk_t blk = SWAPBLK_NONE;
 
        if (bl) {
                KASSERT(blkat < bl->bl_blocks);
@@ -280,7 +281,7 @@ blist_allocat(blist_t bl, bsblk_t count, bsblk_t blkat
  */
 
 void
-blist_free(blist_t bl, bsblk_t blkno, bsblk_t count)
+blist_free(blist_t bl, swblk_t blkno, swblk_t count)
 {
        if (bl) {
                KASSERT(blkno < bl->bl_blocks);
@@ -301,10 +302,10 @@ blist_free(blist_t bl, bsblk_t blkno, bsblk_t count)
  *                     actually filled that were free before the call.
  */
 
-bsblk_t
-blist_fill(blist_t bl, bsblk_t blkno, bsblk_t count)
+swblk_t
+blist_fill(blist_t bl, swblk_t blkno, swblk_t count)
 {
-       bsblk_t filled;
+       swblk_t filled;
 
        if (bl) {
                KASSERT(blkno < bl->bl_blocks);
@@ -332,7 +333,7 @@ blist_fill(blist_t bl, bsblk_t blkno, bsblk_t count)
  */
 
 void
-blist_resize(blist_t *pbl, bsblk_t count, int freenew)
+blist_resize(blist_t *pbl, swblk_t count, int freenew)
 {
     blist_t newbl = blist_create(count);
     blist_t save = *pbl;
@@ -362,10 +363,10 @@ blist_resize(blist_t *pbl, bsblk_t count, int freenew)
  */
 
 void
-blist_gapfind(blist_t bl, bsblk_t *maxbp, bsblk_t *maxep)
+blist_gapfind(blist_t bl, swblk_t *maxbp, swblk_t *maxep)
 {
        int state;
-       bsblk_t b, e;
+       swblk_t b, e;
 
        /* initialize gaps (max and current) */
        *maxbp = *maxep = 0;
@@ -398,16 +399,16 @@ blist_gapfind(blist_t bl, bsblk_t *maxbp, bsblk_t *max
  * - max is the larger free gap
  */
 static int
-blst_radix_gapfind(blmeta_t *scan, bsblk_t blk, bsblk_t radix, bsblk_t skip,
-    int state, bsblk_t *maxbp, bsblk_t *maxep, bsblk_t *bp, bsblk_t *ep)
+blst_radix_gapfind(blmeta_t *scan, swblk_t blk, swblk_t radix, swblk_t skip,
+    int state, swblk_t *maxbp, swblk_t *maxep, swblk_t *bp, swblk_t *ep)
 {
-       bsblk_t i;
-       bsblk_t next_skip;
+       swblk_t i;
+       swblk_t next_skip;
 
        if (radix == BLIST_BMAP_RADIX) {
                /* leaf node: we considere only completely free bitmap as free 
*/
                if (state == GAPFIND_FIRSTFREE) {
-                       if (scan->u.bmu_bitmap == (bsbmp_t)-1) {
+                       if (scan->u.bmu_bitmap == (u_swblk_t)-1) {
                                /* node is fully free */
                                *bp = blk;
                                return GAPFIND_FIRSTUSED;
@@ -417,7 +418,7 @@ blst_radix_gapfind(blmeta_t *scan, bsblk_t blk, bsblk_
                        return state;
 
                } else if (state == GAPFIND_FIRSTUSED) {
-                       if (scan->u.bmu_bitmap == (bsbmp_t)-1) {
+                       if (scan->u.bmu_bitmap == (u_swblk_t)-1) {
                                /* it is free, not found, keep state */
                                return state;
                        }
@@ -466,7 +467,7 @@ blst_radix_gapfind(blmeta_t *scan, bsblk_t blk, bsblk_
        next_skip = (skip / BLIST_META_RADIX);
 
        for (i = 1; i <= skip; i += next_skip) {
-               if (scan[i].bm_bighint == (bsblk_t)-1)
+               if (scan[i].bm_bighint == (swblk_t)-1)
                        /* Terminator */
                        break;
 
@@ -514,11 +515,11 @@ blist_print(blist_t bl)
  *     quick.
  */
 
-static bsblk_t
-blst_leaf_alloc(blmeta_t *scan, bsblk_t blkat __unused, bsblk_t blk,
-               bsblk_t count)
+static swblk_t
+blst_leaf_alloc(blmeta_t *scan, swblk_t blkat __unused, swblk_t blk,
+               swblk_t count)
 {
-       bsbmp_t orig = scan->u.bmu_bitmap;
+       u_swblk_t orig = scan->u.bmu_bitmap;
 
        if (orig == 0) {
                /*
@@ -533,11 +534,11 @@ blst_leaf_alloc(blmeta_t *scan, bsblk_t blkat __unused
                /*
                 * Optimized code to allocate one bit out of the bitmap
                 */
-               bsbmp_t mask;
+               u_swblk_t mask;
                int j = BLIST_BMAP_RADIX/2;
                int r = 0;
 
-               mask = (bsbmp_t)-1 >> (BLIST_BMAP_RADIX/2);
+               mask = (u_swblk_t)-1 >> (BLIST_BMAP_RADIX/2);
 
                while (j) {
                        if ((orig & mask) == 0) {
@@ -547,7 +548,7 @@ blst_leaf_alloc(blmeta_t *scan, bsblk_t blkat __unused
                        j >>= 1;
                        mask >>= j;
                }
-               scan->u.bmu_bitmap &= ~((bsbmp_t)1 << r);
+               scan->u.bmu_bitmap &= ~((u_swblk_t)1 << r);
                return(blk + r);
        }
        if (count <= BLIST_BMAP_RADIX) {
@@ -560,9 +561,9 @@ blst_leaf_alloc(blmeta_t *scan, bsblk_t blkat __unused
                 */
                int j;
                int n = (int)(BLIST_BMAP_RADIX - count);
-               bsbmp_t mask;
+               u_swblk_t mask;
 
-               mask = (bsbmp_t)-1 >> n;
+               mask = (u_swblk_t)-1 >> n;
 
                for (j = 0; j <= n; ++j) {
                        if ((orig & mask) == mask) {
@@ -589,14 +590,14 @@ blst_leaf_alloc(blmeta_t *scan, bsblk_t blkat __unused
  *     calls that hit this node.  We have to check for our collapse cases
  *     and we have a few optimizations strewn in as well.
  */
-static bsblk_t
-blst_meta_alloc(blmeta_t *scan, bsblk_t blkat,
-               bsblk_t blk, bsblk_t count,
-               bsblk_t radix, bsblk_t skip)
+static swblk_t
+blst_meta_alloc(blmeta_t *scan, swblk_t blkat,
+               swblk_t blk, swblk_t count,
+               swblk_t radix, swblk_t skip)
 {
        int hintok = (blk >= blkat);
-       bsblk_t next_skip = ((bsblk_t)skip / BLIST_META_RADIX);
-       bsblk_t i;
+       swblk_t next_skip = ((swblk_t)skip / BLIST_META_RADIX);
+       swblk_t i;
 
 #ifndef _KERNEL
        printf("blist_meta_alloc blkat %lu blk %lu count %lu radix %lu\n",
@@ -622,14 +623,14 @@ blst_meta_alloc(blmeta_t *scan, bsblk_t blkat,
 
                radix /= BLIST_META_RADIX;
                for (i = 1; i <= skip; i += next_skip) {
-                       if (scan[i].bm_bighint == (bsblk_t)-1)
+                       if (scan[i].bm_bighint == (swblk_t)-1)
                                break;
                        if (next_skip == 1) {
-                               scan[i].u.bmu_bitmap = (bsbmp_t)-1;
+                               scan[i].u.bmu_bitmap = (u_swblk_t)-1;
                                scan[i].bm_bighint = BLIST_BMAP_RADIX;
                        } else {
-                               scan[i].bm_bighint = (bsblk_t)radix;
-                               scan[i].u.bmu_avail = (bsblk_t)radix;
+                               scan[i].bm_bighint = (swblk_t)radix;
+                               scan[i].u.bmu_avail = (swblk_t)radix;
                        }
                }
        } else {
@@ -638,11 +639,11 @@ blst_meta_alloc(blmeta_t *scan, bsblk_t blkat,
 
        for (i = 1; i <= skip; i += next_skip) {
                if (count <= scan[i].bm_bighint &&
-                   blk + (bsblk_t)radix > blkat) {
+                   blk + (swblk_t)radix > blkat) {
                        /*
                         * count fits in object
                         */
-                       bsblk_t r;
+                       swblk_t r;
                        if (next_skip == 1) {
                                r = blst_leaf_alloc(&scan[i], blkat,
                                                    blk, count);
@@ -658,12 +659,12 @@ blst_meta_alloc(blmeta_t *scan, bsblk_t blkat,
                                return(r);
                        }
                        /* bighint was updated by recursion */
-               } else if (scan[i].bm_bighint == (bsblk_t)-1) {
+               } else if (scan[i].bm_bighint == (swblk_t)-1) {
                        /*
                         * Terminator
                         */
                        break;
-               } else if (count > (bsblk_t)radix) {
+               } else if (count > (swblk_t)radix) {
                        /*
                         * count does not fit in object even if it were
                         * complete free.
@@ -671,7 +672,7 @@ blst_meta_alloc(blmeta_t *scan, bsblk_t blkat,
                        panic("%s: allocation too large %lu/%lu",
                              __func__, count, radix);
                }
-               blk += (bsblk_t)radix;
+               blk += (swblk_t)radix;
        }
 
        /*
@@ -686,7 +687,7 @@ blst_meta_alloc(blmeta_t *scan, bsblk_t blkat,
  * BLST_LEAF_FREE() -  free allocated block from leaf bitmap
  */
 static void
-blst_leaf_free(blmeta_t *scan, bsblk_t blk, bsblk_t count)
+blst_leaf_free(blmeta_t *scan, swblk_t blk, swblk_t count)
 {
        /*
         * free some data in this bitmap
@@ -697,10 +698,10 @@ blst_leaf_free(blmeta_t *scan, bsblk_t blk, bsblk_t co
         *              v        n
         */
        int n = blk & (BLIST_BMAP_RADIX - 1);
-       bsbmp_t mask;
+       u_swblk_t mask;
 
-       mask = ((bsbmp_t)-1 << n) &
-           ((bsbmp_t)-1 >> (BLIST_BMAP_RADIX - count - n));
+       mask = ((u_swblk_t)-1 << n) &
+           ((u_swblk_t)-1 >> (BLIST_BMAP_RADIX - count - n));
 
        if (scan->u.bmu_bitmap & mask)
                panic("%s: freeing free block", __func__);
@@ -727,11 +728,11 @@ blst_leaf_free(blmeta_t *scan, bsblk_t blk, bsblk_t co
  */
 
 static void
-blst_meta_free(blmeta_t *scan, bsblk_t freeBlk, bsblk_t count,
-              bsblk_t radix, bsblk_t skip, bsblk_t blk)
+blst_meta_free(blmeta_t *scan, swblk_t freeBlk, swblk_t count,
+              swblk_t radix, swblk_t skip, swblk_t blk)
 {
-       bsblk_t i;
-       bsblk_t next_skip = ((bsblk_t)skip / BLIST_META_RADIX);
+       swblk_t i;
+       swblk_t next_skip = ((swblk_t)skip / BLIST_META_RADIX);
 
 #if 0
        printf("FREE (%04lx,%lu) FROM (%04lx,%lu)\n",
@@ -751,7 +752,7 @@ blst_meta_free(blmeta_t *scan, bsblk_t freeBlk, bsblk_
 
                if (count != radix)  {
                        for (i = 1; i <= skip; i += next_skip) {
-                               if (scan[i].bm_bighint == (bsblk_t)-1)
+                               if (scan[i].bm_bighint == (swblk_t)-1)
                                        break;
                                scan[i].bm_bighint = 0;
                                if (next_skip == 1) {
@@ -788,18 +789,18 @@ blst_meta_free(blmeta_t *scan, bsblk_t freeBlk, bsblk_
 
        radix /= BLIST_META_RADIX;
 
-       i = (freeBlk - blk) / (bsblk_t)radix;
-       blk += i * (bsblk_t)radix;
+       i = (freeBlk - blk) / (swblk_t)radix;
+       blk += i * (swblk_t)radix;
        i = i * next_skip + 1;
 
        while (i <= skip && blk < freeBlk + count) {
-               bsblk_t v;
+               swblk_t v;
 
-               v = blk + (bsblk_t)radix - freeBlk;
+               v = blk + (swblk_t)radix - freeBlk;
                if (v > count)
                        v = count;
 
-               if (scan->bm_bighint == (bsblk_t)-1)
+               if (scan->bm_bighint == (swblk_t)-1)
                        panic("%s: freeing unexpected range", __func__);
 
                if (next_skip == 1) {
@@ -822,7 +823,7 @@ blst_meta_free(blmeta_t *scan, bsblk_t freeBlk, bsblk_
                }
                count -= v;
                freeBlk += v;
-               blk += (bsblk_t)radix;
+               blk += (swblk_t)radix;
                i += next_skip;
        }
 }
@@ -834,15 +835,15 @@ blst_meta_free(blmeta_t *scan, bsblk_t freeBlk, bsblk_
  *     any existing allocations in that range.  Returns the number
  *     of blocks allocated by the call.
  */
-static bsblk_t
-blst_leaf_fill(blmeta_t *scan, bsblk_t blk, bsblk_t count)
+static swblk_t
+blst_leaf_fill(blmeta_t *scan, swblk_t blk, swblk_t count)
 {
        int n = blk & (BLIST_BMAP_RADIX - 1);
-       bsblk_t nblks;
-       bsbmp_t mask, bitmap;
+       swblk_t nblks;
+       u_swblk_t mask, bitmap;
 
-       mask = ((bsbmp_t)-1 << n) &
-           ((bsbmp_t)-1 >> (BLIST_BMAP_RADIX - count - n));
+       mask = ((u_swblk_t)-1 << n) &
+           ((u_swblk_t)-1 >> (BLIST_BMAP_RADIX - count - n));
 
        /* Count the number of blocks we're about to allocate */
        bitmap = scan->u.bmu_bitmap & mask;
@@ -861,13 +862,13 @@ blst_leaf_fill(blmeta_t *scan, bsblk_t blk, bsblk_t co
  *     be within the extent of this node.  Returns the number
  *     of blocks allocated by the call.
  */
-static bsblk_t
-blst_meta_fill(blmeta_t *scan, bsblk_t fillBlk, bsblk_t count,
-              bsblk_t radix, bsblk_t skip, bsblk_t blk)
+static swblk_t
+blst_meta_fill(blmeta_t *scan, swblk_t fillBlk, swblk_t count,
+              swblk_t radix, swblk_t skip, swblk_t blk)
 {
-       bsblk_t i;
-       bsblk_t next_skip = ((bsblk_t)skip / BLIST_META_RADIX);
-       bsblk_t nblks = 0;
+       swblk_t i;
+       swblk_t next_skip = ((swblk_t)skip / BLIST_META_RADIX);
+       swblk_t nblks = 0;
 
        if (count == radix || scan->u.bmu_avail == 0) {
                /*
@@ -886,35 +887,35 @@ blst_meta_fill(blmeta_t *scan, bsblk_t fillBlk, bsblk_
                 * ALL-FREE special case, initialize sublevel
                 */
                for (i = 1; i <= skip; i += next_skip) {
-                       if (scan[i].bm_bighint == (bsblk_t)-1)
+                       if (scan[i].bm_bighint == (swblk_t)-1)
                                break;
                        if (next_skip == 1) {
-                               scan[i].u.bmu_bitmap = (bsbmp_t)-1;
+                               scan[i].u.bmu_bitmap = (u_swblk_t)-1;
                                scan[i].bm_bighint = BLIST_BMAP_RADIX;
                        } else {
-                               scan[i].bm_bighint = (bsblk_t)radix;
-                               scan[i].u.bmu_avail = (bsblk_t)radix;
+                               scan[i].bm_bighint = (swblk_t)radix;
+                               scan[i].u.bmu_avail = (swblk_t)radix;
                        }
                }
        } else {
                radix /= BLIST_META_RADIX;
        }
 
-       if (count > (bsblk_t)radix)
+       if (count > (swblk_t)radix)
                panic("%s: allocation too large", __func__);
 
-       i = (fillBlk - blk) / (bsblk_t)radix;
-       blk += i * (bsblk_t)radix;
+       i = (fillBlk - blk) / (swblk_t)radix;
+       blk += i * (swblk_t)radix;
        i = i * next_skip + 1;
 
        while (i <= skip && blk < fillBlk + count) {
-               bsblk_t v;
+               swblk_t v;
 
-               v = blk + (bsblk_t)radix - fillBlk;
+               v = blk + (swblk_t)radix - fillBlk;
                if (v > count)
                        v = count;
 
-               if (scan->bm_bighint == (bsblk_t)-1)
+               if (scan->bm_bighint == (swblk_t)-1)
                        panic("%s: filling unexpected range", __func__);
 
                if (next_skip == 1) {
@@ -925,7 +926,7 @@ blst_meta_fill(blmeta_t *scan, bsblk_t fillBlk, bsblk_
                }
                count -= v;
                fillBlk += v;
-               blk += (bsblk_t)radix;
+               blk += (swblk_t)radix;
                i += next_skip;
        }
        scan->u.bmu_avail -= nblks;
@@ -940,24 +941,24 @@ blst_meta_fill(blmeta_t *scan, bsblk_t fillBlk, bsblk_
  */
 
 static void
-blst_copy(blmeta_t *scan, bsblk_t blk, bsblk_t radix,
-         bsblk_t skip, blist_t dest, bsblk_t count)
+blst_copy(blmeta_t *scan, swblk_t blk, swblk_t radix,
+         swblk_t skip, blist_t dest, swblk_t count)
 {
-       bsblk_t next_skip;
-       bsblk_t i;
+       swblk_t next_skip;
+       swblk_t i;
 
        /*
         * Leaf node
         */
 
        if (radix == BLIST_BMAP_RADIX) {
-               bsbmp_t v = scan->u.bmu_bitmap;
+               u_swblk_t v = scan->u.bmu_bitmap;
 
-               if (v == (bsbmp_t)-1) {
+               if (v == (u_swblk_t)-1) {
                        blist_free(dest, blk, count);
                } else if (v != 0) {
                        for (i = 0; i < BLIST_BMAP_RADIX && i < count; ++i) {
-                               if (v & ((bsblk_t)1 << i))
+                               if (v & ((swblk_t)1 << i))
                                        blist_free(dest, blk + i, 1);
                        }
                }
@@ -981,28 +982,28 @@ blst_copy(blmeta_t *scan, bsblk_t blk, bsblk_t radix,
                if (count < radix)
                        blist_free(dest, blk, count);
                else
-                       blist_free(dest, blk, (bsblk_t)radix);
+                       blist_free(dest, blk, (swblk_t)radix);
                return;
        }
 
 
        radix /= BLIST_META_RADIX;
-       next_skip = ((bsbmp_t)skip / BLIST_META_RADIX);
+       next_skip = ((u_swblk_t)skip / BLIST_META_RADIX);
 
        for (i = 1; count && i <= skip; i += next_skip) {
-               if (scan[i].bm_bighint == (bsblk_t)-1)
+               if (scan[i].bm_bighint == (swblk_t)-1)
                        break;
 
-               if (count >= (bsblk_t)radix) {
+               if (count >= (swblk_t)radix) {
                        blst_copy(
                            &scan[i],
                            blk,
                            radix,
                            next_skip - 1,
                            dest,
-                           (bsblk_t)radix
+                           (swblk_t)radix
                        );
-                       count -= (bsblk_t)radix;
+                       count -= (swblk_t)radix;
                } else {
                        if (count) {
                                blst_copy(
@@ -1016,7 +1017,7 @@ blst_copy(blmeta_t *scan, bsblk_t blk, bsblk_t radix,
                        }
                        count = 0;
                }
-               blk += (bsblk_t)radix;
+               blk += (swblk_t)radix;
        }
 }
 
@@ -1029,12 +1030,12 @@ blst_copy(blmeta_t *scan, bsblk_t blk, bsblk_t radix,
  *     RADIX values we use.
  */
 
-static bsblk_t
-blst_radix_init(blmeta_t *scan, bsblk_t radix, bsblk_t skip, bsblk_t count)
+static swblk_t
+blst_radix_init(blmeta_t *scan, swblk_t radix, swblk_t skip, swblk_t count)
 {
-       bsblk_t i;
-       bsblk_t next_skip;
-       bsblk_t memindex = 0;
+       swblk_t i;
+       swblk_t next_skip;
+       swblk_t memindex = 0;
 
        /*
         * Leaf node
@@ -1060,10 +1061,10 @@ blst_radix_init(blmeta_t *scan, bsblk_t radix, bsblk_t
        }
 
        radix /= BLIST_META_RADIX;
-       next_skip = ((bsbmp_t)skip / BLIST_META_RADIX);
+       next_skip = ((u_swblk_t)skip / BLIST_META_RADIX);
 
        for (i = 1; i <= skip; i += next_skip) {
-               if (count >= (bsblk_t)radix) {
+               if (count >= (swblk_t)radix) {
                        /*
                         * Allocate the entire object
                         */
@@ -1071,9 +1072,9 @@ blst_radix_init(blmeta_t *scan, bsblk_t radix, bsblk_t
                            ((scan) ? &scan[i] : NULL),
                            radix,
                            next_skip - 1,
-                           (bsblk_t)radix
+                           (swblk_t)radix
                        );
-                       count -= (bsblk_t)radix;
+                       count -= (swblk_t)radix;
                } else if (count > 0) {
                        /*
                         * Allocate a partial object
@@ -1090,7 +1091,7 @@ blst_radix_init(blmeta_t *scan, bsblk_t radix, bsblk_t
                         * Add terminator and break out
                         */
                        if (scan)
-                               scan[i].bm_bighint = (bsblk_t)-1;
+                               scan[i].bm_bighint = (swblk_t)-1;
                        break;
                }
        }
@@ -1102,14 +1103,14 @@ blst_radix_init(blmeta_t *scan, bsblk_t radix, bsblk_t
 #if defined(BLIST_DEBUG) || defined(DDB)
 
 static void
-blst_radix_print(blmeta_t *scan, bsblk_t blk, bsblk_t radix, bsblk_t skip, int 
tab)
+blst_radix_print(blmeta_t *scan, swblk_t blk, swblk_t radix, swblk_t skip, int 
tab)
 {
-       bsblk_t i;
-       bsblk_t next_skip;
+       swblk_t i;
+       swblk_t next_skip;
 
        if (radix == BLIST_BMAP_RADIX) {
                printf(
-                   "%*.*s(%04lx,%lu): bitmap %0*lx big=%lu\n",
+                   "%*.*s(%04lx,%lu): bitmap %0*llx big=%lu\n",
                    tab, tab, "",
                    blk, radix,
                    (int)(1 + (BLIST_BMAP_RADIX - 1) / 4),
@@ -1148,11 +1149,11 @@ blst_radix_print(blmeta_t *scan, bsblk_t blk, bsblk_t 
        );
 
        radix /= BLIST_META_RADIX;
-       next_skip = ((bsbmp_t)skip / BLIST_META_RADIX);
+       next_skip = ((u_swblk_t)skip / BLIST_META_RADIX);
        tab += 4;
 
        for (i = 1; i <= skip; i += next_skip) {
-               if (scan[i].bm_bighint == (bsblk_t)-1) {
+               if (scan[i].bm_bighint == (swblk_t)-1) {
                        printf(
                            "%*.*s(%04lx,%lu): Terminator\n",
                            tab, tab, "",
@@ -1167,7 +1168,7 @@ blst_radix_print(blmeta_t *scan, bsblk_t blk, bsblk_t 
                    next_skip - 1,
                    tab
                );
-               blk += (bsblk_t)radix;
+               blk += (swblk_t)radix;
        }
        tab -= 4;
 
@@ -1184,11 +1185,11 @@ blst_radix_print(blmeta_t *scan, bsblk_t blk, bsblk_t 
 int
 main(int ac, char **av)
 {
-       bsblk_t size = 1024;
-       bsblk_t i;
+       swblk_t size = 1024;
+       swblk_t i;
        blist_t bl;
 
-       for (i = 1; i < (bsblk_t)ac; ++i) {
+       for (i = 1; i < (swblk_t)ac; ++i) {
                const char *ptr = av[i];
                if (*ptr != '-') {
                        size = strtol(ptr, NULL, 0);
@@ -1203,9 +1204,9 @@ main(int ac, char **av)
 
        for (;;) {
                char buf[1024];
-               bsblk_t da = 0;
-               bsblk_t count = 0;
-               bsblk_t blkat;
+               swblk_t da = 0;
+               swblk_t count = 0;
+               swblk_t blkat;
 
 
                printf("%lu/%lu/%lu> ",
@@ -1229,10 +1230,10 @@ main(int ac, char **av)
                case 'a':
                        if (sscanf(buf + 1, "%li %li", &count, &blkat) == 1) {
                                printf("count %lu\n", count);
-                               bsblk_t blk = blist_alloc(bl, count);
+                               swblk_t blk = blist_alloc(bl, count);
                                printf("    R=%04lx\n", blk);
                        } else if (sscanf(buf + 1, "%li %li", &count, &blkat) 
== 2) {
-                               bsblk_t blk = blist_allocat(bl, count, blkat);
+                               swblk_t blk = blist_allocat(bl, count, blkat);
                                printf("    R=%04lx\n", blk);
                        } else {
                                printf("?\n");
@@ -1246,7 +1247,7 @@ main(int ac, char **av)
                        }
                        break;
                case 'g': {
-                               bsblk_t b, e;
+                               swblk_t b, e;
                                blist_gapfind(bl, &b, &e);
                                printf("gapfind: begin=%04lx end=%04lx 
size=%lu\n",
                                    b, e, e-b);

Reply via email to