3
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user