Date: Mon, 26 Jun 2017 19:48:11 +0000 (UTC) From: Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r444412 - in head/sysutils/dmidecode: . files Message-ID: <201706261948.v5QJmBZg078156@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sunpoet Date: Mon Jun 26 19:48:11 2017 New Revision: 444412 URL: https://svnweb.freebsd.org/changeset/ports/444412 Log: Add UEFI support - Bump PORTREVISION for package change Submitted by: danfe Added: head/sysutils/dmidecode/files/patch-dmidecode.c (contents, props changed) Modified: head/sysutils/dmidecode/Makefile Modified: head/sysutils/dmidecode/Makefile ============================================================================== --- head/sysutils/dmidecode/Makefile Mon Jun 26 19:37:56 2017 (r444411) +++ head/sysutils/dmidecode/Makefile Mon Jun 26 19:48:11 2017 (r444412) @@ -3,6 +3,7 @@ PORTNAME= dmidecode PORTVERSION= 3.1 +PORTREVISION= 1 CATEGORIES= sysutils MASTER_SITES= SAVANNAH Added: head/sysutils/dmidecode/files/patch-dmidecode.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sysutils/dmidecode/files/patch-dmidecode.c Mon Jun 26 19:48:11 2017 (r444412) @@ -0,0 +1,58 @@ +--- dmidecode.c.orig 2017-05-23 13:34:14 UTC ++++ dmidecode.c +@@ -58,6 +58,10 @@ + * https://trustedcomputinggroup.org/pc-client-platform-tpm-profile-ptp-specification/ + */ + ++#ifdef __FreeBSD__ ++#include <errno.h> ++#include <kenv.h> ++#endif + #include <stdio.h> + #include <string.h> + #include <strings.h> +@@ -4934,13 +4938,18 @@ static int legacy_decode(u8 *buf, const + #define EFI_NO_SMBIOS (-2) + static int address_from_efi(off_t *address) + { ++#if defined(__linux__) + FILE *efi_systab; + const char *filename; + char linebuf[64]; ++#elif defined(__FreeBSD__) ++ char addrstr[KENV_MVALLEN + 1]; ++#endif + int ret; + + *address = 0; /* Prevent compiler warning */ + ++#if defined(__linux__) + /* + * Linux up to 2.6.6: /proc/efi/systab + * Linux 2.6.7 and up: /sys/firmware/efi/systab +@@ -4973,6 +4982,25 @@ static int address_from_efi(off_t *addre + if (ret == EFI_NO_SMBIOS) + fprintf(stderr, "%s: SMBIOS entry point missing\n", filename); + return ret; ++#elif defined(__FreeBSD__) ++ /* ++ * On FreeBSD, SMBIOS anchor base address in UEFI mode is exposed ++ * via kernel environment: ++ * https://svnweb.freebsd.org/base?view=revision&revision=307326 ++ */ ++ ret = kenv(KENV_GET, "hint.smbios.0.mem", addrstr, sizeof(addrstr)); ++ if (ret == -1) { ++ if (errno != ENOENT) ++ perror("kenv"); ++ return EFI_NOT_FOUND; ++ } ++ ++ *address = strtoull(addrstr, NULL, 0); ++ if (!(opt.flags & FLAG_QUIET)) ++ printf("# SMBIOS entry point at 0x%08llx\n", ++ (unsigned long long)*address); ++ return 0; ++#endif + } + + int main(int argc, char * const argv[])
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201706261948.v5QJmBZg078156>