xous_api_log/
api.rs

1#[repr(C, align(4096))]
2pub struct LogRecord {
3    pub file_length: u32,
4    pub file: [u8; 128],
5    pub line: Option<core::num::NonZeroU32>,
6    pub module_length: u32,
7    pub module: [u8; 128],
8    pub level: u32,
9    pub args_length: u32,
10    pub args: [u8; 3820],
11}
12
13impl Default for LogRecord {
14    fn default() -> Self {
15        LogRecord {
16            file_length: 0,
17            file: [0u8; 128],
18            line: None,
19            module_length: 0,
20            module: [0u8; 128],
21            level: 0,
22            args_length: 0,
23            args: [0u8; 3820],
24        }
25    }
26}
27
28#[derive(Debug, PartialEq, num_derive::FromPrimitive, num_derive::ToPrimitive)]
29pub enum Opcode {
30    /// A `LogRecord` message, delivering structured log output
31    LogRecord = 0,
32
33    /// A `&[u8]` destined for stdout
34    StandardOutput = 1,
35
36    /// A `&[u8]` destined for stderr
37    StandardError = 2,
38
39    /// A `xous::StringBuffer` containing this program's name
40    ProgramName = 3,
41
42    /// Try to log console output to a USB serial port. Best-effort only; failures will not crash, will not
43    /// be noted
44    TryHookUsbMirror = 4,
45    UnhookUsbMirror = 5,
46
47    /// A panic occurred, and a panic log is forthcoming
48    PanicStarted = 1000,
49
50    /// Log messages of varying size
51    PanicMessage0 = 1100,
52    PanicMessage1 = 1101,
53    PanicMessage2 = 1102,
54    PanicMessage3 = 1103,
55    PanicMessage4 = 1104,
56    PanicMessage5 = 1105,
57    PanicMessage6 = 1106,
58    PanicMessage7 = 1107,
59    PanicMessage8 = 1108,
60    PanicMessage9 = 1109,
61    PanicMessage10 = 1110,
62    PanicMessage11 = 1111,
63    PanicMessage12 = 1112,
64    PanicMessage13 = 1113,
65    PanicMessage14 = 1114,
66    PanicMessage15 = 1115,
67    PanicMessage16 = 1116,
68    PanicMessage17 = 1117,
69    PanicMessage18 = 1118,
70    PanicMessage19 = 1119,
71    PanicMessage20 = 1120,
72    PanicMessage21 = 1121,
73    PanicMessage22 = 1122,
74    PanicMessage23 = 1123,
75    PanicMessage24 = 1124,
76    PanicMessage25 = 1125,
77    PanicMessage26 = 1126,
78    PanicMessage27 = 1127,
79    PanicMessage28 = 1128,
80    PanicMessage29 = 1129,
81    PanicMessage30 = 1130,
82    PanicMessage31 = 1131,
83    PanicMessage32 = 1132,
84
85    /// End of a panic
86    PanicFinished = 1200,
87
88    /// Enable receiving messages when the system is resumed from sleep.
89    EnableRx = 2000,
90}