1 #ifndef _SSM_PLATFORM_H
2 #define _SSM_PLATFORM_H
43 #define SSM_DEVICE(name) name
46 #define SSM_DEVICE_INPUT(name) ssm_input_device_##name
49 #define SSM_DEVICE_OUTPUT(name) ssm_output_device_##name
56 #define SSM_DEVICE_IN_USE(kind, name) SSM_##kind##_DEVICE_IN_USE_##name
69 #define SSM_DECLARE_DEVICE_EXISTS(kind, name) \
70 bool __attribute__((weak)) SSM_DEVICE_IN_USE(kind, name) = false
84 #define SSM_DECLARE_DEVICE_IN_USE(kind, name, in_use) \
85 bool SSM_DEVICE_IN_USE(kind, name) = in_use
91 #define SSM_DECLARE_ZEPHYR_INPUT_DEVICE(name) \
92 SSM_DECLARE_DEVICE_IN_USE(INPUT, name, true); \
93 extern ssm_sv_t SSM_DEVICE(name);
99 #define SSM_DECLARE_ZEPHYR_OUTPUT_DEVICE(name) \
100 SSM_DECLARE_DEVICE_IN_USE(OUTPUT, name, true); \
101 extern ssm_sv_t SSM_DEVICE(name);
107 #define SSM_DECLARE_ZEPHYR_IO_DEVICE(name) \
108 SSM_DECLARE_DEVICE_IN_USE(INPUT, name, true); \
109 SSM_DECLARE_DEVICE_IN_USE(OUTPUT, name, true); \
110 extern ssm_sv_t SSM_DEVICE(name);
Interface to the SSM runtime.
A scheduled variable that supports scheduled updates with triggers.
SSM values are either "packed" values or heap-allocated.