Loading...
--- dyld/dyld-957/cache-builder/mrm_shared_cache_builder.h
+++ dyld/dyld-1122.1.2/cache-builder/mrm_shared_cache_builder.h
@@ -101,6 +101,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 +128,11 @@
};
struct FileResult
+{
+ uint64_t version;
+};
+
+struct FileResult_v1
{
uint64_t version; // Future proofing, set to 1
const char* path;
@@ -120,6 +145,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 +185,11 @@
__API_AVAILABLE(macos(10.12))
bool addFile(struct MRMSharedCacheBuilder* builder, const char* path, uint8_t* data, uint64_t size, enum FileFlags fileFlags);
+// 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);