aboutsummaryrefslogtreecommitdiff
path: root/libgloss/rs6000/sol-cfuncs.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/rs6000/sol-cfuncs.c')
-rw-r--r--libgloss/rs6000/sol-cfuncs.c277
1 files changed, 0 insertions, 277 deletions
diff --git a/libgloss/rs6000/sol-cfuncs.c b/libgloss/rs6000/sol-cfuncs.c
deleted file mode 100644
index 9827167..0000000
--- a/libgloss/rs6000/sol-cfuncs.c
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * solaris-cfuncs.S -- C functions for Solaris.
- *
- * Copyright (c) 1996 Cygnus Support
- *
- * The authors hereby grant permission to use, copy, modify, distribute,
- * and license this software and its documentation for any purpose, provided
- * that existing copyright notices are retained in all copies and that this
- * notice is included verbatim in any distributions. No written agreement,
- * license, or royalty fee is required for any of the authorized uses.
- * Modifications to this software may be copyrighted by their authors
- * and need not follow the licensing terms described here, provided that
- * the new terms are clearly indicated on the first page of each file where
- * they apply.
- */
-
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/unistd.h>
-
-#ifndef __STDC__
-#define const
-#endif
-
-/* Solaris stat packet */
-typedef long solaris_off_t;
-typedef long solaris_uid_t;
-typedef long solaris_gid_t;
-typedef long unsigned solaris_mode_t;
-typedef long unsigned solaris_nlink_t;
-typedef long unsigned solaris_dev_t;
-typedef long unsigned solaris_ino_t;
-typedef long solaris_time_t;
-
-typedef struct {
- solaris_time_t tv_sec;
- long tv_nsec;
-} solaris_timestruc_t;
-
-#define _ST_FSTYPSZ 16
-
-struct solaris_stat {
- solaris_dev_t st_dev;
- long st_pad1[3];
- solaris_ino_t st_ino;
- solaris_mode_t st_mode;
- solaris_nlink_t st_nlink;
- solaris_uid_t st_uid;
- solaris_gid_t st_gid;
- solaris_dev_t st_rdev;
- long st_pad2[2];
- solaris_off_t st_size;
- long st_pad3;
- solaris_timestruc_t st_atim;
- solaris_timestruc_t st_mtim;
- solaris_timestruc_t st_ctim;
- long st_blksize;
- long st_blocks;
- char st_fstype[_ST_FSTYPSZ];
- long st_pad4[8];
-};
-
-/* Solaris termios packet */
-#define SOLARIS_NCCS 19
-typedef unsigned long solaris_tcflag_t;
-typedef unsigned char solaris_cc_t;
-typedef unsigned long solaris_speed_t;
-
-struct solaris_termios {
- solaris_tcflag_t c_iflag;
- solaris_tcflag_t c_oflag;
- solaris_tcflag_t c_cflag;
- solaris_tcflag_t c_lflag;
- solaris_cc_t c_cc[SOLARIS_NCCS];
-};
-
-#define SOLARIS_TIOC ('T'<<8)
-#define SOLARIS_TCGETS (SOLARIS_TIOC|13)
-
-
-
-/* Debug support */
-#ifdef DEBUG
-#define TRACE(msg) trace (msg)
-#define TRACE1(msg,num) trace1 (msg,(unsigned)num)
-
-static void
-trace (msg)
- const char *msg;
-{
- const char *p;
-
- for (p = msg; *p != '\0'; p++)
- ;
-
- (void) write (2, msg, p-msg);
-}
-
-static void
-trace1 (msg, num)
- const char *msg;
- unsigned int num;
-{
- char buffer[16];
- char *p = &buffer[ sizeof(buffer) ];
-
- trace (msg);
- *--p = '\0';
- *--p = '\n';
- do {
- *--p = '0' + (num % 10);
- num /= 10;
- } while (num != 0);
- trace (p);
-}
-
-#else
-#define TRACE(msg)
-#define TRACE1(msg,num)
-#endif
-
-
-/* Errno support */
-
-int errno;
-
-int *
-__errno ()
-{
- return &errno;
-}
-
-/* syscall handler branches here to set errno. Error codes
- that are common between newlib and Solaris are the same. */
-
-int
-_cerror (e)
- int e;
-{
- TRACE1("got to _cerror ",e);
- errno = e;
- return -1;
-}
-
-
-/* Sbrk support */
-
-extern char _end[];
-static char *curbrk = _end;
-
-void *
-sbrk (incr)
- size_t incr;
-{
- char *oldbrk = curbrk;
- TRACE("got to sbrk\n");
- curbrk += incr;
- if (brk (curbrk) == -1)
- return (char *) -1;
-
- return (void *)oldbrk;
-}
-
-
-/* Isatty support */
-
-int
-isatty (fd)
- int fd;
-{
- struct solaris_termios t;
- int ret;
-
- ret = (ioctl (fd, SOLARIS_TCGETS, &t) == 0);
-
- TRACE1("got to isatty, returned ", ret);
- return ret;
-}
-
-
-/* Convert Solaris {,f}stat to newlib.
- Fortunately, the st_mode bits are the same. */
-
-static void
-solaris_to_newlib_stat (solaris, newlib)
- struct solaris_stat *solaris;
- struct stat *newlib;
-{
- static struct stat zero_stat;
-
- *newlib = zero_stat;
- newlib->st_dev = solaris->st_dev;
- newlib->st_ino = solaris->st_ino;
- newlib->st_mode = solaris->st_mode;
- newlib->st_nlink = solaris->st_nlink;
- newlib->st_uid = solaris->st_uid;
- newlib->st_gid = solaris->st_gid;
- newlib->st_rdev = solaris->st_rdev;
- newlib->st_size = solaris->st_size;
- newlib->st_blksize = solaris->st_blksize;
- newlib->st_blocks = solaris->st_blocks;
- newlib->st_atime = solaris->st_atim.tv_sec;
- newlib->st_mtime = solaris->st_mtim.tv_sec;
- newlib->st_ctime = solaris->st_ctim.tv_sec;
-}
-
-int
-stat (file, newlib_stat)
- const char *file;
- struct stat *newlib_stat;
-{
- int ret;
- struct solaris_stat st;
-
- TRACE("got to stat\n");
- ret = _stat (file, &st);
- if (ret >= 0)
- solaris_to_newlib_stat (&st, newlib_stat);
-
- return ret;
-}
-
-int
-lstat (file, newlib_stat)
- const char *file;
- struct stat *newlib_stat;
-{
- int ret;
- struct solaris_stat st;
-
- TRACE("got to lstat\n");
- ret = _lstat (file, &st);
- if (ret >= 0)
- solaris_to_newlib_stat (&st, newlib_stat);
-
- return ret;
-}
-
-int
-fstat (fd, newlib_stat)
- int fd;
- struct stat *newlib_stat;
-{
- int ret;
- struct solaris_stat st;
-
- TRACE("got to fstat\n");
- ret = _fstat (fd, &st);
- if (ret >= 0)
- solaris_to_newlib_stat (&st, newlib_stat);
-
- return ret;
-}
-
-
-/* Nops */
-
-int
-getrusage ()
-{
- _cerror (EINVAL);
- return -1;
-}
-
-char *
-getcwd(buf, size)
- char *buf;
- size_t size;
-{
- if (!buf || size < 2)
- return ".";
-
- buf[0] = '.';
- buf[1] = '\0';
- return buf;
-}