diff options
Diffstat (limited to 'c/src/libnetworking/rtems_webserver/rom.c')
-rw-r--r-- | c/src/libnetworking/rtems_webserver/rom.c | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/c/src/libnetworking/rtems_webserver/rom.c b/c/src/libnetworking/rtems_webserver/rom.c deleted file mode 100644 index f9ff5312ac..0000000000 --- a/c/src/libnetworking/rtems_webserver/rom.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - * rom.c -- Support for ROMed page retrieval. - * - * Copyright (c) GoAhead Software Inc., 1995-2000. All Rights Reserved. - * - * See the file "license.txt" for usage and redistribution license requirements - * - * $Id$ - */ - -/******************************** Description *********************************/ - -/* - * This module provides web page retrieval from compiled web pages. Use the - * webcomp program to compile web pages and link into the GoAhead WebServer. - * This module uses a hashed symbol table for fast page lookup. - * - * Usage: webcomp -f webPageFileList -p Prefix >webrom.c - */ - -/********************************* Includes ***********************************/ - -#include <stdlib.h> - -#include "wsIntrn.h" - -/******************************** Local Data **********************************/ - -#ifdef WEBS_PAGE_ROM - -sym_fd_t romTab; /* Symbol table for web pages */ - -/*********************************** Code *************************************/ -/* - * Open the ROM module - */ - -int websRomOpen() -{ - websRomPageIndexType *wip; - int nchars; - char_t name[SYM_MAX]; - - romTab = symOpen(WEBS_SYM_INIT); - - for (wip = websRomPageIndex; wip->path; wip++) { - gstrncpy(name, wip->path, SYM_MAX); - nchars = gstrlen(name) - 1; - if (nchars > 0 && - (name[nchars] == '/' || name[nchars] == '\\')) { - name[nchars] = '\0'; - } - symEnter(romTab, name, valueInteger((int) wip), 0); - } - return 0; -} - -/******************************************************************************/ -/* - * Close the ROM module - */ - -void websRomClose() -{ - symClose(romTab); -} - -/******************************************************************************/ -/* - * Open a web page - */ - -int websRomPageOpen(webs_t wp, char_t *path, int mode, int perm) -{ - websRomPageIndexType *wip; - sym_t *sp; - - a_assert(websValid(wp)); - a_assert(path && *path); - - if ((sp = symLookup(romTab, path)) == NULL) { - return -1; - } - wip = (websRomPageIndexType*) sp->content.value.integer; - wip->pos = 0; - return (wp->docfd = wip - websRomPageIndex); -} - -/******************************************************************************/ -/* - * Close a web page - */ - -void websRomPageClose(int fd) -{ -} - -/******************************************************************************/ -/* - * Stat a web page - */ - -int websRomPageStat(char_t *path, websStatType *sbuf) -{ - websRomPageIndexType *wip; - sym_t *sp; - - a_assert(path && *path); - - if ((sp = symLookup(romTab, path)) == NULL) { - return -1; - } - wip = (websRomPageIndexType*) sp->content.value.integer; - - memset(sbuf, 0, sizeof(websStatType)); - sbuf->size = wip->size; - if (wip->page == NULL) { - sbuf->isDir = 1; - } - return 0; -} - -/******************************************************************************/ -/* - * Read a web page - */ - -int websRomPageReadData(webs_t wp, char *buf, int nBytes) -{ - websRomPageIndexType *wip; - int len; - - a_assert(websValid(wp)); - a_assert(buf); - a_assert(wp->docfd >= 0); - - wip = &websRomPageIndex[wp->docfd]; - - len = min(wip->size - wip->pos, nBytes); - memcpy(buf, &wip->page[wip->pos], len); - wip->pos += len; - return len; -} - -/******************************************************************************/ -/* - * Position a web page - */ - -long websRomPageSeek(webs_t wp, long offset, int origin) -{ - websRomPageIndexType *wip; - long pos; - - a_assert(websValid(wp)); - a_assert(origin == SEEK_SET || origin == SEEK_CUR || origin == SEEK_END); - a_assert(wp->docfd >= 0); - - wip = &websRomPageIndex[wp->docfd]; - - if (origin != SEEK_SET && origin != SEEK_CUR && origin != SEEK_END) { - errno = EINVAL; - return -1; - } - - if (wp->docfd < 0) { - errno = EBADF; - return -1; - } - - pos = offset; - switch (origin) { - case SEEK_CUR: - pos = wip->pos + offset; - break; - case SEEK_END: - pos = wip->size + offset; - break; - default: - break; - } - - if (pos < 0) { - errno = EBADF; - return -1; - } - - return (wip->pos = pos); -} - -#endif /* WEBS_PAGE_ROM */ - -/******************************************************************************/ |