aboutsummaryrefslogtreecommitdiffstats
path: root/code/custom/4coder_system_types.h
blob: 0e7a22ea95b3f77ff77e42acfcb45ed700faee3e (plain) (blame)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
 * 4coder_system_types.h - Types relating to the system api.
 */

// TOP

#if !defined(FCODER_SYSTEM_TYPES_H)
#define FCODER_SYSTEM_TYPES_H

typedef i32 Key_Mode;
enum{
    KeyMode_LanguageArranged,
    KeyMode_Physical,
};

struct Plat_Handle{
    u32 d[4];
};
typedef Plat_Handle System_Library;
typedef Plat_Handle System_Thread;
typedef Plat_Handle System_Mutex;
typedef Plat_Handle System_Condition_Variable;
typedef void Thread_Function(void *ptr);
struct CLI_Handles{
    Plat_Handle proc;
    Plat_Handle out_read;
    Plat_Handle out_write;
    Plat_Handle in_read;
    Plat_Handle in_write;
    u32 scratch_space[4];
    i32 exit;
};

typedef i32 System_Path_Code;
enum{
    SystemPath_CurrentDirectory,
    SystemPath_Binary,
    SystemPath_UserDirectory,
};

struct Memory_Annotation_Node{
    Memory_Annotation_Node *next;
    String_Const_u8 location;
    void *address;
    u64 size;
};

struct Memory_Annotation{
    Memory_Annotation_Node *first;
    Memory_Annotation_Node *last;
    i32 count;
};

struct Mutex_Lock{
    Mutex_Lock(System_Mutex mutex);
    ~Mutex_Lock();
    operator System_Mutex();
    System_Mutex mutex;
};

#endif

// BOTTOM