panthema / 2006 / SDIOS06 / sdios06 / if / ifsyscall.idl (Download File)
//
// $Id$
//
// Description of the syscall server interface
//
#include <types.idl>

[uuid(IF_SYSCALL_ID)]
interface IF_SYSCALL {

	exception syscall_error {};
	
	/**
	 * Used to register a Thread as InterruptHandler
	 */
	void AssociateInterrupt ( 	in L4_ThreadId_t InterruptThread,
								in L4_ThreadId_t InterruptHandler,
								out L4_Word_t word );
	
	/**
	 * Used to deregister the InterruptHandler Thread
	 */
	void DeassociateInterrupt (	in L4_ThreadId_t InterruptThread,
								out L4_Word_t word);

	/**
	 * Used by the pager to create new tasks
	 */
	void Sigma1ThreadControl(in L4_ThreadId_t dest,
							 in L4_ThreadId_t SpaceSpecifier,
							 in L4_ThreadId_t scheduler,
							 in L4_ThreadId_t pager,
							 in L4_Word_t utcblocation)
		raises(syscall_error);

	/**
	 * Used by the pager to configure new address spaces
	 */
	void Sigma1SpaceControl(in L4_ThreadId_t SpaceSpecifier,
							in L4_Word_t control,
							in L4_Fpage_t KIPArea,
							in L4_Fpage_t UtcbArea,
							in L4_ThreadId_t redirector)
		raises(syscall_error);

	/**
	 * More Syscalls to follow: ...
	 */

};