1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 /* 3 * Copyright (C) 2001 Lennert Buytenhek (buyte 4 * Copyright (C) 2001 - 2007 Jeff Dike (jdike@ 5 */ 6 7 #ifndef __MCONSOLE_H__ 8 #define __MCONSOLE_H__ 9 10 #ifdef __UM_HOST__ 11 #include <stdint.h> 12 #define u32 uint32_t 13 #endif 14 15 #include <sysdep/ptrace.h> 16 17 #define MCONSOLE_MAGIC (0xcafebabe) 18 #define MCONSOLE_MAX_DATA (512) 19 #define MCONSOLE_VERSION 2 20 21 struct mconsole_request { 22 u32 magic; 23 u32 version; 24 u32 len; 25 char data[MCONSOLE_MAX_DATA]; 26 }; 27 28 struct mconsole_reply { 29 u32 err; 30 u32 more; 31 u32 len; 32 char data[MCONSOLE_MAX_DATA]; 33 }; 34 35 struct mconsole_notify { 36 u32 magic; 37 u32 version; 38 enum { MCONSOLE_SOCKET, MCONSOLE_PANIC 39 MCONSOLE_USER_NOTIFY } type; 40 u32 len; 41 char data[MCONSOLE_MAX_DATA]; 42 }; 43 44 struct mc_request; 45 46 enum mc_context { MCONSOLE_INTR, MCONSOLE_PROC 47 48 struct mconsole_command 49 { 50 char *command; 51 void (*handler)(struct mc_request *req 52 enum mc_context context; 53 }; 54 55 struct mc_request 56 { 57 int len; 58 int as_interrupt; 59 60 int originating_fd; 61 unsigned int originlen; 62 unsigned char origin[128]; 63 64 struct mconsole_request request; 65 struct mconsole_command *cmd; 66 struct uml_pt_regs regs; 67 }; 68 69 extern char mconsole_socket_name[]; 70 71 extern int mconsole_unlink_socket(void); 72 extern int mconsole_reply_len(struct mc_reques 73 int len, int err 74 extern int mconsole_reply(struct mc_request *r 75 int more); 76 77 extern void mconsole_version(struct mc_request 78 extern void mconsole_help(struct mc_request *r 79 extern void mconsole_halt(struct mc_request *r 80 extern void mconsole_reboot(struct mc_request 81 extern void mconsole_config(struct mc_request 82 extern void mconsole_remove(struct mc_request 83 extern void mconsole_sysrq(struct mc_request * 84 extern void mconsole_cad(struct mc_request *re 85 extern void mconsole_stop(struct mc_request *r 86 extern void mconsole_go(struct mc_request *req 87 extern void mconsole_log(struct mc_request *re 88 extern void mconsole_proc(struct mc_request *r 89 extern void mconsole_stack(struct mc_request * 90 91 extern int mconsole_get_request(int fd, struct 92 extern int mconsole_notify(char *sock_name, in 93 int len); 94 extern char *mconsole_notify_socket(void); 95 extern void lock_notify(void); 96 extern void unlock_notify(void); 97 98 #endif 99
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.