[legal] Add a selection of FILE_LICENCE declarations

Add FILE_LICENCE declarations to almost all files that make up the
various standard builds of gPXE.
diff --git a/src/drivers/bitbash/bitbash.c b/src/drivers/bitbash/bitbash.c
index c6f9352..3e558d5 100644
--- a/src/drivers/bitbash/bitbash.c
+++ b/src/drivers/bitbash/bitbash.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <gpxe/bitbash.h>
 
 /** @file
diff --git a/src/drivers/bitbash/i2c_bit.c b/src/drivers/bitbash/i2c_bit.c
index b85057a..1319727 100644
--- a/src/drivers/bitbash/i2c_bit.c
+++ b/src/drivers/bitbash/i2c_bit.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stddef.h>
 #include <stdint.h>
 #include <errno.h>
diff --git a/src/drivers/bitbash/spi_bit.c b/src/drivers/bitbash/spi_bit.c
index ef87b5a..8b5060c 100644
--- a/src/drivers/bitbash/spi_bit.c
+++ b/src/drivers/bitbash/spi_bit.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stddef.h>
 #include <stdint.h>
 #include <string.h>
diff --git a/src/drivers/block/ata.c b/src/drivers/block/ata.c
index c21d2f6..fd63645 100644
--- a/src/drivers/block/ata.c
+++ b/src/drivers/block/ata.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stddef.h>
 #include <string.h>
 #include <assert.h>
diff --git a/src/drivers/block/ramdisk.c b/src/drivers/block/ramdisk.c
index 5091199..4e6f1bc 100644
--- a/src/drivers/block/ramdisk.c
+++ b/src/drivers/block/ramdisk.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <gpxe/blockdev.h>
 #include <gpxe/ramdisk.h>
 
diff --git a/src/drivers/block/scsi.c b/src/drivers/block/scsi.c
index b22bd20..5431233 100644
--- a/src/drivers/block/scsi.c
+++ b/src/drivers/block/scsi.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stddef.h>
 #include <string.h>
 #include <byteswap.h>
diff --git a/src/drivers/bus/eisa.c b/src/drivers/bus/eisa.c
index 1af56f2..b533364 100644
--- a/src/drivers/bus/eisa.c
+++ b/src/drivers/bus/eisa.c
@@ -7,6 +7,8 @@
 #include <unistd.h>
 #include <gpxe/eisa.h>
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 static void eisabus_remove ( struct root_device *rootdev );
 
 /**
diff --git a/src/drivers/bus/isa.c b/src/drivers/bus/isa.c
index eb49fbf..f458826 100644
--- a/src/drivers/bus/isa.c
+++ b/src/drivers/bus/isa.c
@@ -6,6 +6,8 @@
 #include <gpxe/io.h>
 #include <gpxe/isa.h>
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /*
  * isa.c implements a "classical" port-scanning method of ISA device
  * detection.  The driver must provide a list of probe addresses
diff --git a/src/drivers/bus/isapnp.c b/src/drivers/bus/isapnp.c
index 957a955..ccf6209 100644
--- a/src/drivers/bus/isapnp.c
+++ b/src/drivers/bus/isapnp.c
@@ -55,6 +55,8 @@
  *
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/drivers/bus/mca.c b/src/drivers/bus/mca.c
index d6bb60f..2815603 100644
--- a/src/drivers/bus/mca.c
+++ b/src/drivers/bus/mca.c
@@ -5,6 +5,8 @@
  *
  */
 
+FILE_LICENCE ( BSD2 );
+
 #include <stdint.h>
 #include <string.h>
 #include <stdlib.h>
diff --git a/src/drivers/bus/pci.c b/src/drivers/bus/pci.c
index 7f038c2..8899e6e 100644
--- a/src/drivers/bus/pci.c
+++ b/src/drivers/bus/pci.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/src/drivers/bus/pciextra.c b/src/drivers/bus/pciextra.c
index 4603bcb..1dd63ee 100644
--- a/src/drivers/bus/pciextra.c
+++ b/src/drivers/bus/pciextra.c
@@ -1,3 +1,5 @@
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <gpxe/pci.h>
 
