svn commit: r444412 - in head/sysutils/dmidecode: . files

Sunpoet Po-Chuan Hsieh sunpoet at FreeBSD.org
Mon Jun 26 19:48:12 UTC 2017


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[])


More information about the svn-ports-all mailing list