#
# /etc/cpr_proto - Prototypes for CPR attribute file $HOME/.cpr
#
# Each user may select to create his/her own CPR attribute file defined in
# cpr(1) manpage, if the user needs to checkpoint or restart processes in 
# a way that is not covered by the CPR default actions.
#
# The user defined CPR attribute file (.cpr) should locate at the user's home
# directory, i.e. $HOME/.cpr.
#
# Inside of a .cpr file, the user can define as many records as the user wishes.
# Each record, formatted as follows, represents one or set of CPR requests
# defined by the IDtype and IDvalue:
#
#	CKPT IDtype IDvalue {
#		policy:  instance:  action
#		...
#	}
#
#	where IDtype can be
#		PID     for Unix process ID (the default type)
#		GID     for Unix process group ID
#		SID     for Unix process session ID; see termio(7)
#		ASH     for IRIX Array Session ID; see array_services(5)
#		HID     for process hierarchy (tree) rooted at that PID
#		SGP     for IRIX sproc shared group; see sproc(2):
#		*   	for anything above (wild card)
#	
#	and IDvalue is the actual value for the IDtype. Again, * can be used
#	as a wild card.
#	
#	policy options are:
#		FILE	policies of handling open files
#		WILL	actions on the original process after checkpoint
#		CDIR	policy on the original working directory; see chdir(2)
#		RDIR	policy on the original root directory; see chroot(2)
#		FORK	policy on original process ID
#		
#	Currently, Only FILE takes an instance, which is the filename and
#	expressed with double quote "...".
#
#	actions available for policy FILE are: 
#		MERGE      upon restart, reopen the file and seek to the previous 
#			   offset
#		IGNORE     upon restart, reopen the file as originally opened
#		APPEND     upon restart, reopen the file for appending
#		REPLACE    save file at checkpoint; replace the original file 
#			   at restart
#		SUBSTITUTE save file at checkpoint; at restart, open the saved file
#			   as an anonymous substitute, not touching the original file
#
#	actions available for policy WILL are: 
#		EXIT       the original process exits after checkpoint (default)
#		CONT       the original process continues to run after checkpoint
#
#	actions available for policy CDIR or RDIR are: 
#		REPLACE    restore original current working directory or root 
#			   directory (default)
#		IGNORE     ignore original current working directory or root 
#			   directory; restart according to new process environment
#
#	actions available for policy FORK
#		ORIGINAL   attempt to recover the original process ID (default)
#		ANY        it is acceptable to restart using any process ID
#
#	Note that records in the .cpr file are examined in the order of their
#	their appearance. In the examples below, record CKPT * * defines every
#	checkpoint's policy for a given user, except the policies for PID 12345
#	and GID 100 because the records that cover them appear before the record
#	of CKPT * *.
# 
#	For examples:
#		
#	CKPT PID 12345 {
#		FILE:	"/usr/people/guest/openfile1":	APPEND
#		FILE:	"/usr/people/guest/openfile2":	REPLACE
#		FILE:	"/usr/people/guest/mapfile1":	IGNORE
#		FILE:	"/usr/people/guest/mapfile2":	SUBSTITUTE
#		WILL:	CONT
#		CDIR:	IGNORE
#	}
#	
#	CKPT GID 100 {
#		FILE:	"*":				REPLACE
#	}
#	
#	CKPT * * {
#		FILE:	"/tmp/*":			SUBSTITUTE
#		FORK:	ANY
#		WILL:	CONT
#	}
