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
net
tipc
core.h
Go to the documentation of this file.
1
/*
2
* net/tipc/core.h: Include file for TIPC global declarations
3
*
4
* Copyright (c) 2005-2006, Ericsson AB
5
* Copyright (c) 2005-2007, 2010-2011, Wind River Systems
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions are met:
10
*
11
* 1. Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
* 3. Neither the names of the copyright holders nor the names of its
17
* contributors may be used to endorse or promote products derived from
18
* this software without specific prior written permission.
19
*
20
* Alternatively, this software may be distributed under the terms of the
21
* GNU General Public License ("GPL") version 2 as published by the Free
22
* Software Foundation.
23
*
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
* POSSIBILITY OF SUCH DAMAGE.
35
*/
36
37
#ifndef _TIPC_CORE_H
38
#define _TIPC_CORE_H
39
40
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
41
42
#include <
linux/tipc.h
>
43
#include <
linux/tipc_config.h
>
44
#include <linux/types.h>
45
#include <linux/kernel.h>
46
#include <linux/errno.h>
47
#include <
linux/mm.h
>
48
#include <
linux/timer.h
>
49
#include <linux/string.h>
50
#include <asm/uaccess.h>
51
#include <
linux/interrupt.h
>
52
#include <
linux/atomic.h
>
53
#include <asm/hardirq.h>
54
#include <linux/netdevice.h>
55
#include <linux/in.h>
56
#include <linux/list.h>
57
#include <linux/slab.h>
58
#include <
linux/vmalloc.h
>
59
60
61
#define TIPC_MOD_VER "2.0.0"
62
63
#define ULTRA_STRING_MAX_LEN 32768
64
#define TIPC_MAX_SUBSCRIPTIONS 65535
65
#define TIPC_MAX_PUBLICATIONS 65535
66
67
struct
tipc_msg
;
/* msg.h */
68
69
int
tipc_snprintf
(
char
*
buf
,
int
len,
const
char
*
fmt
, ...);
70
71
/*
72
* TIPC-specific error codes
73
*/
74
#define ELINKCONG EAGAIN
/* link congestion <=> resource unavailable */
75
76
/*
77
* Global configuration variables
78
*/
79
extern
u32
tipc_own_addr
__read_mostly
;
80
extern
int
tipc_max_ports
__read_mostly
;
81
extern
int
tipc_net_id
__read_mostly
;
82
extern
int
tipc_remote_management
__read_mostly
;
83
84
/*
85
* Other global variables
86
*/
87
extern
int
tipc_random
__read_mostly
;
88
89
/*
90
* Routines available to privileged subsystems
91
*/
92
extern
int
tipc_core_start_net
(
unsigned
long
);
93
extern
int
tipc_handler_start
(
void
);
94
extern
void
tipc_handler_stop
(
void
);
95
extern
int
tipc_netlink_start
(
void
);
96
extern
void
tipc_netlink_stop
(
void
);
97
extern
int
tipc_socket_init
(
void
);
98
extern
void
tipc_socket_stop
(
void
);
99
100
/*
101
* TIPC timer and signal code
102
*/
103
typedef
void
(*
Handler
) (
unsigned
long
);
104
105
u32
tipc_k_signal
(
Handler
routine
,
unsigned
long
argument);
106
115
static
inline
void
k_init_timer(
struct
timer_list
*
timer
,
Handler
routine
,
116
unsigned
long
argument)
117
{
118
setup_timer
(timer, routine, argument);
119
}
120
134
static
inline
void
k_start_timer(
struct
timer_list
*
timer
,
unsigned
long
msec
)
135
{
136
mod_timer
(timer, jiffies +
msecs_to_jiffies
(msec) + 1);
137
}
138
149
static
inline
void
k_cancel_timer(
struct
timer_list
*timer)
150
{
151
del_timer_sync
(timer);
152
}
153
165
static
inline
void
k_term_timer(
struct
timer_list
*timer)
166
{
167
}
168
169
/*
170
* TIPC message buffer code
171
*
172
* TIPC message buffer headroom reserves space for the worst-case
173
* link-level device header (in case the message is sent off-node).
174
*
175
* Note: Headroom should be a multiple of 4 to ensure the TIPC header fields
176
* are word aligned for quicker access
177
*/
178
#define BUF_HEADROOM LL_MAX_HEADER
179
180
struct
tipc_skb_cb
{
181
void
*
handle
;
182
};
183
184
#define TIPC_SKB_CB(__skb) ((struct tipc_skb_cb *)&((__skb)->cb[0]))
185
186
static
inline
struct
tipc_msg
*buf_msg(
struct
sk_buff
*
skb
)
187
{
188
return
(
struct
tipc_msg
*)skb->
data
;
189
}
190
191
extern
struct
sk_buff
*
tipc_buf_acquire
(
u32
size
);
192
193
#endif
Generated on Thu Jan 10 2013 12:58:13 for Linux Kernel by
1.8.2