bios_table: Remove deprecated APIs sanitized by assert()
pldmd has now been reworked to remove its use of the unchecked APIs[1].
[1]: https://gerrit.openbmc.org/c/openbmc/pldm/+/64181
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I04101c4e5f3408e27130dc7aa960f013eba3e0a3
diff --git a/src/bios_table.c b/src/bios_table.c
index 9a64e57..2fe75b2 100644
--- a/src/bios_table.c
+++ b/src/bios_table.c
@@ -51,18 +51,6 @@
MEMBER_SIZE(pldm_bios_string_table_entry, name) + string_length;
}
-LIBPLDM_ABI_DEPRECATED
-void pldm_bios_table_string_entry_encode(void *entry, size_t entry_length,
- const char *str, uint16_t str_length)
-{
- size_t length = pldm_bios_table_string_entry_encode_length(str_length);
- assert(length <= entry_length);
- struct pldm_bios_string_table_entry *string_entry = entry;
- string_entry->string_handle = htole16(get_bios_string_handle());
- string_entry->string_length = htole16(str_length);
- memcpy(string_entry->name, str, str_length);
-}
-
LIBPLDM_ABI_STABLE
int pldm_bios_table_string_entry_encode_check(void *entry, size_t entry_length,
const char *str,
@@ -75,8 +63,10 @@
POINTER_CHECK(str);
size_t length = pldm_bios_table_string_entry_encode_length(str_length);
BUFFER_SIZE_EXPECT(entry_length, length);
- pldm_bios_table_string_entry_encode(entry, entry_length, str,
- str_length);
+ struct pldm_bios_string_table_entry *string_entry = entry;
+ string_entry->string_handle = htole16(get_bios_string_handle());
+ string_entry->string_length = htole16(str_length);
+ memcpy(string_entry->name, str, str_length);
return PLDM_SUCCESS;
}
@@ -94,19 +84,6 @@
return le16toh(entry->string_length);
}
-LIBPLDM_ABI_DEPRECATED
-uint16_t pldm_bios_table_string_entry_decode_string(
- const struct pldm_bios_string_table_entry *entry, char *buffer,
- size_t size)
-{
- uint16_t length =
- pldm_bios_table_string_entry_decode_string_length(entry);
- length = length < (size - 1) ? length : (size - 1);
- memcpy(buffer, entry->name, length);
- buffer[length] = 0;
- return length;
-}
-
LIBPLDM_ABI_STABLE
int pldm_bios_table_string_entry_decode_string_check(
const struct pldm_bios_string_table_entry *entry, char *buffer,
@@ -117,7 +94,11 @@
if (size == 0) {
return PLDM_ERROR_INVALID_LENGTH;
}
- pldm_bios_table_string_entry_decode_string(entry, buffer, size);
+ size_t length =
+ pldm_bios_table_string_entry_decode_string_length(entry);
+ length = length < (size - 1) ? length : (size - 1);
+ memcpy(buffer, entry->name, length);
+ buffer[length] = 0;
return PLDM_SUCCESS;
}
@@ -178,13 +159,16 @@
def_num;
}
-LIBPLDM_ABI_DEPRECATED
-void pldm_bios_table_attr_entry_enum_encode(
+LIBPLDM_ABI_STABLE
+int pldm_bios_table_attr_entry_enum_encode_check(
void *entry, size_t entry_length,
const struct pldm_bios_table_attr_entry_enum_info *info)
{
+ POINTER_CHECK(entry);
+ POINTER_CHECK(info);
size_t length = pldm_bios_table_attr_entry_enum_encode_length(
info->pv_num, info->def_num);
+ BUFFER_SIZE_EXPECT(entry_length, length);
assert(length <= entry_length);
uint8_t attr_type = info->read_only ? PLDM_BIOS_ENUMERATION_READ_ONLY :
PLDM_BIOS_ENUMERATION;
@@ -203,19 +187,6 @@
memcpy(attr_entry->metadata + 1 /* sizeof(pv num) */ +
info->pv_num * sizeof(uint16_t) + 1 /* sizeof(def num)*/,
info->def_index, info->def_num);
-}
-
-LIBPLDM_ABI_STABLE
-int pldm_bios_table_attr_entry_enum_encode_check(
- void *entry, size_t entry_length,
- const struct pldm_bios_table_attr_entry_enum_info *info)
-{
- POINTER_CHECK(entry);
- POINTER_CHECK(info);
- size_t length = pldm_bios_table_attr_entry_enum_encode_length(
- info->pv_num, info->def_num);
- BUFFER_SIZE_EXPECT(entry_length, length);
- pldm_bios_table_attr_entry_enum_encode(entry, entry_length, info);
return PLDM_SUCCESS;
}
@@ -225,13 +196,6 @@
return PLDM_ERROR_INVALID_DATA; \
} while (0)
-LIBPLDM_ABI_DEPRECATED
-uint8_t pldm_bios_table_attr_entry_enum_decode_pv_num(
- const struct pldm_bios_attr_table_entry *entry)
-{
- return entry->metadata[0];
-}
-
LIBPLDM_ABI_STABLE
int pldm_bios_table_attr_entry_enum_decode_pv_num_check(
const struct pldm_bios_attr_table_entry *entry, uint8_t *pv_num)
@@ -239,15 +203,14 @@
POINTER_CHECK(entry);
POINTER_CHECK(pv_num);
ATTR_TYPE_EXPECT(entry->attr_type, PLDM_BIOS_ENUMERATION);
- *pv_num = pldm_bios_table_attr_entry_enum_decode_pv_num(entry);
+ *pv_num = entry->metadata[0];
return PLDM_SUCCESS;
}
-LIBPLDM_ABI_DEPRECATED
-uint8_t pldm_bios_table_attr_entry_enum_decode_def_num(
+static uint8_t pldm_bios_table_attr_entry_enum_decode_def_num(
const struct pldm_bios_attr_table_entry *entry)
{
- uint8_t pv_num = pldm_bios_table_attr_entry_enum_decode_pv_num(entry);
+ uint8_t pv_num = entry->metadata[0];
return entry->metadata[sizeof(uint8_t) /* pv_num */ +
sizeof(uint16_t) * pv_num];
}
@@ -263,22 +226,6 @@
return PLDM_SUCCESS;
}
-LIBPLDM_ABI_DEPRECATED
-uint8_t pldm_bios_table_attr_entry_enum_decode_pv_hdls(
- const struct pldm_bios_attr_table_entry *entry, uint16_t *pv_hdls,
- uint8_t pv_num)
-{
- uint8_t num = pldm_bios_table_attr_entry_enum_decode_pv_num(entry);
- num = num < pv_num ? num : pv_num;
- size_t i;
- for (i = 0; i < num; i++) {
- uint16_t *hdl = (uint16_t *)(entry->metadata + sizeof(uint8_t) +
- i * sizeof(uint16_t));
- pv_hdls[i] = le16toh(*hdl);
- }
- return num;
-}
-
LIBPLDM_ABI_STABLE
int pldm_bios_table_attr_entry_enum_decode_pv_hdls_check(
const struct pldm_bios_attr_table_entry *entry, uint16_t *pv_hdls,
@@ -287,7 +234,14 @@
POINTER_CHECK(entry);
POINTER_CHECK(pv_hdls);
ATTR_TYPE_EXPECT(entry->attr_type, PLDM_BIOS_ENUMERATION);
- pldm_bios_table_attr_entry_enum_decode_pv_hdls(entry, pv_hdls, pv_num);
+ uint8_t num = entry->metadata[0];
+ num = num < pv_num ? num : pv_num;
+ size_t i;
+ for (i = 0; i < num; i++) {
+ uint16_t *hdl = (uint16_t *)(entry->metadata + sizeof(uint8_t) +
+ i * sizeof(uint16_t));
+ pv_hdls[i] = le16toh(*hdl);
+ }
return PLDM_SUCCESS;
}
@@ -298,7 +252,7 @@
{
uint8_t num = pldm_bios_table_attr_entry_enum_decode_def_num(entry);
num = num < def_num ? num : def_num;
- uint8_t pv_num = pldm_bios_table_attr_entry_enum_decode_pv_num(entry);
+ uint8_t pv_num = entry->metadata[0];
const uint8_t *p = entry->metadata +
sizeof(uint8_t) /* number of possible values*/
+ pv_num * sizeof(uint16_t) /* possible values */
@@ -309,9 +263,10 @@
/** @brief Get length of an enum attribute entry
*/
-static size_t attr_table_entry_length_enum(const void *entry)
+static size_t attr_table_entry_length_enum(const void *arg)
{
- uint8_t pv_num = pldm_bios_table_attr_entry_enum_decode_pv_num(entry);
+ const struct pldm_bios_attr_table_entry *entry = arg;
+ uint8_t pv_num = entry->metadata[0];
uint8_t def_num = pldm_bios_table_attr_entry_enum_decode_def_num(entry);
return pldm_bios_table_attr_entry_enum_encode_length(pv_num, def_num);
}
@@ -334,31 +289,6 @@
def_str_len;
}
-LIBPLDM_ABI_DEPRECATED
-void pldm_bios_table_attr_entry_string_encode(
- void *entry, size_t entry_length,
- const struct pldm_bios_table_attr_entry_string_info *info)
-{
- size_t length = pldm_bios_table_attr_entry_string_encode_length(
- info->def_length);
- assert(length <= entry_length);
- uint8_t attr_type = info->read_only ? PLDM_BIOS_STRING_READ_ONLY :
- PLDM_BIOS_STRING;
- attr_table_entry_encode_header(entry, entry_length, attr_type,
- info->name_handle);
- struct pldm_bios_attr_table_entry *attr_entry = entry;
- struct attr_table_string_entry_fields *attr_fields =
- (struct attr_table_string_entry_fields *)attr_entry->metadata;
- attr_fields->string_type = info->string_type;
- attr_fields->min_length = htole16(info->min_length);
- attr_fields->max_length = htole16(info->max_length);
- attr_fields->def_length = htole16(info->def_length);
- if (info->def_length != 0 && info->def_string != NULL) {
- memcpy(attr_fields->def_string, info->def_string,
- info->def_length);
- }
-}
-
#define PLDM_STRING_TYPE_MAX 5
#define PLDM_STRING_TYPE_VENDOR 0xff
@@ -410,12 +340,25 @@
PLDM_SUCCESS) {
return PLDM_ERROR_INVALID_DATA;
}
- pldm_bios_table_attr_entry_string_encode(entry, entry_length, info);
+ uint8_t attr_type = info->read_only ? PLDM_BIOS_STRING_READ_ONLY :
+ PLDM_BIOS_STRING;
+ attr_table_entry_encode_header(entry, entry_length, attr_type,
+ info->name_handle);
+ struct pldm_bios_attr_table_entry *attr_entry = entry;
+ struct attr_table_string_entry_fields *attr_fields =
+ (struct attr_table_string_entry_fields *)attr_entry->metadata;
+ attr_fields->string_type = info->string_type;
+ attr_fields->min_length = htole16(info->min_length);
+ attr_fields->max_length = htole16(info->max_length);
+ attr_fields->def_length = htole16(info->def_length);
+ if (info->def_length != 0 && info->def_string != NULL) {
+ memcpy(attr_fields->def_string, info->def_string,
+ info->def_length);
+ }
return PLDM_SUCCESS;
}
-LIBPLDM_ABI_DEPRECATED
-uint16_t pldm_bios_table_attr_entry_string_decode_def_string_length(
+static uint16_t pldm_bios_table_attr_entry_string_decode_def_string_length(
const struct pldm_bios_attr_table_entry *entry)
{
struct attr_table_string_entry_fields *fields =