1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
(define-module (bytestructures guile numeric-data-model))
(import (system foreign))
(import (system base target))
(define architecture
(let ((cpu (target-cpu)))
(cond
((member cpu '("i386" "i486" "i586" "i686"))
'i386)
((string=? "x86_64" cpu)
'x86-64)
((string-prefix? "arm" cpu)
'arm)
((string-prefix? "aarch64" cpu)
'aarch64))))
(define data-model
(if (= 4 (sizeof '*))
(if (= 2 (sizeof int))
'lp32
'ilp32)
(cond
((= 8 (sizeof int)) 'ilp64)
((= 4 (sizeof long)) 'llp64)
(else 'lp64))))
(cond-expand-provide
(current-module)
(list architecture data-model))
|