DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 65RFt1gY3413454 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 65RFt1gY3413454 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=T6lJf1Uj X-Recipient: archive-cygwin@delorie.com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C56104BA23CE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1782575699; bh=QwjomSkQZ91jMcXFMmqVYY38FC+orygYg1NpV1JCdkc=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=T6lJf1Uj4iA+wGMni6T1uzQgQXkMGj54g0a2PkjWrHq2GgsQGqqvbV+Q5imF8VhRF pqnsekgGDhhRgVLML8PTAWlUBBKBhCPhbhcLFxUn8o3b4w6fvm6pO46rfERx0T8mho zOoKl9veJxtEhGOweRjB00LShjtytW0x4bFxZwjA= X-Original-To: cygwin@cygwin.com Delivered-To: cygwin@cygwin.com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DE6374BA23C5 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DE6374BA23C5 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1782575651; cv=pass; b=NZYTcatuDvWKSo/Of+6rH17zVrM5alWfp42BU2zEsnCPDAOEkxhO5p7cNoN6cRCb+b1v+nE9xhe3vbC1A2ZuV3K16bXyuFGlhQP7nI8k9Aqa41Cw4kBOTUSukngJHA+YM7OnZm9YFThGpA4ZkENml/v041EQnL2/hR+rsiinDNM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1782575651; c=relaxed/simple; bh=gVnt2MX7O5JJlyk+Po+DUW23wwouO+lD63CJi/uTo3k=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=B/oJvQ0iRn4B6fn/nYQlBj24Y9v1ae/XEu7ENNEz6GF0d4gh/DDL1vOWwUSk3isrmC4OyT9qtTpJiYDbp8yS6+FQojyQnx2Dg8AMzyyw6h1kD2JNH/md1yvFRvdWjCyPKXGIAn6etvYk25aT9bnZs8xJK9iXhyadGW2xnk5osO4= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=kmVo1aJs DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DE6374BA23C5 ARC-Seal: i=1; a=rsa-sha256; t=1782575650; cv=none; d=google.com; s=arc-20260327; b=E4g9FsxdnOe5UMHrEsWdYHf3gMRQutgv4FE692thEVsRZSCtQD6hY+LwA99ojT9ICi zxHViNSX7dxUAmHTFxfhY/FbpdyMFVvZUhH36/yxSWivZnZFS0QR95ZIGp4UyMOpw8cj CFchkazZ5h/lg7hN/C9WmeQtiKnMPuG47EJmJdz2fSxyWtLy8mUOCuBdeK0qmPI1CDxC 0ErH7H5L407/imiywC61nw9aOxg8xss/FMHXPVnBEbG+AlFM1XSDyAmWmiVtQHSnEqMV QwP6K4w+KEY6bUUChmMifXJ6UIKsgwzecbGmm/EgfII8MHZyG3XAx/1qnEXKD2Hv44JI qCCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=KjVquCvewel8i+9EJfFOwkKpGtETyNiUfUF0Qrnqpf0=; fh=UKNFaOBO97U3RYl3PEse//nArTqr7SLJjCCEBz281Ew=; b=H0cnRBLsHyyuF4R0isXb9ynp/1a/Vw85KCajd/cVyZ863obb3ygI3Hq9O3o7CjXa20 vRAyYVip3MamTG+dR0jKis1l9psRQiMh4J9DUp9LzY0NGllR/iW0jxp8BkS2XocjvQUY KAtY2t/lqS9Vqnm+biILvPrwhSyGIzr6ZnCk4vJ4oatV6g9yCwDk8fhkIAnzucfKON4O uOoxDz22RFIFjkEUGk0TPcl3ae+rYwvrLPcj76g6DpMbbKk9WNrd+0F0lLs5Q3PBenVG d/hkQsK2kP1C6OTullho85xLwaunRsd3CXEY+ckm3NbmNhpxfC2hLOuxn2Phco3dj9Zt NN5A==; darn=cygwin.com ARC-Authentication-Results: i=1; mx.google.com; arc=none X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782575650; x=1783180450; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KjVquCvewel8i+9EJfFOwkKpGtETyNiUfUF0Qrnqpf0=; b=hqHvJVoaIxaJ2PUCoVGY+DhUN4QfJ2V6Y8iLRaSlbp5F9hWkd/np460n2hq/455bHd B6fCoqF5au7b96XyZFV2foqI1GPoTrJ+2cJdtlA/in5kDCVvBxJ/VV3m+7p6U+9usLZ8 eJxZsrUsx736wkOoh2C0FuM8JObfeP7LHdT8u1GWtx7BZYokGnemhtkkN4gaEz1Uaqtv 0i4g1P71Uxs2EU6bX3JK3QJlMe/N5/yQbxoSwzBg+JJMY2ValYC4UPNWQYbTV67xju9C C5H87bPnd8uHxHHAuYm4WZEOKBFH2OhPvhcFSZnOOByeSy7tqnrYD+qX7DLLzJpKZapm 9qYg== X-Gm-Message-State: AOJu0YzgCqYgYIrMzWcqNKvysjkMT7bPfhL59jYXrfyBlVMb5W9D74oM SV8pMLiYUQMx1ICKC2r7R9/D23hq0hd4+lGO1o18d+iDMMQU8tfiB7/SwcU4RUj0w09dy5Exjez 8U39cHh0MP/mNf8lcPvckfpbSk4+fOO24MQ== X-Gm-Gg: AfdE7cnrWdOwYoyZbAwc7RwnuYIa0KKP6Z/EAXJ1kZ9RZpZtAEVElQTTGJ4w2Ej3tNG VujoPrV6LD08U3S1utsSWu9b8oWYzBdfSaCJP5iX0X09aY0tJ6kmf0kW/pYkeWiE+Z8msYaRx/3 5Sba92kbU6//DmgVfK4kidSQFDq3r2gnV0zj2YGCYMUa93wBfgG85+TJQ+YSN6vj7X0GZ1B0KvG 4MxMuOiET2DyVLj5L31dmzG6ix15VdHW9JMhJuSWLZ9lhj4HCithk9gmS8yuUe2580YRAbB X-Received: by 2002:a05:6820:c83:b0:6a1:50eb:211a with SMTP id 006d021491bc7-6a150eb242amr3483061eaf.62.1782575650189; Sat, 27 Jun 2026 08:54:10 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 27 Jun 2026 17:53:34 +0200 X-Gm-Features: AVVi8Ceyn1Ev-FcfJSJLTgsdwvEL6xrC7GVfht--i-L7m3A9vUL3r5TbY7n8ok8 Message-ID: Subject: Re: Cygwin sparse file support: Please support fcntl(..., F_FREESP, ...) To: cygwin@cygwin.com X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Cedric Blancher via Cygwin Reply-To: Cedric Blancher Content-Type: text/plain; charset="utf-8" Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 65RFt1gY3413454 The code works for me, but we need this in Cygwin, and not an addon. Ced On Wed, 24 Jun 2026 at 14:27, Roland Mainz via Cygwin wrote: > > On Sat, Feb 15, 2025 at 4:14 PM Cedric Blancher via Cygwin > wrote: > > Could Cygwin 3.6 please support fcntl(...,F_FREESP,...) and > > cntl(...,F_FREESP64,...), as specified in > > https://docs.oracle.com/cd/E19253-01/816-5167/fcntl-2/index.html > > > > Lots of older software from Solaris, SUPER/UX, CrayOS use F_FREESP for > > punching a hole into a file, and IMO it'll be nice if this works for > > Cygwin out of the box. > > 1. Ced: Could you please check whether the prototype code works for > you ? If "yes" then I'll make a patch for cygwin.dll based on this... > 2. Takashi: What do you think ? The API comes from Solaris, and is > implememted by at least FreeBSD, Unicos, SUPER/UX, etc. and is usually > used by database and HPC software. > > Prototype patch: > ---- snip ---- > #ifndef F_FREESP > #define F_FREESP 15 > #endif > > #ifndef F_ALLOCSP > #define F_ALLOCSP 16 > #endif > > /* FIXME: This should use a |struct flock| like Solaris/FreeBSD |fnctl()| */ > int fcntl_sparse_space_management_emulate(int fd, int cmd, off_t > offset, off_t len) > { > off_t file_size; > off_t end; > > file_size = lseek(fd, 0, SEEK_END); > if (file_size == (off_t)-1) > return -1; > > if (len == 0) > end = file_size; > else > end = offset + len; > > switch (cmd) { > > case F_FREESP: > if (offset >= file_size) > return 0; > > if (end >= file_size) { > return ftruncate(fd, offset); > } else { > if (fallocate(fd, > FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, > offset, > end - offset) == -1) { > return -1; > } > } > return 0; > > case F_ALLOCSP: > if (len == 0) { > return 0; > } > > if (fallocate(fd, 0, offset, len) == -1) { > return -1; > } > > return 0; > > default: > errno = EINVAL; > return -1; > } > } > ---- snip ---- > > ---- > > Bye, > Roland > -- > __ . . __ > (o.\ \/ /.o) roland.mainz@nrubsig.org > \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer > /O /==\ O\ TEL +49 641 3992797 > (;O/ \/ \O;) > > -- > Problem reports: https://cygwin.com/problems.html > FAQ: https://cygwin.com/faq/ > Documentation: https://cygwin.com/docs.html > Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple -- Cedric Blancher [https://plus.google.com/u/0/+CedricBlancher/] Institute Pasteur -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple