• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
      • X86isa
      • Axe
      • Execloader
        • Elf-reader
        • Mach-o-reader
          • Read-load_commands
          • Read-section_data_sz_structures
          • Mach-o-section-header
            • Mach-o-section-header-fix
            • Make-mach-o-section-header
              • Mach-o-section-header-equiv
              • Mach-o-section-header-p
              • Change-mach-o-section-header
              • Mach-o-section-header->segname
              • Mach-o-section-header->sectname
              • Mach-o-section-header->reserved3
              • Mach-o-section-header->reserved2
              • Mach-o-section-header->reserved1
              • Mach-o-section-header->reloff
              • Mach-o-section-header->offset
              • Mach-o-section-header->nreloc
              • Mach-o-section-header->size
              • Mach-o-section-header->flags
              • Mach-o-section-header->align
              • Mach-o-section-header->addr
            • Mach-o-header
            • Populate-mach-o-contents
            • Good-mach-o-p
            • Fill-data-segment-bytes
            • Fill-text-text-section-bytes
            • Fill-text-segment-bytes
            • Fill-text-cstring-section-bytes
            • Fill-text-const-section-bytes
            • Fill-data-dyld-section-bytes
            • Fill-data-data-section-bytes
            • Fill-data-const-section-bytes
            • Fill-data-common-section-bytes
            • Fill-data-bss-section-bytes
            • Read-mach_header
            • Populate-mach-o
            • Mach-o-section-headers
          • Merge-first-split-bytes
          • Split-bytes
          • Take-till-zero
          • Charlist->bytes
          • Merge-bytes
          • Bytes->charlist
          • String->bytes
          • Bytes->string
      • Math
      • Testing-utilities
    • Mach-o-section-header

    Make-mach-o-section-header

    Basic constructor macro for mach-o-section-header structures.

    Syntax
    (make-mach-o-section-header [:sectname <sectname>] 
                                [:segname <segname>] 
                                [:addr <addr>] 
                                [:size <size>] 
                                [:offset <offset>] 
                                [:align <align>] 
                                [:reloff <reloff>] 
                                [:nreloc <nreloc>] 
                                [:flags <flags>] 
                                [:reserved1 <reserved1>] 
                                [:reserved2 <reserved2>] 
                                [:reserved3 <reserved3>]) 
    

    This is the usual way to construct mach-o-section-header structures. It simply conses together a structure with the specified fields.

    This macro generates a new mach-o-section-header structure from scratch. See also change-mach-o-section-header, which can "change" an existing structure, instead.

    Definition

    This is an ordinary make- macro introduced by defprod.

    Macro: make-mach-o-section-header

    (defmacro make-mach-o-section-header (&rest args)
      (std::make-aggregate 'mach-o-section-header
                           args
                           '((:sectname . "")
                             (:segname . "")
                             (:addr . 0)
                             (:size . 0)
                             (:offset . 0)
                             (:align . 0)
                             (:reloff . 0)
                             (:nreloc . 0)
                             (:flags . 0)
                             (:reserved1 . 0)
                             (:reserved2 . 0)
                             (:reserved3 . 0))
                           'make-mach-o-section-header
                           nil))

    Function: mach-o-section-header

    (defun mach-o-section-header
           (sectname segname
                     addr size offset align reloff nreloc
                     flags reserved1 reserved2 reserved3)
      (declare (xargs :guard (and (stringp sectname)
                                  (stringp segname)
                                  (natp addr)
                                  (natp size)
                                  (natp offset)
                                  (natp align)
                                  (natp reloff)
                                  (natp nreloc)
                                  (natp flags)
                                  (natp reserved1)
                                  (natp reserved2)
                                  (natp reserved3))))
      (declare (xargs :guard t))
      (let ((__function__ 'mach-o-section-header))
        (declare (ignorable __function__))
        (b* ((sectname (mbe :logic (acl2::str-fix sectname)
                            :exec sectname))
             (segname (mbe :logic (acl2::str-fix segname)
                           :exec segname))
             (addr (mbe :logic (nfix addr) :exec addr))
             (size (mbe :logic (nfix size) :exec size))
             (offset (mbe :logic (nfix offset) :exec offset))
             (align (mbe :logic (nfix align) :exec align))
             (reloff (mbe :logic (nfix reloff) :exec reloff))
             (nreloc (mbe :logic (nfix nreloc) :exec nreloc))
             (flags (mbe :logic (nfix flags) :exec flags))
             (reserved1 (mbe :logic (nfix reserved1)
                             :exec reserved1))
             (reserved2 (mbe :logic (nfix reserved2)
                             :exec reserved2))
             (reserved3 (mbe :logic (nfix reserved3)
                             :exec reserved3)))
          (list (cons 'sectname sectname)
                (cons 'segname segname)
                (cons 'addr addr)
                (cons 'size size)
                (cons 'offset offset)
                (cons 'align align)
                (cons 'reloff reloff)
                (cons 'nreloc nreloc)
                (cons 'flags flags)
                (cons 'reserved1 reserved1)
                (cons 'reserved2 reserved2)
                (cons 'reserved3 reserved3)))))