diff --git a/src/drivers/infiniband/MT25218_PRM.h b/src/drivers/infiniband/MT25218_PRM.h
index 19ca92c..f1b7c1f 100644
--- a/src/drivers/infiniband/MT25218_PRM.h
+++ b/src/drivers/infiniband/MT25218_PRM.h
@@ -19,6 +19,8 @@
   Copyright (c) 2004 Mellanox Technologies Ltd.  All rights reserved.
 */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /***
  *** This file was generated at "Tue Nov 22 15:21:23 2005"
  *** by:
diff --git a/src/drivers/infiniband/MT25408_PRM.h b/src/drivers/infiniband/MT25408_PRM.h
index 17882ed..39ecd17 100644
--- a/src/drivers/infiniband/MT25408_PRM.h
+++ b/src/drivers/infiniband/MT25408_PRM.h
@@ -19,6 +19,8 @@
   Copyright (c) 2004 Mellanox Technologies Ltd.  All rights reserved.
 */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /***
  *** This file was generated at "Mon Apr 16 23:22:02 2007"
  *** by:
diff --git a/src/drivers/infiniband/arbel.c b/src/drivers/infiniband/arbel.c
index c5b3bc0..a9ca345 100644
--- a/src/drivers/infiniband/arbel.c
+++ b/src/drivers/infiniband/arbel.c
@@ -19,6 +19,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/src/drivers/infiniband/arbel.h b/src/drivers/infiniband/arbel.h
index 7d97b15..87f5933 100644
--- a/src/drivers/infiniband/arbel.h
+++ b/src/drivers/infiniband/arbel.h
@@ -7,6 +7,8 @@
  *
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <gpxe/uaccess.h>
 #include "mlx_bitops.h"
diff --git a/src/drivers/infiniband/hermon.c b/src/drivers/infiniband/hermon.c
index e03823f..4ece7a4 100644
--- a/src/drivers/infiniband/hermon.c
+++ b/src/drivers/infiniband/hermon.c
@@ -17,6 +17,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/src/drivers/infiniband/hermon.h b/src/drivers/infiniband/hermon.h
index ed39da6..5d92efd 100644
--- a/src/drivers/infiniband/hermon.h
+++ b/src/drivers/infiniband/hermon.h
@@ -7,6 +7,8 @@
  *
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <gpxe/uaccess.h>
 #include "mlx_bitops.h"
diff --git a/src/drivers/infiniband/ib_packet.c b/src/drivers/infiniband/ib_packet.c
index 0f21617..d67ba1d 100644
--- a/src/drivers/infiniband/ib_packet.c
+++ b/src/drivers/infiniband/ib_packet.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/drivers/infiniband/ib_sma.c b/src/drivers/infiniband/ib_sma.c
index 2bd3a9e..96cc37c 100644
--- a/src/drivers/infiniband/ib_sma.c
+++ b/src/drivers/infiniband/ib_sma.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/drivers/infiniband/ib_smc.c b/src/drivers/infiniband/ib_smc.c
index af0c4ab..0879a74 100644
--- a/src/drivers/infiniband/ib_smc.c
+++ b/src/drivers/infiniband/ib_smc.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/drivers/infiniband/linda.c b/src/drivers/infiniband/linda.c
index 675f1cf..e725901 100644
--- a/src/drivers/infiniband/linda.c
+++ b/src/drivers/infiniband/linda.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <errno.h>
diff --git a/src/drivers/infiniband/linda.h b/src/drivers/infiniband/linda.h
index dd1737a..66eea28 100644
--- a/src/drivers/infiniband/linda.h
+++ b/src/drivers/infiniband/linda.h
@@ -19,6 +19,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /**
  * @file
  *
diff --git a/src/drivers/infiniband/linda_fw.c b/src/drivers/infiniband/linda_fw.c
index fc5ea07..968a5f8 100644
--- a/src/drivers/infiniband/linda_fw.c
+++ b/src/drivers/infiniband/linda_fw.c
@@ -30,6 +30,8 @@
  * SOFTWARE.
  */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /*
  * This file contains the memory image from the vendor, to be copied into
  * the IB SERDES of the IBA7220 during initialization.
diff --git a/src/drivers/infiniband/mlx_bitops.h b/src/drivers/infiniband/mlx_bitops.h
index ec57d7b..ca96359 100644
--- a/src/drivers/infiniband/mlx_bitops.h
+++ b/src/drivers/infiniband/mlx_bitops.h
@@ -19,6 +19,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /**
  * @file
  *
diff --git a/src/drivers/infiniband/qib_7220_regs.h b/src/drivers/infiniband/qib_7220_regs.h
index 0dd3c53..e4f3c4e 100644
--- a/src/drivers/infiniband/qib_7220_regs.h
+++ b/src/drivers/infiniband/qib_7220_regs.h
@@ -36,6 +36,7 @@
 
 /* This file has been further processed by ./drivers/infiniband/qib_genbits.pl */
 
+FILE_LICENCE ( GPL2_ONLY );
 
 #define QIB_7220_Revision_offset 0x00000000UL
 struct QIB_7220_Revision_pb {
diff --git a/src/drivers/infiniband/qib_genbits.pl b/src/drivers/infiniband/qib_genbits.pl
index 9eba4da..0298d36 100644
--- a/src/drivers/infiniband/qib_genbits.pl
+++ b/src/drivers/infiniband/qib_genbits.pl
@@ -54,7 +54,8 @@
   $datum->{fields} = $fields;
 }
 
