Chris PeBenito d46cfe
## <summary>Policy for user executable applications.</summary>
Chris PeBenito d46cfe
Chris PeBenito d46cfe
########################################
Chris PeBenito d46cfe
## <summary>
Chris PeBenito d46cfe
##	Make the specified type usable as an application domain.
Chris PeBenito d46cfe
## </summary>
Chris PeBenito d46cfe
## <param name="type">
Chris PeBenito d46cfe
##	<summary>
Chris PeBenito d46cfe
##	Type to be used as a domain type.
Chris PeBenito d46cfe
##	</summary>
Chris PeBenito d46cfe
## </param>
Chris PeBenito d46cfe
#
Chris PeBenito d46cfe
interface(`application_type',`
Chris PeBenito d46cfe
	gen_require(`
Chris PeBenito d46cfe
		attribute application_domain_type;
Chris PeBenito d46cfe
	')
Chris PeBenito d46cfe
Chris PeBenito d46cfe
	typeattribute $1 application_domain_type;
Chris PeBenito d46cfe
Chris PeBenito d46cfe
	# start with basic domain
Chris PeBenito d46cfe
	domain_type($1)
Chris PeBenito d46cfe
')
Chris PeBenito d46cfe
Chris PeBenito d46cfe
########################################
Chris PeBenito d46cfe
## <summary>
Chris PeBenito d46cfe
##	Make the specified type usable for files
Chris PeBenito d46cfe
##	that are exectuables, such as binary programs.
Chris PeBenito d46cfe
##	This does not include shared libraries.
Chris PeBenito d46cfe
## </summary>
Chris PeBenito d46cfe
## <param name="type">
Chris PeBenito d46cfe
##	<summary>
Chris PeBenito d46cfe
##	Type to be used for files.
Chris PeBenito d46cfe
##	</summary>
Chris PeBenito d46cfe
## </param>
Chris PeBenito d46cfe
#
Chris PeBenito d46cfe
interface(`application_executable_file',`
Chris PeBenito d46cfe
	gen_require(`
Chris PeBenito d46cfe
		attribute application_exec_type;
Chris PeBenito d46cfe
	')
Chris PeBenito d46cfe
Chris PeBenito d46cfe
	typeattribute $1 application_exec_type;
Chris PeBenito d46cfe
Chris PeBenito d46cfe
	corecmd_executable_file($1)
Chris PeBenito d46cfe
')
Chris PeBenito d46cfe
Chris PeBenito d46cfe
########################################
Chris PeBenito d46cfe
## <summary>
Chris PeBenito d46cfe
## Execute application executables in the caller domain.
Chris PeBenito d46cfe
## </summary>
Chris PeBenito d46cfe
## <param name="type">
Chris PeBenito d46cfe
##	<summary>
Chris PeBenito d46cfe
##	Domain allowed access.
Chris PeBenito d46cfe
##	</summary>
Chris PeBenito d46cfe
## </param>
Chris PeBenito d46cfe
#
Chris PeBenito d46cfe
interface(`application_exec',`
Chris PeBenito d46cfe
	gen_require(`
Chris PeBenito d46cfe
		attribute application_exec_type;
Chris PeBenito d46cfe
	')
Chris PeBenito d46cfe
Chris PeBenito d46cfe
	can_exec($1, application_exec_type)
Chris PeBenito d46cfe
')
Chris PeBenito d46cfe
Chris PeBenito d46cfe
########################################
Chris PeBenito d46cfe
## <summary>
Chris PeBenito d46cfe
##	Create a domain which can be started by users
Chris PeBenito d46cfe
## </summary>
Chris PeBenito d46cfe
## <param name="domain">
Chris PeBenito d46cfe
##	<summary>
Chris PeBenito d46cfe
##	Type to be used as a domain.
Chris PeBenito d46cfe
##	</summary>
Chris PeBenito d46cfe
## </param>
Chris PeBenito d46cfe
## <param name="entry_point">
Chris PeBenito d46cfe
##	<summary>
Chris PeBenito d46cfe
##	Type of the program to be used as an entry point to this domain.
Chris PeBenito d46cfe
##	</summary>
Chris PeBenito d46cfe
## </param>
Chris PeBenito d46cfe
#
Chris PeBenito d46cfe
interface(`application_domain',`
Chris PeBenito d46cfe
	application_type($1)
Chris PeBenito d46cfe
	application_executable_file($2)
Chris PeBenito d46cfe
	domain_entry_file($1,$2)
Chris PeBenito d46cfe
')