Constructor for the System Segment attribute field
(make-system-segment-attr-field descriptor) → *
Function:
(defun make-system-segment-attr-field (descriptor) (declare (type (unsigned-byte 128) descriptor)) (let ((__function__ 'make-system-segment-attr-field)) (declare (ignorable __function__)) (b* ((type (system-segment-descriptorbits->type descriptor)) (s (system-segment-descriptorbits->s descriptor)) (dpl (system-segment-descriptorbits->dpl descriptor)) (p (system-segment-descriptorbits->p descriptor)) (avl (system-segment-descriptorbits->avl descriptor)) (g (system-segment-descriptorbits->g descriptor))) (change-system-segment-descriptor-attributesbits 0 :type type :s s :dpl dpl :p p :avl avl :g g))))
Theorem:
(defthm n16p-make-system-segment-attr (implies (unsigned-byte-p 128 descriptor) (unsigned-byte-p 16 (make-system-segment-attr-field descriptor))) :rule-classes (:rewrite (:type-prescription :corollary (implies (unsigned-byte-p 128 descriptor) (natp (make-system-segment-attr-field descriptor))) :hints (("Goal" :in-theory '(unsigned-byte-p integer-range-p natp)))) (:linear :corollary (implies (unsigned-byte-p 128 descriptor) (and (<= 0 (make-system-segment-attr-field descriptor)) (< (make-system-segment-attr-field descriptor) 65536))) :hints (("Goal" :in-theory '(unsigned-byte-p integer-range-p (:e expt)))))))