-print "\n/* This file has been further processed by $0 */\n\n\n";
+print "\n/* This file has been further processed by $0 */\n\n"
+print "FILE_LICENCE ( GPL2_ONLY );\n\n";
 
 foreach my $datum ( @$data ) {
   printf "#define %s_offset 0x%08xUL\n",
diff --git a/src/drivers/net/3c509.c b/src/drivers/net/3c509.c
index ecfdec5..1c58f77 100644
--- a/src/drivers/net/3c509.c
+++ b/src/drivers/net/3c509.c
@@ -4,6 +4,8 @@
  *
  */
 
+FILE_LICENCE ( BSD2 );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/drivers/net/3c509.h b/src/drivers/net/3c509.h
index a06d91e..f030d4b 100644
--- a/src/drivers/net/3c509.h
+++ b/src/drivers/net/3c509.h
@@ -31,6 +31,8 @@
 
  */
 
+FILE_LICENCE ( BSD3 );
+
 #include "nic.h"
 
 /*
diff --git a/src/drivers/net/3c515.c b/src/drivers/net/3c515.c
index dcfe66b..eb9569f 100644
--- a/src/drivers/net/3c515.c
+++ b/src/drivers/net/3c515.c
@@ -43,6 +43,7 @@
 * Indent Options: indent -kr -i8
 * *********************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
 
 /* to get some global routines like printf */
 #include "etherboot.h"
diff --git a/src/drivers/net/3c529.c b/src/drivers/net/3c529.c
index 3193104..4282464 100644
--- a/src/drivers/net/3c529.c
+++ b/src/drivers/net/3c529.c
@@ -3,6 +3,8 @@
  *
  */
 
+FILE_LICENCE ( BSD2 );
+
 #include "etherboot.h"
 #include <gpxe/mca.h>
 #include <gpxe/isa.h> /* for ISA_ROM */
diff --git a/src/drivers/net/3c595.c b/src/drivers/net/3c595.c
index f1c8d8a..07c85d0 100644
--- a/src/drivers/net/3c595.c
+++ b/src/drivers/net/3c595.c
@@ -23,6 +23,8 @@
 * timlegge	08-24-2003	Add Multicast Support
 */
 
+FILE_LICENCE ( BSD2 );
+
 /* #define EDEBUG */
 
 #include "etherboot.h"
diff --git a/src/drivers/net/3c595.h b/src/drivers/net/3c595.h
index 49d8d9b..e27d204 100644
--- a/src/drivers/net/3c595.h
+++ b/src/drivers/net/3c595.h
@@ -29,6 +29,8 @@
 
  */
 
+FILE_LICENCE ( BSD3 );
+
 /*
  * Created from if_epreg.h by Fred Gray (fgray@rice.edu) to support the
  * 3c590 family.
diff --git a/src/drivers/net/3c5x9.c b/src/drivers/net/3c5x9.c
index 565044a..87c9f29 100644
--- a/src/drivers/net/3c5x9.c
+++ b/src/drivers/net/3c5x9.c
@@ -22,6 +22,8 @@
 
 ***************************************************************************/
 
+FILE_LICENCE ( BSD2 );
+
 /* #define EDEBUG */
 
 #include <gpxe/ethernet.h>
diff --git a/src/drivers/net/3c90x.c b/src/drivers/net/3c90x.c
index 215925b..83b7083 100644
--- a/src/drivers/net/3c90x.c
+++ b/src/drivers/net/3c90x.c
@@ -36,6 +36,8 @@
  *   $ indent -kr -i8 3c90x.c
  */
 
+FILE_LICENCE ( BSD2 );
+
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/src/drivers/net/3c90x.h b/src/drivers/net/3c90x.h
index c62ac1a..acbb29d 100644
--- a/src/drivers/net/3c90x.h
+++ b/src/drivers/net/3c90x.h
@@ -45,6 +45,8 @@
  * indent options: indent -kr -i8 3c90x.c
  */
 
+FILE_LICENCE ( BSD2 );
+
 #ifndef __3C90X_H_
 #define __3C90X_H_
 
diff --git a/src/drivers/net/amd8111e.c b/src/drivers/net/amd8111e.c
index 03b2768..1b1fdc1 100644
--- a/src/drivers/net/amd8111e.c
+++ b/src/drivers/net/amd8111e.c
@@ -28,6 +28,8 @@
  * USA
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include "etherboot.h"
 #include "nic.h"
 #include "mii.h"
diff --git a/src/drivers/net/amd8111e.h b/src/drivers/net/amd8111e.h
index 82b8f7a..a402a63 100644
--- a/src/drivers/net/amd8111e.h
+++ b/src/drivers/net/amd8111e.h
@@ -35,6 +35,8 @@
 	3.0.1
 */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #ifndef _AMD811E_H
 #define _AMD811E_H
 
diff --git a/src/drivers/net/b44.c b/src/drivers/net/b44.c
index d1920bd..38c4746 100644
--- a/src/drivers/net/b44.c
+++ b/src/drivers/net/b44.c
@@ -28,6 +28,8 @@
  * Copyright (c) a lot of people too. Please respect their work.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <errno.h>
 #include <assert.h>
 #include <stdio.h>
diff --git a/src/drivers/net/b44.h b/src/drivers/net/b44.h
index fb36757..b5afcbd 100644
--- a/src/drivers/net/b44.h
+++ b/src/drivers/net/b44.h
@@ -27,6 +27,9 @@
  *
  * Copyright (c) a lot of people too. Please respect their work.
  */
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #ifndef _B44_H
 #define _B44_H
 
diff --git a/src/drivers/net/bnx2.c b/src/drivers/net/bnx2.c
index 9427d47..d905a2e 100644
--- a/src/drivers/net/bnx2.c
+++ b/src/drivers/net/bnx2.c
@@ -12,6 +12,7 @@
  * version 1.4.40 from linux 2.6.17
  */
 
+FILE_LICENCE ( GPL_ANY );
 
 #include "etherboot.h"
 #include "nic.h"
diff --git a/src/drivers/net/bnx2.h b/src/drivers/net/bnx2.h
index 57d5fee..b853a69 100644
--- a/src/drivers/net/bnx2.h
+++ b/src/drivers/net/bnx2.h
@@ -9,6 +9,7 @@
  * Written by: Michael Chan  (mchan@broadcom.com)
  */
 
+FILE_LICENCE ( GPL_ANY );
 
 #ifndef BNX2_H
 #define BNX2_H
diff --git a/src/drivers/net/cs89x0.c b/src/drivers/net/cs89x0.c
index 1f647a8..df2667d 100644
--- a/src/drivers/net/cs89x0.c
+++ b/src/drivers/net/cs89x0.c
@@ -20,6 +20,8 @@
    -- quote from email
 **/
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /* cs89x0.c: A Crystal Semiconductor CS89[02]0 driver for etherboot. */
 /*
   Permission is granted to distribute the enclosed cs89x0.[ch] driver
diff --git a/src/drivers/net/cs89x0.h b/src/drivers/net/cs89x0.h
index 696191c..a36b907 100644
--- a/src/drivers/net/cs89x0.h
+++ b/src/drivers/net/cs89x0.h
@@ -16,6 +16,8 @@
    -- quote from email
 **/
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /*  Copyright, 1988-1992, Russell Nelson, Crynwr Software
 
    This program is free software; you can redistribute it and/or modify
diff --git a/src/drivers/net/davicom.c b/src/drivers/net/davicom.c
index 4b1faaf..07c5e1b 100644
--- a/src/drivers/net/davicom.c
+++ b/src/drivers/net/davicom.c
@@ -15,6 +15,8 @@
 
 */
 
+FILE_LICENCE ( GPL_ANY );
+
 /*********************************************************************/
 /* Revision History                                                  */
 /*********************************************************************/
diff --git a/src/drivers/net/depca.c b/src/drivers/net/depca.c
index 7372e60..ea85cbe 100644
--- a/src/drivers/net/depca.c
+++ b/src/drivers/net/depca.c
@@ -1,5 +1,7 @@
 /* #warning "depca.c: FIXME: fix relocation" */
 
+FILE_LICENCE ( GPL_ANY );
+
 #if 0
 /* Not fixed for relocation yet. Probably won't work relocated above 16MB */
 #ifdef ALLMULTI
diff --git a/src/drivers/net/dmfe.c b/src/drivers/net/dmfe.c
index 309d5bc..fad1737 100644
--- a/src/drivers/net/dmfe.c
+++ b/src/drivers/net/dmfe.c
@@ -36,6 +36,8 @@
 *
 ***************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /* to get some global routines like printf */
 #include "etherboot.h"
 /* to get the interface to the body of the program */
diff --git a/src/drivers/net/e1000/e1000.c b/src/drivers/net/e1000/e1000.c
index 3461ee5..b6af86f 100644
--- a/src/drivers/net/e1000/e1000.c
+++ b/src/drivers/net/e1000/e1000.c
@@ -41,6 +41,8 @@
 
 *******************************************************************************/
 
+FILE_LICENCE ( GPL2_ONLY );
+
 #include "e1000.h"
 
 /**
diff --git a/src/drivers/net/e1000/e1000.h b/src/drivers/net/e1000/e1000.h
index 77a09ef..ea51db6 100644
--- a/src/drivers/net/e1000/e1000.h
+++ b/src/drivers/net/e1000/e1000.h
@@ -26,6 +26,8 @@
 
 *******************************************************************************/
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /* Linux PRO/1000 Ethernet Driver main header file */
 
 #ifndef _E1000_H_
diff --git a/src/drivers/net/e1000/e1000_hw.c b/src/drivers/net/e1000/e1000_hw.c
index 1054b90..48aae3c 100644
--- a/src/drivers/net/e1000/e1000_hw.c
+++ b/src/drivers/net/e1000/e1000_hw.c
@@ -26,6 +26,8 @@
 
 *******************************************************************************/
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /* e1000_hw.c
  * Shared functions for accessing and configuring the MAC
  */
diff --git a/src/drivers/net/e1000/e1000_hw.h b/src/drivers/net/e1000/e1000_hw.h
index 9e31939..d18060e5 100644
--- a/src/drivers/net/e1000/e1000_hw.h
+++ b/src/drivers/net/e1000/e1000_hw.h
@@ -26,6 +26,8 @@
 
 *******************************************************************************/
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /* e1000_hw.h
  * Structures, enums, and macros for the MAC
  */
diff --git a/src/drivers/net/e1000/e1000_osdep.h b/src/drivers/net/e1000/e1000_osdep.h
index c2d9eb9..cdbf8d1 100644
--- a/src/drivers/net/e1000/e1000_osdep.h
+++ b/src/drivers/net/e1000/e1000_osdep.h
@@ -26,6 +26,7 @@
 
 *******************************************************************************/
 
+FILE_LICENCE ( GPL2_ONLY );
 
 /* glue for the OS independent part of e1000
  * includes register access macros
diff --git a/src/drivers/net/eepro.c b/src/drivers/net/eepro.c
index 2a163d1..a248692 100644
--- a/src/drivers/net/eepro.c
+++ b/src/drivers/net/eepro.c
@@ -31,6 +31,8 @@
  * your option) any later version.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include "etherboot.h"
 #include <errno.h>
 #include "nic.h"
diff --git a/src/drivers/net/eepro100.c b/src/drivers/net/eepro100.c
index 5881da9..85d7571 100644
--- a/src/drivers/net/eepro100.c
+++ b/src/drivers/net/eepro100.c
@@ -52,6 +52,8 @@
  *    - Michael Brown
  * */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /* Philosophy of this driver.
  *
  * Probing:
diff --git a/src/drivers/net/epic100.c b/src/drivers/net/epic100.c
index 88e0d2b..aaa85f8 100644
--- a/src/drivers/net/epic100.c
+++ b/src/drivers/net/epic100.c
@@ -1,6 +1,8 @@
 
 /* epic100.c: A SMC 83c170 EPIC/100 fast ethernet driver for Etherboot */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /* 05/06/2003	timlegge	Fixed relocation and implemented Multicast */
 #define LINUX_OUT_MACROS
 
diff --git a/src/drivers/net/epic100.h b/src/drivers/net/epic100.h
index 61bd1d9..f290b10 100644
--- a/src/drivers/net/epic100.h
+++ b/src/drivers/net/epic100.h
@@ -1,6 +1,8 @@
 #ifndef	_EPIC100_H_
 # define _EPIC100_H_
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #ifndef	PCI_VENDOR_SMC
 # define PCI_VENDOR_SMC		0x10B8
 #endif
diff --git a/src/drivers/net/etherfabric.c b/src/drivers/net/etherfabric.c
index cd9c4dc..e953359 100644
--- a/src/drivers/net/etherfabric.c
+++ b/src/drivers/net/etherfabric.c
@@ -15,6 +15,9 @@
  *
  **************************************************************************
  */
+
+FILE_LICENCE ( GPL_ANY );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <unistd.h>
diff --git a/src/drivers/net/etherfabric.h b/src/drivers/net/etherfabric.h
index 950f8de..9657eb7 100644
--- a/src/drivers/net/etherfabric.h
+++ b/src/drivers/net/etherfabric.h
@@ -17,6 +17,8 @@
  **************************************************************************
  */
 
+FILE_LICENCE ( GPL_ANY );
+
 #ifndef EFAB_BITFIELD_H
 #define EFAB_BITFIELD_H
 
diff --git a/src/drivers/net/etherfabric_nic.h b/src/drivers/net/etherfabric_nic.h
index 4be50fb..fe94d80 100644
--- a/src/drivers/net/etherfabric_nic.h
+++ b/src/drivers/net/etherfabric_nic.h
@@ -15,6 +15,9 @@
  *
  **************************************************************************
  */
+
+FILE_LICENCE ( GPL_ANY );
+
 #ifndef EFAB_NIC_H
 #define  EFAB_NIC_H
 #include <gpxe/bitbash.h>
diff --git a/src/drivers/net/forcedeth.c b/src/drivers/net/forcedeth.c
index 705b6d4..5cd4ce0 100644
--- a/src/drivers/net/forcedeth.c
+++ b/src/drivers/net/forcedeth.c
@@ -43,6 +43,8 @@
 *    Indent Options: indent -kr -i8
 ***************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /* to get some global routines like printf */
 #include "etherboot.h"
 /* to get the interface to the body of the program */
diff --git a/src/drivers/net/hfa384x.h b/src/drivers/net/hfa384x.h
index afb5069..2e3ccf5 100644
--- a/src/drivers/net/hfa384x.h
+++ b/src/drivers/net/hfa384x.h
@@ -53,6 +53,8 @@
 * --------------------------------------------------------------------
 */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 #ifndef _HFA384x_H
 #define _HFA384x_H
 
diff --git a/src/drivers/net/ipoib.c b/src/drivers/net/ipoib.c
index 8ad2c29..cb56458 100644
--- a/src/drivers/net/ipoib.c
+++ b/src/drivers/net/ipoib.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdio.h>
 #include <unistd.h>
diff --git a/src/drivers/net/legacy.c b/src/drivers/net/legacy.c
index cbec3cf..4977076 100644
--- a/src/drivers/net/legacy.c
+++ b/src/drivers/net/legacy.c
@@ -17,6 +17,8 @@
  *
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 struct nic nic;
 
 static int legacy_registered = 0;
diff --git a/src/drivers/net/mtd80x.c b/src/drivers/net/mtd80x.c
index 791eba8..d0e1554 100644
--- a/src/drivers/net/mtd80x.c
+++ b/src/drivers/net/mtd80x.c
@@ -23,6 +23,8 @@
 *
 ***************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /* to get some global routines like printf */
 #include "etherboot.h"
 /* to get the interface to the body of the program */
diff --git a/src/drivers/net/mtnic.c b/src/drivers/net/mtnic.c
index c9ce1d5..7fe4b96 100644
--- a/src/drivers/net/mtnic.c
+++ b/src/drivers/net/mtnic.c
@@ -30,6 +30,9 @@
  * SOFTWARE.
  *
  */
+
+FILE_LICENCE ( GPL2_ONLY );
+
 #include <strings.h>
 #include <errno.h>
 #include <gpxe/malloc.h>
diff --git a/src/drivers/net/mtnic.h b/src/drivers/net/mtnic.h
index 57a7b98..aa240e2 100644
--- a/src/drivers/net/mtnic.h
+++ b/src/drivers/net/mtnic.h
@@ -30,6 +30,9 @@
  * SOFTWARE.
  *
  */
+
+FILE_LICENCE ( GPL2_ONLY );
+
 #ifndef H_MTNIC_IF_DEFS_H
 #define H_MTNIC_IF_DEFS_H
 
diff --git a/src/drivers/net/natsemi.c b/src/drivers/net/natsemi.c
index 8c41316..13adf2a 100644
--- a/src/drivers/net/natsemi.c
+++ b/src/drivers/net/natsemi.c
@@ -46,6 +46,8 @@
 
 */
 
+FILE_LICENCE ( GPL_ANY );
+
 /* Revision History */
 
 /*
diff --git a/src/drivers/net/natsemi.h b/src/drivers/net/natsemi.h
index 13b5545..ae827ba 100644
--- a/src/drivers/net/natsemi.h
+++ b/src/drivers/net/natsemi.h
@@ -1,3 +1,5 @@
+FILE_LICENCE ( GPL_ANY );
+
 #define NATSEMI_HW_TIMEOUT 400
 
 #define TX_RING_SIZE 4
diff --git a/src/drivers/net/ne2k_isa.c b/src/drivers/net/ne2k_isa.c
index f8a45cc..603d1ed 100644
--- a/src/drivers/net/ne2k_isa.c
+++ b/src/drivers/net/ne2k_isa.c
@@ -19,6 +19,8 @@
  Extracted from ns8390.c and adapted by Pantelis Koukousoulas <pktoss@gmail.com>
  **************************************************************************/
 
+FILE_LICENCE ( BSD2 );
+
 #include "ns8390.h"
 #include "etherboot.h"
 #include "nic.h"
diff --git a/src/drivers/net/ns83820.c b/src/drivers/net/ns83820.c
index f90ece2..44d875f 100755
--- a/src/drivers/net/ns83820.c
+++ b/src/drivers/net/ns83820.c
@@ -35,6 +35,8 @@
 *    Indent Options: indent -kr -i8
 ***************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /* to get some global routines like printf */
 #include "etherboot.h"
 /* to get the interface to the body of the program */
diff --git a/src/drivers/net/ns8390.c b/src/drivers/net/ns8390.c
index c6bbefd..97f1141 100644
--- a/src/drivers/net/ns8390.c
+++ b/src/drivers/net/ns8390.c
@@ -25,6 +25,8 @@
 
 **************************************************************************/
 
+FILE_LICENCE ( BSD2 );
+
 /* #warning "ns8390.c: FIXME: split ISA and PCI, clean up" */
 
 #if 1
diff --git a/src/drivers/net/ns8390.h b/src/drivers/net/ns8390.h
index 2c4e972..79728e7 100644
--- a/src/drivers/net/ns8390.h
+++ b/src/drivers/net/ns8390.h
@@ -6,6 +6,8 @@
 
 **************************************************************************/
 
+FILE_LICENCE ( BSD2 );
+
 #define VENDOR_NONE	0
 #define VENDOR_WD	1
 #define VENDOR_NOVELL	2
diff --git a/src/drivers/net/p80211hdr.h b/src/drivers/net/p80211hdr.h
index d9a8bbb..8354671 100644
--- a/src/drivers/net/p80211hdr.h
+++ b/src/drivers/net/p80211hdr.h
@@ -57,6 +57,8 @@
 * --------------------------------------------------------------------
 */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 #ifndef _P80211HDR_H
 #define _P80211HDR_H
 
diff --git a/src/drivers/net/pcnet32.c b/src/drivers/net/pcnet32.c
index ecd7f2f..2ceccbc 100644
--- a/src/drivers/net/pcnet32.c
+++ b/src/drivers/net/pcnet32.c
@@ -39,6 +39,8 @@
 *    Indent Options: indent -kr -i8
 ***************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include "etherboot.h"
 #include "nic.h"
 #include <gpxe/pci.h>
diff --git a/src/drivers/net/phantom/nx_bitops.h b/src/drivers/net/phantom/nx_bitops.h
index 33c8fba..4068632 100644
--- a/src/drivers/net/phantom/nx_bitops.h
+++ b/src/drivers/net/phantom/nx_bitops.h
@@ -19,6 +19,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /**
  * @file
  *
diff --git a/src/drivers/net/phantom/nxhal_nic_interface.h b/src/drivers/net/phantom/nxhal_nic_interface.h
index aa05c72..f487624 100644
--- a/src/drivers/net/phantom/nxhal_nic_interface.h
+++ b/src/drivers/net/phantom/nxhal_nic_interface.h
@@ -1,3 +1,5 @@
+FILE_LICENCE ( GPL2_ONLY );
+
 /*
  * Data types and structure for HAL - NIC interface.
  *
diff --git a/src/drivers/net/phantom/phantom.c b/src/drivers/net/phantom/phantom.c
index 370ce26..ad17cdf 100644
--- a/src/drivers/net/phantom/phantom.c
+++ b/src/drivers/net/phantom/phantom.c
@@ -17,6 +17,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/drivers/net/phantom/phantom.h b/src/drivers/net/phantom/phantom.h
index 974eeca..1018a69 100644
--- a/src/drivers/net/phantom/phantom.h
+++ b/src/drivers/net/phantom/phantom.h
@@ -20,6 +20,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /**
  * @file
  *
diff --git a/src/drivers/net/phantom/phantom_hw.h b/src/drivers/net/phantom/phantom_hw.h
index e2c3e53..950f36a 100644
--- a/src/drivers/net/phantom/phantom_hw.h
+++ b/src/drivers/net/phantom/phantom_hw.h
@@ -20,6 +20,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /**
  * @file
  *
diff --git a/src/drivers/net/pnic.c b/src/drivers/net/pnic.c
index e7095ba..4b728f4 100644
--- a/src/drivers/net/pnic.c
+++ b/src/drivers/net/pnic.c
@@ -12,6 +12,8 @@
  * See pnic_api.h for an explanation of the Bochs Pseudo NIC.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdio.h>
 #include <gpxe/io.h>
diff --git a/src/drivers/net/pnic_api.h b/src/drivers/net/pnic_api.h
index 6d117fa..27e0236 100644
--- a/src/drivers/net/pnic_api.h
+++ b/src/drivers/net/pnic_api.h
@@ -12,6 +12,8 @@
  * time from PNIC_REG_DATA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /*
  * PCI parameters
  */
diff --git a/src/drivers/net/prism2.c b/src/drivers/net/prism2.c
index c54dba5..4c66592 100644
--- a/src/drivers/net/prism2.c
+++ b/src/drivers/net/prism2.c
@@ -13,6 +13,8 @@
  * your option) any later version.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <etherboot.h>
 #include <nic.h>
 #include <gpxe/pci.h>
