Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
connector.h
Go to the documentation of this file.
1
/*
2
* connector.h
3
*
4
* 2004-2005 Copyright (c) Evgeniy Polyakov <
[email protected]
>
5
* All rights reserved.
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2 of the License, or
10
* (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
*/
21
#ifndef __CONNECTOR_H
22
#define __CONNECTOR_H
23
24
25
#include <
linux/atomic.h
>
26
27
#include <linux/list.h>
28
#include <
linux/workqueue.h
>
29
30
#include <
net/sock.h
>
31
#include <
uapi/linux/connector.h
>
32
33
#define CN_CBQ_NAMELEN 32
34
35
struct
cn_queue_dev
{
36
atomic_t
refcnt
;
37
unsigned
char
name
[
CN_CBQ_NAMELEN
];
38
39
struct
list_head
queue_list
;
40
spinlock_t
queue_lock
;
41
42
struct
sock
*
nls
;
43
};
44
45
struct
cn_callback_id
{
46
unsigned
char
name
[
CN_CBQ_NAMELEN
];
47
struct
cb_id
id
;
48
};
49
50
struct
cn_callback_entry
{
51
struct
list_head
callback_entry
;
52
atomic_t
refcnt
;
53
struct
cn_queue_dev
*
pdev
;
54
55
struct
cn_callback_id
id
;
56
void
(*
callback
) (
struct
cn_msg
*,
struct
netlink_skb_parms
*);
57
58
u32
seq
,
group
;
59
};
60
61
struct
cn_dev
{
62
struct
cb_id
id
;
63
64
u32
seq
,
groups
;
65
struct
sock
*
nls
;
66
void
(*
input
) (
struct
sk_buff
*
skb
);
67
68
struct
cn_queue_dev
*
cbdev
;
69
};
70
71
int
cn_add_callback
(
struct
cb_id
*
id
,
const
char
*
name
,
72
void
(*
callback
)(
struct
cn_msg
*,
struct
netlink_skb_parms
*));
73
void
cn_del_callback
(
struct
cb_id
*);
74
int
cn_netlink_send
(
struct
cn_msg
*,
u32
,
gfp_t
);
75
76
int
cn_queue_add_callback
(
struct
cn_queue_dev
*
dev
,
const
char
*name,
77
struct
cb_id
*
id
,
78
void
(*
callback
)(
struct
cn_msg
*,
struct
netlink_skb_parms
*));
79
void
cn_queue_del_callback
(
struct
cn_queue_dev
*dev,
struct
cb_id
*
id
);
80
void
cn_queue_release_callback
(
struct
cn_callback_entry
*);
81
82
struct
cn_queue_dev
*
cn_queue_alloc_dev
(
const
char
*name,
struct
sock
*);
83
void
cn_queue_free_dev
(
struct
cn_queue_dev
*dev);
84
85
int
cn_cb_equal
(
struct
cb_id
*,
struct
cb_id
*);
86
87
#endif
/* __CONNECTOR_H */
Generated on Thu Jan 10 2013 14:51:14 for Linux Kernel by
1.8.2