From 8fe49db783fd0841296afaf0226f712bc5967f4b Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Thu, 20 Jun 2019 14:13:10 +0000 Subject: [PATCH] Add FIOBMAP2 ioctl This ioctl exposes VOP_BMAP information to userland. It can be used by programs like fragmentation analyzers and optimized cp implementations. But I'm using it to test fusefs's VOP_BMAP implementation. The "2" in the name distinguishes it from the similar but incompatible FIBMAP ioctls in NetBSD and Linux. FIOBMAP2 differs from FIBMAP in that it uses a 64-bit block number instead of 32-bit, and it also returns runp and runb. Reviewed by: mckusick MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D20705 --- newlib/libc/sys/rtems/include/sys/filio.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/newlib/libc/sys/rtems/include/sys/filio.h b/newlib/libc/sys/rtems/include/sys/filio.h index 868fe53c2..1a3fc4293 100644 --- a/newlib/libc/sys/rtems/include/sys/filio.h +++ b/newlib/libc/sys/rtems/include/sys/filio.h @@ -62,6 +62,13 @@ struct fiodgname_arg { /* Handle lseek SEEK_DATA and SEEK_HOLE for holey file knowledge. */ #define FIOSEEKDATA _IOWR('f', 97, off_t) /* SEEK_DATA */ #define FIOSEEKHOLE _IOWR('f', 98, off_t) /* SEEK_HOLE */ +struct fiobmap2_arg { + int64_t bn; + int runp; + int runb; +}; +/* Get the file's bmap info for the logical block bn */ +#define FIOBMAP2 _IOWR('f', 99, struct fiobmap2_arg) #ifdef _KERNEL #ifdef COMPAT_FREEBSD32