diff --git a/src/drivers/net/prism2_pci.c b/src/drivers/net/prism2_pci.c
index 9e5208b..b7c1e6b 100644
--- a/src/drivers/net/prism2_pci.c
+++ b/src/drivers/net/prism2_pci.c
@@ -14,6 +14,8 @@
  * your option) any later version.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <gpxe/pci.h>
 #include <nic.h>
 
diff --git a/src/drivers/net/prism2_plx.c b/src/drivers/net/prism2_plx.c
index 5eaa741..9fb5be2 100644
--- a/src/drivers/net/prism2_plx.c
+++ b/src/drivers/net/prism2_plx.c
@@ -14,6 +14,8 @@
  * your option) any later version.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <gpxe/pci.h>
 #include <nic.h>
 
diff --git a/src/drivers/net/r8169.c b/src/drivers/net/r8169.c
index 2bba321..69ce4e8 100644
--- a/src/drivers/net/r8169.c
+++ b/src/drivers/net/r8169.c
@@ -23,6 +23,8 @@
  * Copyright (c) a lot of people too. Please respect their work.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/src/drivers/net/r8169.h b/src/drivers/net/r8169.h
index d353632..66fdc7d 100644
--- a/src/drivers/net/r8169.h
+++ b/src/drivers/net/r8169.h
@@ -24,6 +24,8 @@
  *
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #ifndef _R8169_H_
 #define _R8169_H_
 
