RTEMS
5.0.0
bsps
include
grlib
grspw.h
Go to the documentation of this file.
1
6
/*
7
* COPYRIGHT (c) 2007.
8
* Cobham Gaisler AB.
9
*
10
* The license and distribution terms for this file may be
11
* found in the file LICENSE in this distribution or at
12
* http://www.rtems.org/license/LICENSE.
13
*/
14
15
#ifndef __GRSPW_H__
16
#define __GRSPW_H__
17
28
#include <
grlib/ambapp.h
>
29
30
#ifdef __cplusplus
31
extern
"C"
{
32
#endif
33
34
#define SPW_LINKERR_EVENT RTEMS_EVENT_0
35
36
typedef
struct
{
37
unsigned
int
rxsize;
38
unsigned
int
txdsize;
39
unsigned
int
txhsize;
40
}
spw_ioctl_packetsize
;
41
42
#define GRSPW_PKTSEND_OPTION_HDR_CRC 0x1
43
#define GRSPW_PKTSEND_OPTION_DATA_CRC 0x2
44
#define GRSPW_PKTSEND_OPTION_NOCRCLEN(len) ((len & 0xf) << 8)
45
#define GRSPW_PKTSEND_OPTION_NOCRCLEN_MASK 0xf00
46
47
typedef
struct
{
48
unsigned
int
hlen;
49
char
*hdr;
50
unsigned
int
dlen;
51
char
*data;
52
unsigned
int
sent;
53
unsigned
int
options;
54
}
spw_ioctl_pkt_send
;
55
56
typedef
struct
{
57
unsigned
int
tx_link_err;
58
unsigned
int
rx_rmap_header_crc_err;
59
unsigned
int
rx_rmap_data_crc_err;
60
unsigned
int
rx_eep_err;
61
unsigned
int
rx_truncated;
62
unsigned
int
parity_err;
63
unsigned
int
escape_err;
64
unsigned
int
credit_err;
65
unsigned
int
write_sync_err;
66
unsigned
int
disconnect_err;
67
unsigned
int
early_ep;
68
unsigned
int
invalid_address;
69
unsigned
int
packets_sent;
70
unsigned
int
packets_received;
71
}
spw_stats
;
72
73
typedef
struct
{
74
unsigned
int
nodeaddr;
75
unsigned
int
destkey;
76
unsigned
int
clkdiv;
/* Note: contain both CLKDIVSTART and CLKDIVRUN, but IOCTL_SET_CLKDIV* commands are split into two */
77
unsigned
int
rxmaxlen;
78
unsigned
int
timer;
79
unsigned
int
disconnect;
80
unsigned
int
promiscuous;
81
unsigned
int
rmapen;
82
unsigned
int
rmapbufdis;
83
unsigned
int
linkdisabled;
84
unsigned
int
linkstart;
85
86
unsigned
int
check_rmap_err;
/* check incoming packets for rmap errors */
87
unsigned
int
rm_prot_id;
/* remove protocol id from incoming packets */
88
unsigned
int
tx_blocking;
/* use blocking tx */
89
unsigned
int
tx_block_on_full;
/* block when all tx_buffers are used */
90
unsigned
int
rx_blocking;
/* block when no data is available */
91
unsigned
int
disable_err;
/* disable link automatically when link error is detected */
92
unsigned
int
link_err_irq;
/* generate an interrupt when link error occurs */
93
rtems_id
event_id;
/* task id that should receive link err irq event */
94
95
unsigned
int
is_rmap;
96
unsigned
int
is_rxunaligned;
97
unsigned
int
is_rmapcrc;
98
99
unsigned
int
nodemask;
100
unsigned
int
keep_source;
/* copy source address to user-buffer in read() operations
101
* Note that rm_prot_id has no effect when keep_source is
102
* set.
103
*/
104
unsigned
int
rtimeout;
/* Read timeout if != 0 */
105
}
spw_config
;
106
107
#define SPACEWIRE_IOCTRL_SET_NODEADDR 1
108
#define SPACEWIRE_IOCTRL_SET_RXBLOCK 2
109
#define SPACEWIRE_IOCTRL_SET_DESTKEY 4
110
#define SPACEWIRE_IOCTRL_SET_CLKDIV 5
111
#define SPACEWIRE_IOCTRL_SET_TIMER 6
112
#define SPACEWIRE_IOCTRL_SET_DISCONNECT 7
113
#define SPACEWIRE_IOCTRL_SET_PROMISCUOUS 8
114
#define SPACEWIRE_IOCTRL_SET_RMAPEN 9
115
#define SPACEWIRE_IOCTRL_SET_RMAPBUFDIS 10
116
#define SPACEWIRE_IOCTRL_SET_CHECK_RMAP 11
117
#define SPACEWIRE_IOCTRL_SET_RM_PROT_ID 12
118
#define SPACEWIRE_IOCTRL_SET_TXBLOCK 14
119
#define SPACEWIRE_IOCTRL_SET_DISABLE_ERR 15
120
#define SPACEWIRE_IOCTRL_SET_LINK_ERR_IRQ 16
121
#define SPACEWIRE_IOCTRL_SET_EVENT_ID 17
122
#define SPACEWIRE_IOCTRL_SET_PACKETSIZE 20
123
#define SPACEWIRE_IOCTRL_GET_LINK_STATUS 23
124
#define SPACEWIRE_IOCTRL_GET_CONFIG 25
125
#define SPACEWIRE_IOCTRL_GET_STATISTICS 26
126
#define SPACEWIRE_IOCTRL_CLR_STATISTICS 27
127
#define SPACEWIRE_IOCTRL_SEND 28
128
#define SPACEWIRE_IOCTRL_LINKDISABLE 29
129
#define SPACEWIRE_IOCTRL_LINKSTART 30
130
#define SPACEWIRE_IOCTRL_SET_TXBLOCK_ON_FULL 31
131
#define SPACEWIRE_IOCTRL_SET_COREFREQ 32
132
#define SPACEWIRE_IOCTRL_SET_CLKDIVSTART 33
133
#define SPACEWIRE_IOCTRL_SET_NODEMASK 34
134
#define SPACEWIRE_IOCTRL_SET_KEEP_SOURCE 35
135
#define SPACEWIRE_IOCTRL_SET_TCODE_CTRL 36
136
#define SPACEWIRE_IOCTRL_SET_TCODE 37
137
#define SPACEWIRE_IOCTRL_GET_TCODE 38
138
#define SPACEWIRE_IOCTRL_SET_READ_TIMEOUT 39
139
140
#define SPACEWIRE_IOCTRL_START 64
141
#define SPACEWIRE_IOCTRL_STOP 65
142
143
/* Defines what register bits that will be touched
144
* for SPACEWIRE_IOCTRL_SET_TCODE_CTRL
145
*/
146
#define SPACEWIRE_TCODE_CTRL_IE_MSK 0x001
147
#define SPACEWIRE_TCODE_CTRL_TT_MSK 0x004
148
#define SPACEWIRE_TCODE_CTRL_TR_MSK 0x008
149
150
/* Defines what register bits that should be set
151
* for SPACEWIRE_IOCTRL_SET_TCODE_CTRL
152
*/
153
#define SPACEWIRE_TCODE_CTRL_IE 0x100
154
#define SPACEWIRE_TCODE_CTRL_TT 0x400
155
#define SPACEWIRE_TCODE_CTRL_TR 0x800
156
157
/* SPACEWIRE_IOCTRL_SET_TCODE argument mask */
158
#define SPACEWIRE_TCODE_TCODE 0x0ff
159
#define SPACEWIRE_TCODE_SET 0x100
/* Set Timecode register */
160
#define SPACEWIRE_TCODE_TX 0x400
161
162
void
grspw_register_drv (
void
);
163
164
void
grspw_print(
int
options);
165
166
/* Global GRSPW Function pointer called upon timecode receive interrupt */
167
extern
void (*grspw_timecode_callback)
168
(
void
*pDev,
void
*regs,
int
minor,
unsigned
int
tc);
169
170
171
#ifdef __cplusplus
172
}
173
#endif
174
177
#endif
/* __GRSPW_H__ */
spw_stats
Definition:
grspw.h:56
spw_ioctl_packetsize
Definition:
grspw.h:36
ambapp.h
spw_config
Definition:
grspw.h:73
rtems_id
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition:
types.h:83
spw_ioctl_pkt_send
Definition:
grspw.h:47
Generated by
1.8.13