Sindbad~EG File Manager
/**
* function _set_exit_status
*
* Description: Set exit flag.
*/
function _set_exit_status:long ()
%{ /* bpf */ /* unprivileged */
0x118, 1, 0, 0, 0; /* BPF_LD_MAP_FD(r1, map0) */
0x7a, 10, 0, -8, 1; /* *(u64 *)(r10 - 8) = 1 (map value) */
0xbf, 3, 10, 0, 0; /* r3 = r10 */
0x07, 3, 0, 0, -8; /* r3 += -8 */
0x62, 10, 0, -12, 0; /* *(u32 *)(r10 - 12) = 0 (map key) */
0xbf, 2, 10, 0, 0; /* r2 = r10 */
0x07, 2, 0, 0, -12; /* r2 += -12 */
0xb7, 4, 0, 0, 0; /* r4 = 0 (flags) */
0x85, 0, 0, 0, 2; /* call bpf_map_update_elem */
0xbf, $$, 0, 0, 0 /* return r0 */
%}
/**
* function _send_exit_msg
*
* Description: Send an exit request through perf_events transport.
*/
function _send_exit_msg:long ()
%{ /* bpf */ /* unprivileged */
0x118, $perf_events_map, -, -, 1; /* BPF_LD_MAP_FD($perf_events_map, map1) */
alloc, $data, 8, align;
0x7a, $data, -, -, 0x0; /* stdw [$data+0], STP_EXIT */
call, $rc, perf_event_output, $ctx, $perf_events_map, BPF_F_CURRENT_CPU, $data, 8;
%}
/**
* function _send_error_msg
*
* Description: Communicate a hard error through perf_events transport.
*/
function _send_error_msg:long ()
%{ /* bpf */ /* unprivileged */
0x118, $perf_events_map, -, -, 1; /* BPF_LD_MAP_FD($perf_events_map, map1) */
alloc, $data, 8, align;
0x7a, $data, 0, 0, 1; /* stdw [$data+0], STP_ERROR */
call, $rc, perf_event_output, $ctx, $perf_events_map, BPF_F_CURRENT_CPU, $data, 8;
%}
/**
* function _jump_to_catch
*
* Description: Wrapper for the jump_to_catch statement. Checks if there is a catch
* block that can be jumped to, and jumps if there is a valid block. It also passes
* the error message during compile time for the creation of the catch block.
*/
function _jump_to_catch(msg:string)
%{ /* bpf */ /* unprivileged */
jump_to_catch, $msg;
%}
/**
* function _register_error
*
* Description: Wrapper for the register_error statement. This function only runs after
* the program encounters an error outside try blocks. During runtime, it will increment
* the total error count and check that against the limit provided with -D. It will also
* pass the error message to the userspace during runtime for printing in the epilogue.
*/
function _register_error(msg:string)
%{ /* bpf */ /* unprivileged */
register_error, $msg;
%}
/**
* function _terminate
*
* Description: Wrapper for the terminate statement. Short-circuit's the program to exit.
*/
function _terminate()
%{ /* bpf */ /* unpriviledged */
terminate;
%}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists