--- IO-AIO/README 2022/09/05 00:04:07 1.68 +++ IO-AIO/README 2024/02/16 21:20:52 1.71 @@ -267,6 +267,9 @@ $status = IO::AIO::pidfd_send_signal $pidfh, $signal[, $siginfo[, $flags]] $fh = IO::AIO::pidfd_getfd $pidfh, $targetfd[, $flags] + $retval = IO::AIO::mount $special, $path, $fstype, $flags = 0, $data = undef + $retval = IO::AIO::umount $path, $flags = 0 + API NOTES All the "aio_*" calls are more or less thin wrappers around the syscall with the same name (sans "aio_"). The arguments are similar or @@ -342,9 +345,6 @@ newly created filehandle for the file (or "undef" in case of an error). - The pathname passed to "aio_open" must be absolute. See API NOTES, - above, for an explanation. - The $flags argument is a bitmask. See the "Fcntl" module for a list. They are the same as used by "sysopen". @@ -507,9 +507,6 @@ available using "stat _" or "-s _" and other tests (with the exception of "-B" and "-T"). - The pathname passed to "aio_stat" must be absolute. See API NOTES, - above, for an explanation. - Currently, the stats are always 64-bit-stats, i.e. instead of returning an error when stat'ing a large file, the results will be silently truncated unless perl itself is compiled with large file @@ -862,8 +859,7 @@ Implementation notes. - The "aio_readdir" cannot be avoided, but "stat()"'ing every entry - can. + The "aio_readdir" cannot be avoided, but stat()'ing every entry can. If readdir returns file type information, then this is used directly to find directories. @@ -953,6 +949,10 @@ "FS_XFLAG_NODEFRAG", "FS_XFLAG_FILESTREAM", "FS_XFLAG_DAX", "FS_XFLAG_HASATTR", + "BLKROSET", "BLKROGET", "BLKRRPART", "BLKGETSIZE", "BLKFLSBUF", + "BLKRASET", "BLKRAGET", "BLKFRASET", "BLKFRAGET", "BLKSECTSET", + "BLKSECTGET", "BLKSSZGET", "BLKBSZGET", "BLKBSZSET", "BLKGETSIZE64", + aio_sync $callback->($status) Asynchronously call sync and call the callback when finished. @@ -1745,6 +1745,36 @@ descriptor (or handle). Returns -1 and sets errno to "ENOSYS" if not available. + $retval = IO::AIO::mount $special, $path, $fstype, $flags = 0, $data = + undef + Calls the GNU/Linux mount syscall with the given arguments. All + except $flags are strings, and if $data is "undef", a "NULL" will be + passed. + + The following values for $flags are available: + + "IO::AIO::MS_RDONLY", "IO::AIO::MS_NOSUID", "IO::AIO::MS_NODEV", + "IO::AIO::MS_NOEXEC", "IO::AIO::MS_SYNCHRONOUS", + "IO::AIO::MS_REMOUNT", "IO::AIO::MS_MANDLOCK", + "IO::AIO::MS_DIRSYNC", "IO::AIO::MS_NOATIME", + "IO::AIO::MS_NODIRATIME", "IO::AIO::MS_BIND", "IO::AIO::MS_MOVE", + "IO::AIO::MS_REC", "IO::AIO::MS_SILENT", "IO::AIO::MS_POSIXACL", + "IO::AIO::MS_UNBINDABLE", "IO::AIO::MS_PRIVATE", + "IO::AIO::MS_SLAVE", "IO::AIO::MS_SHARED", "IO::AIO::MS_RELATIME", + "IO::AIO::MS_KERNMOUNT", "IO::AIO::MS_I_VERSION", + "IO::AIO::MS_STRICTATIME", "IO::AIO::MS_LAZYTIME", + "IO::AIO::MS_ACTIVE", "IO::AIO::MS_NOUSER", "IO::AIO::MS_RMT_MASK", + "IO::AIO::MS_MGC_VAL" and "IO::AIO::MS_MGC_MSK". + + $retval = IO::AIO::umount $path, $flags = 0 + Invokes the GNU/Linux "umount" or "umount2" syscalls. Always calls + "umount" if $flags is 0, otherwqise always tries to call "umount2". + + The following $flags are available: + + "IO::AIO::MNT_FORCE", "IO::AIO::MNT_DETACH", "IO::AIO::MNT_EXPIRE" + and "IO::AIO::UMOUNT_NOFOLLOW". + $numfd = IO::AIO::get_fdlimit Tries to find the current file descriptor limit and returns it, or "undef" and sets $! in case of an error. The limit is one larger