From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1921) id A008A385C320; Mon, 11 Jul 2022 11:53:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A008A385C320 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Sebastian Huber To: newlib-cvs@sourceware.org Subject: [newlib-cygwin] Integrate 4.4BSD-Lite2 changes to IOC_* definitions X-Act-Checkin: newlib-cygwin X-Git-Author: Warner Losh X-Git-Refname: refs/heads/master X-Git-Oldrev: 5ea36d92e66fce3932c15a35c427653973efb115 X-Git-Newrev: 1cb590ab48ae2c12e2eb15e1f6c5541c2039743e Message-Id: <20220711115314.A008A385C320@sourceware.org> Date: Mon, 11 Jul 2022 11:53:14 +0000 (GMT) X-BeenThere: newlib-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib GIT logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jul 2022 11:53:14 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D1cb590ab48a= e2c12e2eb15e1f6c5541c2039743e commit 1cb590ab48ae2c12e2eb15e1f6c5541c2039743e Author: Warner Losh Date: Fri Oct 30 22:00:35 2020 +0000 Integrate 4.4BSD-Lite2 changes to IOC_* definitions =20 Bring in the long-overdue 4.4BSD-Lite2 rev 8.3 by cgd of sys/ioccom.h. This uses UL suffix for the IOC_* constants so they don't sign extend. Also bring in the handy diagram from NetBSD's version of this file. This alters the 4.4BSD-Lite2 code slightly in a way that's semantically the same but more compact. =20 This should stop the warnings from Chrome for bogus sign extension. =20 Reviewed by: kib@, jhb@ Differential Revision: https://reviews.freebsd.org/D26423 Diff: --- newlib/libc/sys/rtems/include/sys/ioccom.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/newlib/libc/sys/rtems/include/sys/ioccom.h b/newlib/libc/sys/r= tems/include/sys/ioccom.h index a0117245b..adaa30797 100644 --- a/newlib/libc/sys/rtems/include/sys/ioccom.h +++ b/newlib/libc/sys/rtems/include/sys/ioccom.h @@ -28,7 +28,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)ioccom.h 8.2 (Berkeley) 3/28/94 + * @(#)ioccom.h 8.3 (Berkeley) 1/9/95 * $FreeBSD$ */ =20 @@ -43,6 +43,11 @@ typedef unsigned long ioctl_command_t; * 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. + * + * 31 29 28 16 15 8 7 0 + * +---------------------------------------------------------------+ + * | I/O | Parameter Length | Command Group | Command | + * +---------------------------------------------------------------+ */ #define IOCPARM_SHIFT 13 /* number of bits for ioctl size */ #define IOCPARM_MASK ((1 << IOCPARM_SHIFT) - 1) /* parameter length mask */ @@ -51,11 +56,11 @@ typedef unsigned long ioctl_command_t; #define IOCGROUP(x) (((x) >> 8) & 0xff) =20 #define IOCPARM_MAX (1 << IOCPARM_SHIFT) /* max size of ioctl */ -#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 (IOC_VOID|IOC_OUT|IOC_IN) +#define IOC_VOID 0x20000000UL /* no parameters */ +#define IOC_OUT 0x40000000UL /* copy out parameters */ +#define IOC_IN 0x80000000UL /* copy in parameters */ +#define IOC_INOUT (IOC_IN|IOC_OUT)/* copy parameters in and out */ +#define IOC_DIRMASK (IOC_VOID|IOC_OUT|IOC_IN)/* mask for IN/OUT/VOID */ =20 #define _IOC(inout,group,num,len) \ ((ioctl_command_t)((ioctl_command_t)(inout) | (((ioctl_command_t)(len)= & \