RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
libcsupport
include
sys
ioccom.h
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 1982, 1986, 1990, 1993, 1994
3
* The Regents of the University of California. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 4. Neither the name of the University nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* @(#)ioccom.h 8.2 (Berkeley) 3/28/94
30
* $FreeBSD$
31
*/
32
33
#ifndef _SYS_IOCCOM_H_
34
#define _SYS_IOCCOM_H_
35
36
#include <sys/types.h>
37
#include <stdint.h>
38
39
typedef
uint32_t ioctl_command_t;
40
41
/*
42
* Ioctl's have the command encoded in the lower word, and the size of
43
* any in or out parameters in the upper word. The high 3 bits of the
44
* upper word are used to encode the in/out status of the parameter.
45
*/
46
#define IOCPARM_SHIFT 13
/* number of bits for ioctl size */
47
#define IOCPARM_MASK ((1 << IOCPARM_SHIFT) - 1)
/* parameter length mask */
48
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
49
#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
50
#define IOCGROUP(x) (((x) >> 8) & 0xff)
51
52
#define IOCPARM_MAX (1 << IOCPARM_SHIFT)
/* max size of ioctl */
53
#define IOC_VOID 0x20000000
/* no parameters */
54
#define IOC_OUT 0x40000000
/* copy out parameters */
55
#define IOC_IN 0x80000000
/* copy in parameters */
56
#define IOC_INOUT (IOC_IN|IOC_OUT)
57
#define IOC_DIRMASK (IOC_VOID|IOC_OUT|IOC_IN)
58
59
#define _IOC(inout,group,num,len) \
60
((ioctl_command_t) \
61
((ioctl_command_t) (inout) \
62
| (((ioctl_command_t) (len) & IOCPARM_MASK) << 16) \
63
| ((ioctl_command_t) (group) << 8) \
64
| (ioctl_command_t) (num)))
65
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
66
#define _IOWINT(g,n) _IOC(IOC_VOID, (g), (n), sizeof(int))
67
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
68
#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))
69
/* this should be _IORW, but stdio got there first */
70
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
71
72
/*
73
* IOCTL values
74
*/
75
76
#define RTEMS_IO_GET_ATTRIBUTES 1
77
#define RTEMS_IO_SET_ATTRIBUTES 2
78
#define RTEMS_IO_TCDRAIN 3
79
#define RTEMS_IO_RCVWAKEUP 4
80
#define RTEMS_IO_SNDWAKEUP 5
81
#define RTEMS_IO_TCFLUSH 6
82
83
/* copied from libnetworking/sys/filio.h and commented out there */
84
/* Generic file-descriptor ioctl's. */
85
#define FIOCLEX _IO('f', 1)
/* set close on exec on fd */
86
#define FIONCLEX _IO('f', 2)
/* remove close on exec */
87
#define FIONREAD _IOR('f', 127, int)
/* get # bytes to read */
88
#define FIONBIO _IOW('f', 126, int)
/* set/clear non-blocking i/o */
89
#define FIOASYNC _IOW('f', 125, int)
/* set/clear async i/o */
90
#define FIOSETOWN _IOW('f', 124, int)
/* set owner */
91
#define FIOGETOWN _IOR('f', 123, int)
/* get owner */
92
93
#ifdef _KERNEL
94
95
#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \
96
defined(COMPAT_FREEBSD4) || defined(COMPAT_43)
97
#define IOCPARM_IVAL(x) ((int)(intptr_t)(void *)*(caddr_t *)(void *)(x))
98
#endif
99
100
#else
101
102
#include <sys/cdefs.h>
103
104
__BEGIN_DECLS
105
int
ioctl(
int
, ioctl_command_t, ...);
106
__END_DECLS
107
108
#endif
109
110
#endif
/* !_SYS_IOCCOM_H_ */
Generated by
1.8.13