/ src / setup / src / settings.h
settings.h
 1  /* FinnOS - Beowulf cluster linux distro.
 2   * If you find this software useful, please consider supporting future development.
 3   * Donate what you believe this software is worth at: https://SammTech.net/donate
 4   * Copyright (c) 2025 Samm and FinnOS Contributors.
 5   * Licensed under the GNU General Public License, version 2 (GPLv2).
 6   * See LICENSE.txt for details.
 7   */
 8  
 9  #ifndef FINNOS_SETUP_SETTINGS_H
10  #define FINNOS_SETUP_SETTINGS_H
11  
12  #include <stdlib.h>
13  #include <stdint.h>
14  
15  typedef enum {
16      RISCV64 = 0,
17      ARM64 = 1,
18      ARM32 = 2,
19      X86_64 = 3,
20      X86_32 = 4,
21      POWERPC = 5,
22  } CPUArch;
23  
24  typedef enum {
25      PLATFORM_DESKTOP = 0, /* desktop devices */
26      PLATFORM_MOBILE,      /* mobile devices */
27      PLATFORM_VG_CONSOLE,  /* video game console */
28      PLATFORM_XR_HEADSET,  /* xr headset */
29  } PlatformArch;
30  
31  typedef struct {
32      /* architectures */
33      uint8_t is_default_master_arch;
34      uint8_t is_default_node_arch;
35      CPUArch* master_archs;
36      size_t master_arch_len;
37      CPUArch* node_archs;
38      size_t node_arch_len;
39  
40      /* platforms */
41      uint8_t is_default_master_platform;
42      PlatformArch* master_platforms;
43      size_t master_platform_len;
44  } SetupSettings;
45  
46  int create_default_settings(SetupSettings* settings);
47  void destroy_settings(SetupSettings* settings);
48  
49  #endif