diff --git a/src/drivers/net/rtl8139.c b/src/drivers/net/rtl8139.c
index 516f9ec..99830d7 100644
--- a/src/drivers/net/rtl8139.c
+++ b/src/drivers/net/rtl8139.c
@@ -12,6 +12,8 @@
 
 */
 
+FILE_LICENCE ( GPL_ANY );
+
 /*********************************************************************/
 /* Revision History                                                  */
 /*********************************************************************/
diff --git a/src/drivers/net/sis900.c b/src/drivers/net/sis900.c
index c24b43f..177cd65 100644
--- a/src/drivers/net/sis900.c
+++ b/src/drivers/net/sis900.c
@@ -24,6 +24,8 @@
    preliminary Rev. 1.0 Jan. 18, 1998
    http://www.sis.com.tw/support/databook.htm */
 
+FILE_LICENCE ( GPL_ANY );
+
 /* Revision History */
 
 /*
diff --git a/src/drivers/net/sis900.h b/src/drivers/net/sis900.h
index e88e111..7a5c6b5 100644
--- a/src/drivers/net/sis900.h
+++ b/src/drivers/net/sis900.h
@@ -11,6 +11,8 @@
  *   http://www.sis.com.tw/support/databook.htm
  */
 
+FILE_LICENCE ( GPL_ANY );
+
 /* MAC operationl registers of SiS 7016 and SiS 900 ethernet controller */
 /* The I/O extent, SiS 900 needs 256 bytes of io address */
 #define SIS900_TOTAL_SIZE 0x100
