On Mon, Nov 21, 2022 at 9:21 PM wrote: > diff --git a/EmulatorPkg/Unix/Host/BlockIo.c > b/EmulatorPkg/Unix/Host/BlockIo.c > index cf2d6b4cda..c0c694be55 100644 > --- a/EmulatorPkg/Unix/Host/BlockIo.c > +++ b/EmulatorPkg/Unix/Host/BlockIo.c > @@ -133,6 +133,20 @@ EmuBlockIoOpenDevice ( > > ioctl (Private->fd, DKIOCGETMAXBLOCKCOUNTWRITE, > &Private->Media->OptimalTransferLengthGranularity); > } > + #elif _NETBSD_SOURCE > + { > + u_int BlockSize; > Hi, Again, thanks for the patches. Please send them in the way I kind of described in my other reply. s/u_int/UINT/ + off_t DiskSize; > I think this off_t is fine, per the other off_t usages, I don't know if the maintainers agree. > + > + if (ioctl (Private->fd, DIOCGSECTORSIZE, &BlockSize) == 0) { > + Private->Media->BlockSize = BlockSize; > + } > + > + if (ioctl (Private->fd, DIOCGMEDIASIZE, &DiskSize) == 0) { > + Private->NumberOfBlocks = DivU64x32 (DiskSize, > (UINT32)BlockSize); > + Private->Media->LastBlock = Private->NumberOfBlocks - 1; > + } > + } > #else > { > size_t BlockSize; > > diff --git a/EmulatorPkg/Unix/Host/Host.c b/EmulatorPkg/Unix/Host/Host.c > index 38c01c84af..c505300129 100644 > --- a/EmulatorPkg/Unix/Host/Host.c > +++ b/EmulatorPkg/Unix/Host/Host.c > @@ -12,6 +12,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #define MAP_ANONYMOUS MAP_ANON > #endif > > +#ifdef _NETBSD_SOURCE > +#define MAP_ANON_FD_ (-1) > +#else > +#define MAP_ANON_FD_ (0) > +#endif > Would there be a harm if we just passed -1 everywhere? It's a bit odd NetBSD explicitly requires this, but AFAIK implementations either EINVAL on fd != -1 or take whatever since it's anon. The main implementations (Linux, FreeBSD, NetBSD, OpenBSD, macOS) seem to agree that passing -1 should be safe everywhere (in fact, it's pretty funny that all BSD-derived implementations agree with the fd = -1 thing, but I digress). The rest of the patch looks mostly ok to me, but then again, I'm not a maintainer for this. Thanks, Pedro