ApertureOS
system_manager.h
Go to the documentation of this file.
1 #ifndef _SYSTEM_MANAGER_H_
2 #define _SYSTEM_MANAGER_H_
3 
4 #include "types.h"
5 #include "../msg_manager/msg_manager.h"
6 #include "../msg_manager/msg_types.h"
7 
8 #define MAX_SYSTEM_COUNT 32
9 #define SYSTEM_NAME_LEN 16
10 
11 
12 typedef struct
13 {
14  char sys_name[SYSTEM_NAME_LEN];
15  SysID prerequisites[MAX_SYSTEM_COUNT - 1];
18  uint8_t(*msg_cb)(Message*);
20 } SystemData;
21 
22 //Register a new system and assign it a UID
24 
25 //Register an initializer and initialization callback
26 void SysMan_StartSystem(SysID sys_id);
27 
28 //Request a new UID
30 
31 //Return UID
32 void SysMan_FreeUID(SysID sys, UID uid);
33 
34 //Get data for a system, fill outData with 0xFF if the id is invalid
35 void SysMan_GetSystemData(SysID id, SystemData *outData);
36 
37 #endif /* end of include guard: _SYSTEM_MANAGER_H_ */
uint32_t(* Initializer)()
Definition: types.h:12
void SysMan_FreeUID(SysID sys, UID uid)
Definition: system_manager.h:12
#define SYSTEM_NAME_LEN
Definition: system_manager.h:9
uint64_t UID
Definition: types.h:8
void(* Callback)(void *)
Definition: types.h:11
#define MAX_SYSTEM_COUNT
Definition: system_manager.h:8
Callback init_cb
Definition: system_manager.h:17
Definition: msg_types.h:29
SysID sys_id
Definition: system_manager.h:19
UID SysID
Definition: types.h:9
UID SysMan_RequestUID(SysID sys)
Initializer init
Definition: system_manager.h:16
SystemData * SysMan_RegisterSystem()
Definition: system_manager.c:12
void SysMan_GetSystemData(SysID id, SystemData *outData)
Definition: system_manager.c:29
void SysMan_StartSystem(SysID sys_id)
Definition: system_manager.c:41