1 /* BEGIN INCLUDE FILE ... tp_command_table.incl.pl1 */
  2 
  3 /* Revised 27-Feb-79 by M. N. Davidoff. */
  4 
  5 /* automatic */
  6 
  7      declare call_conventions_n_entry_points
  8                                     fixed binary;
  9      declare command_info_n_commands
 10                                     fixed binary;
 11      declare command_table_ptr      pointer;
 12      declare hash_table_bucket_command_names_string_length
 13                                     fixed binary (21);
 14      declare hash_table_bucket_n_collisions
 15                                     fixed binary;
 16      declare hash_table_bucket_offset
 17                                     offset (command_table.area);
 18 
 19 /* based */
 20 
 21 /* command table including entries for each command */
 22 
 23      declare 1 command_table        aligned based (command_table_ptr),
 24                2 header,
 25                  3 command_info_offset
 26                                     offset (command_table.area),
 27                                                             /* offset of command information */
 28                  3 call_conventions_offset
 29                                     offset (command_table.area),
 30                                                             /* offset of call convention entry points */
 31                  3 hash_table       (COMMAND_HASH_TABLE_SIZE) offset (command_table.area),
 32                                                             /* command name hash table */
 33                  3 pad              bit (36),
 34                2 area               area (sys_info$max_seg_size - divide (length (unspec (command_table.header)), 36, 19));
 35 
 36 /* information about each command */
 37 
 38      declare 1 command_info         aligned based (command_table.command_info_offset),
 39                2 n_commands         fixed binary (17),      /* number of commands */
 40                2 pad                bit (36),
 41                2 commands           (command_info_n_commands refer (command_info.n_commands)),
 42                  3 scheduling_info,
 43                    4 cpu_time_limit fixed binary (71),      /* maximum cpu time TPR can take */
 44                    4 real_time_limit
 45                                     fixed binary (71),      /* maximum real time TPR can take */
 46                    4 deadline_interval
 47                                     fixed binary (71),      /* offset of deadline from time submitted */
 48                    4 drop_dead_time fixed binary (71),      /* not implemented yet */
 49                    4 delay_time     fixed binary (71),      /* not implemented yet */
 50                    4 expected_cpu_time
 51                                     fixed binary (71),      /* not implemented yet */
 52                    4 max_concurrent fixed binary (17),      /* not implemented yet */
 53                    4 deadlock_priority
 54                                     fixed binary (17),      /* not implemented yet */
 55                  3 access_info,
 56                    4 level          fixed binary (35),      /* not implemented yet */
 57                    4 attributes     bit (36) unaligned,     /* not implemented yet */
 58                  3 control_info,
 59                    4 retry_limit    fixed binary (17),      /* how many times to try again if commitment fails */
 60                    4 failure_limit  fixed binary (17),      /* not implemented yet */
 61                    4 flags          unaligned,
 62                      5 admin_out_of_service
 63                                     bit (1),                /* not implemented yet */
 64                      5 failure_out_of_service
 65                                     bit (1),                /* not implemented yet */
 66                      5 test_mode    bit (1),                /* not implemented yet */
 67                      5 pad          bit (33),
 68                  3 execution_info,
 69                    4 entry_point_name
 70                                     char (65) unaligned,    /* entryname or entryname$entry_point_name of TPR */
 71                    4 pad            bit (27),
 72                    4 call_convention_index
 73                                     fixed binary (17),      /* index of call convention to use for this command */
 74                    4 flags          unaligned,
 75                      5 immediate    bit (1),                /* on if an immediate command */
 76                      5 pad          bit (35);
 77 
 78 /* call convention entry points */
 79 
 80      declare 1 call_conventions     aligned based (command_table.call_conventions_offset),
 81                2 n_entry_points     fixed binary (17),      /* number of call conventions */
 82                2 entry_points       (call_conventions_n_entry_points refer (call_conventions.n_entry_points)),
 83                  3 reference_name   char (32) unaligned,    /* reference name of call convention procedure */
 84                  3 entry_point_name char (32) unaligned;    /* entry point name of call convention procedure */
 85 
 86 /* command name hash table entry */
 87 
 88      declare 1 hash_table_bucket    aligned based (hash_table_bucket_offset),
 89                2 n_collisions       fixed binary (17),      /* number of names that hashed to this entry */
 90                2 command_names_string_length
 91                                     fixed binary (21),      /* total length of command names */
 92                2 command            (hash_table_bucket_n_collisions refer (hash_table_bucket.n_collisions)),
 93                  3 character_index  fixed binary (21),      /* start of command name */
 94                  3 command_name_length
 95                                     fixed binary (21),      /* length of command name */
 96                  3 command_index    fixed binary (17),      /* index of command in command_table.commands */
 97                2 command_names_string
 98                                     char (hash_table_bucket_command_names_string_length
 99                                     refer (hash_table_bucket.command_names_string_length)) unaligned;
100                                                             /* string of all command names that collided */
101 
102 /* internal static */
103 
104      declare BINARY_COMMAND_TABLE_SUFFIX
105                                     char (5) internal static options (constant) initial ("tpbct");
106      declare COMMAND_HASH_TABLE_SIZE
107                                     fixed binary internal static options (constant) initial (523);
108      declare COMMAND_TABLE_NAME     char (17) internal static options (constant) initial ("tp_command_table_");
109      declare SOURCE_COMMAND_TABLE_SUFFIX
110                                     char (5) internal static options (constant) initial ("tpsct");
111 
112 /* END INCLUDE FILE ... tp_command_table.incl.pl1 */