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
addr.c
Go to the documentation of this file.
1
/*
2
* net/tipc/addr.c: TIPC address utility routines
3
*
4
* Copyright (c) 2000-2006, Ericsson AB
5
* Copyright (c) 2004-2005, 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
#include "
core.h
"
38
#include "
addr.h
"
39
48
int
tipc_addr_domain_valid
(
u32
addr
)
49
{
50
u32
n
=
tipc_node
(addr);
51
u32
c
= tipc_cluster(addr);
52
u32
z = tipc_zone(addr);
53
54
if
(n && (!z || !c))
55
return
0;
56
if
(c && !z)
57
return
0;
58
return
1;
59
}
60
68
int
tipc_addr_node_valid
(
u32
addr
)
69
{
70
return
tipc_addr_domain_valid
(addr) &&
tipc_node
(addr);
71
}
72
73
int
tipc_in_scope
(
u32
domain,
u32
addr
)
74
{
75
if
(!domain || (domain == addr))
76
return
1;
77
if
(domain == tipc_cluster_mask(addr))
/* domain <Z.C.0> */
78
return
1;
79
if
(domain == tipc_zone_mask(addr))
/* domain <Z.0.0> */
80
return
1;
81
return
0;
82
}
83
87
int
tipc_addr_scope
(
u32
domain)
88
{
89
if
(
likely
(!domain))
90
return
TIPC_ZONE_SCOPE
;
91
if
(
tipc_node
(domain))
92
return
TIPC_NODE_SCOPE
;
93
if
(tipc_cluster(domain))
94
return
TIPC_CLUSTER_SCOPE
;
95
return
TIPC_ZONE_SCOPE
;
96
}
97
98
char
*
tipc_addr_string_fill
(
char
*
string
,
u32
addr
)
99
{
100
snprintf
(
string
, 16,
"<%u.%u.%u>"
,
101
tipc_zone(addr), tipc_cluster(addr),
tipc_node
(addr));
102
return
string
;
103
}
Generated on Thu Jan 10 2013 13:36:46 for Linux Kernel by
1.8.2