*** empty log message ***

This commit is contained in:
Joel Sherrill
2000-06-14 20:22:31 +00:00
parent 07f0442695
commit 9b05600b2c
43 changed files with 338 additions and 98 deletions
+1 -9
View File
@@ -22,6 +22,7 @@
#include <rtems.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
/*
* Define data types which must be constructed using forward references.
@@ -445,15 +446,6 @@ typedef int (*rtems_libio_lseek_t)(
int whence
);
/*
* IOCTL values
*/
#define RTEMS_IO_GET_ATTRIBUTES 1
#define RTEMS_IO_SET_ATTRIBUTES 2
#define RTEMS_IO_TCDRAIN 3
#define FIONREAD 4
/*
* The following macros are used to build up the permissions sets
* used to check permissions. These are similar in style to the
@@ -44,6 +44,8 @@
#include <sys/ioccom.h>
/* RTEMS defines all of these in sys/ioccom.h */
#if 0
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
@@ -52,5 +54,6 @@
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#endif
#endif /* !_SYS_FILIO_H_ */
@@ -0,0 +1,93 @@
/*-
* Copyright (c) 1982, 1986, 1990, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)ioccom.h 8.2 (Berkeley) 3/28/94
* $Id$
*/
#ifndef _SYS_IOCCOM_H_
#define _SYS_IOCCOM_H_
/*
* Ioctl's have the command encoded in the lower word, and the size of
* any in or out parameters in the upper word. The high 3 bits of the
* upper word are used to encode the in/out status of the parameter.
*/
#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
#define IOCGROUP(x) (((x) >> 8) & 0xff)
#define IOCPARM_MAX PAGE_SIZE /* max size of ioctl, mult. of PAGE_SIZE */
#define IOC_VOID 0x20000000 /* no parameters */
#define IOC_OUT 0x40000000 /* copy out parameters */
#define IOC_IN 0x80000000 /* copy in parameters */
#define IOC_INOUT (IOC_IN|IOC_OUT)
#define IOC_DIRMASK 0xe0000000 /* mask for IN/OUT/VOID */
#define _IOC(inout,group,num,len) \
(inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))
/* this should be _IORW, but stdio got there first */
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
/*
* IOCTL values
*/
#define RTEMS_IO_GET_ATTRIBUTES 1
#define RTEMS_IO_SET_ATTRIBUTES 2
#define RTEMS_IO_TCDRAIN 3
/* copied from libnetworking/sys/filio.h and commented out there */
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */
#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#ifndef KERNEL
#include <sys/cdefs.h>
__BEGIN_DECLS
int ioctl __P((int, int, ...));
__END_DECLS
#endif /* !KERNEL */
#endif /* !_SYS_IOCCOM_H_ */
+11 -3
View File
@@ -16,19 +16,27 @@
#include "libio_.h"
#include <unistd.h>
int ioctl(
int fd,
unsigned32 command,
void * buffer
int fd,
int command,
...
)
{
va_list ap;
rtems_status_code rc;
rtems_libio_t *iop;
void *buffer;
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open(iop);
va_start(ap, command);
buffer = va_arg(ap, void *);
/*
* Now process the ioctl().
*/
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcdrain(
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcflow (int fd, int action)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcflush (int fd, int queue)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcgetattr(
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
pid_t tcgetprgrp(int fd)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcsendbreak ( int fd, int duration )
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
#include "libio_.h"
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcsetprgrp(int fd, pid_t pid)
+1 -1
View File
@@ -4,7 +4,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
H_FILES = buf.h callout.h cdefs.h conf.h domain.h filio.h ioccom.h \
H_FILES = buf.h callout.h cdefs.h conf.h domain.h filio.h \
ioctl.h kernel.h libkern.h malloc.h mbuf.h mount.h param.h proc.h \
protosw.h queue.h reboot.h resourcevar.h rtprio.h select.h signalvar.h \
socket.h socketvar.h sockio.h sysctl.h syslimits.h syslog.h systm.h \
@@ -37,6 +37,10 @@
#ifndef _SYS_IOCCOM_H_
#define _SYS_IOCCOM_H_
/* the definitions were moved to a common placed so they could be shared */
#include <sys/rtems_ioccom.h>
#if 0
/*
* Ioctl's have the command encoded in the lower word, and the size of
* any in or out parameters in the upper word. The high 3 bits of the
@@ -61,6 +65,7 @@
#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))
/* this should be _IORW, but stdio got there first */
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
#endif
#ifndef KERNEL
+1 -9
View File
@@ -22,6 +22,7 @@
#include <rtems.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
/*
* Define data types which must be constructed using forward references.
@@ -445,15 +446,6 @@ typedef int (*rtems_libio_lseek_t)(
int whence
);
/*
* IOCTL values
*/
#define RTEMS_IO_GET_ATTRIBUTES 1
#define RTEMS_IO_SET_ATTRIBUTES 2
#define RTEMS_IO_TCDRAIN 3
#define FIONREAD 4
/*
* The following macros are used to build up the permissions sets
* used to check permissions. These are similar in style to the
+2 -2
View File
@@ -14,9 +14,9 @@ else
NEWLIB_H_FILES += termios.h
endif
H_FILES = utime.h $(NEWLIB_H_FILES) $(NETWORKING_H_FILES)
H_FILES = ioccom.h utime.h $(NEWLIB_H_FILES) $(NETWORKING_H_FILES)
noinst_HEADERS = utime.h termios.h ioctl.h
noinst_HEADERS = utime.h termios.h ioctl.h rtems_ioccom.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys \
$(H_FILES:%=$(PROJECT_INCLUDE)/sys/%)
+3
View File
@@ -44,6 +44,8 @@
#include <sys/ioccom.h>
/* RTEMS defines all of these in sys/ioccom.h */
#if 0
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
@@ -52,5 +54,6 @@
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#endif
#endif /* !_SYS_FILIO_H_ */
+93
View File
@@ -0,0 +1,93 @@
/*-
* Copyright (c) 1982, 1986, 1990, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)ioccom.h 8.2 (Berkeley) 3/28/94
* $Id$
*/
#ifndef _SYS_IOCCOM_H_
#define _SYS_IOCCOM_H_
/*
* Ioctl's have the command encoded in the lower word, and the size of
* any in or out parameters in the upper word. The high 3 bits of the
* upper word are used to encode the in/out status of the parameter.
*/
#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
#define IOCGROUP(x) (((x) >> 8) & 0xff)
#define IOCPARM_MAX PAGE_SIZE /* max size of ioctl, mult. of PAGE_SIZE */
#define IOC_VOID 0x20000000 /* no parameters */
#define IOC_OUT 0x40000000 /* copy out parameters */
#define IOC_IN 0x80000000 /* copy in parameters */
#define IOC_INOUT (IOC_IN|IOC_OUT)
#define IOC_DIRMASK 0xe0000000 /* mask for IN/OUT/VOID */
#define _IOC(inout,group,num,len) \
(inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))
/* this should be _IORW, but stdio got there first */
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
/*
* IOCTL values
*/
#define RTEMS_IO_GET_ATTRIBUTES 1
#define RTEMS_IO_SET_ATTRIBUTES 2
#define RTEMS_IO_TCDRAIN 3
/* copied from libnetworking/sys/filio.h and commented out there */
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */
#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#ifndef KERNEL
#include <sys/cdefs.h>
__BEGIN_DECLS
int ioctl __P((int, int, ...));
__END_DECLS
#endif /* !KERNEL */
#endif /* !_SYS_IOCCOM_H_ */
+11 -3
View File
@@ -16,19 +16,27 @@
#include "libio_.h"
#include <unistd.h>
int ioctl(
int fd,
unsigned32 command,
void * buffer
int fd,
int command,
...
)
{
va_list ap;
rtems_status_code rc;
rtems_libio_t *iop;
void *buffer;
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open(iop);
va_start(ap, command);
buffer = va_arg(ap, void *);
/*
* Now process the ioctl().
*/
+1 -9
View File
@@ -22,6 +22,7 @@
#include <rtems.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
/*
* Define data types which must be constructed using forward references.
@@ -445,15 +446,6 @@ typedef int (*rtems_libio_lseek_t)(
int whence
);
/*
* IOCTL values
*/
#define RTEMS_IO_GET_ATTRIBUTES 1
#define RTEMS_IO_SET_ATTRIBUTES 2
#define RTEMS_IO_TCDRAIN 3
#define FIONREAD 4
/*
* The following macros are used to build up the permissions sets
* used to check permissions. These are similar in style to the
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcdrain(
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcflow (int fd, int action)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcflush (int fd, int queue)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcgetattr(
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
pid_t tcgetprgrp(int fd)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcsendbreak ( int fd, int duration )
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
#include "libio_.h"
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcsetprgrp(int fd, pid_t pid)
+1 -1
View File
@@ -4,7 +4,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
H_FILES = buf.h callout.h cdefs.h conf.h domain.h filio.h ioccom.h \
H_FILES = buf.h callout.h cdefs.h conf.h domain.h filio.h \
ioctl.h kernel.h libkern.h malloc.h mbuf.h mount.h param.h proc.h \
protosw.h queue.h reboot.h resourcevar.h rtprio.h select.h signalvar.h \
socket.h socketvar.h sockio.h sysctl.h syslimits.h syslog.h systm.h \
+3
View File
@@ -44,6 +44,8 @@
#include <sys/ioccom.h>
/* RTEMS defines all of these in sys/ioccom.h */
#if 0
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
@@ -52,5 +54,6 @@
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#endif
#endif /* !_SYS_FILIO_H_ */
+1 -9
View File
@@ -22,6 +22,7 @@
#include <rtems.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
/*
* Define data types which must be constructed using forward references.
@@ -445,15 +446,6 @@ typedef int (*rtems_libio_lseek_t)(
int whence
);
/*
* IOCTL values
*/
#define RTEMS_IO_GET_ATTRIBUTES 1
#define RTEMS_IO_SET_ATTRIBUTES 2
#define RTEMS_IO_TCDRAIN 3
#define FIONREAD 4
/*
* The following macros are used to build up the permissions sets
* used to check permissions. These are similar in style to the
+3
View File
@@ -44,6 +44,8 @@
#include <sys/ioccom.h>
/* RTEMS defines all of these in sys/ioccom.h */
#if 0
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
@@ -52,5 +54,6 @@
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#endif
#endif /* !_SYS_FILIO_H_ */
+93
View File
@@ -0,0 +1,93 @@
/*-
* Copyright (c) 1982, 1986, 1990, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)ioccom.h 8.2 (Berkeley) 3/28/94
* $Id$
*/
#ifndef _SYS_IOCCOM_H_
#define _SYS_IOCCOM_H_
/*
* Ioctl's have the command encoded in the lower word, and the size of
* any in or out parameters in the upper word. The high 3 bits of the
* upper word are used to encode the in/out status of the parameter.
*/
#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
#define IOCGROUP(x) (((x) >> 8) & 0xff)
#define IOCPARM_MAX PAGE_SIZE /* max size of ioctl, mult. of PAGE_SIZE */
#define IOC_VOID 0x20000000 /* no parameters */
#define IOC_OUT 0x40000000 /* copy out parameters */
#define IOC_IN 0x80000000 /* copy in parameters */
#define IOC_INOUT (IOC_IN|IOC_OUT)
#define IOC_DIRMASK 0xe0000000 /* mask for IN/OUT/VOID */
#define _IOC(inout,group,num,len) \
(inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))
/* this should be _IORW, but stdio got there first */
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
/*
* IOCTL values
*/
#define RTEMS_IO_GET_ATTRIBUTES 1
#define RTEMS_IO_SET_ATTRIBUTES 2
#define RTEMS_IO_TCDRAIN 3
/* copied from libnetworking/sys/filio.h and commented out there */
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */
#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
#ifndef KERNEL
#include <sys/cdefs.h>
__BEGIN_DECLS
int ioctl __P((int, int, ...));
__END_DECLS
#endif /* !KERNEL */
#endif /* !_SYS_IOCCOM_H_ */
+11 -3
View File
@@ -16,19 +16,27 @@
#include "libio_.h"
#include <unistd.h>
int ioctl(
int fd,
unsigned32 command,
void * buffer
int fd,
int command,
...
)
{
va_list ap;
rtems_status_code rc;
rtems_libio_t *iop;
void *buffer;
rtems_libio_check_fd( fd );
iop = rtems_libio_iop( fd );
rtems_libio_check_is_open(iop);
va_start(ap, command);
buffer = va_arg(ap, void *);
/*
* Now process the ioctl().
*/
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcdrain(
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcflow (int fd, int action)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcflush (int fd, int queue)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcgetattr(
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
pid_t tcgetprgrp(int fd)
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcsendbreak ( int fd, int duration )
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
#include "libio_.h"
-2
View File
@@ -20,8 +20,6 @@
#include <termios.h>
/* #include <sys/ioctl.h> */
int ioctl();
#include <rtems/libio.h>
int tcsetprgrp(int fd, pid_t pid)
+1 -1
View File
@@ -4,7 +4,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
H_FILES = buf.h callout.h cdefs.h conf.h domain.h filio.h ioccom.h \
H_FILES = buf.h callout.h cdefs.h conf.h domain.h filio.h \
ioctl.h kernel.h libkern.h malloc.h mbuf.h mount.h param.h proc.h \
protosw.h queue.h reboot.h resourcevar.h rtprio.h select.h signalvar.h \
socket.h socketvar.h sockio.h sysctl.h syslimits.h syslog.h systm.h \