summaryrefslogtreecommitdiffhomepage
path: root/src/libSystem/SystemKit/Jail.h
blob: 97d2af69a6966cef4aae0b988df5f34028a4108e (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
37
38
// SPDX-License-Identifier: Apache-2.0
// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/ne-foss-org/nekernel

#ifndef SYSTEMKIT_JAIL_H
#define SYSTEMKIT_JAIL_H

#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);

#endif