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