Recognizer for a valid Call Gate segment descriptor
(ia32e-valid-call-gate-segment-descriptor-p descriptor) → (mv * *)
Function:
(defun ia32e-valid-call-gate-segment-descriptor-p (descriptor) (declare (type (unsigned-byte 128) descriptor)) (let ((__function__ 'ia32e-valid-call-gate-segment-descriptor-p)) (declare (ignorable __function__)) (b* ((type (call-gate-descriptorbits->type descriptor)) ((when (not (equal type 12))) (mv nil (cons :invalid-type descriptor))) ((when (not (equal (call-gate-descriptorbits->s descriptor) 0))) (mv nil (cons :invalid-segment-type descriptor))) ((when (not (equal (call-gate-descriptorbits->p descriptor) 1))) (mv nil (cons :segment-not-present descriptor))) ((when (not (equal (call-gate-descriptorbits->all-zeroes? descriptor) 0))) (mv nil (cons :all-zeroes-absent descriptor)))) (mv t 0))))