https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=4ecfb5b7292af4baf0a2f199f5351b67c8faf4cc
commit 4ecfb5b7292af4baf0a2f199f5351b67c8faf4cc Author: Corinna Vinschen <[email protected]> AuthorDate: Mon Jan 15 11:03:48 2024 +0100 Commit: Corinna Vinschen <[email protected]> CommitDate: Mon Jan 15 11:04:29 2024 +0100 Cygwin: api docs: add missing fallocate Also add notes in terms of fallocate quirks. Signed-off-by: Corinna Vinschen <[email protected]> Diff: --- winsup/doc/posix.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/winsup/doc/posix.xml b/winsup/doc/posix.xml index 151aeb9fee2b..1a4eee1ab1b8 100644 --- a/winsup/doc/posix.xml +++ b/winsup/doc/posix.xml @@ -1314,6 +1314,7 @@ also IEEE Std 1003.1-2017 (POSIX.1-2017).</para> exp10 exp10f exp10l + fallocate (see <xref linkend="std-notes">chapter "Implementation Notes"</xref>) fcloseall fcloseall_r fedisableexcept @@ -1755,6 +1756,14 @@ RLIMIT_CORE and RLIMIT_STACK return the current values and set the requested values. All other resource arguments return -1 and set EINVAL.</para> +<para><function>fallocate</function> has a few Windows quirks: The +FALLOC_FL_ZERO_RANGE operation is NOT atomic. With flags set to 0 and +FALLOC_FL_KEEP_SIZE, sparse blocks in the given range are re-allocated +as per the POSIX requirements. This re-allocation operation isn't +atomic either. Over-allocation with FALLOC_FL_KEEP_SIZE is only +temporary on Windows until the last handle to the file is closed. +Over-allocation on sparse files is entirely ignored on Windows.</para> + </sect1> </chapter>
