Loading...
--- dyld/dyld-957/cache-builder/mrm_shared_cache_builder.h
+++ dyld/dyld-1284.13/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);