diff --git a/cli/build.rs b/cli/build.rs index 90d1c75..7b621f1 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -9,5 +9,6 @@ fn main() { println!("cargo:rerun-if-changed=src/libmaccel.c"); println!("cargo:rerun-if-changed=../driver/accel.h"); + println!("cargo:rerun-if-changed=../driver/accel_rs.h"); println!("cargo:rerun-if-changed=../driver/fixedptc.h"); } diff --git a/cli/src/libmaccel.c b/cli/src/libmaccel.c index 78c3d55..ef5c518 100644 --- a/cli/src/libmaccel.c +++ b/cli/src/libmaccel.c @@ -1,4 +1,4 @@ -#include "../../driver/accel.h" +#include "../../driver/accel_rs.h" #include "../../driver/fixedptc.h" extern char *fixedpt_to_str(fixedpt num) { return fixedpt_cstr(num, 5); } diff --git a/cli/src/libmaccel.rs b/cli/src/libmaccel.rs index 897fdbb..e927adb 100644 --- a/cli/src/libmaccel.rs +++ b/cli/src/libmaccel.rs @@ -36,7 +36,7 @@ impl Params { pub fn sensitivity(s_in: f32, params: Params) -> f64 { let s_in: Fixedpt = s_in.into(); let a_factor = unsafe { - c_lib::sensitivity( + c_lib::sensitivity_rs( s_in.0, params.sens_mult, params.accel, @@ -93,7 +93,7 @@ mod c_lib { use std::ffi::c_char; extern "C" { - pub fn sensitivity( + pub fn sensitivity_rs( speed_in: i32, param_sens_mult: i32, param_accel: i32, diff --git a/driver/accel.h b/driver/accel.h index a1297ea..f8b2c06 100644 --- a/driver/accel.h +++ b/driver/accel.h @@ -18,7 +18,7 @@ const fixedpt FIXEDPT_ZERO = fixedpt_rconst(0.0); * in order to get the desired output speed. * */ -extern inline fixedpt sensitivity(fixedpt input_speed, fixedpt param_sens_mult, +static inline fixedpt sensitivity(fixedpt input_speed, fixedpt param_sens_mult, fixedpt param_accel, fixedpt param_offset, fixedpt param_output_cap) { diff --git a/driver/accel_rs.h b/driver/accel_rs.h new file mode 100644 index 0000000..978c49d --- /dev/null +++ b/driver/accel_rs.h @@ -0,0 +1,7 @@ +#include "accel.h" + +extern inline fixedpt sensitivity_rs(fixedpt input_speed, fixedpt param_sens_mult, + fixedpt param_accel, fixedpt param_offset, + fixedpt param_output_cap) { + return sensitivity(input_speed, param_sens_mult, param_accel, param_offset, param_output_cap); +} diff --git a/driver/accelk.h b/driver/accelk.h index 486a9b9..2442db6 100644 --- a/driver/accelk.h +++ b/driver/accelk.h @@ -5,7 +5,7 @@ #include "linux/ktime.h" #include "params.h" -static AccelResult inline accelerate(int x, int y) { +static inline AccelResult accelerate(int x, int y) { static ktime_t last; static u64 last_ms = 1; diff --git a/driver/dbg.h b/driver/dbg.h index 84ea6ff..4cb94dd 100644 --- a/driver/dbg.h +++ b/driver/dbg.h @@ -12,7 +12,7 @@ #define dbg(fmt, ...) dbg_std(fmt, __VA_ARGS__) #endif -#ifdef __KERNEL__ +#if defined __KERNEL__ && defined __clang__ #define dbg_k(fmt, ...) \ _Pragma("clang diagnostic push") \ _Pragma("clang diagnostic ignored \"-Wstatic-local-in-inline\"") do { \ @@ -22,9 +22,15 @@ } \ while (0) \ _Pragma("clang diagnostic pop") -#endif - -#ifndef __KERNEL__ +#elif defined __KERNEL__ +#define dbg_k(fmt, ...) \ + do { \ + if (DEBUG_TEST) \ + printk(KERN_INFO "%s:%d:%s(): " #fmt "\n", __FILE__, __LINE__, __func__, \ + __VA_ARGS__); \ + } \ + while (0) +#else #define dbg_std(fmt, ...) \ do { \ if (DEBUG_TEST) \