From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by mx.groups.io with SMTP id smtpd.web11.108319.1674840627688926661 for ; Fri, 27 Jan 2023 09:30:27 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=qWr0tIf9; spf=pass (domain: gmail.com, ip: 209.85.214.181, mailfrom: pedro.falcato@gmail.com) Received: by mail-pl1-f181.google.com with SMTP id v23so5735933plo.1 for ; Fri, 27 Jan 2023 09:30:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=75FPSUNRYpUnV9B6+Txc76XeWhhvha8CshuQebOuKOk=; b=qWr0tIf9QmP7eUTKn0TMAfNUlV1fs2DUWA3s/KNxf4QRQb9Jmq7Vq7ybF/sQjZuYnQ a/Eq85J9Vfmrch9qxYyXPOJr6asC2lFQIDb+7IdFj8E1UeRZWJogYJ7jh5cuDlT5IadJ j7gfhHVo8mERLjAfeDFTce2fRBql0NAJzeWEQUXaLpkaUPdGhHLmGNy/Nm7U1Ueyo6A2 7o54epE/qELQOEdI4mGwXFJLKxU5A8/Ihck2pLxXmgLqSp35HLmIWYJCKbpjVXXw5E03 J2DOJplwLT2oSUykd1XaLr+eoNjxu8XyUbOJjAfk9FDVL26r+CoTOTVJVzsm9//ci9sG Tbiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=75FPSUNRYpUnV9B6+Txc76XeWhhvha8CshuQebOuKOk=; b=HkxPG9E0XBuRXHkHi5c1Gz/06FFo4afAveBF/Yy4REZhwUPT7fv18bJ+SFAsDE+Bsp WTQyyiTSI5w2ZEKdF72OCVvMg0+k3RqjTAaL/5zPhvWQ1EhXtxqj0Zot+ePtjZmA2oVL uxivBeyUlFUWe2wNneKWoey/rCEd1o+Q7tfVbrBQrM14DnI9Xc1rG2aFXNr0fkK+6+Ad acYRUrYU3Qoe8+MJIh+pxL7cm2WKN79HidTINrpMVLryInQK/CATWH6hffTcGSfc+zQa 6dGeHlDVYrMrF1oIoJR+5hWHKU+vEeFP2L50zygWeGn31cW5ghejMurIq27nTCeMOb18 EAeg== X-Gm-Message-State: AO0yUKXOw/URyQjUNUpKYPdbPI0GDEfMPmN2SLCZZW0nWz+ac1knjur0 oJJCPfHNiRBwaVTGcwztKo2Aj2n3TZ/MB1M27Tg= X-Google-Smtp-Source: AK7set+uV7HQ04diBVq1T4hTrijEyKslnH8nmKPN7FJSxq5Vk1A2mb17LQN5IvjyNjTdqAkIkEveFj2lmnMBkN7WCS4= X-Received: by 2002:a17:903:41cd:b0:196:237f:164d with SMTP id u13-20020a17090341cd00b00196237f164dmr1605466ple.14.1674840627154; Fri, 27 Jan 2023 09:30:27 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "Pedro Falcato" Date: Fri, 27 Jan 2023 17:30:16 +0000 Message-ID: Subject: Re: [PATCH 1/1 v3] EmulatorPkg: fixes for NetBSD compilation To: tlaronde@polynum.com Cc: devel@edk2.groups.io, Andrew Fish , Ray Ni Content-Type: text/plain; charset="UTF-8" On Mon, Jan 9, 2023 at 5:03 PM wrote: > > EmulatorPkg: fixes for NetBSD compilation. > > Note: generated against today (2023-01-09) master. > > v3: > - Macro __NetBSD__ used instead of lower level _NETBSD_SOURCE; > - The required fd value (-1) for mmap(3) under *BSD is given as is > with a comment indicating why this particular value for MAP_ANON; > - Supplementary: mapFd0() is using mmap(3) also, with MAP_ANON, and the > fd was not corrected as above in the previous versions of the patch. > > From 708079397bb35eb50cfb12f7d5f2c66b64177a76 Mon Sep 17 00:00:00 2001 > From: Thierry LARONDE > Date: Mon, 9 Jan 2023 17:49:59 +0100 > Subject: [PATCH] EmulatorPkg: fixes for NetBSD compilation > > Signed-off-by: Thierry LARONDE > --- > EmulatorPkg/Unix/Host/BlockIo.c | 16 +++++++++++++++- > EmulatorPkg/Unix/Host/Host.c | 7 ++++--- > EmulatorPkg/Unix/Host/Host.h | 7 ++++++- > 3 files changed, 25 insertions(+), 5 deletions(-) > > diff --git a/EmulatorPkg/Unix/Host/BlockIo.c b/EmulatorPkg/Unix/Host/BlockIo.c > index cf2d6b4cda..2eb062b03d 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__ > + { > + UINTN BlockSize; > + off_t DiskSize; > + > + 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; > @@ -154,7 +168,7 @@ EmuBlockIoOpenDevice ( > Private->Media->LastBlock = Private->NumberOfBlocks - 1; > > if (fstatfs (Private->fd, &buf) == 0) { > - #if __APPLE__ > + #if __APPLE__ || __NetBSD__ > Private->Media->OptimalTransferLengthGranularity = buf.f_iosize/buf.f_bsize; > #else > Private->Media->OptimalTransferLengthGranularity = buf.f_bsize/buf.f_bsize; > diff --git a/EmulatorPkg/Unix/Host/Host.c b/EmulatorPkg/Unix/Host/Host.c > index 1f29dd00a3..6a338b81a1 100644 > --- a/EmulatorPkg/Unix/Host/Host.c > +++ b/EmulatorPkg/Unix/Host/Host.c > @@ -199,7 +199,7 @@ main ( > // > InitialStackMemorySize = STACK_SIZE; > InitialStackMemory = (UINTN)MapMemory ( > - 0, > + -1, // This value required by *BSD for MAP_ANON > (UINT32)InitialStackMemorySize, > PROT_READ | PROT_WRITE | PROT_EXEC, > MAP_ANONYMOUS | MAP_PRIVATE > @@ -360,6 +360,7 @@ MapMemory ( > while ((!isAligned) && (base != 0)) { > res = mmap ((void *)base, length, prot, flags, fd, 0); > if (res == MAP_FAILED) { > + perror("MapMemory"); > return NULL; > } > > @@ -511,7 +512,7 @@ MapFd0 ( > 4096, > PROT_READ | PROT_WRITE, > MAP_PRIVATE | MAP_ANONYMOUS, > - 0, > + -1, // This value required by *BSD for MAP_ANON > 0 > ); > if (res3 != EmuMagicPage) { > @@ -652,7 +653,7 @@ SecUnixPeiAutoScan ( > > *MemoryBase = 0; > res = MapMemory ( > - 0, > + -1, // This value required by *BSD for MAP_ANON > gSystemMemory[Index].Size, > PROT_READ | PROT_WRITE | PROT_EXEC, > MAP_PRIVATE | MAP_ANONYMOUS > diff --git a/EmulatorPkg/Unix/Host/Host.h b/EmulatorPkg/Unix/Host/Host.h > index 0c81cdfc01..d6b70e8320 100644 > --- a/EmulatorPkg/Unix/Host/Host.h > +++ b/EmulatorPkg/Unix/Host/Host.h > @@ -31,6 +31,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > #if __CYGWIN__ > #include > +#elif __NetBSD__ > + #include > #else > #include > #endif > @@ -55,7 +57,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #include > #include > > -#ifdef __APPLE__ > +#if defined(__APPLE__) > #include > #include > #include > @@ -65,6 +67,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #ifndef _Bool > #define _Bool char // for clang debug > #endif > +#elif defined(__NetBSD__) > + #define statfs statvfs > + #define fstatfs fstatvfs > #else > #include > #include > -- > 2.39.0 > > -- > Thierry Laronde > http://www.kergis.com/ > http://kertex.kergis.com/ > Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C Hi, I do not have any authority in EmulatorPkg but Reviewed-by: Pedro Falcato Can one of the maintainers please give their feedback and/or merge? This patch has been soaking up for way too long for no good reason. The feedback has been addressed. I don't think there are any other issues and there has been 0 feedback from the actual maintainers. -- Pedro