yodqueue/src/yodqueue.h
2022-12-01 00:38:00 +01:00

18 lines
532 B
C

#pragma once
#include <stddef.h>
#include <inttypes.h>
typedef struct {
int fd_data;
int fd_meta;
} yodqueue_t;
yodqueue_t yodqueue_init(void);
int yodqueue_open(yodqueue_t *yq, const char *fname, int oflag);
int yodqueue_openat(yodqueue_t *yq, int pfd, const char *fname, int oflag);
int yodqueue_fini(yodqueue_t *yq);
int yodqueue_append(yodqueue_t *yq, const void *data, size_t datalen);
uint32_t yodqueue_translate_pos(yodqueue_t *yq, uint32_t id);
int yodqueue_rlock(yodqueue_t *yq);
int yodqueue_unlock(yodqueue_t *yq);