libpldm: Add decode API for CancelUpdate response

Update agent sends this command to FD/FDP to exit from update mode
even if activation is required to begin operating at the new firmware
level. FD/FDP will transition to IDLE state on CancelUpdate. This
implementation works with DSP0267_1.1.0, DSP0267_1.0.1 and
DSP0267_1.0.0.

Tested: Unit tests passed

Signed-off-by: gokulsanker <gokul.sanker.v.g@intel.com>
Change-Id: I302418f85dd0b870c4d3ace7e04fcc4b873f54a7
diff --git a/libpldm/pldm_types.h b/libpldm/pldm_types.h
index 5e7e068..3c5f086 100644
--- a/libpldm/pldm_types.h
+++ b/libpldm/pldm_types.h
@@ -90,6 +90,76 @@
 	} __attribute__((packed)) bits;
 } bitfield32_t;
 
+typedef union {
+	uint64_t value;
+	struct {
+		uint8_t bit0 : 1;
+		uint8_t bit1 : 1;
+		uint8_t bit2 : 1;
+		uint8_t bit3 : 1;
+		uint8_t bit4 : 1;
+		uint8_t bit5 : 1;
+		uint8_t bit6 : 1;
+		uint8_t bit7 : 1;
+		uint8_t bit8 : 1;
+		uint8_t bit9 : 1;
+		uint8_t bit10 : 1;
+		uint8_t bit11 : 1;
+		uint8_t bit12 : 1;
+		uint8_t bit13 : 1;
+		uint8_t bit14 : 1;
+		uint8_t bit15 : 1;
+		uint8_t bit16 : 1;
+		uint8_t bit17 : 1;
+		uint8_t bit18 : 1;
+		uint8_t bit19 : 1;
+		uint8_t bit20 : 1;
+		uint8_t bit21 : 1;
+		uint8_t bit22 : 1;
+		uint8_t bit23 : 1;
+		uint8_t bit24 : 1;
+		uint8_t bit25 : 1;
+		uint8_t bit26 : 1;
+		uint8_t bit27 : 1;
+		uint8_t bit28 : 1;
+		uint8_t bit29 : 1;
+		uint8_t bit30 : 1;
+		uint8_t bit31 : 1;
+		uint8_t bit32 : 1;
+		uint8_t bit33 : 1;
+		uint8_t bit34 : 1;
+		uint8_t bit35 : 1;
+		uint8_t bit36 : 1;
+		uint8_t bit37 : 1;
+		uint8_t bit38 : 1;
+		uint8_t bit39 : 1;
+		uint8_t bit40 : 1;
+		uint8_t bit41 : 1;
+		uint8_t bit42 : 1;
+		uint8_t bit43 : 1;
+		uint8_t bit44 : 1;
+		uint8_t bit45 : 1;
+		uint8_t bit46 : 1;
+		uint8_t bit47 : 1;
+		uint8_t bit48 : 1;
+		uint8_t bit49 : 1;
+		uint8_t bit50 : 1;
+		uint8_t bit51 : 1;
+		uint8_t bit52 : 1;
+		uint8_t bit53 : 1;
+		uint8_t bit54 : 1;
+		uint8_t bit55 : 1;
+		uint8_t bit56 : 1;
+		uint8_t bit57 : 1;
+		uint8_t bit58 : 1;
+		uint8_t bit59 : 1;
+		uint8_t bit60 : 1;
+		uint8_t bit61 : 1;
+		uint8_t bit62 : 1;
+		uint8_t bit63 : 1;
+	} __attribute__((packed)) bits;
+} bitfield64_t;
+
 typedef float real32_t;
 
 #endif /* PLDM_TYPES_H */