r1725: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 3 Apr 2002 00:50:46 +0000 (00:50 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 3 Apr 2002 00:50:46 +0000 (00:50 +0000)
examples/union.cl
tests/union.cl

index bd6e5b4fbab628f7244de67068df86c3568f654d..a18dfecb56aba015bf77f3a8bbfa7190f37b09fa 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Mar 2002
 ;;;;
-;;;; $Id: union.cl,v 1.5 2002/04/02 23:27:05 kevin Exp $
+;;;; $Id: union.cl,v 1.6 2002/04/03 00:50:46 kevin Exp $
 ;;;;
 ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 
 (defun run-union-1 ()
   (let ((u (uffi:allocate-foreign-object 'tunion1)))
-    (setf (uffi:get-slot-value u 'tunion1 'uint) 
-      (+ (char-code #\A) 
-        (* 256 (char-code #\B))
-        (* 65536 (char-code #\C))
-        (* 16777216 255)))
+    (setf (uffi:get-slot-value u 'tunion1 'uint)
+         #-sparc
+         (+ (* 1 (char-code #\A))
+            (* 256 (char-code #\B))
+            (* 65536 (char-code #\C))
+            (* 16777216 255))
+         #+(or sparc sparc-v9)
+         (+ (* 16777216 (char-code #\A))
+            (* 65536 (char-code #\B))
+            (* 256 (char-code #\C))
+            (* 1 255)))
     (format *standard-output* "~&Should be #\A: ~S" 
            (uffi:ensure-char-character 
             (uffi:get-slot-value u 'tunion1 'char)))
 
 (defun test-union-1 ()
   (let ((u (uffi:allocate-foreign-object 'tunion1)))
-    (setf (uffi:get-slot-value u 'tunion1 'uint) 
-      (+ (char-code #\A) 
-        (* 256 (char-code #\B))
-        (* 65536 (char-code #\C))
-        (* 16777216 255)))
+    (setf (uffi:get-slot-value u 'tunion1 'uint)
+         #-sparc
+         (+ (* 1 (char-code #\A))
+            (* 256 (char-code #\B))
+            (* 65536 (char-code #\C))
+            (* 16777216 128))
+         #+(or sparc sparc-v9)
+         (+ (* 16777216 (char-code #\A))
+            (* 65536 (char-code #\B))
+            (* 256 (char-code #\C))
+            (* 1 128))) ;set signed bit
     (util.test:test (uffi:ensure-char-character 
                (uffi:get-slot-value u 'tunion1 'char))
               #\A
               :test #'eql
               :fail-info "Error with union character")
-    
+    (print (uffi:get-slot-value u 'tunion1 'uint))
+    (print (uffi:get-slot-value u 'tunion1 'int))
+    #-(or sparc sparc-v9)
     (util.test:test (> 0 (uffi:get-slot-value u 'tunion1 'int))
               t
               :fail-info
index bd6e5b4fbab628f7244de67068df86c3568f654d..a18dfecb56aba015bf77f3a8bbfa7190f37b09fa 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Mar 2002
 ;;;;
-;;;; $Id: union.cl,v 1.5 2002/04/02 23:27:05 kevin Exp $
+;;;; $Id: union.cl,v 1.6 2002/04/03 00:50:46 kevin Exp $
 ;;;;
 ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 
 (defun run-union-1 ()
   (let ((u (uffi:allocate-foreign-object 'tunion1)))
-    (setf (uffi:get-slot-value u 'tunion1 'uint) 
-      (+ (char-code #\A) 
-        (* 256 (char-code #\B))
-        (* 65536 (char-code #\C))
-        (* 16777216 255)))
+    (setf (uffi:get-slot-value u 'tunion1 'uint)
+         #-sparc
+         (+ (* 1 (char-code #\A))
+            (* 256 (char-code #\B))
+            (* 65536 (char-code #\C))
+            (* 16777216 255))
+         #+(or sparc sparc-v9)
+         (+ (* 16777216 (char-code #\A))
+            (* 65536 (char-code #\B))
+            (* 256 (char-code #\C))
+            (* 1 255)))
     (format *standard-output* "~&Should be #\A: ~S" 
            (uffi:ensure-char-character 
             (uffi:get-slot-value u 'tunion1 'char)))
 
 (defun test-union-1 ()
   (let ((u (uffi:allocate-foreign-object 'tunion1)))
-    (setf (uffi:get-slot-value u 'tunion1 'uint) 
-      (+ (char-code #\A) 
-        (* 256 (char-code #\B))
-        (* 65536 (char-code #\C))
-        (* 16777216 255)))
+    (setf (uffi:get-slot-value u 'tunion1 'uint)
+         #-sparc
+         (+ (* 1 (char-code #\A))
+            (* 256 (char-code #\B))
+            (* 65536 (char-code #\C))
+            (* 16777216 128))
+         #+(or sparc sparc-v9)
+         (+ (* 16777216 (char-code #\A))
+            (* 65536 (char-code #\B))
+            (* 256 (char-code #\C))
+            (* 1 128))) ;set signed bit
     (util.test:test (uffi:ensure-char-character 
                (uffi:get-slot-value u 'tunion1 'char))
               #\A
               :test #'eql
               :fail-info "Error with union character")
-    
+    (print (uffi:get-slot-value u 'tunion1 'uint))
+    (print (uffi:get-slot-value u 'tunion1 'int))
+    #-(or sparc sparc-v9)
     (util.test:test (> 0 (uffi:get-slot-value u 'tunion1 'int))
               t
               :fail-info