riscv_v_flags
u32 riscv_v_flags;
return !irqs_disabled() && !(riscv_v_flags() & RISCV_KERNEL_MODE_V);
return !!(task->thread.riscv_v_flags & RISCV_PREEMPT_V_DIRTY);
return !!(task->thread.riscv_v_flags & RISCV_PREEMPT_V_NEED_RESTORE);
task->thread.riscv_v_flags &= ~RISCV_PREEMPT_V_DIRTY;
task->thread.riscv_v_flags |= RISCV_PREEMPT_V_NEED_RESTORE;
return !!(task->thread.riscv_v_flags & RISCV_PREEMPT_V);
WARN_ON(prev->thread.riscv_v_flags & RISCV_V_CTX_DEPTH_MASK);
prev->thread.riscv_v_flags |= RISCV_PREEMPT_V_IN_SCHEDULE;
if (next->thread.riscv_v_flags & RISCV_PREEMPT_V_IN_SCHEDULE) {
next->thread.riscv_v_flags &= ~RISCV_PREEMPT_V_IN_SCHEDULE;
return READ_ONCE(current->thread.riscv_v_flags);
WRITE_ONCE(current->thread.riscv_v_flags, flags);
orig = riscv_v_flags();
orig = riscv_v_flags();
return ¤t->thread.riscv_v_flags;
p->thread.riscv_v_flags = 0;