Re: sched: make struct task_struct::state 32-bit

From: Markus Elfring
Date: Tue Sep 24 2019 - 04:08:20 EST


> // FIXME: current not recognized as task_struct*, fixhack with regexp
> identifier current =~ "^current$";

Would you really like to use a regular expression for finding a single word?


> identifier state_var;
> position pos;
> @@
>
> (
> p->state & state_var@pos
> |
> current->state & state_var@pos
> |

I see further opportunities to make such a SmPL disjunction more succinct.

*
( ( \( p \| current \) ) -> state & state_var@pos
|
â

* How do you think about to work with a SmPL constraint
for a metavariable with the type âbinary operatorâ?


> set_current_state(state_var@pos)
> |
> set_special_state(state_var@pos)

| \( set_current_state \| set_special_state \) (state_var@pos)


> |
> signal_pending_state(state_var@pos, p)
> |
> signal_pending_state(state_var@pos, current)

| signal_pending_state(state_var@pos, \( p \| current \) )


Regards,
Markus