diff --git a/libpldmresponder/bios_table.hpp b/libpldmresponder/bios_table.hpp
index aab6f53..cb1873c 100644
--- a/libpldmresponder/bios_table.hpp
+++ b/libpldmresponder/bios_table.hpp
@@ -252,6 +252,31 @@
  */
 IntegerField decodeIntegerEntry(const pldm_bios_attr_table_entry* entry);
 
+/** @struct EnumField
+ *  @brief Enum field of attribute table
+ */
+struct EnumField
+{
+    std::vector<uint16_t> possibleValueStringHandle;
+    std::vector<uint8_t> defaultValueIndex;
+};
+
+/** @brief decode enum entry of attribute table
+ *  @param[in] entry - Pointer to an attribute table entry
+ *  @return Enum field of the entry
+ */
+EnumField decodeEnumEntry(const pldm_bios_attr_table_entry* entry);
+
+/** @brief construct enum entry of attribute table at the end of the
+ *         given table
+ *  @param[in,out] table - The given table
+ *  @param[in] info - enum info
+ *  @return pointer to the constructed entry
+ */
+const pldm_bios_attr_table_entry*
+    constructEnumEntry(Table& table,
+                       pldm_bios_table_attr_entry_enum_info* info);
+
 } // namespace attribute
 
 namespace attribute_value
@@ -284,6 +309,13 @@
  */
 uint64_t decodeIntegerEntry(const pldm_bios_attr_val_table_entry* entry);
 
+/** @brief Decode enum entry of attribute value table
+ *  @param[in] entry - Pointer to an attribute value table entry
+ *  @return Current value string handle indices
+ */
+std::vector<uint8_t>
+    decodeEnumEntry(const pldm_bios_attr_val_table_entry* entry);
+
 /** @brief Construct string entry of attribute value table at the end of the
  *         given table
  *  @param[in] table - The given table
@@ -309,6 +341,18 @@
                                                             uint8_t attrType,
                                                             uint64_t value);
 
+/** @brief Construct enum entry of attribute value table at the end of
+ *         the given table
+ *  @param[in] table - The given table
+ *  @param[in] attrHandle - attribute handle
+ *  @param[in] attrType - attribute type
+ *  @param[in] handleIndices -  handle indices
+ *  @return Pointer to the constructed entry
+ */
+const pldm_bios_attr_val_table_entry*
+    constructEnumEntry(Table& table, uint16_t attrHandle, uint8_t attrType,
+                       const std::vector<uint8_t>& handleIndices);
+
 /** @brief construct a table with an new entry
  *  @param[in] table - the table need to be updated
  *  @param[in] entry - the new attribute value entry
