Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Nov 2006 19:45:07 GMT
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 108939 for review
Message-ID:  <200611011945.kA1Jj7pr019743@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=108939

Change 108939 by marcel@marcel_cluster on 2006/11/01 19:44:13

	Export efi_status_to_errno(). It's too useful to leep it
	as a static function in efifs.c.

Affected files ...

.. //depot/projects/ia64/sys/boot/efi/include/efilib.h#8 edit
.. //depot/projects/ia64/sys/boot/efi/libefi/Makefile#14 edit
.. //depot/projects/ia64/sys/boot/efi/libefi/efifs.c#14 edit
.. //depot/projects/ia64/sys/boot/efi/libefi/errno.c#1 add

Differences ...

==== //depot/projects/ia64/sys/boot/efi/include/efilib.h#8 (text+ko) ====

@@ -37,14 +37,14 @@
 extern struct devsw efifs_dev;
 extern struct fs_ops efifs_fsops;
 
+extern struct devsw efinet_dev;
 extern struct netif_driver efinetif;
 
 void *efi_get_table(EFI_GUID *tbl);
 void efi_main(EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *system_table);
 
+int efi_status_to_errno(EFI_STATUS);
 time_t efi_time(EFI_TIME *);
 
-EFI_PHYSICAL_ADDRESS efimd_va2pa(EFI_VIRTUAL_ADDRESS);
-
 EFI_STATUS main(int argc, CHAR16 *argv[]);
 void exit(EFI_STATUS status);

==== //depot/projects/ia64/sys/boot/efi/libefi/Makefile#14 (text+ko) ====

@@ -3,7 +3,7 @@
 LIB=	efi
 INTERNALLIB=
 
-SRCS=	delay.c efi_console.c efifs.c efinet.c libefi.c module.c time.c
+SRCS=	delay.c efi_console.c efifs.c efinet.c errno.c libefi.c module.c time.c
 
 CFLAGS+= -I${.CURDIR}/../include
 CFLAGS+= -I${.CURDIR}/../include/${MACHINE_ARCH:S/amd64/i386/}

==== //depot/projects/ia64/sys/boot/efi/libefi/efifs.c#14 (text+ko) ====

@@ -55,27 +55,6 @@
 static int fs_handle_count;
 
 static int
-status_to_errno(EFI_STATUS status)
-{
-
-	switch (status) {
-	case EFI_ACCESS_DENIED:		return (EPERM);
-	case EFI_BUFFER_TOO_SMALL:	return (EOVERFLOW);
-	case EFI_DEVICE_ERROR:		return (EIO);
-	case EFI_INVALID_PARAMETER:	return (EINVAL);
-	case EFI_MEDIA_CHANGED:		return (ESTALE);
-	case EFI_NO_MEDIA:		return (ENXIO);
-	case EFI_NOT_FOUND:		return (ENOENT);
-	case EFI_OUT_OF_RESOURCES:	return (ENOMEM);
-	case EFI_UNSUPPORTED:		return (ENODEV);
-	case EFI_VOLUME_CORRUPTED:	return (EIO);
-	case EFI_VOLUME_FULL:		return (ENOSPC);
-	case EFI_WRITE_PROTECTED:	return (EACCES);
-	}
-	return (EDOOFUS);
-}
-
-static int
 efifs_open(const char *upath, struct open_file *f)
 {
 	struct devdesc *dev = f->f_devdata;
@@ -91,12 +70,12 @@
 	status = BS->HandleProtocol(fs_handles[dev->d_unit], &sfs_guid,
 	    (VOID **)&fsif);
 	if (EFI_ERROR(status))
-		return (status_to_errno(status));
+		return (efi_status_to_errno(status));
 
 	/* Get the root directory. */
 	status = fsif->OpenVolume(fsif, &root);
 	if (EFI_ERROR(status))
-		return (status_to_errno(status));
+		return (efi_status_to_errno(status));
 
 	while (*upath == '/')
 		upath++;
@@ -134,7 +113,7 @@
 	free(path);
 	root->Close(root);
 	if (EFI_ERROR(status))
-		return (status_to_errno(status));
+		return (efi_status_to_errno(status));
 
 	f->f_fsdata = file;
 	return (0);
@@ -171,7 +150,7 @@
 			sz = EFI_BLOCK_SIZE;
 		status = file->Read(file, &sz, bufp);
 		if (EFI_ERROR(status))
-			return (status_to_errno(status));
+			return (efi_status_to_errno(status));
 		if (sz == 0)
 			break;
 		size -= sz;
@@ -200,7 +179,7 @@
 			sz = EFI_BLOCK_SIZE;
 		status = file->Write(file, &sz, bufp);
 		if (EFI_ERROR(status))
-			return (status_to_errno(status));
+			return (efi_status_to_errno(status));
 		if (sz == 0)
 			break;
 		size -= sz;
@@ -264,7 +243,7 @@
 	sz = sizeof(fi);
 	status = file->GetInfo(file, &fi_guid, &sz, &fi);
 	if (EFI_ERROR(status))
-		return (status_to_errno(status));
+		return (efi_status_to_errno(status));
 
 	sb->st_mode = S_IRUSR | S_IRGRP | S_IROTH;
 	if ((fi.info.Attribute & EFI_FILE_READ_ONLY) == 0)
@@ -299,7 +278,7 @@
 	sz = sizeof(fi);
 	status = file->Read(file, &sz, &fi);
 	if (EFI_ERROR(status))
-		return (status_to_errno(status));
+		return (efi_status_to_errno(status));
 	if (sz == 0)
 		return (ENOENT);
 
@@ -356,7 +335,7 @@
 		}
 	}
 	if (EFI_ERROR(status))
-		return (status_to_errno(status));
+		return (efi_status_to_errno(status));
 	fs_handle_count = sz / sizeof(EFI_HANDLE);
 	return (0);
 }
@@ -413,7 +392,7 @@
 
 	err:
 		sprintf(line, "[--] error %d: unable to obtain information\n",
-		    status_to_errno(status));
+		    efi_status_to_errno(status));
 		pager_output(line);
 	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611011945.kA1Jj7pr019743>