From owner-svn-src-projects@FreeBSD.ORG Thu Feb 13 20:36:16 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4C603F66; Thu, 13 Feb 2014 20:36:16 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 37A961104; Thu, 13 Feb 2014 20:36:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s1DKaGnE046874; Thu, 13 Feb 2014 20:36:16 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s1DKaFis046872; Thu, 13 Feb 2014 20:36:15 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201402132036.s1DKaFis046872@svn.freebsd.org> From: Andrew Turner Date: Thu, 13 Feb 2014 20:36:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r261852 - in projects/arm64/sys/boot/efi: include libefi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Feb 2014 20:36:16 -0000 Author: andrew Date: Thu Feb 13 20:36:15 2014 New Revision: 261852 URL: http://svnweb.freebsd.org/changeset/base/261852 Log: Add efi_handle_any to allow us to get a 'current' device when we lack a driver for the boot device, e.g. when loading the loader over semihosting. Modified: projects/arm64/sys/boot/efi/include/efilib.h projects/arm64/sys/boot/efi/libefi/handles.c Modified: projects/arm64/sys/boot/efi/include/efilib.h ============================================================================== --- projects/arm64/sys/boot/efi/include/efilib.h Thu Feb 13 20:25:25 2014 (r261851) +++ projects/arm64/sys/boot/efi/include/efilib.h Thu Feb 13 20:36:15 2014 (r261852) @@ -44,6 +44,7 @@ void efi_main(EFI_HANDLE image_handle, E int efi_register_handles(struct devsw *, EFI_HANDLE *, int); EFI_HANDLE efi_find_handle(struct devsw *, int); int efi_handle_lookup(EFI_HANDLE, struct devsw **, int *); +int efi_handle_any(struct devsw **dev, int *unit); int efi_status_to_errno(EFI_STATUS); time_t efi_time(EFI_TIME *); Modified: projects/arm64/sys/boot/efi/libefi/handles.c ============================================================================== --- projects/arm64/sys/boot/efi/libefi/handles.c Thu Feb 13 20:25:25 2014 (r261851) +++ projects/arm64/sys/boot/efi/libefi/handles.c Thu Feb 13 20:36:15 2014 (r261852) @@ -88,3 +88,15 @@ efi_handle_lookup(EFI_HANDLE h, struct d } return (ENOENT); } + +int +efi_handle_any(struct devsw **dev, int *unit) +{ + if (nentries == 0) + return (ENOENT); + if (dev != NULL) + *dev = entry[0].dev; + if (unit != NULL) + *unit = entry[0].unit; + return (0); +}