xref: /openbmc/u-boot/fs/yaffs2/yaffs_error.c (revision ad5b5801)
1 /*
2  * YAFFS: Yet another FFS. A NAND-flash specific file system.
3  *
4  * Copyright (C) 2002-2011 Aleph One Ltd.
5  *   for Toby Churchill Ltd and Brightstar Engineering
6  *
7  * Created by Timothy Manning <timothy@yaffs.net>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License version 2 as
11  * published by the Free Software Foundation.
12  */
13 
14 #include "yaffsfs.h"
15 
16 struct error_entry {
17 	int code;
18 	const char *text;
19 };
20 
21 static const struct error_entry error_list[] = {
22 	{ ENOMEM , "ENOMEM" },
23 	{ EBUSY , "EBUSY"},
24 	{ ENODEV , "ENODEV"},
25 	{ EINVAL , "EINVAL"},
26 	{ EBADF , "EBADF"},
27 	{ EACCES , "EACCES"},
28 	{ EXDEV , "EXDEV" },
29 	{ ENOENT , "ENOENT"},
30 	{ ENOSPC , "ENOSPC"},
31 	{ ERANGE , "ERANGE"},
32 	{ ENODATA, "ENODATA"},
33 	{ ENOTEMPTY, "ENOTEMPTY"},
34 	{ ENAMETOOLONG, "ENAMETOOLONG"},
35 	{ ENOMEM , "ENOMEM"},
36 	{ EEXIST , "EEXIST"},
37 	{ ENOTDIR , "ENOTDIR"},
38 	{ EISDIR , "EISDIR"},
39 	{ ENFILE, "ENFILE"},
40 	{ EROFS, "EROFS"},
41 	{ EFAULT, "EFAULT"},
42 	{ 0, NULL }
43 };
44 
45 const char *yaffs_error_to_str(int err)
46 {
47 	const struct error_entry *e = error_list;
48 
49 	if (err < 0)
50 		err = -err;
51 
52 	while (e->code && e->text) {
53 		if (err == e->code)
54 			return e->text;
55 		e++;
56 	}
57 	return "Unknown error code";
58 }
59