/// Set scheduling parameter.
///
/// # Examples
///
/// ```
/// let sched_param = nc::sched_param_t { sched_priority: 12 };
/// let ret = unsafe { nc::sched_setscheduler(0, nc::SCHED_RR, &sched_param) };
/// assert_eq!(ret, Err(nc::EPERM));
/// ```
pub unsafe fn sched_setscheduler(
pid: pid_t,
policy: i32,
param: &sched_param_t,
) -> Result<(), Errno> {
let pid = pid as usize;
let policy = policy as usize;
let param_ptr = param as *const sched_param_t as usize;
syscall3(SYS_SCHED_SETSCHEDULER, pid, policy, param_ptr).map(drop)
}