-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathrimeaddr.h
executable file
·135 lines (121 loc) · 4.11 KB
/
rimeaddr.h
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/**
* \addtogroup rime
* @{
*/
/**
* \defgroup rimeaddr Rime addresses
* @{
*
* The rimeaddr module is an abstract representation of addresses in
* Rime.
*
*/
/*
* Copyright (c) 2007, Swedish Institute of Computer Science.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* This file is part of the Contiki operating system.
*
* $Id: rimeaddr.h,v 1.6 2009/05/26 13:58:53 nvt-se Exp $
*/
/**
* \file
* Header file for the Rime address representation
* \author
* Adam Dunkels <adam@sics.se>
*/
#ifndef __RIMEADDR_H__
#define __RIMEADDR_H__
#include "conf.h"
/*
#ifdef RIMEADDR_CONF_SIZE
#define RIMEADDR_SIZE RIMEADDR_CONF_SIZE
#else
#define RIMEADDR_SIZE 2
#endif
*/
typedef union {
unsigned char u8[8];
} rimeaddr_t;
/**
* \brief Copy a Rime address
* \param dest The destination
* \param from The source
*
* This function copies a Rime address from one location
* to another.
*
*/
void rimeaddr_copy(rimeaddr_t *dest, const rimeaddr_t *from, uint8_t addr_size);
/**
* \brief Compare two Rime addresses
* \param addr1 The first address
* \param addr2 The second address
* \return Non-zero if the addresses are the same, zero if they are different
*
* This function compares two Rime addresses and returns
* the result of the comparison. The function acts like
* the '==' operator and returns non-zero if the addresses
* are the same, and zero if the addresses are different.
*
*/
int rimeaddr_cmp(const rimeaddr_t *addr1, const rimeaddr_t *addr2, uint8_t addr_size);
/**
* \brief Set the address of the current node
* \param addr The address
*
* This function sets the Rime address of the node.
*
*/
void rimeaddr_set_node_addr(rimeaddr_t *addr, uint8_t addr_size);
/**
* \brief The Rime address of the node
*
* This variable contains the Rime address of the
* node. This variable should not be changed directly;
* rather, the rimeaddr_set_node_addr() function should be
* used.
*
*/
extern rimeaddr_t rimeaddr_node_addr;
/**
* \brief The null Rime address
*
* This variable contains the null Rime address. The null
* address is used in route tables to indicate that the
* table entry is unused. Nodes with no configured address
* has the null address. Nodes with their node address set
* to the null address will have problems communicating
* with other nodes.
*
*/
extern const rimeaddr_t rimeaddr_null;
//ADDED ALE
//extern const rimeaddr_t rimeaddr_broadcast;
#endif /* __RIMEADDR_H__ */
/** @} */
/** @} */