From db014f3c23be19e11964d48f2bcb25b54a9bf722 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 13 Mar 2013 22:34:06 +0000 Subject: [PATCH] [efi] Add last_opened_snpdev() Signed-off-by: Michael Brown --- src/include/ipxe/efi/efi_snp.h | 1 + src/interface/efi/efi_snp.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/include/ipxe/efi/efi_snp.h b/src/include/ipxe/efi/efi_snp.h index c8676090..074d1b27 100644 --- a/src/include/ipxe/efi/efi_snp.h +++ b/src/include/ipxe/efi/efi_snp.h @@ -71,5 +71,6 @@ struct efi_snp_device { extern int efi_snp_hii_install ( struct efi_snp_device *snpdev ); extern void efi_snp_hii_uninstall ( struct efi_snp_device *snpdev ); +extern struct efi_snp_device * last_opened_snpdev ( void ); #endif /* _IPXE_EFI_SNP_H */ diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c index 20027596..48a6f397 100644 --- a/src/interface/efi/efi_snp.c +++ b/src/interface/efi/efi_snp.c @@ -1005,3 +1005,18 @@ struct net_driver efi_snp_driver __net_driver = { .notify = efi_snp_notify, .remove = efi_snp_remove, }; + +/** + * Get most recently opened SNP device + * + * @ret snpdev Most recently opened SNP device, or NULL + */ +struct efi_snp_device * last_opened_snpdev ( void ) { + struct net_device *netdev; + + netdev = last_opened_netdev(); + if ( ! netdev ) + return NULL; + + return efi_snp_demux ( netdev ); +}