2 * @file rtems/rtems-shttpd.h
5 #ifndef _rtems_rtems_webserver_h
6 #define _rtems_rtems_webserver_h
11 #include <sys/socket.h>
12 #include <netinet/in.h>
15 /* RTEMS is an Real Time Embedded operating system, for operation in hardware.
16 It does not have SSL or CGI support, as it does not have dynamic library
17 loading or sub-processes. */
26 /* RTEMS version is Thread Safe */
27 #define InitializeCriticalSection(x) rtems_semaphore_create( \
28 rtems_build_name('H','T','P','X'), \
29 1, /* Not Held Yet.*/ \
31 RTEMS_BINARY_SEMAPHORE, \
34 #define EnterCriticalSection(x) rtems_semaphore_obtain(*(x),RTEMS_WAIT,RTEMS_NO_TIMEOUT)
35 #define LeaveCriticalSection(x) rtems_semaphore_release(*(x))
43 typedef void (*rtems_shttpd_addpages)(struct shttpd_ctx *ctx);
44 typedef void (*rtems_shttpd_init)(void);
46 rtems_status_code rtems_initialize_webserver(rtems_task_priority initial_priority,
47 rtems_unsigned32 stack_size,
48 rtems_mode initial_modes,
49 rtems_attribute attribute_set,
50 rtems_shttpd_init init_callback,
51 rtems_shttpd_addpages addpages_callback,
54 void rtems_terminate_webserver(void);
55 int rtems_webserver_ok(void);