blob: fd9ec9d88a86d444dfc319cfbe0c230e15f8bc72 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
//! Exit invocation - Dissolve Kata
const afs = @import("../../fs/afs/afs.zig");
const ahci = @import("../../drivers/ahci/ahci.zig");
const attachment = @import("../../utils/kata/attachment.zig");
const handler = @import("../handler.zig");
const kata_limits = @import("../../common/limits/kata.zig");
const kata_mod = @import("../../kata/kata.zig");
const sensei = @import("../../kata/sensei/sensei.zig");
var afs_instance: ?*afs.AFS(ahci.BlockDevice) = null;
pub fn set_afs_instance(fs: *afs.AFS(ahci.BlockDevice)) void {
afs_instance = fs;
}
pub fn invoke(ctx: *handler.InvocationContext) void {
const kata = sensei.get_current_kata() orelse return;
const exit_code = ctx.rdi;
var i: u32 = 0;
while (i < kata_limits.MAX_ATTACHMENTS) : (i += 1) {
if (kata.attachments[i]) |entry| {
if (entry.attachment_type == .Unit) {
attachment.seal(kata, i, afs_instance);
}
}
}
kata.exit_code = exit_code;
kata_mod.dissolve_kata(kata.id);
sensei.schedule();
}
|