[orbis-kernel] WIP new io device implementation

Not used yet
This commit is contained in:
DH 2023-07-11 23:14:33 +03:00
parent 679bf94b5c
commit 855b7ab75c
3 changed files with 111 additions and 0 deletions

View file

@ -0,0 +1,29 @@
#pragma once
#include <cstdint>
namespace orbis {
struct IoVec {
void *base; // Base address
std::uint64_t len; // Length
};
enum class UioRw : std::uint8_t { Read, Write };
// Segment flag values
enum class UioSeg : std::uint8_t {
UserSpace, // from user data space
SysSpace, // from system space
NoCopy // don't copy, already in object
};
struct Uio {
std::uint64_t offset;
IoVec *iov;
std::int32_t iovcnt;
std::int32_t resid;
UioSeg segflg;
UioRw rw;
void *td;
};
} // namespace orbis