]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_codesigning/lib/cdbuilder.h
Security-58286.20.16.tar.gz
[apple/security.git] / OSX / libsecurity_codesigning / lib / cdbuilder.h
index 1c6d373de98b3dd22d2611a852517f5294827d4b..761dcf631dbbf0e0752ebeb249bdeac0186a60e2 100644 (file)
@@ -59,10 +59,14 @@ public:
        
        Scatter *scatter(unsigned count);                       // allocate that many scatter elements (w/o sentinel)
        Scatter *scatter() { return mScatter; }         // return already allocated scatter vector
        
        Scatter *scatter(unsigned count);                       // allocate that many scatter elements (w/o sentinel)
        Scatter *scatter() { return mScatter; }         // return already allocated scatter vector
-       
+
+       void execSeg(uint64_t base, uint64_t limit, uint64_t flags) {
+               mExecSegOffset = base; mExecSegLimit = limit; mExecSegFlags = flags; }
+       void addExecSegFlags(uint64_t flags) { mExecSegFlags |= flags; }
+
        size_t size(const uint32_t version);            // calculate size
        CodeDirectory *build();                                         // build CodeDirectory and return it
        size_t size(const uint32_t version);            // calculate size
        CodeDirectory *build();                                         // build CodeDirectory and return it
-       const size_t fixedSize(const uint32_t version); // calculate fixed size of the CodeDirectory
+    size_t fixedSize(const uint32_t version);  // calculate fixed size of the CodeDirectory
        
        uint32_t hashType() const { return mHashType; }
 
        
        uint32_t hashType() const { return mHashType; }
 
@@ -93,7 +97,11 @@ private:
        
        Scatter *mScatter;                                                      // scatter vector
        size_t mScatterSize;                                            // number of scatter elements allocated (incl. sentinel)
        
        Scatter *mScatter;                                                      // scatter vector
        size_t mScatterSize;                                            // number of scatter elements allocated (incl. sentinel)
-       
+
+       uint64_t mExecSegOffset;                                        // starting offset of executable segment
+       uint64_t mExecSegLimit;                                         // limit of executable segment
+       uint64_t mExecSegFlags;                                         // executable segment flags
+
        CodeDirectory *mDir;                                            // what we're building
 };
 
        CodeDirectory *mDir;                                            // what we're building
 };