mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 08:24:32 -08:00
31 lines
687 B
C++
31 lines
687 B
C++
#pragma once
|
|
/// \file handle.h
|
|
/// Defines types for user handles to kernel objects
|
|
|
|
#include "j6/types.h"
|
|
#include "objects/kobject.h"
|
|
|
|
class handle
|
|
{
|
|
public:
|
|
/// Move constructor. Takes ownership of the object from other.
|
|
handle(handle&& other);
|
|
|
|
/// Constructor.
|
|
/// \arg owner koid of the process that has this handle
|
|
/// \arg rights access rights this handle has over the object
|
|
/// \arg obj the object held
|
|
handle(j6_koid_t owner, j6_rights_t rights, kobject *obj);
|
|
|
|
~handle();
|
|
|
|
handle() = delete;
|
|
handle(const handle &other) = delete;
|
|
handle & operator=(const handle& other) = delete;
|
|
|
|
private:
|
|
j6_koid_t m_owner;
|
|
kobject *m_object;
|
|
j6_rights_t m_rights;
|
|
};
|