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
net
irda
discovery.h
Go to the documentation of this file.
1
/*********************************************************************
2
*
3
* Filename: discovery.h
4
* Version:
5
* Description:
6
* Status: Experimental.
7
* Author: Dag Brattli <
[email protected]
>
8
* Created at: Tue Apr 6 16:53:53 1999
9
* Modified at: Tue Oct 5 10:05:10 1999
10
* Modified by: Dag Brattli <
[email protected]
>
11
*
12
* Copyright (c) 1999 Dag Brattli, All Rights Reserved.
13
* Copyright (c) 2000-2002 Jean Tourrilhes <
[email protected]
>
14
*
15
* This program is free software; you can redistribute it and/or
16
* modify it under the terms of the GNU General Public License as
17
* published by the Free Software Foundation; either version 2 of
18
* the License, or (at your option) any later version.
19
*
20
* This program is distributed in the hope that it will be useful,
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
* GNU General Public License for more details.
24
*
25
* You should have received a copy of the GNU General Public License
26
* along with this program; if not, write to the Free Software
27
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
28
* MA 02111-1307 USA
29
*
30
********************************************************************/
31
32
#ifndef DISCOVERY_H
33
#define DISCOVERY_H
34
35
#include <asm/param.h>
36
37
#include <
net/irda/irda.h
>
38
#include <
net/irda/irqueue.h
>
/* irda_queue_t */
39
#include <
net/irda/irlap_event.h
>
/* LAP_REASON */
40
41
#define DISCOVERY_EXPIRE_TIMEOUT (2*sysctl_discovery_timeout*HZ)
42
#define DISCOVERY_DEFAULT_SLOTS 0
43
44
/*
45
* This type is used by the protocols that transmit 16 bits words in
46
* little endian format. A little endian machine stores MSB of word in
47
* byte[1] and LSB in byte[0]. A big endian machine stores MSB in byte[0]
48
* and LSB in byte[1].
49
*
50
* This structure is used in the code for things that are endian neutral
51
* but that fit in a word so that we can manipulate them efficiently.
52
* By endian neutral, I mean things that are really an array of bytes,
53
* and always used as such, for example the hint bits. Jean II
54
*/
55
typedef
union
{
56
__u16
word
;
57
__u8
byte
[2];
58
}
__u16_host_order
;
59
60
/* Types of discovery */
61
typedef
enum
{
62
DISCOVERY_LOG
,
/* What's in our discovery log */
63
DISCOVERY_ACTIVE
,
/* Doing our own discovery on the medium */
64
DISCOVERY_PASSIVE
,
/* Peer doing discovery on the medium */
65
EXPIRY_TIMEOUT
,
/* Entry expired due to timeout */
66
}
DISCOVERY_MODE
;
67
68
#define NICKNAME_MAX_LEN 21
69
70
/* Basic discovery information about a peer */
71
typedef
struct
irda_device_info
discinfo_t
;
/* linux/irda.h */
72
73
/*
74
* The DISCOVERY structure is used for both discovery requests and responses
75
*/
76
typedef
struct
discovery_t
{
77
irda_queue_t
q
;
/* Must be first! */
78
79
discinfo_t
data
;
/* Basic discovery information */
80
int
name_len
;
/* Length of nickname */
81
82
LAP_REASON
condition
;
/* More info about the discovery */
83
int
gen_addr_bit
;
/* Need to generate a new device
84
* address? */
85
int
nslots
;
/* Number of slots to use when
86
* discovering */
87
unsigned
long
timestamp
;
/* Last time discovered */
88
unsigned
long
firststamp
;
/* First time discovered */
89
}
discovery_t
;
90
91
void
irlmp_add_discovery
(
hashbin_t
*cachelog,
discovery_t
*discovery);
92
void
irlmp_add_discovery_log
(
hashbin_t
*cachelog,
hashbin_t
*
log
);
93
void
irlmp_expire_discoveries
(
hashbin_t
*
log
,
__u32
saddr
,
int
force
);
94
struct
irda_device_info
*
irlmp_copy_discoveries
(
hashbin_t
*
log
,
int
*
pn
,
95
__u16
mask
,
int
old_entries);
96
97
#endif
Generated on Thu Jan 10 2013 14:53:07 for Linux Kernel by
1.8.2