ST0_CU2
KSTK_STATUS(current) |= ST0_CU2;
write_c0_status(status | ST0_CU2);
write_c0_status(status & ~ST0_CU2);
write_c0_status(status | ST0_CU2);
if (KSTK_STATUS(current) & ST0_CU2) {
KSTK_STATUS(current) &= ~ST0_CU2;
status &= ~ST0_CU2;
} else if (status & ST0_CU2) {
return status & ST0_CU2;
if (crypto_flags & ST0_CU2)
write_c0_status(read_c0_status() & ~ST0_CU2);
#define ST0_KERNEL_CUMASK (ST0_CU0 | ST0_CU2)
set_c0_status(ST0_CU2); \
if ((KSTK_STATUS(prev) & ST0_CU2)) { \
KSTK_STATUS(prev) &= ~ST0_CU2; \
if (KSTK_STATUS(next) & ST0_CU2 && \
p->thread.cp0_status = (read_c0_status() & ~(ST0_CU2|ST0_CU1)) | ST0_KERNEL_CUMASK;
childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
status = regs->cp0_status & ~(ST0_CU0|ST0_CU1|ST0_CU2|ST0_FR|KU_MASK);
set_c0_status(ST0_CU1 | ST0_CU2);
set_c0_status(ST0_CU1 | ST0_CU2 | ST0_FR);
KSTK_STATUS(current) |= (ST0_CU1 | ST0_CU2);