diff --git a/src/drivers/net/smc9000.c b/src/drivers/net/smc9000.c
index 31a1e1b..cfbf104 100644
--- a/src/drivers/net/smc9000.c
+++ b/src/drivers/net/smc9000.c
@@ -26,6 +26,9 @@
  *                                       Linux driver.
  *
  *---------------------------------------------------------------------------*/
+
+FILE_LICENCE ( GPL_ANY );
+
 #define LINUX_OUT_MACROS 1
 #define SMC9000_DEBUG    0
 
diff --git a/src/drivers/net/smc9000.h b/src/drivers/net/smc9000.h
index 318b779..979975b 100644
--- a/src/drivers/net/smc9000.h
+++ b/src/drivers/net/smc9000.h
@@ -28,6 +28,9 @@
  * 98-09-27              Daniel Engström moved some static strings back to the
  *                                       main .c file
  * --------------------------------------------------------------------------*/
+
+FILE_LICENCE ( GPL_ANY );
+
 #ifndef	_SMC9000_H_
 # define _SMC9000_H_
 
diff --git a/src/drivers/net/sundance.c b/src/drivers/net/sundance.c
index cb8ce74..a5552cf 100644
--- a/src/drivers/net/sundance.c
+++ b/src/drivers/net/sundance.c
@@ -40,6 +40,8 @@
 *
 ****************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /* to get some global routines like printf */
 #include "etherboot.h"
 /* to get the interface to the body of the program */
