diff options
Diffstat (limited to 'cpukit/shttpd/compat_rtems.h')
-rw-r--r-- | cpukit/shttpd/compat_rtems.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/cpukit/shttpd/compat_rtems.h b/cpukit/shttpd/compat_rtems.h new file mode 100644 index 0000000000..8d31e46abb --- /dev/null +++ b/cpukit/shttpd/compat_rtems.h @@ -0,0 +1,60 @@ +/** + * @file rtems/rtems-shttpd.h + */ + +#ifndef _rtems_rtems_webserver_h +#define _rtems_rtems_webserver_h + +#include "shttpd.h" + +#include <rtems.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <dirent.h> + +/* RTEMS is an Real Time Embedded operating system, for operation in hardware. + It does not have SSL or CGI support, as it does not have dynamic library + loading or sub-processes. */ +#define EMBEDDED +#define NO_SSL +#define NO_CGI + +#define DIRSEP '/' +#define O_BINARY 0 +#define ERRNO errno + +/* RTEMS version is Thread Safe */ +#define InitializeCriticalSection(x) rtems_semaphore_create( \ + rtems_build_name('H','T','P','X'), \ + 1, /* Not Held Yet.*/ \ + RTEMS_FIFO | \ + RTEMS_BINARY_SEMAPHORE, \ + 0, \ + x); +#define EnterCriticalSection(x) rtems_semaphore_obtain(*(x),RTEMS_WAIT,RTEMS_NO_TIMEOUT) +#define LeaveCriticalSection(x) rtems_semaphore_release(*(x)) + + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*rtems_shttpd_addpages)(struct shttpd_ctx *ctx); +typedef void (*rtems_shttpd_init)(void); + +rtems_status_code rtems_initialize_webserver(rtems_task_priority initial_priority, + rtems_unsigned32 stack_size, + rtems_mode initial_modes, + rtems_attribute attribute_set, + rtems_shttpd_init init_callback, + rtems_shttpd_addpages addpages_callback, + char *webroot + ); +void rtems_terminate_webserver(void); +int rtems_webserver_ok(void); + +#ifdef __cplusplus +} +#endif +#endif |