Encode header version in api versions

Change-Id: I0216bef3ba0cfaed2fe908f735e546d0734c0b13
diff --git a/include/hardware/hardware.h b/include/hardware/hardware.h
index 78c4572..416ae39 100644
--- a/include/hardware/hardware.h
+++ b/include/hardware/hardware.h
@@ -37,6 +37,12 @@
 #define HARDWARE_MAKE_API_VERSION(maj,min) \
             ((((maj) & 0xff) << 8) | ((min) & 0xff))
 
+#define HARDWARE_MAKE_API_VERSION_2(maj,min,hdr) \
+            ((((maj) & 0xff) << 24) | (((min) & 0xff) << 16) | ((hdr) & 0xffff))
+#define HARDWARE_API_VERSION_2_MAJ_MIN_MASK 0xffff0000
+#define HARDWARE_API_VERSION_2_HEADER_MASK  0x0000ffff
+
+
 /*
  * The current HAL API version.
  *
@@ -60,11 +66,13 @@
  * Use this macro to set the hw_module_t.module_api_version field.
  */
 #define HARDWARE_MODULE_API_VERSION(maj,min) HARDWARE_MAKE_API_VERSION(maj,min)
+#define HARDWARE_MODULE_API_VERSION_2(maj,min,hdr) HARDWARE_MAKE_API_VERSION_2(maj,min,hdr)
 
 /*
  * Use this macro to set the hw_device_t.version field
  */
 #define HARDWARE_DEVICE_API_VERSION(maj,min) HARDWARE_MAKE_API_VERSION(maj,min)
+#define HARDWARE_DEVICE_API_VERSION_2(maj,min,hdr) HARDWARE_MAKE_API_VERSION_2(maj,min,hdr)
 
 struct hw_module_t;
 struct hw_module_methods_t;