X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=examples%2Funion.cl;h=a18dfecb56aba015bf77f3a8bbfa7190f37b09fa;hb=755b88dd8dd3bcacc9e9d073dbd8ad0f729070fc;hp=bd6e5b4fbab628f7244de67068df86c3568f654d;hpb=e6ead14af8cd0833a49d7cd33c8bc33d3404da6d;p=uffi.git diff --git a/examples/union.cl b/examples/union.cl index bd6e5b4..a18dfec 100644 --- a/examples/union.cl +++ b/examples/union.cl @@ -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 ;;;; @@ -27,11 +27,17 @@ (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))) @@ -44,17 +50,25 @@ (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