GrantReply is a new access right added to endpoint capabilities, which allows seL4_Call to be used on those capabilities (specifically, it allows reply caps *only* to be granted across endpoints). Prior to the addition of GrantReply, endpoint capabilities required the Grant access right, which allowed any arbitrary capabilitiy to be transferred over an endpoint. Using GrantReply, systems can now be constructed where threads using seL4_Call over an endpoint do not need to be in the same security subsystem.
27 lines
828 B
C
27 lines
828 B
C
/*
|
|
* Copyright 2014, General Dynamics C4 Systems
|
|
*
|
|
* This software may be distributed and modified according to the terms of
|
|
* the GNU General Public License version 2. Note that NO WARRANTY is provided.
|
|
* See "LICENSE_GPLv2.txt" for details.
|
|
*
|
|
* @TAG(GD_GPL)
|
|
*/
|
|
|
|
#ifndef __OBJECT_ENDPOINT_H
|
|
#define __OBJECT_ENDPOINT_H
|
|
|
|
#include <types.h>
|
|
#include <object/structures.h>
|
|
|
|
void sendIPC(bool_t blocking, bool_t do_call, word_t badge,
|
|
bool_t canGrant, bool_t canGrantReply, tcb_t *thread,
|
|
endpoint_t *epptr);
|
|
void receiveIPC(tcb_t *thread, cap_t cap, bool_t isBlocking);
|
|
void cancelIPC(tcb_t *tptr);
|
|
void cancelAllIPC(endpoint_t *epptr);
|
|
void cancelBadgedSends(endpoint_t *epptr, word_t badge);
|
|
void replyFromKernel_error(tcb_t *thread);
|
|
void replyFromKernel_success_empty(tcb_t *thread);
|
|
|
|
#endif
|