Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/mmixware/open.c')
-rw-r--r--newlib/libc/sys/mmixware/open.c108
1 files changed, 0 insertions, 108 deletions
diff --git a/newlib/libc/sys/mmixware/open.c b/newlib/libc/sys/mmixware/open.c
deleted file mode 100644
index 26fbbb983..000000000
--- a/newlib/libc/sys/mmixware/open.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* open for MMIXware.
-
- Copyright (C) 2001 Hans-Peter Nilsson
-
- Permission to use, copy, modify, and distribute this software is
- freely granted, provided that the above copyright notice, this notice
- and the following disclaimer are preserved with no changes.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE. */
-
-#include <fcntl.h>
-#include <_ansi.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include "sys/syscall.h"
-#include <errno.h>
-
-/* Let's keep the filehandle array here, since this is a primary
- initializer of it. */
-unsigned char _MMIX_allocated_filehandle[32] =
- {
- 1,
- 1,
- 1,
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
- };
-
-int
-_open (const char *path,
- int flags, ...)
-{
- long fileno;
- unsigned char mode;
- long fffile = 0;
- long ret;
-
- for (fileno = 0;
- fileno < (sizeof (_MMIX_allocated_filehandle) /
- sizeof (_MMIX_allocated_filehandle[0]));
- fileno++)
- if (_MMIX_allocated_filehandle[fileno] == 0)
- break;
-
- if (fileno == (sizeof (_MMIX_allocated_filehandle) /
- sizeof (_MMIX_allocated_filehandle[0])))
- {
- errno = EMFILE;
- return -1;
- }
-
- /* We map this to a fopen call. The flags parameter is stymied because
- we don't support more other than these flags. */
- if (flags & ~(O_RDONLY | O_WRONLY | O_RDWR | O_CREAT | O_APPEND | O_TRUNC))
- {
- UNIMPLEMENTED (("path: %s, flags: %d", path, flags));
- errno = ENOSYS;
- return -1;
- }
-
- if ((flags & O_ACCMODE) == O_RDONLY)
- mode = BinaryRead;
- else if ((flags & (O_WRONLY | O_APPEND)) == (O_WRONLY | O_APPEND))
- {
- mode = BinaryReadWrite;
- fffile = 1;
- }
- else if ((flags & (O_RDWR | O_APPEND)) == (O_RDWR | O_APPEND))
- {
- mode = BinaryReadWrite;
- fffile = 1;
- }
- else if ((flags & (O_WRONLY | O_CREAT)) == (O_WRONLY | O_CREAT)
- || (flags & (O_WRONLY | O_TRUNC)) == (O_WRONLY | O_TRUNC))
- mode = BinaryWrite;
- else if ((flags & (O_RDWR | O_CREAT)) == (O_RDWR | O_CREAT))
- mode = BinaryReadWrite;
- else if (flags & O_RDWR)
- mode = BinaryReadWrite;
- else
- {
- errno = EINVAL;
- return -1;
- }
-
- ret = TRAP3f (SYS_Fopen, fileno, path, mode);
- if (ret < 0)
- {
- /* It's totally unknown what the error was. We'll just take our
- chances and assume ENOENT. */
- errno = ENOENT;
- return -1;
- }
-
- _MMIX_allocated_filehandle[fileno] = 1;
-
- if (fffile)
- {
- TRAP2f (SYS_Fseek, fileno, -1);
- }
-
- return fileno;
-}