# Hint file for use in conjunction with ~/miro/libi/iff/unix-types.iff

#
#/*****************************************************************************
#                Copyright Carnegie Mellon University 1992
#
#                      All Rights Reserved
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
# provided that the above copyright notice appear in all copies and that
# both that copyright notice and this permission notice appear in
# supporting documentation, and that the name of CMU not be
# used in advertising or publicity pertaining to distribution of the
# software without specific, written prior permission.
#
# CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
# CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
# SOFTWARE.
#*****************************************************************************/
#

# Arrows
#
PERMS		read     write	  exec     list     in-del
ARROW syn  0 +  1.5000   1.5000	  1.5000   1.0000   1.0000
ARROW syn  0 -  1.5000   1.5000	  1.5000   1.0000   1.0000
ARROW syn  T +  0.0300   0.0300	  0.0300   0.0300   0.0300
ARROW syn  T -  0.0300   0.0300	  0.0300   0.0300   0.0300
ARROW syn  H +  0.0300   0.0300	  0.0300   0.0300   0.0300
ARROW syn  H -  0.0300   0.0300	  0.0300   0.0300   0.0300
ARROW syn  2 +  0.0001	 0.0001	  0.0001   0.0001   0.0001
ARROW syn  2 -  0.0001	 0.0001	  0.0001   0.0001   0.0001
ARROW sem  0 + 10.0000  10.0000  10.0000  10.0000  10.0000
ARROW sem  0 - 10.0000  10.0000  10.0000  10.0000  10.0000
ARROW sem  T +  0.2000   0.2000	  0.2000   0.1000   0.0010
ARROW sem  T -  0.2000   0.2000	  0.2000   0.1000   0.0100
ARROW sem  H +  0.0500   0.0500	  0.0500   0.0300   0.0008
ARROW sem  H -  0.0500   0.0500	  0.0500   0.0300   0.0300
ARROW sem  2 +  0.00002  0.00002  0.00002  0.00002  0.00002
ARROW sem  2 -  0.00002  0.00002  0.00002  0.00002  0.00002
#
# positive containment arrows
ARROW con  0 +  5.0000	12.0000
ARROW con  T +  0.0005	 0.0002
ARROW con  H +  0.0008	 0.0010
ARROW con  2 +  0.00002	 0.00004
ARROW con* 0 +  8.0000	20.0000
ARROW con* T +  0.0050	 0.0400
ARROW con* H +  0.0200	 0.2000
ARROW con* 2 +  0.0004	 0.0008
#
# negative containment arrows
ARROW con  0 - 45.0	50.0
ARROW con  T -  5.0	 6.0
ARROW con  H -  5.0	 6.0
ARROW con  2 -  0.6	 0.9
ARROW con* 0 - 40.0	45.0
ARROW con* T -  4.0	 5.5
ARROW con* H -  4.0	 5.5
ARROW con* 2 -  0.5	 0.8

# Box Types -- see notes on page II:14-15
#
BOXTYPE entity 		1.00
BOXTYPE   subject 	0.05
BOXTYPE     world	0.01
BOXTYPE     group	0.20
BOXTYPE     user	0.79
BOXTYPE   object	0.95
BOXTYPE     dir-dummy   0.05
BOXTYPE     dir		0.15
BOXTYPE       root	0.001
BOXTYPE       home	0.01
BOXTYPE     file	0.80
BOXTYPE       device	0.01
BOXTYPE       socket    0.01

# Attribute distributions
#
ATTR sysname	0	100000 100000
ATTR name	" "	"~~"       95
ATTR owner	" "	"~~"      200
ATTR group	" "	"~~"       50
ATTR created	"80/"	"95/"   50000
ATTR modified	"80/"	"95/"   50000
#
# Note: these don't necessarily have to sum to 1. They are only used to
# indicate how knowing the atomicity of a box restricts its matching set.
ATTR atomic	0.70	0.90
ATTR sticky     0.999   0.001
ATTR setuid	0.999	0.001
ATTR setgid	0.999	0.001

# DT constructions
#
# Box attributes
DT box atomic   xht ":size 3 :threshold 1.0"
DT box side     xht ":size 2 :threshold 1.0"
DT box type     xht ":size 26 :threshold 1.0"		"#'type-comp"
DT box sticky   xht ":size 3 :threshold 1.0"
DT box setuid   xht ":size 3 :threshold 1.0"
DT box setgid   xht ":size 3 :threshold 1.0"
DT box name     xht ":size 10 :equal-func #'string="	"#'string-comp"
DT box owner    xht ":size 10 :equal-func #'string="	"#'string-comp"
DT box group    xht ":size 10 :equal-func #'string="	"#'string-comp"
DT box created  bst "#'string-comp"
DT box modified bst "#'string-comp"
DT box sysname  bst
#
# Arrow attributes
#
# The kind of discriminator and its args may change, but the values in the
# first 3 columns of the following lines must not (cpc(1) expects them this
# way).
#
DT syn  parity   xht ":size 3 :threshold 1.0"
DT syn  perm     xht ":size 10 :threshold 1.0"
DT syn  from     bst
DT syn  to       bst
#
DT subj from     bst
DT obj  perm     xht ":size 10 :threshold 1.0"
DT obj  to       bst
#
DT con  direct	  xht ":size 3 :threshold 1.0"
DT con  from     bst
DT con  to       bst
