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
arch
arm
mach-msm
include
mach
msm_smd.h
Go to the documentation of this file.
1
/* linux/include/asm-arm/arch-msm/msm_smd.h
2
*
3
* Copyright (C) 2007 Google, Inc.
4
* Author: Brian Swetland <
[email protected]
>
5
*
6
* This software is licensed under the terms of the GNU General Public
7
* License version 2, as published by the Free Software Foundation, and
8
* may be copied, distributed, and modified under those terms.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
*/
16
17
#ifndef __ASM_ARCH_MSM_SMD_H
18
#define __ASM_ARCH_MSM_SMD_H
19
20
typedef
struct
smd_channel
smd_channel_t
;
21
22
extern
int
(*
msm_check_for_modem_crash
)(
void
);
23
24
/* warning: notify() may be called before open returns */
25
int
smd_open
(
const
char
*
name
,
smd_channel_t
**ch,
void
*
priv
,
26
void
(*
notify
)(
void
*priv,
unsigned
event
));
27
28
#define SMD_EVENT_DATA 1
29
#define SMD_EVENT_OPEN 2
30
#define SMD_EVENT_CLOSE 3
31
32
int
smd_close
(
smd_channel_t
*ch);
33
34
/* passing a null pointer for data reads and discards */
35
int
smd_read
(
smd_channel_t
*ch,
void
*
data
,
int
len);
36
37
/* Write to stream channels may do a partial write and return
38
** the length actually written.
39
** Write to packet channels will never do a partial write --
40
** it will return the requested length written or an error.
41
*/
42
int
smd_write
(
smd_channel_t
*ch,
const
void
*
data
,
int
len);
43
int
smd_write_atomic
(
smd_channel_t
*ch,
const
void
*
data
,
int
len);
44
45
int
smd_write_avail
(
smd_channel_t
*ch);
46
int
smd_read_avail
(
smd_channel_t
*ch);
47
48
/* Returns the total size of the current packet being read.
49
** Returns 0 if no packets available or a stream channel.
50
*/
51
int
smd_cur_packet_size
(
smd_channel_t
*ch);
52
53
/* used for tty unthrottling and the like -- causes the notify()
54
** callback to be called from the same lock context as is used
55
** when it is called from channel updates
56
*/
57
void
smd_kick
(
smd_channel_t
*ch);
58
59
60
#if 0
61
/* these are interruptable waits which will block you until the specified
62
** number of bytes are readable or writable.
63
*/
64
int
smd_wait_until_readable
(
smd_channel_t
*ch,
int
bytes
);
65
int
smd_wait_until_writable
(
smd_channel_t
*ch,
int
bytes
);
66
#endif
67
68
typedef
enum
{
69
SMD_PORT_DS
= 0,
70
SMD_PORT_DIAG
,
71
SMD_PORT_RPC_CALL
,
72
SMD_PORT_RPC_REPLY
,
73
SMD_PORT_BT
,
74
SMD_PORT_CONTROL
,
75
SMD_PORT_MEMCPY_SPARE1
,
76
SMD_PORT_DATA1
,
77
SMD_PORT_DATA2
,
78
SMD_PORT_DATA3
,
79
SMD_PORT_DATA4
,
80
SMD_PORT_DATA5
,
81
SMD_PORT_DATA6
,
82
SMD_PORT_DATA7
,
83
SMD_PORT_DATA8
,
84
SMD_PORT_DATA9
,
85
SMD_PORT_DATA10
,
86
SMD_PORT_DATA11
,
87
SMD_PORT_DATA12
,
88
SMD_PORT_DATA13
,
89
SMD_PORT_DATA14
,
90
SMD_PORT_DATA15
,
91
SMD_PORT_DATA16
,
92
SMD_PORT_DATA17
,
93
SMD_PORT_DATA18
,
94
SMD_PORT_DATA19
,
95
SMD_PORT_DATA20
,
96
SMD_PORT_GPS_NMEA
,
97
SMD_PORT_BRIDGE_1
,
98
SMD_PORT_BRIDGE_2
,
99
SMD_PORT_BRIDGE_3
,
100
SMD_PORT_BRIDGE_4
,
101
SMD_PORT_BRIDGE_5
,
102
SMD_PORT_LOOPBACK
,
103
SMD_PORT_CS_APPS_MODEM
,
104
SMD_PORT_CS_APPS_DSP
,
105
SMD_PORT_CS_MODEM_DSP
,
106
SMD_NUM_PORTS
,
107
}
smd_port_id_type
;
108
109
#endif
Generated on Thu Jan 10 2013 12:59:52 for Linux Kernel by
1.8.2