[orbis-kernel] impi: implement server ops

stub mkdir/rmdir syscalls
This commit is contained in:
DH 2023-08-20 15:39:18 +03:00
parent ca58c03eb6
commit 7ea6f3d91a
6 changed files with 76 additions and 6 deletions

View file

@ -106,10 +106,7 @@ public:
return {};
}
std::pair<IpmiServer *, bool> createIpmiServer(utils::kstring name,
std::uint32_t attrs,
std::int32_t initCount,
std::int32_t maxCount) {
std::pair<IpmiServer *, bool> createIpmiServer(utils::kstring name) {
std::lock_guard lock(m_sem_mtx);
auto [it, inserted] = mIpmiServers.try_emplace(std::move(name), nullptr);
if (inserted) {

View file

@ -30,6 +30,8 @@ struct FileOps {
ErrorCode (*stat)(File *file, Stat *sb, Thread *thread) = nullptr;
ErrorCode (*mkdir)(File *file, const char *path, std::int32_t mode) = nullptr;
// TODO: chown
// TODO: chmod

View file

@ -60,6 +60,7 @@ struct Process final {
utils::RcIdMap<EventFlag, sint, 4097, 1> evfMap;
utils::RcIdMap<Semaphore, sint, 4097, 1> semMap;
utils::RcIdMap<IpmiClient, sint, 4097, 1> ipmiClientMap;
utils::RcIdMap<IpmiServer, sint, 4097, 1> ipmiServerMap;
utils::RcIdMap<Module, ModuleHandle> modulesMap;
utils::OwningIdMap<Thread, lwpid_t> threadsMap;
utils::RcIdMap<orbis::File, sint> fileDescriptors;

View file

@ -40,6 +40,8 @@ struct ProcessOps {
Ref<File> *file);
SysResult (*shm_open)(Thread *thread, const char *path, sint flags, sint mode,
Ref<File> *file);
SysResult (*mkdir)(Thread *thread, ptr<const char> path, sint mode);
SysResult (*rmdir)(Thread *thread, ptr<const char> path) = nullptr;
SysResult (*blockpool_open)(Thread *thread, Ref<File> *file);
SysResult (*blockpool_map)(Thread *thread, caddr_t addr, size_t len,
sint prot, sint flags);