X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=direct%2Fyaffs_error.c;fp=direct%2Fyaffs_error.c;h=6757eec83cc3a352233e974e0d44841c9bff12e0;hb=84f122f301b6a27295641fcbde3a6fbcfea78a99;hp=0000000000000000000000000000000000000000;hpb=73a3c763b22ab4e330dfea929e5df5c7c6c42432;p=yaffs2.git diff --git a/direct/yaffs_error.c b/direct/yaffs_error.c new file mode 100644 index 0000000..6757eec --- /dev/null +++ b/direct/yaffs_error.c @@ -0,0 +1,58 @@ +/* + * YAFFS: Yet another FFS. A NAND-flash specific file system. + * + * Copyright (C) 2002-2010 Aleph One Ltd. + * for Toby Churchill Ltd and Brightstar Engineering + * + * Created by Timothy Manning + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include "yaffsfs.h" + +struct error_entry { + int code; + char * text; +}; + +static const struct error_entry error_list[] = { + { ENOMEM , "ENOMEM" }, + { EBUSY , "EBUSY"}, + { ENODEV , "ENODEV"}, + { EINVAL , "EINVAL"}, + { EBADF , "EBADF"}, + { EACCES , "EACCES"}, + { EXDEV , "EXDEV" }, + { ENOENT , "ENOENT"}, + { ENOSPC , "ENOSPC"}, + { ERANGE , "ERANGE"}, + { ENODATA, "ENODATA"}, + { ENOTEMPTY, "ENOTEMPTY"}, + { ENAMETOOLONG,"ENAMETOOLONG"}, + { ENOMEM , "ENOMEM"}, + { EEXIST , "EEXIST"}, + { ENOTDIR , "ENOTDIR"}, + { EISDIR , "EISDIR"}, + { ENFILE, "ENFILE"}, + { EROFS, "EROFS"}, + { EFAULT, "EFAULT"}, + { 0, NULL } +}; + +const char * yaffs_error_to_str(int err) +{ + const struct error_entry *e = error_list; + + if (err < 0) + err = -err; + + while(e->code && e->text){ + if(err == e->code) + return e->text; + e++; + } + return "Unknown error code"; +}