lib/rbtree.c smalloc.c filehash.c profile.c debug.c lib/rand.c \
lib/num2str.c lib/ieee754.c lib/strntol.c engines/cpu.c \
engines/mmap.c engines/sync.c engines/null.c engines/net.c \
- memalign.c server.c client.c iolog.c backend.c libfio.c flow.c \
+ server.c client.c iolog.c backend.c libfio.c flow.c \
cconv.c lib/prio_tree.c lib/zipf.c lib/axmap.c lib/pattern.c \
lib/lfsr.c gettime-thread.c helpers.c lib/flist_sort.c json.c \
lib/hweight.c lib/getrusage.c idletime.c td_error.c \
profiles/tiobench.c profiles/act.c io_u_queue.c filelock.c \
lib/tp.c lib/bloom.c lib/gauss.c lib/mountcheck.c workqueue.c \
- lib/output_buffer.c \
+ lib/output_buffer.c lib/memalign.c \
$(patsubst $(SRCDIR)/%,%,$(wildcard $(SRCDIR)/crc/*.c))
ifdef CONFIG_LIBHDFS
T_DEDUPE_OBJS = t/dedupe.o
T_DEDUPE_OBJS += lib/rbtree.o t/log.o mutex.o smalloc.o gettime.o crc/md5.o \
- memalign.o lib/bloom.o t/debug.o crc/xxhash.o crc/murmur3.o \
- crc/crc32c.o crc/crc32c-intel.o crc/fnv.o
+ lib/memalign.o lib/bloom.o t/debug.o crc/xxhash.o \
+ crc/murmur3.o crc/crc32c.o crc/crc32c-intel.o crc/fnv.o
T_DEDUPE_PROGS = t/fio-dedupe
T_OBJS = $(T_SMALLOC_OBJS)
#include "cgroup.h"
#include "profile.h"
#include "lib/rand.h"
-#include "memalign.h"
+#include "lib/memalign.h"
#include "server.h"
#include "lib/getrusage.h"
#include "idletime.h"
--- /dev/null
+#include <stdlib.h>
+#include <assert.h>
+#include <inttypes.h>
+
+#include "memalign.h"
+
+struct align_footer {
+ unsigned int offset;
+};
+
+#define PTR_ALIGN(ptr, mask) \
+ (char *) (((uintptr_t) ((ptr) + (mask)) & ~(mask)))
+
+void *fio_memalign(size_t alignment, size_t size)
+{
+ struct align_footer *f;
+ void *ptr, *ret = NULL;
+
+ assert(!(alignment & (alignment - 1)));
+
+ ptr = malloc(size + alignment + size + sizeof(*f) - 1);
+ if (ptr) {
+ ret = PTR_ALIGN(ptr, alignment - 1);
+ f = ret + size;
+ f->offset = (uintptr_t) ret - (uintptr_t) ptr;
+ }
+
+ return ret;
+}
+
+void fio_memfree(void *ptr, size_t size)
+{
+ struct align_footer *f = ptr + size;
+
+ free(ptr - f->offset);
+}
--- /dev/null
+#ifndef FIO_MEMALIGN_H
+#define FIO_MEMALIGN_H
+
+extern void *fio_memalign(size_t alignment, size_t size);
+extern void fio_memfree(void *ptr, size_t size);
+
+#endif
+++ /dev/null
-#include <stdlib.h>
-#include <assert.h>
-#include <inttypes.h>
-
-#include "memalign.h"
-
-struct align_footer {
- unsigned int offset;
-};
-
-#define PTR_ALIGN(ptr, mask) \
- (char *) (((uintptr_t) ((ptr) + (mask)) & ~(mask)))
-
-void *fio_memalign(size_t alignment, size_t size)
-{
- struct align_footer *f;
- void *ptr, *ret = NULL;
-
- assert(!(alignment & (alignment - 1)));
-
- ptr = malloc(size + alignment + size + sizeof(*f) - 1);
- if (ptr) {
- ret = PTR_ALIGN(ptr, alignment - 1);
- f = ret + size;
- f->offset = (uintptr_t) ret - (uintptr_t) ptr;
- }
-
- return ret;
-}
-
-void fio_memfree(void *ptr, size_t size)
-{
- struct align_footer *f = ptr + size;
-
- free(ptr - f->offset);
-}
+++ /dev/null
-#ifndef FIO_MEMALIGN_H
-#define FIO_MEMALIGN_H
-
-extern void *fio_memalign(size_t alignment, size_t size);
-extern void fio_memfree(void *ptr, size_t size);
-
-#endif
#include "../smalloc.h"
#include "../minmax.h"
#include "../crc/md5.h"
-#include "../memalign.h"
+#include "../lib/memalign.h"
#include "../os/os.h"
#include "../gettime.h"
#include "../fio_time.h"