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;
}
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);
@@ -82,8 +84,8 @@ EXPORT_SYMBOL(sukisu_kpm_unload_module);
EXPORT_SYMBOL(sukisu_kpm_num);
EXPORT_SYMBOL(sukisu_kpm_info);
EXPORT_SYMBOL(sukisu_kpm_list);
EXPORT_SYMBOL(sukisu_kpm_print_list);
EXPORT_SYMBOL(sukisu_kpm_version);
EXPORT_SYMBOL(sukisu_kpm_control);
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);
} else if(arg3 == SUKISU_KPM_LIST) {
return sukisu_kpm_list((char __user*) arg4, (unsigned int) arg5);
} else if(arg3 == SUKISU_KPM_PRINT) {
sukisu_kpm_print_list();
} else if(arg3 == SUKISU_KPM_VERSION) {
return sukisu_kpm_version((char __user*) arg4, (unsigned int) arg5);
}
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
#define SUKISU_KPM_LOAD 28
// prctl(xxx, xxx, 2, "NAME")
// prctl(xxx, 29, "NAME")
// success return 0, error return -N
#define SUKISU_KPM_UNLOAD 29
// num = prctl(xxx, xxx, 3)
// num = prctl(xxx, 30)
// error return -N
// success return +num or 0
#define SUKISU_KPM_NUM 30
// prctl(xxx, xxx, 4, Buffer, BufferSize)
// prctl(xxx, 31, Buffer, BufferSize)
// success return +out, error return -N
#define SUKISU_KPM_LIST 31
// prctl(xxx, xxx, 5, "NAME", Buffer[256])
// prctl(xxx, 32, "NAME", Buffer[256])
// success return +out, error return -N
#define SUKISU_KPM_INFO 32
// prctl(xxx, xxx, 6, "NAME", "ARGS")
// prctl(xxx, 33, "NAME", "ARGS")
// success return KPM's result value
// error return -N
#define SUKISU_KPM_CONTROL 33
// prctl(xxx, xxx, 7)
// success will printf to stdout and return 0
// error will return -1
#define SUKISU_KPM_PRINT 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
// prctl(xxx, 34, buffer, bufferSize)
// success return KPM's result value
// error return -N
#define SUKISU_KPM_VERSION 34
#endif