summaryrefslogtreecommitdiffhomepage
path: root/dev/libSystem/SystemKit/Jail.h
blob: e033c25fff2255f51aa7ba83cbc15f7dd29bf828 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* -------------------------------------------

  Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.

------------------------------------------- */

#pragma once

#include <libSystem/SystemKit/System.h>

/// @file Jail.h
/// @author Amlal El Mahrouss
/// @brief NeKernel Jail System, part of OpenEnclave.

struct JAIL_INFO;
struct JAIL;

/// @brief Jail information (client side struct)
struct JAIL_INFO {
  SInt32 fParentID;
  SInt32 fJailHash;
  SInt64 fACL;
};

/// @brief Jail information (we grab a JAIL from JailGetCurrent())
struct JAIL {
  struct JAIL_INFO* fServer;
  struct JAIL_INFO* fClient;
  SInt32            fJailHash;
  SInt32            fParentID;
  SInt64            fACL;
};

/// @brief Get the current jail
/// @return Pointer to the current jail structure, or NULL if not in a jail
IMPORT_C struct JAIL* JailGetCurrent(Void);