X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/914fc88e61be54aed6b18205ff2775b48793a3b6..866f8763175ff60e4fa455b92b5eb660a12fe6c7:/OSX/libsecurity_utilities/lib/cfutilities.h diff --git a/OSX/libsecurity_utilities/lib/cfutilities.h b/OSX/libsecurity_utilities/lib/cfutilities.h index b53e2c86..888de1c0 100644 --- a/OSX/libsecurity_utilities/lib/cfutilities.h +++ b/OSX/libsecurity_utilities/lib/cfutilities.h @@ -555,6 +555,9 @@ void cfDictionaryApplyBlock(CFDictionaryRef source, CFDictionaryApplierBlock blo // // CFURLAccess wrappers for specific purposes +// cfLoadFile family will use mmap(2) when appropriate +// cfReadFile will read the data into memory +// cfMapFile will mmap(2) the file // CFDataRef CF_RETURNS_RETAINED cfLoadFile(CFURLRef url); CFDataRef CF_RETURNS_RETAINED cfLoadFile(int fd, size_t bytes); @@ -563,6 +566,19 @@ inline CFDataRef CF_RETURNS_RETAINED cfLoadFile(const std::string &path) { retur inline CFDataRef CF_RETURNS_RETAINED cfLoadFile(const char *path) { return cfLoadFile(CFTempURL(path)); } +CFDataRef cfReadFile(CFURLRef url) CF_RETURNS_RETAINED; +CFDataRef cfReadFile(int fd, size_t bytes) CF_RETURNS_RETAINED; +inline CFDataRef cfReadFile(CFStringRef path) { return cfReadFile(CFTempURL(path)); } +inline CFDataRef cfReadFile(const std::string &path) { return cfReadFile(CFTempURL(path)); } +inline CFDataRef cfReadFile(const char *path) { return cfReadFile(CFTempURL(path)); } + +CFDataRef cfMapFile(CFURLRef url) CF_RETURNS_RETAINED; +CFDataRef cfMapFile(int fd, size_t bytes) CF_RETURNS_RETAINED; +inline CFDataRef cfMapFile(CFStringRef path) { return cfMapFile(CFTempURL(path)); } +inline CFDataRef cfMapFile(const std::string &path) { return cfMapFile(CFTempURL(path)); } +inline CFDataRef cfMapFile(const char *path) { return cfMapFile(CFTempURL(path)); } + + // // Internally used STL adapters. Should probably be in utilities.h. //