Repository navigation
FSKit macOS xcode27.2 b3
Alex Soto edited this page Oct 17, 2026
·
1 revision
#FSKit.framework
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h 2026-08-11 23:55:11
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSItem.h 2026-10-08 03:09:52
@@ -226,8 +226,10 @@
/// A Boolean value that indicates whether the item supports a limited set of extended attributes.
@property (nonatomic) BOOL supportsLimitedXAttrs;
/// A Boolean value that indicates whether the file system overrides the per-volume settings for kernel offloaded I/O for a specific file.
+/// FSKit reads this value the first time the module reports attributes for a given file; It then sets the file's kernel-offloaded-I/O routing accordingly.
+/// The routing stays in effect for the item's lifetime; later changes are ignored.
///
-/// This property has no meaning if the volume doesn't conform to ``FSVolumeKernelOffloadedIOOperations``.
+/// This property has no meaning if the volume doesn't conform to ``FSVolumeKernelOffloadedIOOperations`` or ``FSVolume/KernelOffloadedIOHandler``.
@property (nonatomic) BOOL inhibitKernelOffloadedIO;
/// The item's last-modified time.
///
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h 2026-08-11 23:55:11
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolume.h 2026-10-08 03:09:53
@@ -585,6 +585,8 @@
/// Renames an item from one path in the file system to another.
///
+/// > Note: This method only implements plain `rename(2)` semantics. FSKit fails `renamex_np(2)` calls that pass flags, such as `RENAME_SWAP` or `RENAME_EXCL`, with `ENOTSUP` without calling this method.
+///
/// Implement renaming along the lines of this algorithm:
///
/// - If `item` is a file:
@@ -889,6 +891,8 @@
/// Renames an item from one path in the file system to another.
///
+/// > Note: This method only implements plain `rename(2)` semantics. FSKit fails `renamex_np(2)` calls that pass flags, such as `RENAME_SWAP` or `RENAME_EXCL`, with `ENOTSUP` without calling this method.
+///
/// Implement renaming along the lines of this algorithm:
///
/// - If `item` is a file:
@@ -1363,6 +1367,7 @@
/// Most volumes conform to either this protocol or ``FSVolumeKernelOffloadedIOHandler``.
/// You can conform to both if you need to provide kernel-offloaded I/O only for certain files.
/// In that case, files with the ``FSItem/Attribute/inhibitKernelOffloadedIO`` attribute set use this protocol, and those without it use ``FSVolumeKernelOffloadedIOHandler``.
+/// Set that attribute on an item when you create it; The kernel sets each file's routing when it first instantiates the item. This choice is immutable for the item's lifetime.
/// A volume that doesn't conform to either protocol can't support any I/O operation.
///
/// > Important: This protocol replaces the ``FSVolumeReadWriteOperations`` protocol. It exposes the same functionality, while using ``FSVolumeHandlerResult`` objects. These objects add the ability to reply with ``FSItemAttributes`` and free space from the relevant methods.
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolumeDataCacheHandler.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolumeDataCacheHandler.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolumeDataCacheHandler.h 2026-08-11 23:55:10
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/Headers/FSVolumeDataCacheHandler.h 2026-10-08 03:09:52
@@ -44,8 +44,18 @@
/// An action to flush dirty data from cache to storage, preserving cache contents.
FSKernelCacheCoherencyActionPush = 0,
/// An action to flush dirty data to storage and invalidate (clear) the cache.
+ /// This also invalidates the item's cached attributes, so the next request
+ /// for attributes fetches them from your module.
+ ///
+ /// For a directory, this also purges the kernel name cache for the
+ /// directory's entries. With the name cache purged, any later lookup re-populates the cache.
FSKernelCacheCoherencyActionPushInvalidate,
/// An action to invalidate (clear) the cache, discarding any dirty data without writing to storage.
+ /// This also invalidates the item's cached attributes, so the next request
+ /// for attributes fetches them from your module.
+ ///
+ /// For a directory, this also purges the kernel name cache for the
+ /// directory's entries. With the name cache purged, any later lookup re-populates the cache.
FSKernelCacheCoherencyActionInvalidate,
/// An action to update the coherency mode while keeping the cache valid, requiring no push or invalidation.
FSKernelCacheCoherencyActionUpdate,
@@ -63,6 +73,11 @@
/// A volume that conforms to this protocol enables kernel data caching for improved I/O performance.
/// This protocol allows filesystem modules to negotiate cache modes with the kernel and manage cache coherency.
///
+/// > Note: This protocol handles the complete open and close lifecycle for items. When a volume conforms
+/// to `FSVolumeDataCacheHandler`, FSKit routes every open and close operation through this protocol's
+/// ``open(_:modes:cacheMode:context:replyHandler:)`` and ``close(_:context:replyHandler:)`` methods.
+/// A volume that adopts this protocol doesn't need to also conform to ``FSVolumeOpenCloseHandler``.
+///
/// When a file opens, the module receives the requested ``FSVolume/DataCacheMode`` and returns a
/// ``FSVolume/KernelCacheCoherencyType`` indicating the kind of caching behavior it can support. The kernel then
/// caches data according to the granted coherency type. The module can dynamically upgrade or
@@ -120,6 +135,8 @@
///
/// FSKit reads this value after the file system replies to the `loadResource` message.
/// Changing the returned value during the runtime of the volume has no effect.
+///
+/// > Note: This property does not disable data caching; it only disables the usage of the protocol. In order to completely disable data caching, return the ``FSVolume/KernelCacheCoherencyType/noCache`` coherency type from ``open(_:modes:cacheMode:context:replyHandler:)`` for all items.
@property (readonly, getter = isDataCacheInhibited) BOOL dataCacheInhibited FSKIT_API_AVAILABILITY_V3;
@required