mirror of
https://github.com/uroni/fuseuring.git
synced 2025-10-26 11:19:19 +00:00
Rename to fuse_io_context
This commit is contained in:
parent
55fdc0faec
commit
b848118777
@ -1,7 +1,7 @@
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
bin_PROGRAMS = fuseuring
|
||||
|
||||
fuseuring_SOURCES = fuse_io_service.cpp main.cpp fuseuring_main.cpp
|
||||
fuseuring_SOURCES = fuse_io_context.cpp main.cpp fuseuring_main.cpp
|
||||
|
||||
fuseuring_LDADD = $(PTHREAD_LIBS) -luring
|
||||
fuseuring_CXXFLAGS = $(PTHREAD_CFLAGS) -std=c++2a -D_FILE_OFFSET_BITS=64
|
||||
@ -9,4 +9,4 @@ if WITH_FCOROUTINES
|
||||
fuseuring_CXXFLAGS += -fcoroutines
|
||||
endif
|
||||
|
||||
noinst_HEADERS = fuse_io_service.h fuseuring_main.h fuse_kernel.h
|
||||
noinst_HEADERS = fuse_io_context.h fuseuring_main.h fuse_kernel.h
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
// Copyright (C) Martin Raiber
|
||||
#include "fuse_io_service.h"
|
||||
#include "fuse_io_context.h"
|
||||
#include <liburing.h>
|
||||
#include <iostream>
|
||||
|
||||
|
||||
fuse_io_service::fuse_io_service(FuseRing fuse_ring)
|
||||
fuse_io_context::fuse_io_context(FuseRing fuse_ring)
|
||||
: fuse_ring(std::move(fuse_ring)), last_rc(0)
|
||||
{
|
||||
}
|
||||
|
||||
int fuse_io_service::fuseuring_handle_cqe(struct io_uring_cqe *cqe)
|
||||
int fuse_io_context::fuseuring_handle_cqe(struct io_uring_cqe *cqe)
|
||||
{
|
||||
if(cqe->user_data==0)
|
||||
{
|
||||
@ -31,7 +31,7 @@ int fuse_io_service::fuseuring_handle_cqe(struct io_uring_cqe *cqe)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fuse_io_service::fuseuring_submit(bool block)
|
||||
int fuse_io_context::fuseuring_submit(bool block)
|
||||
{
|
||||
if(fuse_ring.ring_submit)
|
||||
{
|
||||
@ -60,7 +60,7 @@ int fuse_io_service::fuseuring_submit(bool block)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fuse_io_service::run(queue_fuse_read_t queue_read)
|
||||
int fuse_io_context::run(queue_fuse_read_t queue_read)
|
||||
{
|
||||
fuse_ring.ring_submit = false;
|
||||
|
||||
@ -98,7 +98,7 @@ int fuse_io_service::run(queue_fuse_read_t queue_read)
|
||||
}
|
||||
}
|
||||
|
||||
fuse_io_service::io_uring_task_discard<int> fuse_io_service::queue_read_set_rc(queue_fuse_read_t queue_read)
|
||||
fuse_io_context::io_uring_task_discard<int> fuse_io_context::queue_read_set_rc(queue_fuse_read_t queue_read)
|
||||
{
|
||||
int rc = co_await queue_read(*this);
|
||||
if(rc!=0)
|
||||
@ -30,7 +30,7 @@ static uint64_t handle_v(std::coroutine_handle<> p_awaiter)
|
||||
return (uint64_t)*((uint64_t*)&p_awaiter);
|
||||
}
|
||||
|
||||
struct fuse_io_service
|
||||
struct fuse_io_context
|
||||
{
|
||||
template<typename T>
|
||||
struct IoUringAwaiter
|
||||
@ -321,7 +321,7 @@ struct fuse_io_service
|
||||
|
||||
struct FuseIoVal
|
||||
{
|
||||
FuseIoVal(fuse_io_service& io_service,
|
||||
FuseIoVal(fuse_io_context& io_service,
|
||||
std::unique_ptr<FuseIo> fuse_io)
|
||||
: io_service(io_service),
|
||||
fuse_io(std::move(fuse_io))
|
||||
@ -345,7 +345,7 @@ struct fuse_io_service
|
||||
}
|
||||
|
||||
private:
|
||||
fuse_io_service& io_service;
|
||||
fuse_io_context& io_service;
|
||||
std::unique_ptr<FuseIo> fuse_io;
|
||||
};
|
||||
|
||||
@ -374,13 +374,13 @@ struct fuse_io_service
|
||||
|
||||
FuseRing fuse_ring;
|
||||
|
||||
fuse_io_service(FuseRing fuse_ring);
|
||||
fuse_io_service(fuse_io_service const&) = delete;
|
||||
fuse_io_service(fuse_io_service&& other) = delete;
|
||||
fuse_io_service& operator=(fuse_io_service&&) = delete;
|
||||
fuse_io_service& operator=(fuse_io_service const&) = delete;
|
||||
fuse_io_context(FuseRing fuse_ring);
|
||||
fuse_io_context(fuse_io_context const&) = delete;
|
||||
fuse_io_context(fuse_io_context&& other) = delete;
|
||||
fuse_io_context& operator=(fuse_io_context&&) = delete;
|
||||
fuse_io_context& operator=(fuse_io_context const&) = delete;
|
||||
|
||||
typedef fuse_io_service::io_uring_task<int> (*queue_fuse_read_t)(fuse_io_service& io);
|
||||
typedef fuse_io_context::io_uring_task<int> (*queue_fuse_read_t)(fuse_io_context& io);
|
||||
|
||||
int run(queue_fuse_read_t queue_read);
|
||||
|
||||
@ -407,7 +407,7 @@ private:
|
||||
}
|
||||
};
|
||||
|
||||
fuse_io_service::io_uring_task_discard<int> queue_read_set_rc(queue_fuse_read_t queue_read);
|
||||
fuse_io_context::io_uring_task_discard<int> queue_read_set_rc(queue_fuse_read_t queue_read);
|
||||
|
||||
int fuseuring_handle_cqe(struct io_uring_cqe *cqe);
|
||||
int fuseuring_submit(bool block);
|
||||
@ -13,7 +13,7 @@
|
||||
#include <memory.h>
|
||||
#include <thread>
|
||||
#include <iostream>
|
||||
#include "fuse_io_service.h"
|
||||
#include "fuse_io_context.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
@ -32,7 +32,7 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<char*> read_rbytes(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<char*> read_rbytes(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
size_t rbytes, bool add_zero, std::vector<char>& free_buf)
|
||||
{
|
||||
if(rbytes==0)
|
||||
@ -83,7 +83,7 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> send_reply(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io)
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> send_reply(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io)
|
||||
{
|
||||
struct io_uring_sqe *sqe;
|
||||
sqe = io.get_sqe();
|
||||
@ -117,7 +117,7 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> send_reply(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> send_reply(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
const std::vector<char>& buf)
|
||||
{
|
||||
struct io_uring_sqe *sqe;
|
||||
@ -153,7 +153,7 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_unknown(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io)
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_unknown(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
fuse_out_header* out_header = reinterpret_cast<fuse_out_header*>(fuse_io->scratch_buf);
|
||||
@ -165,7 +165,7 @@ namespace
|
||||
co_return co_await send_reply(io, fuse_io);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> send_attr(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> send_attr(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
uint64_t unique, uint64_t nodeid)
|
||||
{
|
||||
fuse_out_header* out_header = reinterpret_cast<fuse_out_header*>(fuse_io->scratch_buf);
|
||||
@ -201,7 +201,7 @@ namespace
|
||||
co_return co_await send_reply(io, fuse_io);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_getattr(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_getattr(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -218,7 +218,7 @@ namespace
|
||||
co_return co_await send_attr(io, fuse_io, fheader->unique, nodeid);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_setattr(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_setattr(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -239,7 +239,7 @@ namespace
|
||||
co_return co_await send_attr(io, fuse_io, fheader->unique, nodeid);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_lookup(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_lookup(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -283,7 +283,7 @@ namespace
|
||||
co_return co_await send_reply(io, fuse_io);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_opendir(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_opendir(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -303,7 +303,7 @@ namespace
|
||||
co_return co_await send_reply(io, fuse_io);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_open(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_open(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -323,7 +323,7 @@ namespace
|
||||
co_return co_await send_reply(io, fuse_io);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_read(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_read(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -411,7 +411,7 @@ namespace
|
||||
co_return 0;
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_write(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_write(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -560,7 +560,7 @@ namespace
|
||||
co_return 0;
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_releasedir(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_releasedir(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -576,7 +576,7 @@ namespace
|
||||
co_return co_await send_reply(io, fuse_io);
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_release(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_release(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -607,7 +607,7 @@ void add_dir(std::vector<char>& buf, const std::string& name, size_t off, const
|
||||
memset(dirent->name + name.size(), 0, bsize-FUSE_NAME_OFFSET-name.size());
|
||||
}
|
||||
|
||||
[[nodiscard]] fuse_io_service::io_uring_task<int> handle_readdir(fuse_io_service& io, fuse_io_service::FuseIoVal& fuse_io,
|
||||
[[nodiscard]] fuse_io_context::io_uring_task<int> handle_readdir(fuse_io_context& io, fuse_io_context::FuseIoVal& fuse_io,
|
||||
char* rbytes_buf)
|
||||
{
|
||||
fuse_in_header* fheader = reinterpret_cast<fuse_in_header*>(fuse_io->header_buf);
|
||||
@ -645,9 +645,9 @@ void add_dir(std::vector<char>& buf, const std::string& name, size_t off, const
|
||||
co_return co_await send_reply(io, fuse_io, out_buf);
|
||||
}
|
||||
|
||||
fuse_io_service::io_uring_task<int> queue_fuse_read(fuse_io_service& io)
|
||||
fuse_io_context::io_uring_task<int> queue_fuse_read(fuse_io_context& io)
|
||||
{
|
||||
fuse_io_service::FuseIoVal fuse_io = io.get_fuse_io();
|
||||
fuse_io_context::FuseIoVal fuse_io = io.get_fuse_io();
|
||||
|
||||
DBG_PRINT(std::cout << "queue_fuse_read" << std::endl);
|
||||
struct io_uring_sqe *sqe1 = io.get_sqe();
|
||||
@ -946,7 +946,7 @@ int fuseuring_main(int backing_fd, const std::string& mountpoint, int max_backgr
|
||||
int fuse_fixed_fd = 0;
|
||||
std::vector<struct iovec> reg_buffers;
|
||||
|
||||
fuse_io_service::FuseRing fuse_ring;
|
||||
fuse_io_context::FuseRing fuse_ring;
|
||||
fuse_ring.fd = fuse_fixed_fd;
|
||||
fuse_ring.backing_fd = fixed_fds.size();
|
||||
fixed_fds.push_back(backing_fd);
|
||||
@ -974,7 +974,7 @@ int fuseuring_main(int backing_fd, const std::string& mountpoint, int max_backgr
|
||||
|
||||
for(size_t i=0;i<init_out.init_out.max_background;++i)
|
||||
{
|
||||
std::unique_ptr<fuse_io_service::FuseIo> new_io = std::make_unique<fuse_io_service::FuseIo>();
|
||||
std::unique_ptr<fuse_io_context::FuseIo> new_io = std::make_unique<fuse_io_context::FuseIo>();
|
||||
rc = pipe2(new_io->pipe, O_CLOEXEC|O_NONBLOCK);
|
||||
if(rc!=0)
|
||||
{
|
||||
@ -1036,7 +1036,7 @@ int fuseuring_main(int backing_fd, const std::string& mountpoint, int max_backgr
|
||||
fuse_ring.backing_f_size = bst.st_size;
|
||||
|
||||
std::cout << "Running..." << std::endl;
|
||||
fuse_io_service service(std::move(fuse_ring));
|
||||
fuse_io_context service(std::move(fuse_ring));
|
||||
rc = service.run(queue_fuse_read);
|
||||
|
||||
io_uring_unregister_buffers(&fuse_uring);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user