diff --git a/src/drivers/net/tg3.c b/src/drivers/net/tg3.c
index 1418027..18e68ea 100644
--- a/src/drivers/net/tg3.c
+++ b/src/drivers/net/tg3.c
@@ -6,6 +6,8 @@
  * Copyright (C) 2003 Eric Biederman (ebiederman@lnxi.com)  [etherboot port]
  */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 /* 11-13-2003	timlegge	Fix Issue with NetGear GA302T 
  * 11-18-2003   ebiederm        Generalize NetGear Fix to what the code was supposed to be.
  * 01-06-2005   Alf (Frederic Olivie) Add Dell bcm 5751 (0x1677) support
diff --git a/src/drivers/net/tg3.h b/src/drivers/net/tg3.h
index d1c09e0..a7762c3 100644
--- a/src/drivers/net/tg3.h
+++ b/src/drivers/net/tg3.h
@@ -5,6 +5,8 @@
  * Copyright (C) 2001 Jeff Garzik (jgarzik@mandrakesoft.com)
  */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 #ifndef _T3_H
 #define _T3_H
 
diff --git a/src/drivers/net/tlan.c b/src/drivers/net/tlan.c
index c0d027c..bc1b485 100644
--- a/src/drivers/net/tlan.c
+++ b/src/drivers/net/tlan.c
@@ -38,6 +38,8 @@
 *    Indent Options: indent -kr -i8
 ***************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include "etherboot.h"
 #include "nic.h"
 #include <gpxe/pci.h>
