--- IO-AIO/AIO.pm 2012/04/10 05:01:33 1.225 +++ IO-AIO/AIO.pm 2012/07/25 16:32:30 1.229 @@ -223,6 +223,7 @@ aio_chown $fh_or_path, $uid, $gid, $callback->($status) aio_chmod $fh_or_path, $mode, $callback->($status) aio_truncate $fh_or_path, $offset, $callback->($status) + aio_allocate $fh, $mode, $offset, $len, $callback->($status) aio_unlink $pathname, $callback->($status) aio_mknod $pathname, $mode, $dev, $callback->($status) aio_link $srcpath, $dstpath, $callback->($status) @@ -274,6 +275,8 @@ IO::AIO::sendfile $ofh, $ifh, $offset, $count IO::AIO::fadvise $fh, $offset, $len, $advice + IO::AIO::mmap $scalar, $length, $prot, $flags[, $fh[, $offset]] + IO::AIO::munmap $scalar IO::AIO::madvise $scalar, $offset, $length, $advice IO::AIO::mprotect $scalar, $offset, $length, $protect IO::AIO::munlock $scalar, $offset = 0, $length = undef @@ -638,6 +641,22 @@ Works like truncate(2) or ftruncate(2). +=item aio_allocate $fh, $mode, $offset, $len, $callback->($status) + +Allocates or freed disk space according to the C<$mode> argument. See the +linux C docuemntation for details. + +C<$mode> can currently be C<0> or C +to allocate space, or C, to deallocate a file range. + +The file system block size used by C is presumably the +C returned by C. + +If C isn't available or cannot be emulated (currently no +emulation will be attempted), passes C<-1> and sets C<$!> to C. + + =item aio_chmod $fh_or_path, $mode, $callback->($status) Works like perl's C function. @@ -1908,7 +1927,8 @@ =item IO::AIO::mmap $scalar, $length, $prot, $flags, $fh[, $offset] Memory-maps a file (or anonymous memory range) and attaches it to the -given C<$scalar>, which will act like a string scalar. +given C<$scalar>, which will act like a string scalar. Returns true on +success, and false otherwise. The only operations allowed on the scalar are C/C that don't change the string length, and most read-only operations such as copying it @@ -1977,6 +1997,9 @@ C<$w_off> are C, then C is passed for these, otherwise they should be the file offset. +C<$r_fh> and C<$w_fh> should not refer to the same file, as splice might +silently corrupt the data in this case. + The following symbol flag values are available: C, C, C and C.