Loading...
cache-builder/mrm_shared_cache_builder.h dyld-955 dyld-1285.19
--- dyld/dyld-955/cache-builder/mrm_shared_cache_builder.h
+++ dyld/dyld-1285.19/cache-builder/mrm_shared_cache_builder.h
@@ -47,7 +47,9 @@
     iOS_simulator       = 7,    // PLATFORM_IOSIMULATOR
     tvOS_simulator      = 8,    // PLATFORM_TVOSSIMULATOR
     watchOS_simulator   = 9,    // PLATFORM_WATCHOSSIMULATOR
-    driverKit           = 10    // PLATFORM_DRIVERKIT
+    driverKit           = 10,   // PLATFORM_DRIVERKIT
+    macOSExclaveKit     = 16,   // PLATFORM_MACOS_EXCLAVEKIT
+    iOSExclaveKit       = 18,   // PLATFORM_IOS_EXCLAVEKIT
 };
 
 enum Disposition
@@ -55,7 +57,8 @@
     Unknown                 = 0,
     InternalDevelopment     = 1,
     Customer                = 2,
-    InternalMinDevelopment  = 3
+    InternalMinDevelopment  = 3,
+    SymbolsCache            = 4
 };
 
 enum FileFlags
@@ -70,6 +73,12 @@
     DylibOrderFile                              = 100,
     DirtyDataOrderFile                          = 101,
     ObjCOptimizationsFile                       = 102,
+    SwiftGenericMetadataFile                    = 103,
+
+    // This replaces all the magic JSON files and order files, ie, 100..103 above
+    // The path (or some field in the file if its JSON) will be used later to work
+    // out which file it is
+    OptimizationFile                            = 1000,
 };
 
 struct BuildOptions_v1
@@ -101,6 +110,26 @@
     bool                                        optimizeForSize;
 };
 
+// This is available when getVersion() returns 1.3 or higher
+struct BuildOptions_v3
+{
+    uint64_t                                    version;                        // Future proofing, set to 2
+    const char *                                updateName;                     // BuildTrain+UpdateNumber
+    const char *                                deviceName;
+    enum Disposition                            disposition;                    // Internal, Customer, etc.
+    enum Platform                               platform;                       // Enum: unknown, macOS, iOS, ...
+    const char **                               archs;
+    uint64_t                                    numArchs;
+    bool                                        verboseDiagnostics;
+    bool                                        isLocallyBuiltCache;
+    // Added in v2
+    bool                                        optimizeForSize;
+    // Added in v3
+    bool                                        filesRemovedFromDisk;
+    bool                                        timePasses;
+    bool                                        printStats;
+};
+
 enum FileBehavior
 {
     AddFile                                     = 0,        // New file: uid, gid, mode, data, cdhash fields must be set
@@ -108,6 +137,11 @@
 };
 
 struct FileResult
+{
+    uint64_t                                    version;
+};
+
+struct FileResult_v1
 {
     uint64_t                                    version;            // Future proofing, set to 1
     const char*                                 path;
@@ -120,6 +154,20 @@
     const char*                                 hash;
 };
 
+struct FileResult_v2
+{
+    uint64_t                                    version;            // Future proofing, set to 2
+    const char*                                 path;
+    enum FileBehavior                           behavior;
+    const uint8_t*                              data;               // May be null.  Owned by the cache builder.  Destroyed by destroySharedCacheBuilder
+    uint64_t                                    size;
+    // CDHash, must be set for new or modified files
+    const char*                                 hashArch;
+    const char*                                 hashType;
+    const char*                                 hash;
+    int                                         fd;
+    const char*                                 tempFilePath;
+};
 
 struct CacheResult
 {
@@ -146,6 +194,16 @@
 __API_AVAILABLE(macos(10.12))
 bool addFile(struct MRMSharedCacheBuilder* builder, const char* path, uint8_t* data, uint64_t size, enum FileFlags fileFlags);
 
+// Add a file.  Returns true on success.
+// Available in API version 1.6 and later
+__API_AVAILABLE(macos(10.12))
+bool addFile_v2(struct MRMSharedCacheBuilder* builder, const char* path, uint8_t* data, uint64_t size, enum FileFlags fileFlags, const char* projectName);
+
+// Add an on-disk file (ie, a file which won't be removed by MRM).  Returns true on success.
+__API_AVAILABLE(macos(10.12))
+bool addOnDiskFile(struct MRMSharedCacheBuilder* builder, const char* path, uint8_t* data, uint64_t size, enum FileFlags fileFlags,
+                   uint64_t inode, uint64_t modTime);
+
 __API_AVAILABLE(macos(10.12))
 bool addSymlink(struct MRMSharedCacheBuilder* builder, const char* fromPath, const char* toPath);