[efi] Expose an UNDI interface alongside the existing SNP interface
authorMichael Brown <mcb30@ipxe.org>
Sun, 27 Sep 2015 16:21:24 +0000 (17:21 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 28 Sep 2015 02:42:09 +0000 (03:42 +0100)
commit300a371bfbfee4b84e413ffc5cf800ee8f79a4fd
treeb95196cfa5d0179c0430927643d8b6ec070e328f
parent9ff6d08bf53679f9b513501a5dcf8816cb79deb2
[efi] Expose an UNDI interface alongside the existing SNP interface

UEFI UNDI is a hideously ugly lump of poorly specified garbage bolted
on as an appendix of the UEFI specification.  My personal favourite
line from the UNDI 'specification' is section E.2.2, which states
"Basically, the rule is: Do it right, or don't do it at all".  The
author appears to believe that such exhortations are a viable
substitute for documenting what it is that the wretched reader is
supposed to, in fact, do.

(Second favourite is the section listing the pros and cons of various
driver types.  This fails to identify a single con for the mythical
"Hardware UNDI", a design so insanely intrinsically slow that it
appears to have been the inspiration for the EFI_USB_IO_PROTOCOL.)

UNDI is functionally isomorphic to the substantially less preposterous
EFI_SIMPLE_NETWORK_PROTOCOL.  Provide an UNDI interface (as a thin
wrapper around the existing SNP interface) to allow for use by
third-party software that has made poor life choices.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/interface/efi/efi_snp.c