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