TianoCore EDK2 master
|
Go to the source code of this file.
Variables | |
REDFISH_HTTP_CACHE_PRIVATE * | mRedfishHttpCachePrivate = NULL |
EDKII_REDFISH_HTTP_PROTOCOL | mEdkIIRedfishHttpProtocol |
RedfishHttpDxe produces EdkIIRedfishHttpProtocol for EDK2 Redfish Feature driver to do HTTP operations.
Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file RedfishHttpDxe.c.
This is a EDKII_REDFISH_CREDENTIAL_PROTOCOL notification event handler.
[in] | Event | Event whose notification function is being invoked. |
[in] | Context | Pointer to the notification function's context. |
Definition at line 1318 of file RedfishHttpDxe.c.
EFI_STATUS DebugPrintHttpCacheList | ( | IN CONST CHAR8 * | Msg, |
IN UINTN | ErrorLevel, | ||
IN REDFISH_HTTP_CACHE_LIST * | CacheList | ||
) |
Debug output the cache list.
[in] | Msg | Debug message string. |
[in] | ErrorLevel | Output error level. |
[in] | CacheList | Target list to dump. |
EFI_SUCCESS | Debug dump finished. |
EFI_INVALID_PARAMETER | HttpCacheList is NULL. |
Definition at line 29 of file RedfishHttpDxe.c.
CHAR8 * HttpMethodToString | ( | IN EFI_HTTP_METHOD | Method | ) |
Return HTTP method in ASCII string. Caller does not need to free returned string buffer.
[in] | Method | HTTP method. |
CHAR8 | * Method in string. |
Definition at line 204 of file RedfishHttpDxe.c.
REDFISH_SERVICE EFIAPI RedfishCreateRedfishService | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_CONFIG_SERVICE_INFORMATION * | RedfishConfigServiceInfo | ||
) |
This function create Redfish service. It's caller's responsibility to free returned Redfish service by calling FreeService ().
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | RedfishConfigServiceInfo | Redfish config service information. |
REDFISH_SERVICE | Redfish service is created. |
NULL | Errors occur. |
Definition at line 285 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishDeleteResource | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_SERVICE | Service, | ||
IN EFI_STRING | Uri, | ||
IN CHAR8 *Content | OPTIONAL, | ||
IN UINTN ContentSize | OPTIONAL, | ||
IN CHAR8 *ContentType | OPTIONAL, | ||
OUT REDFISH_RESPONSE * | Response | ||
) |
Perform HTTP DELETE to delete redfish resource on given resource URI. It's caller's responsibility to free Response by calling FreeResponse ().
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Service | Redfish service instance to perform HTTP DELETE. |
[in] | Uri | Target resource URI. |
[in] | Content | JSON represented properties to be deleted. This is optional. |
[in] | ContentSize | Size of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content if Content is not NULL. |
[in] | ContentType | Type of the Content to be send to Redfish service. This is optional. When Content is not NULL and ContentType is NULL, content type HTTP_CONTENT_TYPE_APP_JSON will be used. |
[out] | Response | HTTP response from redfish service. |
EFI_SUCCESS | Resource is returned successfully. |
Others | Errors occur. |
Definition at line 1163 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishExpireResponse | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN EFI_STRING | Uri | ||
) |
This function expire the cached response of given URI.
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Uri | Target response of URI. |
EFI_SUCCESS | Target response is expired successfully. |
Others | Errors occur. |
Definition at line 764 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishFreeRedfishService | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_SERVICE | RedfishService | ||
) |
This function free resources in Redfish service. RedfishService is no longer available after this function returns successfully.
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | RedfishService | Pointer to Redfish service to be released. |
EFI_SUCCESS | Resource is released successfully. |
Others | Errors occur. |
Definition at line 491 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishFreeRequest | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_REQUEST * | Request | ||
) |
This function free resources in Request. Request is no longer available after this function returns successfully.
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Request | HTTP request to be released. |
EFI_SUCCESS | Resource is released successfully. |
Others | Errors occur. |
Definition at line 712 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishFreeResponse | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_RESPONSE * | Response | ||
) |
This function free resources in given Response.
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Response | HTTP response to be released. |
EFI_SUCCESS | Resource is released successfully. |
Others | Errors occur. |
Definition at line 738 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishGetResource | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_SERVICE | Service, | ||
IN EFI_STRING | Uri, | ||
IN REDFISH_REQUEST *Request | OPTIONAL, | ||
OUT REDFISH_RESPONSE * | Response, | ||
IN BOOLEAN | UseCache | ||
) |
Perform HTTP GET to Get redfish resource from given resource URI with cache mechanism supported. It's caller's responsibility to free Response by calling FreeResponse ().
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Service | Redfish service instance to perform HTTP GET. |
[in] | Uri | Target resource URI. |
[in] | Request | Additional request context. This is optional. |
[out] | Response | HTTP response from redfish service. |
[in] | UseCache | If it is TRUE, this function will search for cache first. If it is FALSE, this function will query Redfish URI directly. |
EFI_SUCCESS | Resource is returned successfully. |
Others | Errors occur. |
Definition at line 579 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishHttpDriverUnload | ( | IN EFI_HANDLE | ImageHandle | ) |
Unloads an image.
[in] | ImageHandle | Handle that identifies the image to be unloaded. |
EFI_SUCCESS | The image has been unloaded. |
EFI_INVALID_PARAMETER | ImageHandle is not a valid image handle. |
Definition at line 1284 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishHttpEntryPoint | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
Main entry for this driver.
[in] | ImageHandle | Image handle this driver. |
[in] | SystemTable | Pointer to SystemTable. |
EFI_SUCCESS | This function always complete successfully. |
Definition at line 1358 of file RedfishHttpDxe.c.
EDKII_JSON_VALUE EFIAPI RedfishJsonInRedfishPayload | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_PAYLOAD | RedfishPayload | ||
) |
This function returns JSON value in given RedfishPayload. Returned JSON value is a reference to the JSON value in RedfishPayload. Any modification to returned JSON value will change JSON value in RedfishPayload.
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | RedfishPayload | Pointer to Redfish payload. |
EDKII_JSON_VALUE | JSON value is returned. |
NULL | Errors occur. |
Definition at line 540 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishPatchResource | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_SERVICE | Service, | ||
IN EFI_STRING | Uri, | ||
IN CHAR8 * | Content, | ||
IN UINTN ContentSize | OPTIONAL, | ||
IN CHAR8 *ContentType | OPTIONAL, | ||
OUT REDFISH_RESPONSE * | Response | ||
) |
Perform HTTP PATCH to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling FreeResponse ().
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Service | Redfish service instance to perform HTTP PATCH. |
[in] | Uri | Target resource URI. |
[in] | Content | Data to patch. |
[in] | ContentSize | Size of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content. |
[in] | ContentType | Type of the Content to be send to Redfish service. This is optional. When ContentType is NULL, content type HTTP_CONTENT_TYPE_APP_JSON will be used. |
[out] | Response | HTTP response from redfish service. |
EFI_SUCCESS | Resource is returned successfully. |
Others | Errors occur. |
Definition at line 810 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishPostResource | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_SERVICE | Service, | ||
IN EFI_STRING | Uri, | ||
IN CHAR8 * | Content, | ||
IN UINTN ContentSize | OPTIONAL, | ||
IN CHAR8 *ContentType | OPTIONAL, | ||
OUT REDFISH_RESPONSE * | Response | ||
) |
Perform HTTP POST to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling FreeResponse ().
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Service | Redfish service instance to perform HTTP POST. |
[in] | Uri | Target resource URI. |
[in] | Content | Data to post. |
[in] | ContentSize | Size of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content. |
[in] | ContentType | Type of the Content to be send to Redfish service. This is optional. When ContentType is NULL, content type HTTP_CONTENT_TYPE_APP_JSON will be used. |
[out] | Response | HTTP response from redfish service. |
EFI_SUCCESS | Resource is returned successfully. |
Others | Errors occur. |
Definition at line 1044 of file RedfishHttpDxe.c.
EFI_STATUS EFIAPI RedfishPutResource | ( | IN EDKII_REDFISH_HTTP_PROTOCOL * | This, |
IN REDFISH_SERVICE | Service, | ||
IN EFI_STRING | Uri, | ||
IN CHAR8 * | Content, | ||
IN UINTN ContentSize | OPTIONAL, | ||
IN CHAR8 *ContentType | OPTIONAL, | ||
OUT REDFISH_RESPONSE * | Response | ||
) |
Perform HTTP PUT to send redfish resource to given resource URI. It's caller's responsibility to free Response by calling FreeResponse ().
[in] | This | Pointer to EDKII_REDFISH_HTTP_PROTOCOL instance. |
[in] | Service | Redfish service instance to perform HTTP PUT. |
[in] | Uri | Target resource URI. |
[in] | Content | Data to put. |
[in] | ContentSize | Size of the Content to be send to Redfish service. This is optional. When ContentSize is 0, ContentSize is the size of Content. |
[in] | ContentType | Type of the Content to be send to Redfish service. This is optional. When ContentType is NULL, content type HTTP_CONTENT_TYPE_APP_JSON will be used. |
[out] | Response | HTTP response from redfish service. |
EFI_SUCCESS | Resource is returned successfully. |
Others | Errors occur. |
Definition at line 927 of file RedfishHttpDxe.c.
BOOLEAN RedfishRetryRequired | ( | IN EFI_HTTP_STATUS_CODE * | StatusCode | ) |
Check HTTP status code to see if we like to retry HTTP request or not.
[in] | StatusCode | HTTP status code. |
BOOLEAN | Return true when we like to retry request. Return false when we don't want to retry request. |
Definition at line 78 of file RedfishHttpDxe.c.
BOOLEAN RedfishSuccessResponse | ( | IN EFI_HTTP_METHOD | Method, |
IN EFI_HTTP_STATUS_CODE * | StatusCode | ||
) |
This function follows below sections in Redfish specification to check HTTP status code and see if this is success response or not.
7.5.2 Modification success responses 7.11 POST (action)
[in] | Method | HTTP method of this status code. |
[in] | StatusCode | HTTP status code. |
BOOLEAN | Return true when this is success response. Return false when this is not success response. |
Definition at line 111 of file RedfishHttpDxe.c.
VOID ReportHttpError | ( | IN EFI_HTTP_METHOD | Method, |
IN EFI_STRING | Uri, | ||
IN EFI_HTTP_STATUS_CODE *HttpStatusCode | OPTIONAL | ||
) |
Report HTTP communication error via report status code.
[in] | Method | HTTP method. |
[in] | Uri | The URI which has failure. |
[in] | HttpStatusCode | HTTP status code. |
Definition at line 240 of file RedfishHttpDxe.c.
CHAR8 * StringUnicodeToAscii | ( | IN EFI_STRING | UnicodeStr | ) |
Convert Unicode string to ASCII string. It's call responsibility to release returned buffer.
[in] | UnicodeStr | Unicode string to convert. |
CHAR8 | * ASCII string returned. |
NULL | Errors occur. |
Definition at line 167 of file RedfishHttpDxe.c.
EDKII_REDFISH_HTTP_PROTOCOL mEdkIIRedfishHttpProtocol |
Definition at line 1258 of file RedfishHttpDxe.c.
REDFISH_HTTP_CACHE_PRIVATE* mRedfishHttpCachePrivate = NULL |
Definition at line 15 of file RedfishHttpDxe.c.