diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2010-06-09 05:46:03 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2010-06-09 05:46:03 +0000 |
commit | 44b7bcd59c6042aecef864cd45bc79508ff67d71 (patch) | |
tree | 14c9f01314d0c454030d0c87e9d11e7e6f5f4f59 /cpukit/httpd/uemf.h | |
parent | 2010-06-08 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-44b7bcd59c6042aecef864cd45bc79508ff67d71.tar.bz2 |
Remove (discontinued).
Diffstat (limited to 'cpukit/httpd/uemf.h')
-rw-r--r-- | cpukit/httpd/uemf.h | 1110 |
1 files changed, 0 insertions, 1110 deletions
diff --git a/cpukit/httpd/uemf.h b/cpukit/httpd/uemf.h deleted file mode 100644 index c286ecccc2..0000000000 --- a/cpukit/httpd/uemf.h +++ /dev/null @@ -1,1110 +0,0 @@ -/* - * uemf.h -- GoAhead Micro Embedded Management Framework Header - * - * Copyright (c) GoAhead Software Inc., 1995-2000. All Rights Reserved. - * - * See the file "license.txt" for usage and redistribution license requirements - * - * $Id$ - */ - -#ifndef _h_UEMF -#define _h_UEMF 1 - -/******************************** Description *********************************/ - -/* - * GoAhead Web Server header. This defines the Web public APIs - */ - -/******************************* Per O/S Includes *****************************/ - -#ifdef WIN - #include <direct.h> - #include <io.h> - #include <sys/stat.h> - #include <limits.h> - #include <tchar.h> - #include <windows.h> - #include <winnls.h> - #include <time.h> - #include <sys/types.h> - #include <stdio.h> - #include <stdlib.h> - #include <fcntl.h> - #include <errno.h> -#endif /* WIN */ - -#ifdef CE - #include <errno.h> - #include <limits.h> - #include <tchar.h> - #include <windows.h> - #include <winsock.h> - #include <winnls.h> - #include "CE/wincompat.h" - #include <winsock.h> -#endif /* CE */ - -#ifdef NW - #include <direct.h> - #include <io.h> - #include <sys/stat.h> - #include <time.h> - #include <sys/types.h> - #include <stdio.h> - #include <stdlib.h> - #include <fcntl.h> - #include <errno.h> - #include <niterror.h> - #define EINTR EINUSE - #define WEBS 1 - #include <limits.h> - #include <netdb.h> - #include <process.h> - #include <tiuser.h> - #include <sys/time.h> - #include <arpa/inet.h> - #include <sys/types.h> - #include <sys/socket.h> - #include <sys/filio.h> - #include <netinet/in.h> -#endif /* NW */ - -#ifdef SCOV5 - #include <sys/types.h> - #include <stdio.h> - #include "sys/socket.h" - #include "sys/select.h" - #include "netinet/in.h" - #include "arpa/inet.h" - #include "netdb.h" -#endif /* SCOV5 */ - -#ifdef UNIX - #include <stdio.h> -#endif /* UNIX */ - -#if LINUX || __rtems__ - #include <sys/types.h> - #include <sys/stat.h> - #include <sys/param.h> - #include <limits.h> - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> - #include <sys/socket.h> - #include <sys/select.h> - #include <netinet/in.h> - #include <arpa/inet.h> - #include <netdb.h> - #include <time.h> - #include <fcntl.h> - #include <errno.h> -#endif /* LINUX */ - -#ifdef LYNX - #include <limits.h> - #include <stdarg.h> - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> - #include <socket.h> - #include <netinet/in.h> - #include <arpa/inet.h> - #include <netdb.h> - #include <time.h> - #include <fcntl.h> - #include <errno.h> -#endif /* LYNX */ - -#ifdef MACOSX - #include <sys/stat.h> - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> - #include <sys/socket.h> - #include <netinet/in.h> - #include <arpa/inet.h> - #include <netdb.h> - #include <fcntl.h> - #include <errno.h> -#endif /* MACOSX */ - -#ifdef UW - #include <stdio.h> -#endif /* UW */ - -#ifdef VXWORKS - #include <vxWorks.h> - #include <sockLib.h> - #include <selectLib.h> - #include <inetLib.h> - #include <ioLib.h> - #include <stdio.h> - #include <stat.h> - #include <time.h> - #include <usrLib.h> - #include <fcntl.h> - #include <errno.h> -#endif /* VXWORKS */ - -#ifdef SOLARIS - #include <sys/types.h> - #include <limits.h> - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> - #include <socket.h> - #include <sys/select.h> - #include <netinet/in.h> - #include <arpa/inet.h> - #include <netdb.h> - #include <time.h> - #include <fcntl.h> - #include <errno.h> -#endif /* SOLARIS */ - -#ifdef QNX4 - #include <sys/types.h> - #include <stdio.h> - #include <sys/socket.h> - #include <sys/select.h> - #include <netinet/in.h> - #include <arpa/inet.h> - #include <netdb.h> - #include <stdlib.h> - #include <unistd.h> - #include <sys/uio.h> - #include <sys/wait.h> -#endif /* QNX4 */ - -#ifdef ECOS - #include <limits.h> - #include <cyg/infra/cyg_type.h> - #include <cyg/kernel/kapi.h> - #include <time.h> - #include <network.h> - #include <errno.h> -#endif /* ECOS */ - -/********************************** Includes **********************************/ - -#include <ctype.h> -#include <stdarg.h> -#include <string.h> - -#ifndef WEBS -#include "messages.h" -#endif /* ! WEBS */ - -/******************************* Per O/S Defines *****************************/ - -#if defined(__rtems__) -#define __NO_PACK 1 -#endif - -#ifdef UW - #define __NO_PACK 1 -#endif /* UW */ - -#if (defined (SCOV5) || defined (VXWORKS) || defined (LINUX) || defined (LYNX) || defined (MACOSX) || defined (__rtems__)) -#ifndef O_BINARY -#define O_BINARY 0 -#endif /* O_BINARY */ -#define SOCKET_ERROR -1 -#endif /* SCOV5 || VXWORKS || LINUX || LYNX || MACOSX */ - -#if (defined (WIN) || defined (CE)) -/* - * __NO_FCNTL means can't access fcntl function. Fcntl.h is still available. - */ -#define __NO_FCNTL 1 - -#undef R_OK -#define R_OK 4 -#undef W_OK -#define W_OK 2 -#undef X_OK -#define X_OK 1 -#undef F_OK -#define F_OK 0 -#endif /* WIN || CE */ - -#if (defined (LINUX) && !defined(__rtems__) && !defined (_STRUCT_TIMEVAL)) -struct timeval -{ - time_t tv_sec; /* Seconds. */ - time_t tv_usec; /* Microseconds. */ -}; -#define _STRUCT_TIMEVAL 1 -#endif /* LINUX && ! _STRUCT_TIMEVAL */ - -#ifdef ECOS - #define O_RDONLY 1 - #define O_BINARY 2 - - #define __NO_PACK 1 - #define __NO_EJ_FILE 1 - #define __NO_CGI_BIN 1 - #define __NO_FCNTL 1 - -/* - * #define LIBKERN_INLINE to avoid kernel inline functions - */ - #define LIBKERN_INLINE - -#endif /* ECOS */ - -#ifdef QNX4 - typedef long fd_mask; - #define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */ -#endif /* QNX4 */ - -#ifdef NW - #define fd_mask fd_set - #define INADDR_NONE -1l - #define Sleep delay - - #define __NO_FCNTL 1 - - #undef R_OK - #define R_OK 4 - #undef W_OK - #define W_OK 2 - #undef X_OK - #define X_OK 1 - #undef F_OK - #define F_OK 0 -#endif /* NW */ - -/********************************** Unicode ***********************************/ -/* - * Constants and limits. Also FNAMESIZE and PATHSIZE are currently defined - * in param.h to be 128 and 512 - */ -#define TRACE_MAX (4096 - 48) -#define VALUE_MAX_STRING (4096 - 48) -#define SYM_MAX (512) -#define XML_MAX 4096 /* Maximum size for tags/tokens */ -#define BUF_MAX 4096 /* General sanity check for bufs */ -#define FMT_STATIC_MAX 256 /* Maximum for fmtStatic calls */ - -#if (defined (LITTLEFOOT) || defined (WEBS)) -#define LF_BUF_MAX (510) -#define LF_PATHSIZE LF_BUF_MAX -#else -#define LF_BUF_MAX BUF_MAX -#define LF_PATHSIZE PATHSIZE -#define UPPATHSIZE PATHSIZE -#endif /* LITTLEFOOT || WEBS */ - -#ifndef CHAR_T_DEFINED -#define CHAR_T_DEFINED 1 -#ifdef UNICODE -/* - * To convert strings to UNICODE. We have a level of indirection so things - * like T(__FILE__) will expand properly. - */ -#define T(x) __TXT(x) -#define __TXT(s) L ## s -typedef unsigned short char_t; -typedef unsigned short uchar_t; - -/* - * Text size of buffer macro. A buffer bytes will hold (size / char size) - * characters. - */ -#define TSZ(x) (sizeof(x) / sizeof(char_t)) - -/* - * How many ASCII bytes are required to represent this UNICODE string? - */ -#define TASTRL(x) ((wcslen(x) + 1) * sizeof(char_t)) - -#else -#define T(s) s -typedef char char_t; -#define TSZ(x) (sizeof(x)) -#define TASTRL(x) (strlen(x) + 1) -#ifdef WIN -typedef unsigned char uchar_t; -#endif /* WIN */ - -#endif /* UNICODE */ - -#endif /* ! CHAR_T_DEFINED */ - -/* - * "Boolean" constants - */ - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -/* - * GoAhead Copyright. - */ -#define GOAHEAD_COPYRIGHT \ - T("Copyright (c) GoAhead Software Inc., 1995-2000. All Rights Reserved.") - -/* - * The following include has to be after the unicode defines. By putting it - * here, many modules in various parts of the tree are cleaner. - */ -#if (defined (LITTLEFOOT) && defined (INMEM)) - #include "lf/inmem.h" -#endif /* LITTLEFOOT && INMEM */ - -/* - * Type for unicode systems - */ -#ifdef UNICODE - -#define gmain wmain - -#define gasctime _wasctime -#define gsprintf swprintf -#define gprintf wprintf -#define gfprintf fwprintf -#define gsscanf swscanf -#define gvsprintf vswprintf - -#define gstrcpy wcscpy -#define gstrncpy wcsncpy -#define gstrncat wcsncat -#define gstrlen wcslen -#define gstrcat wcscat -#define gstrcmp wcscmp -#define gstrncmp wcsncmp -#define gstricmp wcsicmp -#define gstrchr wcschr -#define gstrrchr wcsrchr -#define gstrtok wcstok -#define gstrnset wcsnset -#define gstrrchr wcsrchr -#define gstrstr wcsstr -#define gstrtol wcstol - -#define gfopen _wfopen -#define gopen _wopen -#define gclose close -#define gcreat _wcreat -#define gfgets fgetws -#define gfputs fputws -#define gfscanf fwscanf -#define ggets _getws -#define glseek lseek -#define gunlink _wunlink -#define gread read -#define grename _wrename -#define gwrite write -#define gtmpnam _wtmpnam -#define gtempnam _wtempnam -#define gfindfirst _wfindfirst -#define gfinddata_t _wfinddata_t -#define gfindnext _wfindnext -#define gfindclose _findclose -#define gstat _wstat -#define gaccess _waccess -#define gchmod _wchmod - -typedef struct _stat gstat_t; - -#define gmkdir _wmkdir -#define gchdir _wchdir -#define grmdir _wrmdir -#define ggetcwd _wgetcwd - -#define gtolower towlower -#define gtoupper towupper -#ifdef CE -#define gisspace isspace -#define gisdigit isdigit -#define gisxdigit isxdigit -#define gisupper isupper -#define gislower islower -#define gisprint isprint -#else -#define gremove _wremove -#define gisspace iswspace -#define gisdigit iswdigit -#define gisxdigit iswxdigit -#define gisupper iswupper -#define gislower iswlower -#endif /* if CE */ -#define gisalnum iswalnum -#define gisalpha iswalpha -#define gatoi(s) wcstol(s, NULL, 10) - -#define gctime _wctime -#define ggetenv _wgetenv -#define gexecvp _wexecvp - -#else /* ! UNICODE */ - -#ifndef gopen -#if INMEM -#define gchdir imChdir -#define gmkdir imMkdir -#define grmdir imRmdir -#define gclose imClose -#define gclosedir imClosedir -#define gchmod imChmod -#define ggetcwd imGetcwd -#define glseek imLseek -#define gloadModule imLoadModule -#define gopen imOpen -#define gopendir imOpendir -#define gread imRead -#define greaddir imReaddir -#define grename imRename -#define gstat imStat -#define gunlink imUnlink -#define gwrite imWrite -#else -#if VXWORKS -#define gchdir vxchdir -#define gmkdir vxmkdir -#define grmdir vxrmdir -#elif (defined (LYNX) || defined (LINUX) || defined (MACOSX) || defined (SOLARIS)) -#define gchdir chdir -#define gmkdir(s) mkdir(s,0755) -#define grmdir rmdir -#else -#define gchdir chdir -#define gmkdir mkdir -#define grmdir rmdir -#endif /* VXWORKS #elif LYNX || LINUX || MACOSX || SOLARIS*/ -#define gclose close -#define gclosedir closedir -#define gchmod chmod -#define ggetcwd getcwd -#define glseek lseek -#define gloadModule loadModule -#define gopen open -#define gopendir opendir -#define gread read -#define greaddir readdir -#define grename rename -#define gstat stat -#define gunlink unlink -#define gwrite write -#endif /* INMEM */ -#endif /* ! gopen */ - -#define gasctime asctime -#define gsprintf sprintf -#define gprintf printf -#define gfprintf fprintf -#define gsscanf sscanf -#define gvsprintf vsprintf - -#define gstrcpy strcpy -#define gstrncpy strncpy -#define gstrncat strncat -#define gstrlen strlen -#define gstrcat strcat -#define gstrcmp strcmp -#define gstrncmp strncmp -#define gstricmp strcmpci -#define gstrchr strchr -#define gstrrchr strrchr -#define gstrtok strtok -#define gstrnset strnset -#define gstrrchr strrchr -#define gstrstr strstr -#define gstrtol strtol - -#define gfopen fopen -#define gcreat creat -#define gfgets fgets -#define gfputs fputs -#define gfscanf fscanf -#define ggets gets -#define gtmpnam tmpnam -#define gtempnam tempnam -#define gfindfirst _findfirst -#define gfinddata_t _finddata_t -#define gfindnext _findnext -#define gfindclose _findclose -#define gaccess access - -typedef struct stat gstat_t; - -#define gremove remove - -#define gtolower tolower -#define gtoupper toupper -#define gisspace isspace -#define gisdigit isdigit -#define gisxdigit isxdigit -#define gisalnum isalnum -#define gisalpha isalpha -#define gisupper isupper -#define gislower islower -#define gatoi atoi - -#define gctime ctime -#define ggetenv getenv -#define gexecvp execvp -#ifndef VXWORKS -#define gmain main -#endif /* ! VXWORKS */ -#ifdef VXWORKS -#define fcntl(a, b, c) -#endif /* VXWORKS */ -#endif /* ! UNICODE */ - -/* - * Include inmem.h here because it redefines many of the file access fucntions. - * Otherwise there would be lots more #if-#elif-#else-#endif ugliness. - */ -#ifdef INMEM - #include "lf/inmem.h" -#endif - -/********************************** Defines ***********************************/ - -#ifndef FNAMESIZE -#define FNAMESIZE 254 /* Max length of file names */ -#endif /* FNAMESIZE */ - -#define E_MAX_ERROR 4096 -#define URL_MAX 4096 - -/* - * Error types - */ -#define E_ASSERT 0x1 /* Assertion error */ -#define E_LOG 0x2 /* Log error to log file */ -#define E_USER 0x3 /* Error that must be displayed */ - -#define E_L T(__FILE__), __LINE__ -#define E_ARGS_DEC char_t *file, int line -#define E_ARGS file, line - -#if (defined (ASSERT) || defined (ASSERT_CE)) - #define a_assert(C) if (C) ; else error(E_L, E_ASSERT, T("%s"), T(#C)) -#else - #define a_assert(C) if (1) ; else {} -#endif /* ASSERT || ASSERT_CE */ - -/******************************************************************************/ -/* VALUE */ -/******************************************************************************/ -/* - * These values are not prefixed so as to aid code readability - */ - -typedef enum { - undefined = 0, - byteint = 1, - shortint = 2, - integer = 3, - hex = 4, - percent = 5, - octal = 6, - big = 7, - flag = 8, - floating = 9, - string = 10, - bytes = 11, - symbol = 12, - errmsg = 13 -} vtype_t; - -#ifndef __NO_PACK -#pragma pack(2) -#endif /* _NO_PACK */ - -typedef struct { - - union { - char flag; - char byteint; - short shortint; - char percent; - long integer; - long hex; - long octal; - long big[2]; -#ifdef FLOATING_POINT_SUPPORT - double floating; -#endif /* FLOATING_POINT_SUPPORT */ - char_t *string; - char *bytes; - char_t *errmsg; - void *symbol; - } value; - - vtype_t type; - unsigned int valid : 8; - unsigned int allocated : 8; /* String was balloced */ -} value_t; - -#ifndef __NO_PACK -#pragma pack() -#endif /* __NO_PACK */ - -/* - * Allocation flags - */ -#define VALUE_ALLOCATE 0x1 - -#define value_numeric(t) (t >= byteint && t <= big) -#define value_str(t) (t >= string && t <= bytes) -#define value_ok(t) (t > undefined && t <= symbol) - -#define VALUE_VALID { {0}, integer, 1 } -#define VALUE_INVALID { {0}, undefined, 0 } - -/******************************************************************************/ -/* - * A ring queue allows maximum utilization of memory for data storage and is - * ideal for input/output buffering. This module provides a highly effecient - * implementation and a vehicle for dynamic strings. - * - * WARNING: This is a public implementation and callers have full access to - * the queue structure and pointers. Change this module very carefully. - * - * This module follows the open/close model. - * - * Operation of a ringq where rq is a pointer to a ringq : - * - * rq->buflen contains the size of the buffer. - * rq->buf will point to the start of the buffer. - * rq->servp will point to the first (un-consumed) data byte. - * rq->endp will point to the next free location to which new data is added - * rq->endbuf will point to one past the end of the buffer. - * - * Eg. If the ringq contains the data "abcdef", it might look like : - * - * +-------------------------------------------------------------------+ - * | | | | | | | | a | b | c | d | e | f | | | | | - * +-------------------------------------------------------------------+ - * ^ ^ ^ ^ - * | | | | - * rq->buf rq->servp rq->endp rq->enduf - * - * The queue is empty when servp == endp. This means that the queue will hold - * at most rq->buflen -1 bytes. It is the fillers responsibility to ensure - * the ringq is never filled such that servp == endp. - * - * It is the fillers responsibility to "wrap" the endp back to point to - * rq->buf when the pointer steps past the end. Correspondingly it is the - * consumers responsibility to "wrap" the servp when it steps to rq->endbuf. - * The ringqPutc and ringqGetc routines will do this automatically. - */ - -/* - * Ring queue buffer structure - */ -typedef struct { - unsigned char *buf; /* Holding buffer for data */ - unsigned char *servp; /* Pointer to start of data */ - unsigned char *endp; /* Pointer to end of data */ - unsigned char *endbuf; /* Pointer to end of buffer */ - int buflen; /* Length of ring queue */ - int maxsize; /* Maximum size */ - int increment; /* Growth increment */ -} ringq_t; - -/* - * Block allocation (balloc) definitions - */ -#ifdef B_STATS -#ifndef B_L -#define B_L T(__FILE__), __LINE__ -#define B_ARGS_DEC char_t *file, int line -#define B_ARGS file, line -#endif /* B_L */ -#endif /* B_STATS */ - -/* - * Block classes are: 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, - * 16384, 32768, 65536 - */ -typedef struct { - union { - void *next; /* Pointer to next in q */ - int size; /* Actual requested size */ - } u; - int flags; /* Per block allocation flags */ -} bType; - -#define B_SHIFT 4 /* Convert size to class */ -#define B_ROUND ((1 << (B_SHIFT)) - 1) -#define B_MAX_CLASS 13 /* Maximum class number + 1 */ -#define B_MALLOCED 0x80000000 /* Block was malloced */ -#define B_DEFAULT_MEM (64 * 1024) /* Default memory allocation */ -#define B_MAX_FILES (512) /* Maximum number of files */ -#define B_FILL_CHAR (0x77) /* Fill byte for buffers */ -#define B_FILL_WORD (0x77777777) /* Fill word for buffers */ -#define B_MAX_BLOCKS (64 * 1024) /* Maximum allocated blocks */ - -/* - * Flags. The integrity value is used as an arbitrary value to fill the flags. - */ -#define B_INTEGRITY 0x8124000 /* Integrity value */ -#define B_INTEGRITY_MASK 0xFFFF000 /* Integrity mask */ -#define B_USE_MALLOC 0x1 /* Okay to use malloc if required */ -#define B_USER_BUF 0x2 /* User supplied buffer for mem */ - -/* - * The symbol table record for each symbol entry - */ - -typedef struct sym_t { - struct sym_t *forw; /* Pointer to next hash list */ - value_t name; /* Name of symbol */ - value_t content; /* Value of symbol */ - int arg; /* Parameter value */ -} sym_t; - -typedef int sym_fd_t; /* Returned by symOpen */ - -/* - * Script engines - */ -#define EMF_SCRIPT_JSCRIPT 0 /* javascript */ -#define EMF_SCRIPT_TCL 1 /* tcl */ -#define EMF_SCRIPT_EJSCRIPT 2 /* Ejscript */ -#define EMF_SCRIPT_MAX 3 - -#define MAXINT INT_MAX -#define BITSPERBYTE CHAR_BIT -#define BITS(type) (BITSPERBYTE * (int) sizeof(type)) -#define STRSPACE T("\t \n\r\t") - -#ifndef max -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif /* max */ - -#ifndef min -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif /* min */ - -/******************************************************************************/ -/* CRON */ -/******************************************************************************/ - -typedef struct { - char_t *minute; - char_t *hour; - char_t *day; - char_t *month; - char_t *dayofweek; -} cron_t; - -extern long cronUntil(cron_t *cp, int period, time_t testTime); -extern int cronAlloc(cron_t *cp, char_t *str); -extern int cronFree(cron_t *cp); - -/******************************************************************************/ -/* SOCKET */ -/******************************************************************************/ -/* - * Socket flags - */ - -#if ((defined (WIN) || defined (CE)) && defined (WEBS)) -#define EWOULDBLOCK WSAEWOULDBLOCK -#define ENETDOWN WSAENETDOWN -#define ECONNRESET WSAECONNRESET -#endif /* (WIN || CE) && WEBS) */ - -#define SOCKET_EOF 0x1 /* Seen end of file */ -#define SOCKET_CONNECTING 0x2 /* Connect in progress */ -#define SOCKET_BROADCAST 0x4 /* Broadcast mode */ -#define SOCKET_PENDING 0x8 /* Message pending on this socket */ -#define SOCKET_FLUSHING 0x10 /* Background flushing */ -#define SOCKET_DATAGRAM 0x20 /* Use datagrams */ -#define SOCKET_ASYNC 0x40 /* Use async connect */ -#define SOCKET_BLOCK 0x80 /* Use blocking I/O */ -#define SOCKET_LISTENING 0x100 /* Socket is server listener */ -#define SOCKET_CLOSING 0x200 /* Socket is closing */ -#define SOCKET_CONNRESET 0x400 /* Socket connection was reset */ - -#define SOCKET_PORT_MAX 0xffff /* Max Port size */ - -/* - * Socket error values - */ -#define SOCKET_WOULDBLOCK 1 /* Socket would block on I/O */ -#define SOCKET_RESET 2 /* Socket has been reset */ -#define SOCKET_NETDOWN 3 /* Network is down */ -#define SOCKET_AGAIN 4 /* Issue the request again */ -#define SOCKET_INTR 5 /* Call was interrupted */ -#define SOCKET_INVAL 6 /* Invalid */ - -/* - * Handler event masks - */ -#define SOCKET_READABLE 0x2 /* Make socket readable */ -#define SOCKET_WRITABLE 0x4 /* Make socket writable */ -#define SOCKET_EXCEPTION 0x8 /* Interested in exceptions */ -#define EMF_SOCKET_MESSAGE (WM_USER+13) - -#ifdef LITTLEFOOT -#define SOCKET_BUFSIZ 510 /* Underlying buffer size */ -#else -#define SOCKET_BUFSIZ 1024 /* Underlying buffer size */ -#endif /* LITTLEFOOT */ - -typedef void (*socketHandler_t)(int sid, int mask, int data); -typedef int (*socketAccept_t)(int sid, char *ipaddr, int port, - int listenSid); -typedef struct { - char host[64]; /* Host name */ - ringq_t inBuf; /* Input ring queue */ - ringq_t outBuf; /* Output ring queue */ - ringq_t lineBuf; /* Line ring queue */ - socketAccept_t accept; /* Accept handler */ - socketHandler_t handler; /* User I/O handler */ - int handler_data; /* User handler data */ - int handlerMask; /* Handler events of interest */ - int sid; /* Index into socket[] */ - int port; /* Port to listen on */ - int flags; /* Current state flags */ - int sock; /* Actual socket handle */ - int fileHandle; /* ID of the file handler */ - int interestEvents; /* Mask of events to watch for */ - int currentEvents; /* Mask of ready events (FD_xx) */ - int selectEvents; /* Events being selected */ - int saveMask; /* saved Mask for socketFlush */ - int error; /* Last error */ -} socket_t; - -/********************************* Prototypes *********************************/ -/* - * Balloc module - * - */ - -extern void bclose(void); -extern int bopen(void *buf, int bufsize, int flags); - -/* - * Define NO_BALLOC to turn off our balloc module altogether - * #define NO_BALLOC 1 - */ - -#ifdef NO_BALLOC -#define balloc(B_ARGS, num) malloc(num) -#define bfree(B_ARGS, p) free(p) -#define bfreeSafe(B_ARGS, p) \ - if (p) { free(p); } else -#define brealloc(B_ARGS, p, num) realloc(p, num) -extern char_t *bstrdupNoBalloc(char_t *s); -extern char *bstrdupANoBalloc(char *s); -#define bstrdup(B_ARGS, s) bstrdupNoBalloc(s) -#define bstrdupA(B_ARGS, s) bstrdupANoBalloc(s) -#define gstrdup(B_ARGS, s) bstrdupNoBalloc(s) - -#else /* BALLOC */ - -#ifndef B_STATS -#define balloc(B_ARGS, num) balloc(num) -#define bfree(B_ARGS, p) bfree(p) -#define bfreeSafe(B_ARGS, p) bfreeSafe(p) -#define brealloc(B_ARGS, p, size) brealloc(p, size) -#define bstrdup(B_ARGS, p) bstrdup(p) - -#ifdef UNICODE -#define bstrdupA(B_ARGS, p) bstrdupA(p) -#else /* UNICODE */ -#define bstrdupA bstrdup -#endif /* UNICODE */ - -#endif /* B_STATS */ - -#define gstrdup bstrdup -extern void *balloc(B_ARGS_DEC, int size); -extern void bfree(B_ARGS_DEC, void *mp); -extern void bfreeSafe(B_ARGS_DEC, void *mp); -extern void *brealloc(B_ARGS_DEC, void *buf, int newsize); -extern char_t *bstrdup(B_ARGS_DEC, char_t *s); - -#ifdef UNICODE -extern char *bstrdupA(B_ARGS_DEC, char *s); -#else /* UNICODE */ -#define bstrdupA bstrdup -#endif /* UNICODE */ -#endif /* BALLOC */ - -extern void bstats(int handle, void (*writefn)(int handle, char_t *fmt, ...)); - -/* - * Flags. The integrity value is used as an arbitrary value to fill the flags. - */ -#define B_USE_MALLOC 0x1 /* Okay to use malloc if required */ -#define B_USER_BUF 0x2 /* User supplied buffer for mem */ - - -#if !LINUX && !__rtems__ -extern char_t *basename(char_t *name); -#endif /* !LINUX */ - -#if (defined (UEMF) && defined (WEBS)) -/* - * The open source webserver uses a different callback/timer mechanism - * than other emf derivative products such as FieldUpgrader agents - * so redefine those API for webserver so that they can coexist in the - * same address space as the others. - */ -#define emfSchedCallback websSchedCallBack -#define emfUnschedCallback websUnschedCallBack -#define emfReschedCallback websReschedCallBack -#endif /* UEMF && WEBS */ - -typedef void (emfSchedProc)(void *data, int id); -extern int emfSchedCallback(int delay, emfSchedProc *proc, void *arg); -extern void emfUnschedCallback(int id); -extern void emfReschedCallback(int id, int delay); -extern void emfSchedProcess(void); -extern int emfInstGet(void); -extern void emfInstSet(int inst); -extern void error(E_ARGS_DEC, int flags, char_t *fmt, ...); -extern void (*errorSetHandler(void (*function)(int etype, char_t *msg))) \ - (int etype, char_t *msg); - -#ifdef B_STATS -#define hAlloc(x) HALLOC(B_L, x) -#define hAllocEntry(x, y, z) HALLOCENTRY(B_L, x, y, z) -extern int HALLOC(B_ARGS_DEC, void ***map); -extern int HALLOCENTRY(B_ARGS_DEC, void ***list, int *max, int size); -#else -extern int hAlloc(void ***map); -extern int hAllocEntry(void ***list, int *max, int size); -#endif /* B_STATS */ - -extern int hFree(void ***map, int handle); - -extern int ringqOpen(ringq_t *rq, int increment, int maxsize); -extern void ringqClose(ringq_t *rq); -extern int ringqLen(ringq_t *rq); - -extern int ringqPutc(ringq_t *rq, char_t c); -extern int ringqInsertc(ringq_t *rq, char_t c); -extern int ringqPutStr(ringq_t *rq, char_t *str); -extern int ringqGetc(ringq_t *rq); - -extern int fmtValloc(char_t **s, int n, char_t *fmt, va_list arg); -extern int fmtAlloc(char_t **s, int n, char_t *fmt, ...); -extern int fmtStatic(char_t *s, int n, char_t *fmt, ...); - -#ifdef UNICODE -extern int ringqPutcA(ringq_t *rq, char c); -extern int ringqInsertcA(ringq_t *rq, char c); -extern int ringqPutStrA(ringq_t *rq, char *str); -extern int ringqGetcA(ringq_t *rq); -#else -#define ringqPutcA ringqPutc -#define ringqInsertcA ringqInsertc -#define ringqPutStrA ringqPutStr -#define ringqGetcA ringqGetc -#endif /* UNICODE */ - -extern int ringqPutBlk(ringq_t *rq, unsigned char *buf, int len); -extern int ringqPutBlkMax(ringq_t *rq); -extern void ringqPutBlkAdj(ringq_t *rq, int size); -extern int ringqGetBlk(ringq_t *rq, unsigned char *buf, int len); -extern int ringqGetBlkMax(ringq_t *rq); -extern void ringqGetBlkAdj(ringq_t *rq, int size); -extern void ringqFlush(ringq_t *rq); -extern void ringqAddNull(ringq_t *rq); - -extern int scriptSetVar(int engine, char_t *var, char_t *value); -extern int scriptEval(int engine, char_t *cmd, char_t **rslt, int chan); - -extern void socketClose(void); -extern void socketCloseConnection(int sid); -extern void socketCreateHandler(int sid, int mask, socketHandler_t - handler, int arg); -extern void socketDeleteHandler(int sid); -extern int socketEof(int sid); -extern int socketCanWrite(int sid); -extern void socketSetBufferSize(int sid, int in, int line, int out); -extern int socketFlush(int sid); -extern int socketGets(int sid, char_t **buf); -extern int socketGetPort(int sid); -extern int socketInputBuffered(int sid); -extern int socketOpen(void); -extern int socketOpenConnection(char *host, int port, - socketAccept_t accept, int flags); -extern void socketProcess(int hid); -extern int socketRead(int sid, char *buf, int len); -extern int socketReady(int hid); -extern int socketWrite(int sid, char *buf, int len); -extern int socketWriteString(int sid, char_t *buf); -extern int socketSelect(int hid, int timeout); -extern int socketGetHandle(int sid); -extern int socketSetBlock(int sid, int flags); -extern int socketGetBlock(int sid); -extern int socketAlloc(char *host, int port, socketAccept_t accept, - int flags); -extern void socketFree(int sid); -extern int socketGetError(void); -extern socket_t *socketPtr(int sid); -extern int socketWaitForEvent(socket_t *sp, int events, int *errCode); -extern void socketRegisterInterest(socket_t *sp, int handlerMask); -extern int socketGetInput(int sid, char *buf, int toRead, int *errCode); - -extern char_t *strlower(char_t *string); -extern char_t *strupper(char_t *string); - -extern char_t *stritoa(int n, char_t *string, int width); - -extern sym_fd_t symOpen(int hash_size); -extern void symClose(sym_fd_t sd); -extern sym_t *symLookup(sym_fd_t sd, char_t *name); -extern sym_t *symEnter(sym_fd_t sd, char_t *name, value_t v, int arg); -extern int symDelete(sym_fd_t sd, char_t *name); -extern void symWalk(sym_fd_t sd, void (*fn)(sym_t *symp)); -extern sym_t *symFirst(sym_fd_t sd); -extern sym_t *symNext(sym_fd_t sd); -extern int symSubOpen(void); -extern void symSubClose(void); - -extern void trace(int lev, char_t *fmt, ...); -extern void traceRaw(char_t *buf); -extern void (*traceSetHandler(void (*function)(int level, char_t *buf))) - (int level, char_t *buf); - -extern value_t valueInteger(long value); -extern value_t valueString(char_t *value, int flags); -extern value_t valueErrmsg(char_t *value); -extern void valueFree(value_t *v); -extern int vxchdir(char *dirname); - -extern unsigned int hextoi(char_t *hexstring); -extern unsigned int gstrtoi(char_t *s); -extern time_t timeMsec(void); - -extern char_t *ascToUni(char_t *ubuf, char *str, int nBytes); -extern char *uniToAsc(char *buf, char_t *ustr, int nBytes); -extern char_t *ballocAscToUni(char *cp, int alen); -extern char *ballocUniToAsc(char_t *unip, int ulen); - -extern char_t *basicGetHost(void); -extern char_t *basicGetAddress(void); -extern char_t *basicGetProduct(void); -extern void basicSetHost(char_t *host); -extern void basicSetAddress(char_t *addr); - -extern int harnessOpen(char_t **argv); -extern void harnessClose(int status); -extern void harnessTesting(char_t *msg, ...); -extern void harnessPassed(void); -extern void harnessFailed(int line); -extern int harnessLevel(void); - -#endif /* _h_UEMF */ - -/******************************************************************************/ |