+
+#define K_ZONE_SIZES \
+/* 3 */ 8, \
+ 16, 24, \
+ 32, 40, 48, \
+/* 6 */ 64, 72, 88, 112, \
+ 128, 192, \
+ 256, 288, 384, 440, \
+/* 9 */ 512, 576, 768, \
+ 1024, 1152, 1536, \
+ 2048, 2128, 3072, \
+ 4096, 6144
+
+#define K_ZONE_NAMES \
+/* 3 */ "kalloc.8", \
+ "kalloc.16", "kalloc.24", \
+ "kalloc.32", "kalloc.40", "kalloc.48", \
+/* 6 */ "kalloc.64", "kalloc.72", "kalloc.88", "kalloc.112", \
+ "kalloc.128", "kalloc.192", \
+ "kalloc.256", "kalloc.288", "kalloc.384", "kalloc.440", \
+/* 9 */ "kalloc.512", "kalloc.576", "kalloc.768", \
+ "kalloc.1024", "kalloc.1152", "kalloc.1536", \
+ "kalloc.2048", "kalloc.2128", "kalloc.3072", \
+ "kalloc.4096", "kalloc.6144"
+
+#else
+#error missing zone size parameters for kalloc
+#endif
+
+#define KALLOC_MINALIGN (1 << KALLOC_LOG2_MINALIGN)
+#define KiB(x) (1024 * (x))
+
+static const int k_zone_size[] = {
+ K_ZONE_SIZES,
+ KiB(8),
+ KiB(16),
+ KiB(32)