From c1cdaa0ce8017b075487e6670f89eb4e715258ea Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 27 Oct 1999 12:50:33 +0000 Subject: Patch from Emmanuel Raguet and Eric Valette 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 on 26 Oct 1999 about this port and got verbal approval to include it in RTEMS distributions. --- cpukit/httpd/value.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 cpukit/httpd/value.c (limited to 'cpukit/httpd/value.c') diff --git a/cpukit/httpd/value.c b/cpukit/httpd/value.c new file mode 100644 index 0000000000..5872382556 --- /dev/null +++ b/cpukit/httpd/value.c @@ -0,0 +1,74 @@ +/* + * value.c -- Generic type (holds all types) + * + * Copyright (c) Go Ahead Software, Inc., 1995-1999 + * + * See the file "license.txt" for usage and redistribution license requirements + */ + +/******************************** Description *********************************/ + +/* + * This module provides a generic type that can hold all possible types. + * It is designed to provide maximum effeciency. + */ + +/********************************* Includes ***********************************/ + +#include "uemf.h" + +/*********************************** Locals ***********************************/ + + +/*********************************** Code *************************************/ +/* + * Initialize a integer value. + */ + +value_t valueInteger(long value) +{ + value_t v = VALUE_VALID; + + v.value.integer = value; + return v; +} + +/******************************************************************************/ +/* + * Initialize a string value. Note: not allocation + */ + +value_t valueString(char_t *value, int flags) +{ + value_t v = VALUE_VALID; + + v.type = string; + if (flags & VALUE_ALLOCATE) { + v.allocated = 1; + v.value.string = gstrdup(B_L, value); + } else { + v.allocated = 0; + v.value.string = value; + } + return v; +} + +/******************************************************************************/ +/* + * Free any storage allocated for a value. + */ + +void valueFree(value_t *v) +{ + a_assert(v); + + if (v->valid && v->allocated && v->type == string && + v->value.string != NULL) { + bfree(B_L, v->value.string); + } + v->type = undefined; + v->valid = 0; + v->allocated = 0; +} + +/******************************************************************************/ -- cgit v1.2.3