diff --git a/src/drivers/net/tlan.h b/src/drivers/net/tlan.h
index de57d59..61da5a0 100644
--- a/src/drivers/net/tlan.h
+++ b/src/drivers/net/tlan.h
@@ -34,6 +34,8 @@
 * Indent Style: indent -kr -i8
 ***************************************************************************/
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /*****************************************************************
 * TLan Definitions
 *
diff --git a/src/drivers/net/tulip.c b/src/drivers/net/tulip.c
index 553cded..e08e0d8 100644
--- a/src/drivers/net/tulip.c
+++ b/src/drivers/net/tulip.c
@@ -43,6 +43,8 @@
   ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/tulip-devel.html
 */
 
+FILE_LICENCE ( GPL_ANY );
+
 /*********************************************************************/
 /* Revision History                                                  */
 /*********************************************************************/
diff --git a/src/drivers/net/w89c840.c b/src/drivers/net/w89c840.c
index 5dc6c93..fa6188a 100644
--- a/src/drivers/net/w89c840.c
+++ b/src/drivers/net/w89c840.c
@@ -29,6 +29,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 /*
  *              date       version  by   what
  *  Written:    Aug 20 2000  V0.10  iko  Initial revision.
diff --git a/src/drivers/net/wlan_compat.h b/src/drivers/net/wlan_compat.h
index a4f75e3..9b7693b 100644
--- a/src/drivers/net/wlan_compat.h
+++ b/src/drivers/net/wlan_compat.h
@@ -45,6 +45,8 @@
 * --------------------------------------------------------------------
 */
 
+FILE_LICENCE ( GPL2_ONLY );
+
 #ifndef _WLAN_COMPAT_H
 #define _WLAN_COMPAT_H
 
diff --git a/src/drivers/nvs/nvs.c b/src/drivers/nvs/nvs.c
index 8e94b87..7252808 100644
--- a/src/drivers/nvs/nvs.c
+++ b/src/drivers/nvs/nvs.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stdint.h>
 #include <string.h>
 #include <errno.h>
diff --git a/src/drivers/nvs/spi.c b/src/drivers/nvs/spi.c
index dbdc32f..793080a 100644
--- a/src/drivers/nvs/spi.c
+++ b/src/drivers/nvs/spi.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stddef.h>
 #include <errno.h>
 #include <unistd.h>
diff --git a/src/drivers/nvs/threewire.c b/src/drivers/nvs/threewire.c
index dbecf90..f7a20bb 100644
--- a/src/drivers/nvs/threewire.c
+++ b/src/drivers/nvs/threewire.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stddef.h>
 #include <assert.h>
 #include <unistd.h>