X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fobjdef.lisp;h=2f455da8c3170a04d7f3764ea692ae764b83a198;hb=45bc305be4e269d2e1a477c8e0ae9a64df1ccd1c;hp=bf81d29d064ba224aa3f95aa6e9227a32aae3600;hpb=038ecde3e0386e347550709a199c7f856052c0cd;p=sbcl.git diff --git a/src/compiler/generic/objdef.lisp b/src/compiler/generic/objdef.lisp index bf81d29..2f455da 100644 --- a/src/compiler/generic/objdef.lisp +++ b/src/compiler/generic/objdef.lisp @@ -241,6 +241,8 @@ (define-primitive-object (value-cell :lowtag other-pointer-lowtag :widetag value-cell-header-widetag + ;; FIXME: We also have an explicit VOP + ;; for this. Is this needed as well? :alloc-trans make-value-cell) (value :set-trans value-cell-set :set-known (unsafe) @@ -374,6 +376,13 @@ ;; of a symbol is initialized to zero (no-tls-value-marker) (os-thread :c-type "volatile os_thread_t") + ;; This is the original address at which the memory was allocated, + ;; which may have different alignment then what we prefer to use. + ;; Kept here so that when the thread dies we can releast the whole + ;; memory we reserved. + (os-address :c-type "void *" :length #!+alpha 2 #!-alpha 1) + #!+sb-thread + (os-attr :c-type "pthread_attr_t *" :length #!+alpha 2 #!-alpha 1) (binding-stack-start :c-type "lispobj *" :length #!+alpha 2 #!-alpha 1) (binding-stack-pointer :c-type "lispobj *" :length #!+alpha 2 #!-alpha 1) (control-stack-start :c-type "lispobj *" :length #!+alpha 2 #!-alpha 1)