0.9.4.27:
[sbcl.git] / src / compiler / generic / objdef.lisp
index f924eb0..cae8f6f 100644 (file)
    )
   (lexenv :ref-known (flushable) :ref-trans %funcallable-instance-lexenv
           :set-known (unsafe) :set-trans (setf %funcallable-instance-lexenv))
-  (layout :init :arg
-          :ref-known (flushable) :ref-trans %funcallable-instance-layout
-          :set-known (unsafe) :set-trans (setf %funcallable-instance-layout))
   (info :rest-p t))
 
 (define-primitive-object (value-cell :lowtag other-pointer-lowtag
 ;;; Hence the even-fixnum lowtag just so we don't get odd(sic) numbers
 ;;; added to the slot offsets
 (define-primitive-object (thread :lowtag even-fixnum-lowtag)
-  ;; unbound_marker is borrowed very briefly at thread startup to
-  ;; pass the address of initial-function into new_thread_trampoline
-  (unbound-marker :init :unbound) ; tls[0] = UNBOUND_MARKER_WIDETAG
+  ;; no_tls_value_marker is borrowed very briefly at thread startup to
+  ;; pass the address of initial-function into new_thread_trampoline.
+  ;; tls[0] = NO_TLS_VALUE_MARKER_WIDETAG because a the tls index slot
+  ;; of a symbol is initialized to zero
+  (no-tls-value-marker)
   (os-thread :c-type "os_thread_t")
   (binding-stack-start :c-type "lispobj *" :length #!+alpha 2 #!-alpha 1)
   (binding-stack-pointer :c-type "lispobj *" :length #!+alpha 2 #!-alpha 1)
   (alien-stack-start :c-type "lispobj *" :length #!+alpha 2 #!-alpha 1)
   (alien-stack-pointer :c-type "lispobj *" :length #!+alpha 2 #!-alpha 1)
   #!+gencgc (alloc-region :c-type "struct alloc_region" :length 5)
-  (tls-cookie)                          ;  on x86, the LDT index
   (this :c-type "struct thread *" :length #!+alpha 2 #!-alpha 1)
   (prev :c-type "struct thread *" :length #!+alpha 2 #!-alpha 1)
   (next :c-type "struct thread *" :length #!+alpha 2 #!-alpha 1)
   ;; starting, running, suspended, dead
   (state :c-type "volatile lispobj")
+  (tls-cookie)                          ;  on x86, the LDT index
   #!+(or x86 x86-64) (pseudo-atomic-atomic)
   #!+(or x86 x86-64) (pseudo-atomic-interrupted)
   (interrupt-fun)
-  (interrupt-fun-lock)
+  (interrupt-fun-lock :c-type "volatile lispobj")
   (interrupt-data :c-type "struct interrupt_data *"
                   :length #!+alpha 2 #!-alpha 1)
   (interrupt-contexts :c-type "os_context_t *" :rest-p t))