2 * YAFFS: Yet another FFS. A NAND-flash specific file system.
4 * Copyright (C) 2002-2010 Aleph One Ltd.
5 * for Toby Churchill Ltd and Brightstar Engineering
7 * Created by Timothy Manning <timothy@yaffs.net>
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.
15 * error_handler.c contains code for checking yaffs function calls for errors.
17 #include "error_handler.h"
20 typedef struct error_codes_template {
25 const error_entry error_list[] = {
26 { ENOMEM , "ENOMEM" },
36 { ENODATA, "ENODATA"},
37 { ENOTEMPTY, "ENOTEMPTY"},
38 { ENAMETOOLONG,"ENAMETOOLONG"},
41 { ENOTDIR , "ENOTDIR"},
46 const char * error_to_str(int err)
48 error_entry *e = error_list;
51 while(e->code && e->text){
56 return "Unknown error code";
59 void yaffs_check_for_errors(char output, buffer *message_buffer,char error_message[],char success_message[]){
66 add_to_buffer(message_buffer, "\nerror##########",MESSAGE_LEVEL_ERROR,PRINT);
67 add_to_buffer(message_buffer, error_message,MESSAGE_LEVEL_ERROR,PRINT);
68 add_to_buffer(message_buffer, "error_code: ",MESSAGE_LEVEL_ERROR,PRINT);
69 yaffs_error=yaffs_get_error();
70 if (MESSAGE_LEVEL_ERROR<=DEBUG_LEVEL) printf("%d\n",yaffs_error); /*cannot yet add int types to buffer. this is a quick fix*/
71 add_to_buffer(message_buffer, error_to_str(yaffs_error),MESSAGE_LEVEL_ERROR,NPRINT);
72 append_to_buffer(message_buffer, "\n\n",MESSAGE_LEVEL_ERROR,PRINT);
74 //scanf("%c",dummy); /*this line causes a segmentation fault. Need a better way of waiting for a key press*/
75 //print_buffer(message_buffer,PRINT_ALL);
79 add_to_buffer(message_buffer, success_message,MESSAGE_LEVEL_BASIC_TASKS,PRINT);