1 /* --------------- BEGIN include file rtdt.incl.pl1 --------------- */
 2 
 3 dcl 1 rtdt aligned based (rtdtp),                           /* resource type description table */
 4 %include author;
 5     2 version fixed bin,                                    /* version number */
 6     2 installed_under_resource_mgt bit (1) aligned,         /* resource mgt. was ON when this was installed */
 7     2 charge_type_table_ptr offset,                         /* points to charge_type_table */
 8     2 first_resource offset,                                /* chain for RTDE's */
 9     2 rtdt_area area (RTDT_area_len);                       /* all following items allocated here */
10 
11 dcl 1 charge_type_table aligned based (cttp),               /* describes charges for resource types */
12     2 n_charge_types fixed bin,                             /* number of distinct charge types */
13     2 charge_types (N_CHARGE_TYPES refer (charge_type_table.n_charge_types)) aligned char (32),
14     2 flagword fixed bin (35) aligned;                      /* this word simply help us set bitcount properly */
15 
16 dcl 1 rtde aligned based (rtdep),                           /* describes one resource type */
17     2 fixed_info aligned,
18       3 next_resource offset,                               /* chains to next type, or nullo */
19       3 name char (32),                                     /* name of resource type, e.g. "tape_drive" */
20       3 syn_to char (32),                                   /* if is_synonym this is master syn */
21       3 precanon_proc char (64),                            /* name of routine to standardize resource name */
22       3 pad_1 (16) fixed bin (35),
23       3 flags unaligned,
24         4 (valid,                                           /* resource type hasn't been deleted */
25      is_volume,                                             /* specifies volume or device type */
26      manual_clear,                                          /* volumes of this type to be "degaussed" between owners */
27      addition_pending,                                      /* bookkeeping bit for upd_rtdt_ */
28      deletion_pending,
29      is_synonym) bit (1) unaligned,                         /* ditto */
30         4 pad bit (12) unaligned,
31       3 (process_limit,                                     /* how many can you assign at one time */
32      default_time,                                          /* implicit reservations are for how many minutes */
33      max_time,                                              /* how long can you reserve it for */
34      advance_notice_time,                                   /* warn operator to prepare mount ahead of time */
35      pad2,
36      n_exclusion_specs,                                     /* number of distinct "name=" fields in attributes */
37      n_mates,                                               /* number of mating devs/vols for this vol/dev */
38      n_subtypes,                                            /* number of registration subtypes */
39      n_defined_attributes) fixed bin (17) unaligned,        /* number of defined attributes */
40       3 pad_2 (8) fixed bin (35),
41       3 attributes_valid bit (72) aligned,                  /* "1"b if corresp. attribute undeleted */
42       3 attributes_to_match bit (72) aligned,               /* potential mate must possess these attributes */
43       3 attribute_names (72) char (12) aligned,             /* all possible attributes for this resource */
44       3 exclusion_specs (36) bit (72) aligned,              /* each masks all attrributes of the form "key=val" */
45       3 pad_3 (32) fixed bin (35),
46       3 registration_defaults aligned,                      /* applied at reg. time if none given */
47         4 default_flags aligned,
48           5 (potential_attributes_given,                    /* "1"b = there are default potential_attributes */
49      attributes_given,                                      /* and similarly, etc. */
50      aim_range_given,
51      charge_type_given) bit (1) unaligned,
52           5 pad bit (31) unaligned,
53         4 potential_attributes bit (72) aligned,            /* for registration, if given */
54         4 attributes bit (72) aligned,                      /* for registration and also for runtime "I-don't-care" */
55         4 aim_range (2) bit (72) aligned,                   /* and similarly, etc. */
56         4 charge_type fixed bin,
57         4 pad_4 (8) fixed bin (35) aligned,
58     2 mates (N_MATES refer (rtde.n_mates)) char (32) aligned,
59                                                             /* the volume type that mounts on this device, or vice versa */
60     2 subtypes (N_SUBTYPES refer (rtde.n_subtypes)) aligned, /* named registration default groups */
61       3 subtype_name char (32),                             /* name of the group */
62       3 subtype_defaults like rtde.registration_defaults aligned;
63 
64 dcl  RTDT_version_3 fixed bin static options (constant) initial (3),
65      RTDT_version_2 fixed bin static options (constant) initial (2),
66                                                             /* same format, but without precanon_proc */
67     (N_MATES, N_SUBTYPES, N_CHARGE_TYPES) fixed bin,
68      RTDT_area_len fixed bin (18);
69 
70 dcl (rtdep, rtdtp, cttp) pointer;
71 
72 /* ---------------- END include file rtdt.incl.pl1 ---------------- */