summaryrefslogtreecommitdiff
path: root/otherlibs/win32unix/lseek.c
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/win32unix/lseek.c')
-rw-r--r--otherlibs/win32unix/lseek.c76
1 files changed, 0 insertions, 76 deletions
diff --git a/otherlibs/win32unix/lseek.c b/otherlibs/win32unix/lseek.c
deleted file mode 100644
index acc7b10044..0000000000
--- a/otherlibs/win32unix/lseek.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/***********************************************************************/
-/* */
-/* Objective Caml */
-/* */
-/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
-/* */
-/* Copyright 1996 Institut National de Recherche en Informatique et */
-/* en Automatique. All rights reserved. This file is distributed */
-/* under the terms of the GNU Library General Public License, with */
-/* the special exception on linking described in file ../../LICENSE. */
-/* */
-/***********************************************************************/
-
-/* $Id$ */
-
-#include <mlvalues.h>
-#include <alloc.h>
-#include "unixsupport.h"
-
-#ifdef HAS_UNISTD
-#include <unistd.h>
-#else
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-#endif
-
-static int seek_command_table[] = {
- FILE_BEGIN, FILE_CURRENT, FILE_END
-};
-
-#ifndef INVALID_SET_FILE_POINTER
-#define INVALID_SET_FILE_POINTER (-1)
-#endif
-
-CAMLprim value unix_lseek(value fd, value ofs, value cmd)
-{
- long ret;
- long ofs_low = Long_val(ofs);
- long ofs_high = ofs_low >= 0 ? 0 : -1;
- long err;
-
- ret = SetFilePointer(Handle_val(fd), ofs_low, &ofs_high,
- seek_command_table[Int_val(cmd)]);
- if (ret == INVALID_SET_FILE_POINTER) {
- err = GetLastError();
- if (err != NO_ERROR) {
- win32_maperr(err);
- uerror("lseek", Nothing);
- }
- }
- if (ofs_high != 0 || ret > Max_long) {
- win32_maperr(ERROR_ARITHMETIC_OVERFLOW);
- uerror("lseek", Nothing);
- }
- return Val_long(ret);
-}
-
-CAMLprim value unix_lseek_64(value fd, value ofs, value cmd)
-{
- long ret;
- long ofs_low = (long) Int64_val(ofs);
- long ofs_high = (long) (Int64_val(ofs) >> 32);
- long err;
-
- ret = SetFilePointer(Handle_val(fd), ofs_low, &ofs_high,
- seek_command_table[Int_val(cmd)]);
- if (ret == INVALID_SET_FILE_POINTER) {
- err = GetLastError();
- if (err != NO_ERROR) {
- win32_maperr(err);
- uerror("lseek", Nothing);
- }
- }
- return copy_int64((int64) ofs_high << 32 | ret);
-}