blob: 6613c8eaad2a387322e39e74667b1db0326be8b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
/*
* kernel/power/tuxonice_netlink.h
*
* Copyright (C) 2004-2015 Nigel Cunningham (nigel at nigelcunningham com au)
*
* This file is released under the GPLv2.
*
* Declarations for functions for communicating with a userspace helper
* via netlink.
*/
#include <linux/netlink.h>
#include <net/sock.h>
#define NETLINK_MSG_BASE 0x10
#define NETLINK_MSG_READY 0x10
#define NETLINK_MSG_NOFREEZE_ME 0x16
#define NETLINK_MSG_GET_DEBUGGING 0x19
#define NETLINK_MSG_CLEANUP 0x24
#define NETLINK_MSG_NOFREEZE_ACK 0x27
#define NETLINK_MSG_IS_DEBUGGING 0x28
struct user_helper_data {
int (*rcv_msg) (struct sk_buff *skb, struct nlmsghdr *nlh);
void (*not_ready) (void);
struct sock *nl;
u32 sock_seq;
pid_t pid;
char *comm;
char program[256];
int pool_level;
int pool_limit;
struct sk_buff *emerg_skbs;
int skb_size;
int netlink_id;
char *name;
struct user_helper_data *next;
struct completion wait_for_process;
u32 interface_version;
int must_init;
int debug;
};
#ifdef CONFIG_NET
int toi_netlink_setup(struct user_helper_data *uhd);
void toi_netlink_close(struct user_helper_data *uhd);
void toi_send_netlink_message(struct user_helper_data *uhd,
int type, void *params, size_t len);
void toi_netlink_close_complete(struct user_helper_data *uhd);
#else
static inline int toi_netlink_setup(struct user_helper_data *uhd)
{
return 0;
}
static inline void toi_netlink_close(struct user_helper_data *uhd) { };
static inline void toi_send_netlink_message(struct user_helper_data *uhd,
int type, void *params, size_t len) { };
static inline void toi_netlink_close_complete(struct user_helper_data *uhd)
{ };
#endif
|