forked from Imagelibrary/seL4
mcs: refactor validFaultHandler
This changes it to be a pure function, which eases verification Signed-off-by: Corey Lewis <corey.lewis@proofcraft.systems>
This commit is contained in:
committed by
Gerwin Klein
parent
d7f2ba4aec
commit
172d4c0f49
@@ -1030,7 +1030,6 @@ static bool_t validFaultHandler(cap_t cap)
|
||||
if (!cap_endpoint_cap_get_capCanSend(cap) ||
|
||||
(!cap_endpoint_cap_get_capCanGrant(cap) &&
|
||||
!cap_endpoint_cap_get_capCanGrantReply(cap))) {
|
||||
current_syscall_error.type = seL4_InvalidCapability;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
@@ -1038,7 +1037,6 @@ static bool_t validFaultHandler(cap_t cap)
|
||||
/* just has no fault endpoint */
|
||||
break;
|
||||
default:
|
||||
current_syscall_error.type = seL4_InvalidCapability;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -1264,6 +1262,7 @@ exception_t decodeSetTimeoutEndpoint(cap_t cap, cte_t *slot)
|
||||
/* timeout handler */
|
||||
if (!validFaultHandler(thCap)) {
|
||||
userError("TCB SetTimeoutEndpoint: timeout endpoint cap invalid.");
|
||||
current_syscall_error.type = seL4_InvalidCapability;
|
||||
current_syscall_error.invalidCapNumber = 1;
|
||||
return EXCEPTION_SYSCALL_ERROR;
|
||||
}
|
||||
@@ -1538,6 +1537,7 @@ exception_t decodeSetSpace(cap_t cap, word_t length, cte_t *slot, word_t *buffer
|
||||
/* fault handler */
|
||||
if (!validFaultHandler(fhCap)) {
|
||||
userError("TCB SetSpace: fault endpoint cap invalid.");
|
||||
current_syscall_error.type = seL4_InvalidCapability;
|
||||
current_syscall_error.invalidCapNumber = 1;
|
||||
return EXCEPTION_SYSCALL_ERROR;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user