[legal] Add FILE_LICENCE declarations to EFI header files
authorMichael Brown <mcb30@ipxe.org>
Sat, 29 May 2010 22:06:06 +0000 (23:06 +0100)
committerStefan Hajnoczi <stefanha@gmail.com>
Wed, 7 Jul 2010 19:22:19 +0000 (20:22 +0100)
Autodetect the BSD licence statement in EFI header files, and add a
suitable FILE_LICENCE macro to the version imported into the gPXE
tree.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
40 files changed:
src/include/gpxe/efi/Base.h
src/include/gpxe/efi/Guid/HiiFormMapMethodGuid.h
src/include/gpxe/efi/Guid/PcAnsi.h
src/include/gpxe/efi/Guid/SmBios.h
src/include/gpxe/efi/Guid/WinCertificate.h
src/include/gpxe/efi/Ia32/ProcessorBind.h
src/include/gpxe/efi/IndustryStandard/Pci22.h
src/include/gpxe/efi/IndustryStandard/PeImage.h
src/include/gpxe/efi/Pi/PiBootMode.h
src/include/gpxe/efi/Pi/PiDependency.h
src/include/gpxe/efi/Pi/PiDxeCis.h
src/include/gpxe/efi/Pi/PiFirmwareFile.h
src/include/gpxe/efi/Pi/PiFirmwareVolume.h
src/include/gpxe/efi/Pi/PiHob.h
src/include/gpxe/efi/Pi/PiMultiPhase.h
src/include/gpxe/efi/Pi/PiS3BootScript.h
src/include/gpxe/efi/Pi/PiStatusCode.h
src/include/gpxe/efi/PiDxe.h
src/include/gpxe/efi/Protocol/ComponentName2.h
src/include/gpxe/efi/Protocol/Cpu.h
src/include/gpxe/efi/Protocol/CpuIo.h
src/include/gpxe/efi/Protocol/CpuIo2.h
src/include/gpxe/efi/Protocol/DebugSupport.h
src/include/gpxe/efi/Protocol/DevicePath.h
src/include/gpxe/efi/Protocol/DriverBinding.h
src/include/gpxe/efi/Protocol/NetworkInterfaceIdentifier.h
src/include/gpxe/efi/Protocol/PciIo.h
src/include/gpxe/efi/Protocol/PciRootBridgeIo.h
src/include/gpxe/efi/Protocol/SimpleNetwork.h
src/include/gpxe/efi/Protocol/SimpleTextIn.h
src/include/gpxe/efi/Protocol/SimpleTextOut.h
src/include/gpxe/efi/Uefi.h
src/include/gpxe/efi/Uefi/UefiBaseType.h
src/include/gpxe/efi/Uefi/UefiGpt.h
src/include/gpxe/efi/Uefi/UefiInternalFormRepresentation.h
src/include/gpxe/efi/Uefi/UefiMultiPhase.h
src/include/gpxe/efi/Uefi/UefiPxe.h
src/include/gpxe/efi/Uefi/UefiSpec.h
src/include/gpxe/efi/X64/ProcessorBind.h
src/include/gpxe/efi/import.pl

index 6e32e31..d13da14 100644 (file)
@@ -22,6 +22,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __BASE_H__
 #define __BASE_H__
 
+FILE_LICENCE ( BSD3 );
+
 //
 // Include processor specific binding
 //
index ab508fd..c8f3721 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef __EFI_HII_FORMMAP_GUID_H__
 #define __EFI_HII_FORMMAP_GUID_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define EFI_HII_STANDARD_FORM_GUID \
   { 0x3bd2f4ec, 0xe524, 0x46e4, { 0xa9, 0xd8, 0x51, 0x1, 0x17, 0x42, 0x55, 0x62 } }
 
