diff options
author | Chris Johns <chrisj@rtems.org> | 2012-04-25 10:12:19 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2012-04-25 10:12:19 +1000 |
commit | 673b40c95705127635af12bda15694fd6ab5a96b (patch) | |
tree | 5c243823cf495ba3702773f94b275a442ac218de /rtl-error.c |
Import the current project to git.
Diffstat (limited to 'rtl-error.c')
-rw-r--r-- | rtl-error.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/rtl-error.c b/rtl-error.c new file mode 100644 index 0000000..cef6452 --- /dev/null +++ b/rtl-error.c @@ -0,0 +1,49 @@ +/* + * COPYRIGHT (c) 2010 Chris Johns <chrisj@rtems.org> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ +/** + * @file + * + * @ingroup rtl + * + * @brief RTEMS Run-Time Linker Error + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stdio.h> +#include <stdarg.h> + +#include <rtl.h> +#include "rtl-error.h" + +void +rtems_rtl_set_error (int error, const char* format, ...) +{ + rtems_rtl_data_t* rtl = rtems_rtl_lock (); + va_list ap; + va_start (ap, format); + rtl->last_errno = error; + vsnprintf (rtl->last_error, sizeof (rtl->last_error), format, ap); + rtems_rtl_unlock (); + va_end (ap); +} + +int +rtems_rtl_get_error (char* message, size_t max_message) +{ + rtems_rtl_data_t* rtl = rtems_rtl_lock (); + int last_errno = rtl->last_errno; + strncpy (message, rtl->last_error, sizeof (rtl->last_error)); + rtems_rtl_unlock (); + return last_errno; +} + |