aboutsummaryrefslogtreecommitdiff
path: root/src/lib/vfs.zig
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-21 19:47:27 +0200
committerHimbeer <himbeer@disroot.org>2024-07-21 19:47:27 +0200
commitfe0a01276bcf77a733e9b844ca368df39cd2ea7b (patch)
tree375122e783e8e5e3acd13824264964fa7b0b9ffd /src/lib/vfs.zig
parentc5987318456269e0f224e32a3090b6ed90fcfb0a (diff)
vfs: Don't set FileContext.inner initially but provide FileContext.initializer
This allows file providers to know whether an interaction is the first one made with a specific resource descriptor.
Diffstat (limited to 'src/lib/vfs.zig')
-rw-r--r--src/lib/vfs.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/vfs.zig b/src/lib/vfs.zig
index 951c666..47d631a 100644
--- a/src/lib/vfs.zig
+++ b/src/lib/vfs.zig
@@ -91,6 +91,7 @@ pub const DirHook = extern struct {
pub const FileContext = extern struct {
inner: ?*anyopaque,
+ initializer: ?*anyopaque,
};
pub const ResourceKind = enum(u32) {
@@ -185,7 +186,8 @@ pub const ResourceDescriptor = struct {
if (inode.resource.tag == .file) {
const context = try allocator.create(FileContext);
- context.inner = inode.resource.data.file.initializer;
+ context.inner = null;
+ context.initializer = inode.resource.data.file.initializer;
return .{
.inode = inode,