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
ircomm_core.h
Go to the documentation of this file.
1
/*********************************************************************
2
*
3
* Filename: ircomm_core.h
4
* Version:
5
* Description:
6
* Status: Experimental.
7
* Author: Dag Brattli <
[email protected]
>
8
* Created at: Wed Jun 9 08:58:43 1999
9
* Modified at: Mon Dec 13 11:52:29 1999
10
* Modified by: Dag Brattli <
[email protected]
>
11
*
12
* Copyright (c) 1999 Dag Brattli, All Rights Reserved.
13
*
14
* This program is free software; you can redistribute it and/or
15
* modify it under the terms of the GNU General Public License as
16
* published by the Free Software Foundation; either version 2 of
17
* the License, or (at your option) any later version.
18
*
19
* This program is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
* GNU General Public License for more details.
23
*
24
* You should have received a copy of the GNU General Public License
25
* along with this program; if not, write to the Free Software
26
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
27
* MA 02111-1307 USA
28
*
29
********************************************************************/
30
31
#ifndef IRCOMM_CORE_H
32
#define IRCOMM_CORE_H
33
34
#include <
net/irda/irda.h
>
35
#include <
net/irda/irqueue.h
>
36
#include <
net/irda/ircomm_event.h
>
37
38
#define IRCOMM_MAGIC 0x98347298
39
#define IRCOMM_HEADER_SIZE 1
40
41
struct
ircomm_cb
;
/* Forward decl. */
42
43
/*
44
* A small call-table, so we don't have to check the service-type whenever
45
* we want to do something
46
*/
47
typedef
struct
{
48
int
(*data_request)(
struct
ircomm_cb
*,
struct
sk_buff
*,
int
clen
);
49
int
(*connect_request)(
struct
ircomm_cb
*,
struct
sk_buff
*,
50
struct
ircomm_info
*);
51
int
(*connect_response)(
struct
ircomm_cb
*,
struct
sk_buff
*);
52
int
(*disconnect_request)(
struct
ircomm_cb
*,
struct
sk_buff
*,
53
struct
ircomm_info
*);
54
}
call_t
;
55
56
struct
ircomm_cb
{
57
irda_queue_t
queue
;
58
magic_t
magic
;
59
60
notify_t
notify
;
61
call_t
issue
;
62
63
int
state
;
64
int
line
;
/* Which TTY line we are using */
65
66
struct
tsap_cb
*
tsap
;
67
struct
lsap_cb
*
lsap
;
68
69
__u8
dlsap_sel
;
/* Destination LSAP/TSAP selector */
70
__u8
slsap_sel
;
/* Source LSAP/TSAP selector */
71
72
__u32
saddr
;
/* Source device address (link we are using) */
73
__u32
daddr
;
/* Destination device address */
74
75
int
max_header_size
;
/* Header space we must reserve for each frame */
76
int
max_data_size
;
/* The amount of data we can fill in each frame */
77
78
LOCAL_FLOW
flow_status
;
/* Used by ircomm_lmp */
79
int
pkt_count
;
/* Number of frames we have sent to IrLAP */
80
81
__u8
service_type
;
82
};
83
84
extern
hashbin_t
*
ircomm
;
85
86
struct
ircomm_cb
*
ircomm_open
(
notify_t
*
notify
,
__u8
service_type
,
int
line
);
87
int
ircomm_close
(
struct
ircomm_cb
*
self
);
88
89
int
ircomm_data_request
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*
skb
);
90
void
ircomm_data_indication
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*
skb
);
91
void
ircomm_process_data
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*
skb
);
92
int
ircomm_control_request
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*
skb
);
93
int
ircomm_connect_request
(
struct
ircomm_cb
*
self
,
__u8
dlsap_sel
,
94
__u32
saddr
,
__u32
daddr
,
struct
sk_buff
*
skb
,
95
__u8
service_type
);
96
void
ircomm_connect_indication
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*
skb
,
97
struct
ircomm_info
*
info
);
98
void
ircomm_connect_confirm
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*
skb
,
99
struct
ircomm_info
*
info
);
100
int
ircomm_connect_response
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*userdata);
101
int
ircomm_disconnect_request
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*userdata);
102
void
ircomm_disconnect_indication
(
struct
ircomm_cb
*
self
,
struct
sk_buff
*
skb
,
103
struct
ircomm_info
*
info
);
104
void
ircomm_flow_request
(
struct
ircomm_cb
*
self
,
LOCAL_FLOW
flow);
105
106
#define ircomm_is_connected(self) (self->state == IRCOMM_CONN)
107
108
#endif
Generated on Thu Jan 10 2013 14:53:07 for Linux Kernel by
1.8.2