To make sure I understand, you are proposing that
we simply use the return from arm_current_pl of 3 to indicate
isSecure?
Fabian's code closely follows the v8 spec pseudo code. I
believe the case that would be omitted if we let a return of 3
mean "secure" is the case where we are in EL0/1 with SCR.NS=0.
So, the to functions are not quite identical. In the case
of arm_current_pl, it returns the PL regardless of the SCR.NS
bit. In the case of arm_is_secure, the secure state takes
into consideration both the PL and the SCR.NS setting.