diff options
author | Chris Johns <chrisj@rtems.org> | 2014-10-26 18:09:41 -0700 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2014-10-31 11:04:15 +1100 |
commit | ae5fe7e6bca2874c5f1ef077204bb63124fb3db3 (patch) | |
tree | 90a6e9e7b414ed3713011267b1fee404b5f6093f /cpukit/libdl/rtl-error.c | |
parent | Added missing stm32f4xxxx_adc.h (diff) | |
download | rtems-ae5fe7e6bca2874c5f1ef077204bb63124fb3db3.tar.bz2 |
cpukit: Add libdl with the Runtime Loader (RTL) code.
This is a merge of the RTL project.
Diffstat (limited to 'cpukit/libdl/rtl-error.c')
-rw-r--r-- | cpukit/libdl/rtl-error.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cpukit/libdl/rtl-error.c b/cpukit/libdl/rtl-error.c new file mode 100644 index 0000000000..bc2e3e425c --- /dev/null +++ b/cpukit/libdl/rtl-error.c @@ -0,0 +1,47 @@ +/* + * COPYRIGHT (c) 2012 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. + */ +/** + * @file + * + * @ingroup rtl + * + * @brief RTEMS Run-Time Linker Error + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stdio.h> +#include <stdarg.h> + +#include <rtems/rtl/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; +} + |