index 8f31254..8b3e63f 100644 (file)
@@ -18,6 +18,8 @@
 #ifndef __PC_ANSI_H__
 #define __PC_ANSI_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define EFI_PC_ANSI_GUID \
   { \
     0xe0c14753, 0xf9be, 0x11d2, {0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
index 4bda1f3..cc4a1f9 100644 (file)
@@ -22,6 +22,8 @@
 #ifndef __SMBIOS_GUID_H__
 #define __SMBIOS_GUID_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define SMBIOS_TABLE_GUID \
   { \
     0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
index 3f91b12..75fc642 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef __EFI_WIN_CERTIFICATE_H__
 #define __EFI_WIN_CERTIFICATE_H__
 
+FILE_LICENCE ( BSD3 );
+
 //
 // _WIN_CERTIFICATE.wCertificateType
 //
index 38de245..20cf407 100644 (file)
@@ -15,6 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PROCESSOR_BIND_H__
 #define __PROCESSOR_BIND_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// Define the processor type so other code can make processor based choices.
 ///
index 62f0a26..b57059a 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef _PCI22_H_
 #define _PCI22_H_
 
+FILE_LICENCE ( BSD3 );
+
 #define PCI_MAX_BUS     255
 #define PCI_MAX_DEVICE  31
 #define PCI_MAX_FUNC    7
index 74941f5..281d486 100644 (file)
@@ -22,6 +22,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PE_IMAGE_H__
 #define __PE_IMAGE_H__
 
+FILE_LICENCE ( BSD3 );
+
 //
 // PE32+ Subsystem type for EFI images
 //
index 504a67f..30fd443 100644 (file)
@@ -18,6 +18,8 @@
 #ifndef __PI_BOOT_MODE_H__
 #define __PI_BOOT_MODE_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// EFI boot mode
 ///
index 7d67da5..7ad81a7 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef __PI_DEPENDENCY_H__
 #define __PI_DEPENDENCY_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// If present, this must be the first and only opcode,
 /// EFI_DEP_BEFORE is only used by DXE driver.
index bca3011..7f36883 100644 (file)
@@ -18,6 +18,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PI_DXECIS_H__
 #define __PI_DXECIS_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Uefi/UefiMultiPhase.h>
 #include <gpxe/efi/Pi/PiMultiPhase.h>
 
index b0dea86..6909018 100644 (file)
@@ -19,6 +19,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PI_FIRMWARE_FILE_H__
 #define __PI_FIRMWARE_FILE_H__
 
+FILE_LICENCE ( BSD3 );
+
 #pragma pack(1)
 ///
 /// Used to verify the integrity of the file.
index 4d2ba88..605c468 100644 (file)
@@ -18,6 +18,8 @@
 #ifndef __PI_FIRMWAREVOLUME_H__
 #define __PI_FIRMWAREVOLUME_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// EFI_FV_FILE_ATTRIBUTES
 ///
index 4d09521..cd196cb 100644 (file)
@@ -18,6 +18,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PI_HOB_H__
 #define __PI_HOB_H__
 
+FILE_LICENCE ( BSD3 );
+
 //
 // HobType of EFI_HOB_GENERIC_HEADER.
 //
index 9f32f2d..cf9a190 100644 (file)
@@ -18,6 +18,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PI_MULTIPHASE_H__
 #define __PI_MULTIPHASE_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Pi/PiFirmwareVolume.h>
 #include <gpxe/efi/Pi/PiFirmwareFile.h>
 #include <gpxe/efi/Pi/PiBootMode.h>
index e4ce688..01cae15 100644 (file)
@@ -16,6 +16,8 @@
 #ifndef _PI_S3_BOOT_SCRIPT_H_
 #define _PI_S3_BOOT_SCRIPT_H_
 
+FILE_LICENCE ( BSD3 );
+
 //*******************************************
 // EFI Boot Script Opcode definitions
 //*******************************************
index 40607b8..b41355c 100644 (file)
@@ -19,6 +19,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PI_STATUS_CODE_H__
 #define __PI_STATUS_CODE_H__
 
+FILE_LICENCE ( BSD3 );
+
 //
 // Required for IA32 and IPF defines for CPU exception types
 //
index 526ea06..07baf78 100644 (file)
@@ -16,9 +16,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PI_DXE_H__
 #define __PI_DXE_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Uefi/UefiBaseType.h>
 #include <gpxe/efi/Uefi/UefiSpec.h>
-
 #include <gpxe/efi/Pi/PiDxeCis.h>
 
 #endif
index 3c5ec07..978ede5 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef __EFI_COMPONENT_NAME2_H__
 #define __EFI_COMPONENT_NAME2_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// Global ID for the Component Name Protocol
 ///
index 80e135a..0e8036c 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef __ARCH_PROTOCOL_CPU_H__
 #define __ARCH_PROTOCOL_CPU_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Protocol/DebugSupport.h>
 
 #define EFI_CPU_ARCH_PROTOCOL_GUID \
index 76974d7..a5b0b98 100644 (file)
@@ -24,6 +24,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef _CPUIO_H_
 #define _CPUIO_H_
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Protocol/CpuIo2.h>
 
 #define EFI_CPU_IO_PROTOCOL_GUID \
index e6fd0f2..aef8157 100644 (file)
@@ -30,6 +30,8 @@
 #ifndef __CPU_IO2_H__
 #define __CPU_IO2_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define EFI_CPU_IO2_PROTOCOL_GUID \
   { \
     0xad61f191, 0xae5f, 0x4c0e, {0xb9, 0xfa, 0xe8, 0x69, 0xd2, 0x88, 0xc6, 0x4f} \
index 9ddb0b5..0766a47 100644 (file)
@@ -19,6 +19,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __DEBUG_SUPPORT_H__
 #define __DEBUG_SUPPORT_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/IndustryStandard/PeImage.h>
 
 typedef struct _EFI_DEBUG_SUPPORT_PROTOCOL EFI_DEBUG_SUPPORT_PROTOCOL;
index 75ceff2..7af283f 100644 (file)
@@ -19,6 +19,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __EFI_DEVICE_PATH_PROTOCOL_H__
 #define __EFI_DEVICE_PATH_PROTOCOL_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Guid/PcAnsi.h>
 
 ///
index 94fe36f..1f464a7 100644 (file)
@@ -18,6 +18,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __EFI_DRIVER_BINDING_H__
 #define __EFI_DRIVER_BINDING_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// The global ID for the ControllerHandle Driver Protocol.
 ///
index dc0c709..ac86e97 100644 (file)
@@ -18,6 +18,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __EFI_NETWORK_INTERFACE_IDENTIFER_H__
 #define __EFI_NETWORK_INTERFACE_IDENTIFER_H__
 
+FILE_LICENCE ( BSD3 );
+
 //
 // GUID retired from UEFI Specification 2.1b
 //
index 3ec9a42..d998208 100644 (file)
@@ -16,6 +16,8 @@
 #ifndef __PCI_IO_H__
 #define __PCI_IO_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// Global ID for the PCI I/O Protocol
 ///
index 482c438..5d87241 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef __PCI_ROOT_BRIDGE_IO_H__
 #define __PCI_ROOT_BRIDGE_IO_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID \
   { \
     0x2f707ebb, 0x4a1a, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
index 3057590..2b521a9 100644 (file)
@@ -26,6 +26,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __SIMPLE_NETWORK_H__
 #define __SIMPLE_NETWORK_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define EFI_SIMPLE_NETWORK_PROTOCOL_GUID \
   { \
     0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } \
index 83ba9e7..31cab3d 100644 (file)
@@ -18,6 +18,8 @@
 #ifndef __SIMPLE_TEXT_IN_PROTOCOL_H__
 #define __SIMPLE_TEXT_IN_PROTOCOL_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID \
   { \
     0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
index 7e1c70c..a79cf43 100644 (file)
@@ -20,6 +20,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __SIMPLE_TEXT_OUT_H__
 #define __SIMPLE_TEXT_OUT_H__
 
+FILE_LICENCE ( BSD3 );
+
 #define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID \
   { \
     0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
index 1b07af7..74220bb 100644 (file)
@@ -20,6 +20,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __PI_UEFI_H__
 #define __PI_UEFI_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Uefi/UefiBaseType.h>
 #include <gpxe/efi/Uefi/UefiSpec.h>
 
index 54e3558..84f586c 100644 (file)
@@ -15,6 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __UEFI_BASETYPE_H__
 #define __UEFI_BASETYPE_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Base.h>
 
 //
index 9f56338..0ea2d70 100644 (file)
@@ -15,6 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __UEFI_GPT_H__
 #define __UEFI_GPT_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// The primary GUID Partition Table Header must be
 /// located in LBA 1 (i.e., the second logical block).
index 096986d..b1a39d1 100644 (file)
@@ -20,6 +20,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__
 #define __UEFI_INTERNAL_FORMREPRESENTATION_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Guid/HiiFormMapMethodGuid.h>
 
 ///
index e0bbfdd..166ee0c 100644 (file)
@@ -15,6 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __UEFI_MULTIPHASE_H__
 #define __UEFI_MULTIPHASE_H__
 
+FILE_LICENCE ( BSD3 );
+
 #include <gpxe/efi/Guid/WinCertificate.h>
 ///
 /// Enumeration of memory types introduced in UEFI.
index 582d0f8..0b8da5f 100644 (file)
@@ -21,6 +21,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __EFI_PXE_H__
 #define __EFI_PXE_H__
 
+FILE_LICENCE ( BSD3 );
+
 #pragma pack(1)
 
 #define PXE_BUSTYPE(a, b, c, d) \
index 92d0c25..6da8644 100644 (file)
@@ -19,8 +19,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __UEFI_SPEC_H__
 #define __UEFI_SPEC_H__
 
-#include <gpxe/efi/Uefi/UefiMultiPhase.h>
+FILE_LICENCE ( BSD3 );
 
+#include <gpxe/efi/Uefi/UefiMultiPhase.h>
 #include <gpxe/efi/Protocol/DevicePath.h>
 #include <gpxe/efi/Protocol/SimpleTextIn.h>
 #include <gpxe/efi/Protocol/SimpleTextOut.h>
index b026859..0b1a3e1 100644 (file)
@@ -15,6 +15,8 @@
 #ifndef __PROCESSOR_BIND_H__
 #define __PROCESSOR_BIND_H__
 
+FILE_LICENCE ( BSD3 );
+
 ///
 /// Define the processor type so other code can make processor based choices
 ///
index 1699394..06d4ecb 100755 (executable)
@@ -27,6 +27,8 @@ sub try_import_file {
       mkpath ( $outdir );
       open my $outfh, ">$outfile" or die "Could not open $outfile: $!\n";
       my @dependencies = ();
+      my $licence;
+      my $guard;
       while ( <$infh> ) {
        # Strip CR and trailing whitespace
        s/\r//g;
@@ -36,10 +38,25 @@ sub try_import_file {
        if ( s/^\#include\s+[<\"](\S+)[>\"]/\#include <gpxe\/efi\/$1>/ ) {
          push @dependencies, $1;
        }
+       # Check for BSD licence statement
+       if ( /^\s*THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE/ ) {
+         die "Licence detected after header guard\n" if $guard;
+         $licence = "BSD3";
+       }
+       # Write out line
        print $outfh "$_\n";
+       # Apply FILE_LICENCE() immediately after include guard
+       if ( /^\#define\s+_?_\S+_H_?_$/ ) {
+         die "Duplicate header guard detected in $infile\n" if $guard;
+         $guard = 1;
+         print $outfh "\nFILE_LICENCE ( $licence );\n" if $licence;
+       }
       }
       close $outfh;
       close $infh;
+      # Warn if no licence was detected
+      warn "Cannot detect licence in $infile\n" unless $licence;
+      warn "Cannot detect header guard in $infile\n" unless $guard;
       # Recurse to handle any included files that we don't already have
       foreach my $dependency ( @dependencies ) {
        if ( ! -e catfile ( $gpxedir, $dependency ) ) {