[Openmcl-cvs-notifications] r10050 - /trunk/source/level-0/l0-io.lisp

gb at clozure.com gb at clozure.com
Wed Jul 16 10:22:49 EDT 2008


Author: gb
Date: Wed Jul 16 10:22:49 2008
New Revision: 10050

Log:
Conditionalize for Solaris.


Modified:
    trunk/source/level-0/l0-io.lisp

Modified: trunk/source/level-0/l0-io.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/level-0/l0-io.lisp (original)
+++ trunk/source/level-0/l0-io.lisp Wed Jul 16 10:22:49 2008
@@ -27,6 +27,8 @@
   (require "DARWINX8664-SYSCALLS")
   #+freebsd-target
   (require "X8664-FREEBSD-SYSCALLS")
+  #+solarisx8664-target
+  (require "X8664-SOLARIS-SYSCALLS")
   )
 =

 =

@@ -224,7 +226,15 @@
        (fd-lseek fd curpos #$SEEK_SET)))))
 =

 (defun fd-ftruncate (fd new)
-  (syscall syscalls::ftruncate fd new))
+  #-solaris-target
+  (syscall syscalls::ftruncate fd new)
+  #+solaris-target
+  (rlet ((lck #>flock))
+    (setf (pref lck :flock.l_whence) 0
+          (pref lck :flock.l_start) new
+          (pref lck :flock.l_type) #$F_WRLCK
+          (pref lck :flock.l_len) 0)
+    (syscall syscalls::fcntl fd #$F_FREESP lck)))
 =

 (defun %string-to-stderr (str)
   (with-cstrs ((s str))



More information about the Openmcl-cvs-notifications mailing list