summaryrefslogtreecommitdiffhomepage
path: root/src/libSystem/SystemKit/Jail.h
blob: f28968b478e797a20b94fe7e23970b591eaf56f8 (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);