From 8d5a56f5f184b2aa7c88b23635af79443a069cc1 Mon Sep 17 00:00:00 2001 From: twoneis Date: Thu, 3 Apr 2025 23:51:23 +0200 Subject: [PATCH] bit more consistent prepare for other primitives --- code/leak.c | 15 ++++++--------- code/pipe_utils.c | 16 ++++++++++++++++ code/pipe_utils.h | 1 + 3 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 code/pipe_utils.c create mode 100644 code/pipe_utils.h diff --git a/code/leak.c b/code/leak.c index 0866600ad..270fd5f9a 100644 --- a/code/leak.c +++ b/code/leak.c @@ -1,3 +1,4 @@ +#define _GNU_SOURCE #include #include @@ -6,6 +7,8 @@ #include #include +#include "pipe_utils.h" + // where does this come from? #define OBJS_PER_SLAB 42 @@ -13,8 +16,6 @@ int pipes[PIPE_BUFFER][2]; -void alloc_pipes(int[2], int); - int main(void) { @@ -23,16 +24,12 @@ main(void) printf("main: fopen: %p\n", device); + printf("main: draining lower page free lists: %u objects\n", + PIPE_BUFFER); for (size_t i = 0; i < PIPE_BUFFER; i++) { - alloc_pipes(pipes[i], O_NONBLOCK); + allocation_primitive(pipes[i], O_NONBLOCK); } fclose(device); printf("main: done\n"); } - -void -alloc_pipes(int fd[2], int flags) -{ - pipe2(pipes, flags); -} diff --git a/code/pipe_utils.c b/code/pipe_utils.c new file mode 100644 index 000000000..7173595ee --- /dev/null +++ b/code/pipe_utils.c @@ -0,0 +1,16 @@ +#define _GNU_SOURCE +#include + +#include +#include + +#include "pipe_utils.h" + +void +allocation_primitive(int fd[2]) +{ + pipe2(fd, O_NONBLOCK); + fcntl(fd[0], F_SETPIPE_SZ, 8192); + char buffer[0x100] = { 0 }; + write(fd[1], buffer, 8); +} diff --git a/code/pipe_utils.h b/code/pipe_utils.h new file mode 100644 index 000000000..39111a7fc --- /dev/null +++ b/code/pipe_utils.h @@ -0,0 +1 @@ +void allocation_primitive(int fd[2], int flags);