Serenity Operating System
1/*
2 * Copyright (c) 2023, Liav A. <liavalb@hotmail.co.il>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <AK/StringView.h>
10#include <AK/Types.h>
11
12namespace Kernel {
13
14struct segmented_global_inode_index {
15 StringView name;
16 u8 file_type;
17 u32 primary;
18 u16 subdirectory;
19 u32 property;
20};
21
22constexpr segmented_global_inode_index global_inode_ids[] = {
23 { "."sv, DT_DIR, 0, 0, 1 }, // NOTE: This is here for the root directory
24 { "self"sv, DT_DIR, 0, 0, 2 }
25};
26
27struct segmented_process_directory_entry {
28 StringView name;
29 u8 file_type;
30 u16 subdirectory;
31 u32 property;
32};
33
34constexpr segmented_process_directory_entry main_process_directory_root_entry = { "."sv, DT_DIR, 0, 0 };
35constexpr segmented_process_directory_entry process_fd_subdirectory_root_entry = { "."sv, DT_DIR, 1, 0 };
36constexpr segmented_process_directory_entry process_stacks_subdirectory_root_entry = { "."sv, DT_DIR, 2, 0 };
37constexpr segmented_process_directory_entry process_children_subdirectory_root_entry = { "."sv, DT_DIR, 3, 0 };
38
39constexpr segmented_process_directory_entry process_fd_directory_entry = { "fd"sv, DT_DIR, 1, 0 };
40constexpr segmented_process_directory_entry process_stacks_directory_entry = { "stacks"sv, DT_DIR, 2, 0 };
41constexpr segmented_process_directory_entry process_children_directory_entry = { "children"sv, DT_DIR, 3, 0 };
42constexpr segmented_process_directory_entry process_unveil_list_entry = { "unveil"sv, DT_REG, 0, 1 };
43constexpr segmented_process_directory_entry process_pledge_list_entry = { "pledge"sv, DT_REG, 0, 2 };
44constexpr segmented_process_directory_entry process_fds_list_entry = { "fds"sv, DT_REG, 0, 3 };
45constexpr segmented_process_directory_entry process_exe_symlink_entry = { "exe"sv, DT_LNK, 0, 4 };
46constexpr segmented_process_directory_entry process_cwd_symlink_entry = { "cwd"sv, DT_LNK, 0, 5 };
47constexpr segmented_process_directory_entry process_perf_events_entry = { "perf_events"sv, DT_REG, 0, 6 };
48constexpr segmented_process_directory_entry process_vm_entry = { "vm"sv, DT_REG, 0, 7 };
49constexpr segmented_process_directory_entry process_cmdline_entry = { "cmdline"sv, DT_REG, 0, 8 };
50constexpr segmented_process_directory_entry main_process_directory_entries[] = {
51 process_fd_directory_entry,
52 process_stacks_directory_entry,
53 process_children_directory_entry,
54 process_unveil_list_entry,
55 process_pledge_list_entry,
56 process_fds_list_entry,
57 process_exe_symlink_entry,
58 process_cwd_symlink_entry,
59 process_perf_events_entry,
60 process_vm_entry,
61 process_cmdline_entry,
62};
63
64}