1a38a92c9SIngo Weinhold #ifndef _FSSH_KERNEL_EXPORT_H 2a38a92c9SIngo Weinhold #define _FSSH_KERNEL_EXPORT_H 3a38a92c9SIngo Weinhold 4a38a92c9SIngo Weinhold 5a38a92c9SIngo Weinhold #include "fssh_defs.h" 6a38a92c9SIngo Weinhold #include "fssh_os.h" 7a38a92c9SIngo Weinhold 8a38a92c9SIngo Weinhold 9a38a92c9SIngo Weinhold #ifdef __cplusplus 10a38a92c9SIngo Weinhold extern "C" { 11a38a92c9SIngo Weinhold #endif 12a38a92c9SIngo Weinhold 1321885de2SAxel Dörfler 14a38a92c9SIngo Weinhold /* kernel threads */ 15a38a92c9SIngo Weinhold 16a38a92c9SIngo Weinhold extern fssh_thread_id fssh_spawn_kernel_thread(fssh_thread_func function, 17a38a92c9SIngo Weinhold const char *threadName, int32_t priority, 18a38a92c9SIngo Weinhold void *arg); 19a38a92c9SIngo Weinhold 2021885de2SAxel Dörfler /* misc */ 21a38a92c9SIngo Weinhold 2221885de2SAxel Dörfler extern fssh_status_t fssh_user_memcpy(void *dest, const void *source, 2321885de2SAxel Dörfler fssh_size_t length); 2421885de2SAxel Dörfler 25a38a92c9SIngo Weinhold /* primitive kernel debugging facilities */ 26a38a92c9SIngo Weinhold 27a38a92c9SIngo Weinhold extern void fssh_dprintf(const char *format, ...) /* just like printf */ 28a38a92c9SIngo Weinhold __attribute__ ((format (__printf__, 1, 2))); 29a38a92c9SIngo Weinhold extern void fssh_kprintf(const char *fmt, ...) /* only for debugger cmds */ 30a38a92c9SIngo Weinhold __attribute__ ((format (__printf__, 1, 2))); 31a38a92c9SIngo Weinhold 32a38a92c9SIngo Weinhold extern void fssh_dump_block(const char *buffer, int size, 33a38a92c9SIngo Weinhold const char *prefix); 34a38a92c9SIngo Weinhold 35a38a92c9SIngo Weinhold extern void fssh_panic(const char *format, ...) 36a38a92c9SIngo Weinhold __attribute__ ((format (__printf__, 1, 2))); 37a38a92c9SIngo Weinhold 38a38a92c9SIngo Weinhold extern void fssh_kernel_debugger(const char *message); /* enter kernel debugger */ 39a38a92c9SIngo Weinhold extern uint32_t fssh_parse_expression(const char *string); /* utility for debugger cmds */ 40a38a92c9SIngo Weinhold 41a38a92c9SIngo Weinhold typedef int (*fssh_debugger_command_hook)(int argc, char **argv); 42a38a92c9SIngo Weinhold 43*fa28330bSAxel Dörfler extern int fssh_add_debugger_command(const char *name, 44*fa28330bSAxel Dörfler fssh_debugger_command_hook hook, const char *help); 45a38a92c9SIngo Weinhold extern int fssh_remove_debugger_command(char *name, 46a38a92c9SIngo Weinhold fssh_debugger_command_hook hook); 47a38a92c9SIngo Weinhold 48a38a92c9SIngo Weinhold 49a38a92c9SIngo Weinhold #ifdef __cplusplus 50a38a92c9SIngo Weinhold } 51a38a92c9SIngo Weinhold #endif 52a38a92c9SIngo Weinhold 53a38a92c9SIngo Weinhold 54a38a92c9SIngo Weinhold #endif // _FSSH_KERNEL_EXPORT_H 55