]> granicus.if.org Git - strace/blobdiff - tests/ioctl_sg_io_v3.c
strace: terminate itself if interrupted by a signal
[strace] / tests / ioctl_sg_io_v3.c
index ef25795b71c914b8241d3a94a24521338ef72fa0..f891fe08b581aca1fe2b5f41f1052204d4efbf13 100644 (file)
@@ -4,27 +4,7 @@
  * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
  * 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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+ * SPDX-License-Identifier: GPL-2.0-or-later
  */
 
 #include "tests.h"
@@ -43,7 +23,7 @@ main(void)
        ioctl(-1, SG_IO, 0);
        printf("ioctl(-1, SG_IO, NULL) = -1 EBADF (%m)\n");
 
-       struct sg_io_hdr *const sg_io = tail_alloc(sizeof(*sg_io));
+       TAIL_ALLOC_OBJECT_CONST_PTR(struct sg_io_hdr, sg_io);
        fill_memory(sg_io, sizeof(*sg_io));
 
        const void *const efault = sg_io + 1;
@@ -53,7 +33,7 @@ main(void)
        ioctl(-1, SG_IO, sg_io);
        printf("ioctl(-1, SG_IO, [%u]) = -1 EBADF (%m)\n", sg_io->interface_id);
 
-       unsigned int *const piid = tail_alloc(sizeof(*piid));
+       TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, piid);
        *piid = (unsigned char) 'S';
        ioctl(-1, SG_IO, piid);
        printf("ioctl(-1, SG_IO, {interface_id='S', %p}) = -1 EBADF (%m)\n", piid + 1);
@@ -198,12 +178,12 @@ main(void)
               sg_io->iovec_count,
               sg_io->dxfer_len,
               sg_io->timeout,
-              * (unsigned char *) (iov[0].iov_base + 0),
-              * (unsigned char *) (iov[0].iov_base + 1),
+              *(unsigned char *) (iov[0].iov_base + 0),
+              *(unsigned char *) (iov[0].iov_base + 1),
               (unsigned int) iov[0].iov_len,
-              * (unsigned char *) (iov[1].iov_base + 0),
-              * (unsigned char *) (iov[1].iov_base + 1),
-              * (unsigned char *) (iov[1].iov_base + 2),
+              *(unsigned char *) (iov[1].iov_base + 0),
+              *(unsigned char *) (iov[1].iov_base + 1),
+              *(unsigned char *) (iov[1].iov_base + 2),
               (unsigned int) iov[1].iov_len,
               sg_io->status,
               sg_io->masked_status,
@@ -248,12 +228,12 @@ main(void)
               sg_io->iovec_count,
               sg_io->dxfer_len,
               sg_io->timeout,
-              * (unsigned char *) (iov[0].iov_base + 0),
-              * (unsigned char *) (iov[0].iov_base + 1),
+              *(unsigned char *) (iov[0].iov_base + 0),
+              *(unsigned char *) (iov[0].iov_base + 1),
               (unsigned int) iov[0].iov_len,
-              * (unsigned char *) (iov[1].iov_base + 0),
-              * (unsigned char *) (iov[1].iov_base + 1),
-              * (unsigned char *) (iov[1].iov_base + 2),
+              *(unsigned char *) (iov[1].iov_base + 0),
+              *(unsigned char *) (iov[1].iov_base + 1),
+              *(unsigned char *) (iov[1].iov_base + 2),
               (unsigned int) iov[1].iov_len,
               sg_io->status,
               sg_io->masked_status,
@@ -300,10 +280,10 @@ main(void)
               sg_io->iovec_count,
               sg_io->dxfer_len,
               sg_io->timeout,
-              * (unsigned char *) (sg_io->dxferp + 0),
-              * (unsigned char *) (sg_io->dxferp + 1),
-              * (unsigned char *) (sg_io->dxferp + 2),
-              * (unsigned char *) (sg_io->dxferp + 3),
+              *(unsigned char *) (sg_io->dxferp + 0),
+              *(unsigned char *) (sg_io->dxferp + 1),
+              *(unsigned char *) (sg_io->dxferp + 2),
+              *(unsigned char *) (sg_io->dxferp + 3),
               sg_io->status,
               sg_io->masked_status,
               sg_io->msg_status,
@@ -348,11 +328,11 @@ main(void)
               sg_io->iovec_count,
               sg_io->dxfer_len,
               sg_io->timeout,
-              * (unsigned char *) (sg_io->dxferp + 0),
-              * (unsigned char *) (sg_io->dxferp + 1),
-              * (unsigned char *) (sg_io->dxferp + 2),
-              * (unsigned char *) (sg_io->dxferp + 0),
-              * (unsigned char *) (sg_io->dxferp + 1),
+              *(unsigned char *) (sg_io->dxferp + 0),
+              *(unsigned char *) (sg_io->dxferp + 1),
+              *(unsigned char *) (sg_io->dxferp + 2),
+              *(unsigned char *) (sg_io->dxferp + 0),
+              *(unsigned char *) (sg_io->dxferp + 1),
               sg_io->status,
               sg_io->masked_status,
               sg_io->msg_status,
@@ -394,9 +374,9 @@ main(void)
               sg_io->iovec_count,
               sg_io->dxfer_len,
               sg_io->timeout,
-              * (unsigned char *) (sg_io->dxferp + 0),
-              * (unsigned char *) (sg_io->dxferp + 1),
-              * (unsigned char *) (sg_io->dxferp + 2),
+              *(unsigned char *) (sg_io->dxferp + 0),
+              *(unsigned char *) (sg_io->dxferp + 1),
+              *(unsigned char *) (sg_io->dxferp + 2),
               sg_io->status,
               sg_io->masked_status,
               sg_io->msg_status,