Merge tag 'stable/for-linus-3.7-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / include / acpi / actbl1.h
index 300d14e7c5d5e76ae24b3e4d77d279769f5a48aa..280fc45b59dde399ca5c646c9dae553b3aa16591 100644 (file)
 #pragma pack(1)
 
 /*
- * Note about bitfields: The u8 type is used for bitfields in ACPI tables.
- * This is the only type that is even remotely portable. Anything else is not
- * portable, so do not use any other bitfield types.
+ * Note: C bitfields are not used for this reason:
+ *
+ * "Bitfields are great and easy to read, but unfortunately the C language
+ * does not specify the layout of bitfields in memory, which means they are
+ * essentially useless for dealing with packed data in on-disk formats or
+ * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me,
+ * this decision was a design error in C. Ritchie could have picked an order
+ * and stuck with it." Norman Ramsey.
+ * See http://stackoverflow.com/a/1053662/41661
  */
 
 /*******************************************************************************
@@ -489,7 +495,9 @@ enum acpi_hest_notify_types {
        ACPI_HEST_NOTIFY_LOCAL = 2,
        ACPI_HEST_NOTIFY_SCI = 3,
        ACPI_HEST_NOTIFY_NMI = 4,
-       ACPI_HEST_NOTIFY_RESERVED = 5   /* 5 and greater are reserved */
+       ACPI_HEST_NOTIFY_CMCI = 5,      /* ACPI 5.0 */
+       ACPI_HEST_NOTIFY_MCE = 6,       /* ACPI 5.0 */
+       ACPI_HEST_NOTIFY_RESERVED = 7   /* 7 and greater are reserved */
 };
 
 /* Values for config_write_enable bitfield above */