You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

43 lines
901 B

#ifndef _URING_H_
#define _URING_H_
#include "socket.h"
struct uring_req;
typedef void uring_req_handler_fn(struct uring_req *, int32_t res, uint32_t flags);
struct uring_req {
uring_req_handler_fn *handler;
};
extern __thread ssize_t (*uring_sendmsg)(socket_t *, struct msghdr *, const endpoint_t *,
struct sockaddr_storage *, struct uring_req *);
INLINE void uring_req_buffer_free(struct uring_req *r, int32_t res, uint32_t flags) {
g_free(r);
}
INLINE void uring_req_free(struct uring_req *r) {
g_free(r);
}
INLINE void *uring_alloc_req(size_t len, uring_req_handler_fn *fn) {
struct uring_req *ret = g_malloc0(len);
ret->handler = fn;
return ret;
}
INLINE void *uring_alloc_buffer_req(size_t len) {
return uring_alloc_req(len, uring_req_buffer_free);
}
#ifdef HAVE_LIBURING
#include "bufferpool.h"
void uring_thread_init(void);
void uring_thread_cleanup(void);
#endif
#endif