~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/um/drivers/mconsole.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
 
3
 * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
 
4
 * Licensed under the GPL
 
5
 */
 
6
 
 
7
#ifndef __MCONSOLE_H__
 
8
#define __MCONSOLE_H__
 
9
 
 
10
#ifndef __KERNEL__
 
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, MCONSOLE_HANG,
 
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];                      /* sockaddr_un */
 
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_request *req, const char *reply,
 
73
                              int len, int err, int more);
 
74
extern int mconsole_reply(struct mc_request *req, const char *str, int err,
 
75
                          int more);
 
76
 
 
77
extern void mconsole_version(struct mc_request *req);
 
78
extern void mconsole_help(struct mc_request *req);
 
79
extern void mconsole_halt(struct mc_request *req);
 
80
extern void mconsole_reboot(struct mc_request *req);
 
81
extern void mconsole_config(struct mc_request *req);
 
82
extern void mconsole_remove(struct mc_request *req);
 
83
extern void mconsole_sysrq(struct mc_request *req);
 
84
extern void mconsole_cad(struct mc_request *req);
 
85
extern void mconsole_stop(struct mc_request *req);
 
86
extern void mconsole_go(struct mc_request *req);
 
87
extern void mconsole_log(struct mc_request *req);
 
88
extern void mconsole_proc(struct mc_request *req);
 
89
extern void mconsole_stack(struct mc_request *req);
 
90
 
 
91
extern int mconsole_get_request(int fd, struct mc_request *req);
 
92
extern int mconsole_notify(char *sock_name, int type, const void *data,
 
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