From 961c08f29c2e0db5c9db078ec6049d532c9e3496 Mon Sep 17 00:00:00 2001 From: Christophe Lombard Date: Tue, 29 Aug 2023 11:24:00 +0200 Subject: core/pldm: Find PDR record by record handle Add a wrapper for the libpldm api: pldm_pdr_find_record() Signed-off-by: Christophe Lombard Signed-off-by: Reza Arbab --- core/pldm/pldm-platform-requests.c | 25 +++++++++++++++++++++++++ core/pldm/pldm.h | 4 ++++ 2 files changed, 29 insertions(+) (limited to 'core') diff --git a/core/pldm/pldm-platform-requests.c b/core/pldm/pldm-platform-requests.c index 568ed23..eeb2028 100644 --- a/core/pldm/pldm-platform-requests.c +++ b/core/pldm/pldm-platform-requests.c @@ -45,6 +45,31 @@ static void pdr_init_complete(bool success) } /* + * Find PDR record by record handle. + */ +int pldm_platform_pdr_find_record(uint32_t record_handle, + uint8_t **pdr_data, + uint32_t *pdr_data_size, + uint32_t *next_record_handle) +{ + const pldm_pdr_record *pdr_record; + + if (!pdr_ready) + return OPAL_HARDWARE; + + pdr_record = pldm_pdr_find_record(pdrs_repo, + record_handle, + pdr_data, + pdr_data_size, + next_record_handle); + + if (!pdr_record) + return OPAL_PARAMETER; + + return OPAL_SUCCESS; +} + +/* * Search the matching record and return the effecter id. * PDR type = PLDM_STATE_EFFECTER_PDR */ diff --git a/core/pldm/pldm.h b/core/pldm/pldm.h index f4e1617..ee4d493 100644 --- a/core/pldm/pldm.h +++ b/core/pldm/pldm.h @@ -78,6 +78,10 @@ int pldm_platform_reload_pdrs(void); int pldm_platform_init(void); void pldm_platform_exit(void); +int pldm_platform_pdr_find_record(uint32_t record_handle, + uint8_t **pdr_data, + uint32_t *pdr_data_size, + uint32_t *next_record_handle); int pldm_requester_handle_response(struct pldm_rx_data *rx); int pldm_requester_queue(struct pldm_tx_data *tx, void (*complete)(struct pldm_rx_data *rx, void *data), -- cgit v1.1