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 );
* @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;
* @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;
* @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;