diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-10-27 12:50:33 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-10-27 12:50:33 +0000 |
commit | c1cdaa0ce8017b075487e6670f89eb4e715258ea (patch) | |
tree | d4571a02595d6cf6a24d40d6968d83ece3b7a574 /cpukit/httpd/uemf.c | |
parent | New files created by split of old imfs_handlers.c. (diff) | |
download | rtems-c1cdaa0ce8017b075487e6670f89eb4e715258ea.tar.bz2 |
Patch from Emmanuel Raguet <raguet@crf.canon.fr> and Eric Valette
<valette@crf.canon.fr> to add a port of the GoAhead web server
(httpd) to the RTEMS build tree. They have successfully used
this BSP on i386/pc386 and PowerPC/mcp750.
Mark and Joel spoke with Nick Berliner <nickb@goahead.com> on
26 Oct 1999 about this port and got verbal approval to include
it in RTEMS distributions.
Diffstat (limited to 'cpukit/httpd/uemf.c')
-rw-r--r-- | cpukit/httpd/uemf.c | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/cpukit/httpd/uemf.c b/cpukit/httpd/uemf.c new file mode 100644 index 0000000000..8a6675f944 --- /dev/null +++ b/cpukit/httpd/uemf.c @@ -0,0 +1,193 @@ +/* + * uemf.c -- GoAhead Micro Embedded Management Framework + * + * Copyright (c) Go Ahead Software, Inc., 1995-1999 + * + * See the file "license.txt" for usage and redistribution license requirements + */ + +/********************************** Description *******************************/ + +/* + * This module provides compatibility with the full GoAhead EMF. + * It is a collection of routines which permits the GoAhead WebServer to + * run stand-alone and to also load as a solution pack under the GoAhead EMF. + */ + +/*********************************** Includes *********************************/ + +#include "uemf.h" + +/********************************** Local Data ********************************/ + +int emfInst; /* Application instance handle */ + +/************************************* Code ***********************************/ +/* + * Error message that doesn't need user attention. Customize this code + * to direct error messages to whereever the developer wishes + */ + +void error(E_ARGS_DEC, int flags, char_t *fmt, ...) +{ + if (flags & E_LOG) { + /* Log error message */ + + } else if (flags & E_ASSERT) { + /* Assert message */ + + } else if (flags & E_USER) { + /* Display message to the user */ + + } +} + +/******************************************************************************/ +/* + * Trace log. Customize this function to log trace output + */ + +void trace(int level, char_t *afmt, ...) +{ +#if DEBUG + va_list args; + char_t *buf; + + va_start(args, afmt); + buf = NULL; + gvsnprintf(&buf, VALUE_MAX_STRING, afmt, args); + if (buf) { + gprintf(buf); + bfree(B_L, buf); + } + va_end(args); +#endif +} + +/******************************************************************************/ +/* + * Save the instance handle + */ + +void emfInstSet(int inst) +{ + emfInst = inst; +} + +/******************************************************************************/ +/* + * Get the instance handle + */ + +int emfInstGet() +{ + return emfInst; +} + +/******************************************************************************/ +/* + * Convert a string to lower case + */ + +char_t *strlower(char_t *string) +{ + char_t *s; + + a_assert(string); + + if (string == NULL) { + return NULL; + } + + s = string; + while (*s) { + if (gisupper(*s)) { + *s = (char_t) gtolower(*s); + } + s++; + } + *s = '\0'; + return string; +} + +/******************************************************************************/ +/* + * Convert a string to upper case + */ + +char_t *strupper(char_t *string) +{ + char_t *s; + + a_assert(string); + if (string == NULL) { + return NULL; + } + + s = string; + while (*s) { + if (gislower(*s)) { + *s = (char_t) gtoupper(*s); + } + s++; + } + *s = '\0'; + return string; +} + +/******************************************************************************/ +/* + * Convert integer to ascii string. Allow a NULL string in which case we + * allocate a dynamic buffer. + */ + +char_t *stritoa(int n, char_t *string, int width) +{ + char_t *cp, *lim, *s; + char_t buf[16]; /* Just temp to hold number */ + int next, minus; + + a_assert(string && width > 0); + + if (string == NULL) { + if (width == 0) { + width = 10; + } + if ((string = balloc(B_L, width + 1)) == NULL) { + return NULL; + } + } + if (n < 0) { + minus = 1; + n = -n; + width--; + } else { + minus = 0; + } + + cp = buf; + lim = &buf[width - 1]; + while (n > 9 && cp < lim) { + next = n; + n /= 10; + *cp++ = (char_t) (next - n * 10 + '0'); + } + if (cp < lim) { + *cp++ = (char_t) (n + '0'); + } + + s = string; + if (minus) { + *s++ = '-'; + } + + while (cp > buf) { + *s++ = *--cp; + } + + *s++ = '\0'; + return string; +} + +/******************************************************************************/ + |