xref: /xnu-10002.1.13/osfmk/kern/conclave_launcher.tightbeam (revision 1031c584a5e37aff177559b9f69dbd3c8c3fd30a)
1module conclave_launcher
2
3enum ConclaveLauncherFailure: UInt32 {
4    case MissingConclave = 1
5    case ConclaveNotRunning = 2
6}
7
8enum ConclaveStatus : UInt32 {
9    case Running = 1
10    case Exited = 2
11    case Crashed = 3
12    case Killed = 4
13    case NotBooted = 5
14}
15
16enum ConclaveStopReason: UInt32 {
17    case Exit = 1
18    case Killed = 2
19    case Jetsammed = 3
20    case Shutdown = 4
21}
22
23struct ConclaveDebugInfo {
24    // let exclaveInfo : ExclaveInfo
25    let conclaveUUID : [UInt8 * 16]
26}
27
28
29service ConclaveControl {
30    /// Launch a conclave
31    /// - Returns status of conclave after launch
32    func launch() throws ConclaveLauncherFailure -> ConclaveStatus
33
34    /// Stop a conclave
35    /// - Parameter reason: Reason for stopping conclave
36    /// - Parameter onHostThread: Whether we are on the host thread
37    /// - Returns Status of the conclave after stop
38    func stop(_ reason: ConclaveStopReason, _ onHostThread: Bool) throws ConclaveLauncherFailure -> ConclaveStatus
39
40
41    /// Get status of a conclave
42    /// - Returns Status of the conclave
43    func status() throws ConclaveLauncherFailure -> ConclaveStatus
44}
45
46service ConclaveDebug {
47    /// Get debug information for a conclave
48    /// - Returns Debug information for the conclave
49    func debugInfo() throws ConclaveLauncherFailure -> ConclaveDebugInfo
50}
51