Voxia OS
v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
voxmo.h
Go to the documentation of this file.
1
#ifndef __MODULES__VOXMO_H__
2
#define __MODULES__VOXMO_H__
3
4
#include <
string.h
>
5
#include <
vector.h
>
6
#include <
type.h
>
7
#include "
procc/workqueue.h
"
8
#include <
spinlock.h
>
9
10
#pragma pack(push, 1)
11
struct
voxmo_metadata_string
{
12
uint16_t
length
;
13
uint64_t
pos
;
14
};
15
16
struct
voxmo_metadata_list
{
17
uint16_t
count
;
18
uint64_t
pos
;
19
};
20
21
struct
voxmo_metadata_header
{
22
uint32_t
magic
;
23
uint16_t
version
;
24
uint32_t
header_len
;
25
uint32_t
file_counts
;
26
27
struct
voxmo_metadata_string
nama_module
;
28
struct
voxmo_metadata_string
description
;
29
struct
voxmo_metadata_string
license
;
30
struct
voxmo_metadata_string
version_str
;
31
struct
voxmo_metadata_string
author
;
32
struct
voxmo_metadata_string
main_file
;
33
34
struct
voxmo_metadata_list
capability
;
35
struct
voxmo_metadata_list
dependency
;
36
};
37
38
struct
voxmo_metadata_file
{
39
uint64_t
offset
;
40
uint32_t
metadata_length
;
41
uint32_t
size
;
42
struct
voxmo_metadata_string
nama_file
;
43
};
44
#pragma pack(pop)
45
46
typedef
struct
voxmo_loaded_module
{
47
spinlock_t
lock
;
48
kstring
name
;
49
kstring
*
capability
;
50
kstring
*
dependency
;
51
size_t
capability_count
;
52
size_t
dependency_count
;
53
uintptr_t
main_data
;
54
kstring
path
;
55
boolean_t
loaded
;
56
workqueue_t
*
queue
;
57
58
struct
voxmo_loaded_module
*
next
;
59
} voxmo_loaded_module_t
__attribute__
((aligned(64)));
60
typedef
voxmo_loaded_module_t*
voxmo_loaded_module_t_ptr
;
61
62
void
vxVoxmoInstall
(
const
char
*
path
);
63
void
vxSetDefaultVoxmoPath
(
const
char
*
path
);
64
void
vxVoxmoReload
();
65
66
#endif
// __MODULES__VOXMO_H__
__attribute__
typedef __attribute__
Definition
msi.c:47
spinlock.h
string.h
kstring
Definition
string.h:11
spinlock_t
Definition
spinlock.h:10
voxmo_loaded_module
Definition
voxmo.h:46
voxmo_loaded_module::main_data
uintptr_t main_data
Definition
voxmo.h:53
voxmo_loaded_module::dependency
kstring * dependency
Definition
voxmo.h:50
voxmo_loaded_module::path
kstring path
Definition
voxmo.h:54
voxmo_loaded_module::capability
kstring * capability
Definition
voxmo.h:49
voxmo_loaded_module::dependency_count
size_t dependency_count
Definition
voxmo.h:52
voxmo_loaded_module::lock
spinlock_t lock
Definition
voxmo.h:47
voxmo_loaded_module::queue
workqueue_t * queue
Definition
voxmo.h:56
voxmo_loaded_module::next
struct voxmo_loaded_module * next
Definition
voxmo.h:58
voxmo_loaded_module::loaded
boolean_t loaded
Definition
voxmo.h:55
voxmo_loaded_module::capability_count
size_t capability_count
Definition
voxmo.h:51
voxmo_loaded_module::name
kstring name
Definition
voxmo.h:48
voxmo_metadata_file
Definition
voxmo.h:38
voxmo_metadata_file::metadata_length
uint32_t metadata_length
Definition
voxmo.h:40
voxmo_metadata_file::nama_file
struct voxmo_metadata_string nama_file
Definition
voxmo.h:42
voxmo_metadata_file::size
uint32_t size
Definition
voxmo.h:41
voxmo_metadata_file::offset
uint64_t offset
Definition
voxmo.h:39
voxmo_metadata_header
Definition
voxmo.h:21
voxmo_metadata_header::header_len
uint32_t header_len
Definition
voxmo.h:24
voxmo_metadata_header::capability
struct voxmo_metadata_list capability
Definition
voxmo.h:34
voxmo_metadata_header::file_counts
uint32_t file_counts
Definition
voxmo.h:25
voxmo_metadata_header::version_str
struct voxmo_metadata_string version_str
Definition
voxmo.h:30
voxmo_metadata_header::license
struct voxmo_metadata_string license
Definition
voxmo.h:29
voxmo_metadata_header::version
uint16_t version
Definition
voxmo.h:23
voxmo_metadata_header::author
struct voxmo_metadata_string author
Definition
voxmo.h:31
voxmo_metadata_header::description
struct voxmo_metadata_string description
Definition
voxmo.h:28
voxmo_metadata_header::nama_module
struct voxmo_metadata_string nama_module
Definition
voxmo.h:27
voxmo_metadata_header::magic
uint32_t magic
Definition
voxmo.h:22
voxmo_metadata_header::main_file
struct voxmo_metadata_string main_file
Definition
voxmo.h:32
voxmo_metadata_header::dependency
struct voxmo_metadata_list dependency
Definition
voxmo.h:35
voxmo_metadata_list
Definition
voxmo.h:16
voxmo_metadata_list::pos
uint64_t pos
Definition
voxmo.h:18
voxmo_metadata_list::count
uint16_t count
Definition
voxmo.h:17
voxmo_metadata_string
Definition
voxmo.h:11
voxmo_metadata_string::length
uint16_t length
Definition
voxmo.h:12
voxmo_metadata_string::pos
uint64_t pos
Definition
voxmo.h:13
type.h
uint16_t
unsigned short uint16_t
Definition
type.h:13
uint32_t
unsigned int uint32_t
Definition
type.h:19
boolean_t
uint8_t boolean_t
Definition
type.h:89
uintptr_t
unsigned long uintptr_t
Definition
type.h:73
uint64_t
unsigned long uint64_t
Definition
type.h:25
vector.h
voxmo_loaded_module_t_ptr
voxmo_loaded_module_t * voxmo_loaded_module_t_ptr
Definition
voxmo.h:60
vxVoxmoInstall
void vxVoxmoInstall(const char *path)
Definition
voxmo.c:180
path
kstring path
Definition
voxmo.h:7
vxSetDefaultVoxmoPath
void vxSetDefaultVoxmoPath(const char *path)
Definition
voxmo.c:317
vxVoxmoReload
void vxVoxmoReload()
Definition
voxmo.c:344
workqueue.h
workqueue_t
struct workqueue workqueue_t
kernel
modules
voxmo.h
Generated on Sat May 30 2026 11:09:57 for Voxia OS by
1.13.2