diff --git a/src/include/ipxe/efi/efi.h b/src/include/ipxe/efi/efi.h index 57c9f01c..f3f1d1ac 100644 --- a/src/include/ipxe/efi/efi.h +++ b/src/include/ipxe/efi/efi.h @@ -200,9 +200,11 @@ extern EFI_LOADED_IMAGE_PROTOCOL *efi_loaded_image; extern EFI_DEVICE_PATH_PROTOCOL *efi_loaded_image_path; extern EFI_SYSTEM_TABLE *efi_systab; -extern const char * efi_guid_ntoa ( EFI_GUID *guid ); -extern const char * efi_devpath_text ( EFI_DEVICE_PATH_PROTOCOL *path ); -extern const char * efi_handle_name ( EFI_HANDLE handle ); +extern const __attribute__ (( pure )) char * efi_guid_ntoa ( EFI_GUID *guid ); +extern const __attribute__ (( pure )) char * +efi_devpath_text ( EFI_DEVICE_PATH_PROTOCOL *path ); +extern const __attribute__ (( pure )) char * +efi_handle_name ( EFI_HANDLE handle ); extern void dbg_efi_openers ( EFI_HANDLE handle, EFI_GUID *protocol ); extern void dbg_efi_protocols ( EFI_HANDLE handle ); diff --git a/src/interface/efi/efi_debug.c b/src/interface/efi/efi_debug.c index 7cfaabfd..607e628f 100644 --- a/src/interface/efi/efi_debug.c +++ b/src/interface/efi/efi_debug.c @@ -162,7 +162,7 @@ static struct efi_well_known_guid efi_well_known_guids[] = { * @v guid GUID * @ret string Printable string */ -const char * efi_guid_ntoa ( EFI_GUID *guid ) { +const __attribute__ (( pure )) char * efi_guid_ntoa ( EFI_GUID *guid ) { union { union uuid uuid; EFI_GUID guid; @@ -314,7 +314,8 @@ void dbg_efi_protocols ( EFI_HANDLE handle ) { * @v path Device path * @ret text Textual representation of device path, or NULL */ -const char * efi_devpath_text ( EFI_DEVICE_PATH_PROTOCOL *path ) { +const __attribute__ (( pure )) char * +efi_devpath_text ( EFI_DEVICE_PATH_PROTOCOL *path ) { EFI_BOOT_SERVICES *bs = efi_systab->BootServices; static char text[256]; void *start; @@ -627,7 +628,7 @@ static struct efi_handle_name_type efi_handle_name_types[] = { * @v handle EFI handle * @ret text Name of handle, or NULL */ -const char * efi_handle_name ( EFI_HANDLE handle ) { +const __attribute__ (( pure )) char * efi_handle_name ( EFI_HANDLE handle ) { EFI_BOOT_SERVICES *bs = efi_systab->BootServices; struct efi_handle_name_type *type; unsigned int i;