Choco OS  V.0.16.9.0
Join to the chocolate world
oc_boot.h
Go to the documentation of this file.
1 
33 #ifndef INC_BOOT_OC_BOOT_H_
34 #define INC_BOOT_OC_BOOT_H_
35 
36 #include <oc_user.h>
37 #include <oc_time.h>
38 
44 #define _________________________________________TYPES_SECTION_____________________________________________________________________________
45 
48 typedef enum
49 {
50  oC_Boot_Reason_Unknown ,
51  oC_Boot_Reason_UserRequest ,
52  oC_Boot_Reason_DriverError ,
53  oC_Boot_Reason_SystemException ,
54  oC_Boot_Reason_MemoryLackout
55 } oC_Boot_Reason_t;
56 
57 typedef enum
58 {
59  oC_Boot_Level_RequireClock = (1<<0) ,
60  oC_Boot_Level_RequireMemoryManager = (1<<1) ,
61  oC_Boot_Level_RequireDriversManager = (1<<2) ,
62  oC_Boot_Level_RequireProcessManager = (1<<3) ,
63  oC_Boot_Level_RequireStreamsManager = (1<<4) ,
64  oC_Boot_Level_RequireThreadManager = (1<<5) ,
65  oC_Boot_Level_RequireUsersManager = (1<<6) ,
66  oC_Boot_Level_RequireKernelTime = (1<<7) ,
67  oC_Boot_Level_RequireProgramManager = (1<<8) ,
68  oC_Boot_Level_RequireKernelPrint = (1<<9) ,
69  oC_Boot_Level_RequireDeleteDeamon = (1<<10) ,
70  oC_Boot_Level_RequireFileSystem = (1<<11) ,
71  oC_Boot_Level_RequireNetwork = (1<<12) ,
72  oC_Boot_Level_RequireIdleTask = (1<<13) ,
73  oC_Boot_Level_0 = oC_Boot_Level_RequireClock |
74  oC_Boot_Level_RequireMemoryManager |
75  oC_Boot_Level_RequireDriversManager ,
76  oC_Boot_Level_1 = oC_Boot_Level_0 |
77  oC_Boot_Level_RequireProcessManager |
78  oC_Boot_Level_RequireStreamsManager |
79  oC_Boot_Level_RequireThreadManager |
80  oC_Boot_Level_RequireUsersManager |
81  oC_Boot_Level_RequireKernelTime |
82  oC_Boot_Level_RequireProgramManager ,
83  oC_Boot_Level_2 = oC_Boot_Level_1 |
84  oC_Boot_Level_RequireKernelPrint |
85  oC_Boot_Level_RequireDeleteDeamon,
86  oC_Boot_Level_3 = oC_Boot_Level_2 |
87  oC_Boot_Level_RequireFileSystem,
88  oC_Boot_Level_4 = oC_Boot_Level_3 |
89  oC_Boot_Level_RequireNetwork,
90  oC_Boot_Level_5 = oC_Boot_Level_4,
91  oC_Boot_Level_6 = oC_Boot_Level_5,
92  oC_Boot_Level_SystemRunning = oC_Boot_Level_6 | oC_Boot_Level_RequireIdleTask,
93  oC_Boot_Level_DonotRequireAnything = 0
94 } oC_Boot_Level_t;
95 
96 #undef _________________________________________TYPES_SECTION_____________________________________________________________________________
97 
104 #define _________________________________________INTERFACE_SECTION__________________________________________________________________________
105 
108 //==========================================================================================================================================
115 //==========================================================================================================================================
116 extern void oC_Boot_Main(void);
117 
118 //==========================================================================================================================================
124 //==========================================================================================================================================
125 extern oC_Boot_Level_t oC_Boot_GetCurrentBootLevel (void);
126 
127 //==========================================================================================================================================
131 //==========================================================================================================================================
132 extern oC_Timestamp_t oC_Boot_GetStartupTimestamp( void );
133 
134 //==========================================================================================================================================
144 //==========================================================================================================================================
145 extern void oC_Boot_Restart( oC_Boot_Reason_t Reason , oC_User_t User );
146 
147 //==========================================================================================================================================
156 //==========================================================================================================================================
157 extern void oC_Boot_Shutdown( oC_Boot_Reason_t Reason , oC_User_t User );
158 
159 //==========================================================================================================================================
167 //==========================================================================================================================================
168 extern oC_Boot_Reason_t oC_Boot_GetLastShutdownReason( void );
169 
170 //==========================================================================================================================================
178 //==========================================================================================================================================
180 
181 #undef _________________________________________INTERFACE_SECTION__________________________________________________________________________
182 
184 #endif /* INC_BOOT_OC_BOOT_H_ */
oC_Boot_Level_t oC_Boot_GetCurrentBootLevel(void)
returns current boot level
Definition: oc_boot.c:131
oC_Timestamp_t oC_Boot_GetStartupTimestamp(void)
returns timestamp of startup
Definition: oc_boot.c:138
The library with time definitions.
Definition: oc_user.c:43
void oC_Boot_Main(void)
main function of the system
Definition: oc_boot.c:111
void oC_Boot_Restart(oC_Boot_Reason_t Reason, oC_User_t User)
restarts the system
Definition: oc_boot.c:145
The file with interface for user system.
void oC_Boot_Shutdown(oC_Boot_Reason_t Reason, oC_User_t User)
shutting down the system
oC_User_t oC_Boot_GetLastShutdownUser(void)
returns id of user that shutdown the system last time
oC_Boot_Reason_t oC_Boot_GetLastShutdownReason(void)
returns reason of shutting down