ngc 1.4.0
 
Loading...
Searching...
No Matches
ngcdrv.h
Go to the documentation of this file.
1#ifndef NGCDRV_H
2#define NGCDRV_H
3/*******************************************************************************
4* E.S.O. - European Southern Observatory
5*
6* "@(#) $Id: ngcdrv.h 354209 2022-03-29 10:19:20Z jstegmei $"
7*
8* who when what
9* -------- ---------- ----------------------------------------------
10* jstegmei 2005-02-16 created
11* jstegmei 2009-03-10 added NGCDRV_GETREV ioctl
12* jstegmei 2009-03-10 increased COM-FIFO size
13* jstegmei 2010-12-02 added NGCDRV_RESET ioctl
14* jstegmei 2010-12-22 added comments
15* jstegmei 2011-02-08 added NGCDRV_COM_STATUS
16* jstegmei 2011-02-08 replaced NGCDRV_DMA_HDR_SET with NGCDRV_DMA_CHAN
17* jstegmei 2011-04-07 added comments
18* jstegmei 2011-04-13 added comments
19* jstegmei 2011-05-11 added NGCDRV_DMA_IPP_MODE ioctl
20* jstegmei 2011-05-23 added NGCDRV_DMA_IPP_CFG ioctl
21* jstegmei 2012-07-30 changed unsigned long types to unsigned int
22* jstegmei 2013-03-21 added reserved word to ngcdrv_param_t structure for
23* 64-bit alignment
24*/
25
26/************************************************************************
27 *
28 * ngcdrv.h - NGC driver interface
29 *
30 *----------------------------------------------------------------------
31 */
32
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
41#define NGCDRV_VERSION 0x1
42
50#define NGCDRV_COM_FIFO_SIZE 1024
51
55#define NGCDRV_CTRL_SYSHDR 0x00000008
56
60#define NGCDRV_CTRL_SYSRESET 0x00008000
61
65#define NGCDRV_CTRL_MAXHDR 0x00000008
66
67/*
68 * Status register values and masks
69 */
70#define NGCDRV_STAT_ACK 0x00000001
71#define NGCDRV_STAT_VALID 0x00000002
72#define NGCDRV_STAT_DMA_EMPTY 0x00000020
73#define NGCDRV_STAT_DMA_FULL 0x00000040
74#define NGCDRV_STAT_DMA_OVERFLOW 0x00000080
75#define NGCDRV_STAT_RX_EMPTY 0x00000100
76#define NGCDRV_STAT_RX_FULL 0x00000200
77#define NGCDRV_STAT_TX_EMPTY 0x00000400
78#define NGCDRV_STAT_TX_FULL 0x00000800
79#define NGCDRV_STAT_LINK_UP 0x00001000
80#define NGCDRV_STAT_HARD_ERR 0x00002000
81#define NGCDRV_STAT_SOFT_ERR 0x00004000
82#define NGCDRV_STAT_FRAM_ERR 0x00008000
83
87typedef struct {
88 int nbuf;
89 unsigned int size;
91
95typedef struct {
96 unsigned int reg;
97 unsigned int val;
98 unsigned int off;
99 unsigned int reserved;
101
102/*
103 * Interrupt post-processor modes
104 */
105#define NGCDRV_IPP_NONE 0x00000000
106#define NGCDRV_IPP_TASKLET 0x00000001
107#define NGCDRV_IPP_WQ 0x00000002
108#define NGCDRV_IPP_IRQ 0x00000003
109
113#define NGCDRV_MAX_PARAM 32
114
118typedef struct {
119 int taskId;
120 int param[NGCDRV_MAX_PARAM];
122
152
153/*
154 * ioctl's for communication port
155 */
156#define NGCDRV_COM_STATUS _IOR('I', (NGCDRV_D_COM_STATUS), unsigned int)
157#define NGCDRV_COM_UPLINK _IOW('I', (NGCDRV_D_COM_UPLINK), unsigned int)
158#define NGCDRV_COM_RESET _IO('I', (NGCDRV_D_COM_RESET))
159#define NGCDRV_COM_TMO _IOW('I', (NGCDRV_D_COM_TMO), unsigned int)
160
161/*
162 * ioctl's for DMA interface
163 */
164#define NGCDRV_DMA_RESET _IO('I', (NGCDRV_D_DMA_RESET))
165#define NGCDRV_DMA_START _IO('I', (NGCDRV_D_DMA_START))
166#define NGCDRV_DMA_WAIT _IO('I', (NGCDRV_D_DMA_WAIT))
167#define NGCDRV_DMA_ABORT _IO('I', (NGCDRV_D_DMA_ABORT))
168#define NGCDRV_DMA_DONECOUNT _IOR('I', (NGCDRV_D_DMA_DONECOUNT), unsigned int)
169#define NGCDRV_DMA_BYTECOUNT _IOR('I', (NGCDRV_D_DMA_BYTECOUNT), unsigned int)
170#define NGCDRV_DMA_OVERFLOW _IOR('I', (NGCDRV_D_DMA_OVERFLOW), unsigned int)
171#define NGCDRV_DMA_CFG_BUF _IOR('I', (NGCDRV_D_DMA_CFG_BUF), ngcdrv_ring_t)
172#define NGCDRV_DMA_IPP_MODE _IOW('I', (NGCDRV_D_DMA_IPP_MODE), unsigned int)
173#define NGCDRV_DMA_IPP_CFG _IOW('I', (NGCDRV_D_DMA_IPP_CFG), ngcdrv_tcb_cfg)
174#define NGCDRV_DMA_CHAN _IOW('I', (NGCDRV_D_DMA_CHAN), unsigned int)
175#define NGCDRV_DMA_SYNCMODE _IOW('I', (NGCDRV_D_DMA_SYNCMODE), unsigned int)
176
177/*
178 * General ioctl's
179 */
180#define NGCDRV_CFG_GET _IOR('I', (NGCDRV_D_CFG_GET), ngcdrv_param_t)
181#define NGCDRV_CFG_SET _IOW('I', (NGCDRV_D_CFG_SET), ngcdrv_param_t)
182#define NGCDRV_PCFG_GET _IOR('I', (NGCDRV_D_PCFG_SET), ngcdrv_param_t)
183#define NGCDRV_PCFG_SET _IOW('I', (NGCDRV_D_PCFG_SET), ngcdrv_param_t)
184#define NGCDRV_GETREV _IOR('I', (NGCDRV_D_GETREV), unsigned int)
185#define NGCDRV_RESET _IO('I', (NGCDRV_D_RESET))
186
190typedef struct {
191 int param1;
192 int param2;
193 int param3;
195
199typedef struct {
200 int n;
202
206typedef struct {
207 int ndit;
208 int n;
210
211
212#ifdef __cplusplus
213}
214#endif
215
216#endif /* !NGCDRV_H */
ngcdrv_ioctl
Definition ngcdrv.h:104
@ NGCDRV_D_DMA_CFG_BUF
Definition ngcdrv.h:118
@ NGCDRV_D_DMA_IPP_CFG
Definition ngcdrv.h:120
@ NGCDRV_D_DMA_CHAN
Definition ngcdrv.h:121
@ NGCDRV_D_DMA_ABORT
Definition ngcdrv.h:114
@ NGCDRV_D_PCFG_GET
Definition ngcdrv.h:124
@ NGCDRV_D_DMA_RESERVED1
Definition ngcdrv.h:109
@ NGCDRV_D_RESET
Definition ngcdrv.h:127
@ NGCDRV_D_COM_UPLINK
Definition ngcdrv.h:106
@ NGCDRV_D_DMA_SYNCMODE
Definition ngcdrv.h:128
@ NGCDRV_D_PCFG_SET
Definition ngcdrv.h:125
@ NGCDRV_D_DMA_BYTECOUNT
Definition ngcdrv.h:116
@ NGCDRV_D_GETREV
Definition ngcdrv.h:126
@ NGCDRV_D_COM_RESET
Definition ngcdrv.h:107
@ NGCDRV_D_COM_TMO
Definition ngcdrv.h:108
@ NGCDRV_D_COM_STATUS
Definition ngcdrv.h:105
@ NGCDRV_D_DMA_RESET
Definition ngcdrv.h:111
@ NGCDRV_D_DMA_WAIT
Definition ngcdrv.h:113
@ NGCDRV_D_DMA_IPP_MODE
Definition ngcdrv.h:119
@ NGCDRV_D_DMA_START
Definition ngcdrv.h:112
@ NGCDRV_D_CFG_GET
Definition ngcdrv.h:122
@ NGCDRV_D_DMA_OVERFLOW
Definition ngcdrv.h:117
@ NGCDRV_D_DMA_RESERVED2
Definition ngcdrv.h:110
@ NGCDRV_D_CFG_SET
Definition ngcdrv.h:123
@ NGCDRV_D_DMA_DONECOUNT
Definition ngcdrv.h:115
#define NGCDRV_MAX_PARAM
Definition ngcdrv.h:91
Definition ngcdrv.h:73
Definition ngcdrv.h:65
Definition ngcdrv.h:177
Definition ngcdrv.h:96
Definition ngcdrv.h:184
Definition ngcdrv.h:168