This commit is contained in:
liankong
2025-03-31 15:13:13 +08:00
parent 78fe01d9a4
commit 2e711c3ac9
2 changed files with 17 additions and 24 deletions

View File

@@ -71,10 +71,12 @@ int sukisu_kpm_list(void __user* out, unsigned int bufferSize) {
return -1; return -1;
} }
void sukisu_kpm_print_list(void) { int sukisu_kpm_control(void __user* name, void __user* args) {
return -1;
} }
void sukisu_kpm_vesion(void) { int sukisu_kpm_version(void __user* out, unsigned int bufferSize) {
return -1;
} }
EXPORT_SYMBOL(sukisu_kpm_load_module_path); EXPORT_SYMBOL(sukisu_kpm_load_module_path);
@@ -82,8 +84,8 @@ EXPORT_SYMBOL(sukisu_kpm_unload_module);
EXPORT_SYMBOL(sukisu_kpm_num); EXPORT_SYMBOL(sukisu_kpm_num);
EXPORT_SYMBOL(sukisu_kpm_info); EXPORT_SYMBOL(sukisu_kpm_info);
EXPORT_SYMBOL(sukisu_kpm_list); EXPORT_SYMBOL(sukisu_kpm_list);
EXPORT_SYMBOL(sukisu_kpm_print_list);
EXPORT_SYMBOL(sukisu_kpm_version); EXPORT_SYMBOL(sukisu_kpm_version);
EXPORT_SYMBOL(sukisu_kpm_control);
int sukisu_handle_kpm(unsigned long arg3, unsigned long arg4, unsigned long arg5) int sukisu_handle_kpm(unsigned long arg3, unsigned long arg4, unsigned long arg5)
@@ -123,8 +125,8 @@ int sukisu_handle_kpm(unsigned long arg3, unsigned long arg4, unsigned long arg5
return sukisu_kpm_info((const char*) &kernel_name_buffer, (char __user*) arg5); return sukisu_kpm_info((const char*) &kernel_name_buffer, (char __user*) arg5);
} else if(arg3 == SUKISU_KPM_LIST) { } else if(arg3 == SUKISU_KPM_LIST) {
return sukisu_kpm_list((char __user*) arg4, (unsigned int) arg5); return sukisu_kpm_list((char __user*) arg4, (unsigned int) arg5);
} else if(arg3 == SUKISU_KPM_PRINT) { } else if(arg3 == SUKISU_KPM_VERSION) {
sukisu_kpm_print_list(); return sukisu_kpm_version((char __user*) arg4, (unsigned int) arg5);
} }
return 0; return 0;
} }

View File

@@ -10,44 +10,35 @@ int sukisu_is_kpm_control_code(unsigned long arg2);
// 控制代码 // 控制代码
// prctl(xxx, xxx, 1, "PATH", "ARGS") // prctl(xxx, 28, "PATH", "ARGS")
// success return 0, error return -N // success return 0, error return -N
#define SUKISU_KPM_LOAD 28 #define SUKISU_KPM_LOAD 28
// prctl(xxx, xxx, 2, "NAME") // prctl(xxx, 29, "NAME")
// success return 0, error return -N // success return 0, error return -N
#define SUKISU_KPM_UNLOAD 29 #define SUKISU_KPM_UNLOAD 29
// num = prctl(xxx, xxx, 3) // num = prctl(xxx, 30)
// error return -N // error return -N
// success return +num or 0 // success return +num or 0
#define SUKISU_KPM_NUM 30 #define SUKISU_KPM_NUM 30
// prctl(xxx, xxx, 4, Buffer, BufferSize) // prctl(xxx, 31, Buffer, BufferSize)
// success return +out, error return -N // success return +out, error return -N
#define SUKISU_KPM_LIST 31 #define SUKISU_KPM_LIST 31
// prctl(xxx, xxx, 5, "NAME", Buffer[256]) // prctl(xxx, 32, "NAME", Buffer[256])
// success return +out, error return -N // success return +out, error return -N
#define SUKISU_KPM_INFO 32 #define SUKISU_KPM_INFO 32
// prctl(xxx, xxx, 6, "NAME", "ARGS") // prctl(xxx, 33, "NAME", "ARGS")
// success return KPM's result value // success return KPM's result value
// error return -N // error return -N
#define SUKISU_KPM_CONTROL 33 #define SUKISU_KPM_CONTROL 33
// prctl(xxx, xxx, 7) // prctl(xxx, 34, buffer, bufferSize)
// success will printf to stdout and return 0 // success return KPM's result value
// error will return -1 // error return -N
#define SUKISU_KPM_PRINT 34 #define SUKISU_KPM_VERSION 34
#define SUKISU_KPM_VERSION 35
/* A64 instructions are always 32 bits. */
#define AARCH64_INSN_SIZE 4
#define AARCH64_INSN_IMM_MOVNZ AARCH64_INSN_IMM_MAX
#define AARCH64_INSN_IMM_MOVK AARCH64_INSN_IMM_16
#endif #endif