1 " ***********************************************************
  2 " *                                                         *
  3 " * Copyright, (C) Honeywell Information Systems Inc., 1983 *
  4 " *                                                         *
  5 " ***********************************************************
  6 "
  7 "
  8 " DESCRIPTION:
  9 "
 10 "          This is the data management system's (DMS) user gate.  It allows
 11 "     user processes running in rings >= the DM ring to access all
 12 "     unprivileged, inner-ring DM programs for all DM managers (e.g.,
 13 "     file_manager_).  An entry in this gate for a particular DM inner ring
 14 "     manager will be prefixed with the manager's initials (e.g., fm_ for
 15 "     file_manager_ entries).  Any general DM inner ring call will start
 16 "     with "dm_".
 17 "
 18 "          NOTE: users should not call this gate directly, but let an inner
 19 "     ring manager's main transfer vector do it if required (e.g.,
 20 "     transaction_manager_$abandon_txn will call dm_gate_$tm_abandon_txn for
 21 "     the user).  General DM calls not part of any particular manager,
 22 "     DMS administration, or the DMS daemon use this gate.
 23 "
 24 " HISTORY:
 25 " Written by M. Pandolf, 05/06/83.
 26 " Modified:
 27 " 08/17/83 by M. Pandolf: to add get_system_data.
 28 " 12/14/83 by Lee A. Baldwin:  changed fm_validate to transfer to fm_validate_
 29 "             instead of to fm_inner_ring_tv_.  This is so that validate
 30 "             will not cause the first reference trap to be invoked.
 31 " 12/22/83 by Matthew Pierret: Removed acl_delete, acl_list and  acl_replace
 32 "             entries as they are unused.  The acl_add entry should also be
 33 "             removed when before_journal_manager_ is taught to use
 34 "             file_mnager_$add_acl_entries instead of $acl_add.
 35 " 01/06/84 by Matthew Pierret:  Removed the obsolete delentry_file.
 36 " 01/03/83 by Lee A. Newcomb:  merged all unprivileged DM gates into here.
 37 " 01/27/84 by S. Herbst:  Added tm_get_state_description, tm_user_shutdown.
 38 " 02/01/84 by Matthew Pierret:  Added fm_get_ci_ptr and fm_terminate_ci_ptr.
 39 " 03/16/84 by S. Herbst:  Removed tm_get_state_description, won't use a gate.
 40 " 03/28/84 by Lee A. Newcomb:  Removed tm_user_shutdown.
 41 " 04/06/84 by R. Michael Tague:  Removed 21 before journal gates.
 42 "             bjm_adjust_process_id and bjm_flush_all now call through
 43 "             dm_daemon_gate_.  The other 19 are now inner ring only calls.
 44 " 04/19/84 by R. Michael Tague:  Removed bjm_get_bj_path_from_uid entry.
 45 " 05/03/84 by Lee A. Newcomb:  Re-added $tm_user_shutdown and added
 46 "             $dm_is_process_using_dm.
 47 " 05/21/84 by R. Michael Tague:  For File Manager, removed $acl_delete,
 48 "             $acl_list, and $acl_replace.  Moved $adopt and
 49 "             $open_by_uid_after_crash to dm_daemon_gate_.  Changed
 50 "             $put_journal, $undo, and $unput to call within the inner
 51 "             ring and not gate.  Changed the $fetch and $get entries to
 52 "             $simple_get and $simple_put.
 53 " 06/25/84 by Matthew Pierret:  Removed $fm_acl_add.
 54 " 08/02/84 by Lee A. Newcomb: Added entries $dm_get_system_state,
 55 "             $dm_get_user_shutdown_time, and $dm_get_shutdown_reason
 56 " 10/01/84 by Lee A. Newcomb: Added entries $dm_get_(begin_shutdown
 57 "             shutdown_warning)_time and $dm_set_system_dir.
 58 " 10/26/84 by Steve Herbst: Fixed $status arg count from 3 to 4.
 59 " 11/19/84 by Lee A. Newcomb:  Added dm_get_(aim bootload
 60 "             enabled_bootload_dirname system)_dir, fixed # of args for
 61 "             directory handling entries to be 1, and changed references to
 62 "             dm_aim_dir_util_ to dm_no_inner_ring_tv_.
 63 " 11/20/84 by Matthew Pierret: Added $fm_put_stream, $fm_get_stream,
 64 "             $fm_get_bit_count, $fm_get_ring_brackets,
 65 "             $fm_list_extended_acl, $fm_add_extended_acl_entries,
 66 "             $fm_replace_extended_acl, $fm_set_ring_brackets.
 67 "             Changed to go through fm_firstref_tv_ (instead of
 68 "             fm_inner_ring_tv_) and fm_no_firstref_tv_.
 69 "             Removed $open_by_uid_after_crash (it's in dm_daemon_gate_).
 70 " 11/28/84 by Stanford S. Cox: Chg *inner_ring_tv_ to =firstref_tv_
 71 " 12/07/84 by Lindsey Spratt: Added dm_get_initialization_time.  Removed
 72 "             $dm_get_system_data.
 73 " 12/14/84 by Lee A. Newcomb: Added calls to bjm_no_firstref_tv_, currently
 74 "             only containing support for suffix_bj_.  Also fixed argument
 75 "             counts for $fm_(add_extended_acl_entries get_stream put_stream).
 76 " 12/21/84 by Matthew Pierret: Correctly set the number of arguments on
 77 "             fm_add_acl_entries, fm_delete_acl_entries, fm_list_acl,
 78 "             fm_list_extended_acl, fm_list_switches, fm_replace_acl and
 79 "             fm_replace_extended_acl.
 80 " 01/03/85 by Lee A. Newcomb:  Removed the commented out fm_delentry_file
 81 "             line to avoid further confusion from it.
 82 " 01/25/85 by Lindsey Spratt:  Added the dm_get_system_version entry.
 83 " 02/15/85 by Lindsey Spratt:  Changed dm_get_system_version to have 2
 84 "             arguments.
 85 " 03/20/85 by Lee A. Newcomb: Added $bjm_set_txn_storage_limit.
 86 " 03/29/85 by R. Michael Tague: Added $fm_postcommit_increment.
 87 " 04/17/85 by Lee A. Newcomb:  Renamed $tm_user_shutdown to $=_real as
 88 "             tm_$user_shutdown now calls tm_$user_shutdown_real to gate in.
 89 "
 90 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 91 
 92           name      dm_gate_
 93 
 94           include   gate_macros
 95 
 96           gate_info
 97 
 98 " Before Journal Manager entries:
 99 
100           gate      bjm_add_acl_entries,bjm_no_firstref_tv_,add_acl_entries,4
101 
102           gate      bjm_chname_file,bjm_no_firstref_tv_,chname_file,5
103 
104           gate      bjm_close_bj,bjm_firstref_tv_,close_bj,2
105 
106           gate      bjm_create_bj,bjm_firstref_tv_,create_bj,5
107 
108           gate      bjm_delete_acl_entries,bjm_no_firstref_tv_,delete_acl_entries,4
109 
110           gate      bjm_delete_bj,bjm_firstref_tv_,delete_bj,3
111 
112           gate      bjm_get_bj_oid,bjm_firstref_tv_,get_bj_oid,4
113 
114           gate      bjm_get_bj_path_from_oid,bjm_firstref_tv_,get_bj_path_from_oid,4
115 
116           gate      bjm_get_default_bj,bjm_firstref_tv_,get_default_bj,2
117 
118           gate      bjm_get_journal_status,bjm_firstref_tv_,get_journal_status,6
119 
120           gate      bjm_get_user_access_modes,bjm_no_firstref_tv_,get_user_access_modes,7
121 
122           gate      bjm_list_acl,bjm_no_firstref_tv_,list_acl,6
123 
124           gate      bjm_open_bj,bjm_firstref_tv_,open_bj,4
125 
126           gate      bjm_replace_acl,bjm_no_firstref_tv_,replace_acl,5
127 
128           gate      bjm_set_default_bj,bjm_firstref_tv_,set_default_bj,2
129 
130           gate      bjm_set_txn_storage_limit,bjm_firstref_tv_,set_transaction_storage_limit,4
131 
132           gate      bjm_validate,bjm_no_firstref_tv_,validate,3
133 
134 " General DM entries:
135 
136           gate      dm_get_aim_dir,dm_no_firstref_tv_,get_aim_dir,1
137 
138           gate      dm_get_bootload_dir,dm_no_firstref_tv_,get_bootload_dir,1
139 
140           gate      dm_get_begin_shutdown_time,dm_firstref_tv_,get_begin_shutdown_time,1
141 
142           gate      dm_get_enabled_boot_dirname,dm_no_firstref_tv_,get_enabled_bootload_dirname,1
143 
144           gate      dm_get_initialization_time,dm_firstref_tv_,get_initialization_time,1
145 
146           gate      dm_get_shutdown_reason,dm_firstref_tv_,get_shutdown_reason,1
147 
148           gate      dm_get_shutdown_warning_time,dm_firstref_tv_,get_shutdown_warning_time,1
149 
150           gate      dm_get_system_dir,dm_no_firstref_tv_,get_system_dir,1
151 
152           gate      dm_get_system_state,dm_firstref_tv_,get_system_state,1
153 
154           gate      dm_get_system_version,dm_firstref_tv_,get_system_version,2
155 
156           gate      dm_get_user_shutdown_time,dm_firstref_tv_,get_user_shutdown_time,1
157 
158           gate      dm_is_process_using_dm,dm_no_firstref_tv_,using_dm,1
159 
160           gate      dm_set_system_dir,dm_no_firstref_tv_,set_system_dir,1
161 
162 " File Manager entries
163 
164           gate      fm_add_acl_entries,fm_no_firstref_tv_,add_acl_entries,4
165 
166           gate      fm_add_extended_acl_entries,fm_no_firstref_tv_,add_extended_acl_entries,4
167 
168           gate      fm_allocate,fm_firstref_tv_,allocate,4
169 
170           gate      fm_chname_file,fm_firstref_tv_,chname_file,5
171 
172           gate      fm_close,fm_firstref_tv_,close,2
173 
174           gate      fm_create,fm_firstref_tv_,create,4
175 
176           gate      fm_create_open,fm_firstref_tv_,create_open,5
177 
178           gate      fm_delete,fm_firstref_tv_,delete,3
179 
180           gate      fm_delete_acl_entries,fm_no_firstref_tv_,delete_acl_entries,4
181 
182           gate      fm_delete_close,fm_firstref_tv_,delete_close,2
183 
184           gate      fm_flush_consecutive_ci,fm_firstref_tv_,flush_consecutive_ci,4
185 
186           gate      fm_flush_modified_ci,fm_firstref_tv_,flush_modified_ci,3
187 
188           gate      fm_free,fm_firstref_tv_,free,4
189 
190           gate      fm_get,fm_firstref_tv_,get,4
191 
192           gate      fm_get_bit_count,fm_no_firstref_tv_,get_bit_count,4
193 
194           gate      fm_get_ci_header,fm_firstref_tv_,get_ci_header,4
195 
196           gate      fm_get_ci_ptr,fm_firstref_tv_,get_ci_ptr,4
197 
198           gate      fm_get_exclusive,fm_firstref_tv_,get_exclusive,4
199 
200           gate      fm_get_max_length,fm_no_firstref_tv_,get_max_length,4
201 
202           gate      fm_get_ring_brackets,fm_no_firstref_tv_,get_ring_brackets,4
203 
204           gate      fm_get_stream,fm_firstref_tv_,get_stream,5
205 
206           gate      fm_get_switch,fm_firstref_tv_,get_switch,5
207 
208           gate      fm_get_user_access_modes,fm_no_firstref_tv_,get_user_access_modes,7
209 
210           gate      fm_list_acl,fm_no_firstref_tv_,list_acl,6
211 
212           gate      fm_list_extended_acl,fm_no_firstref_tv_,list_extended_acl,6
213 
214           gate      fm_list_switches,fm_no_firstref_tv_,list_switches,4
215 
216           gate      fm_lock_advice,fm_firstref_tv_,lock_advice,3
217 
218           gate      fm_open,fm_firstref_tv_,open,4
219 
220           gate      fm_open_by_uid,fm_firstref_tv_,open_by_uid,3
221 
222           gate      fm_postcommit_increment,fm_firstref_tv_,postcommit_increment,4
223 
224           gate      fm_prepare_to_copy,fm_firstref_tv_,prepare_to_copy,4
225 
226           gate      fm_put,fm_firstref_tv_,put,4
227 
228           gate      fm_put_stream,fm_firstref_tv_,put_stream,5
229 
230           gate      fm_raw_get,fm_firstref_tv_,raw_get,4
231 
232           gate      fm_raw_put,fm_firstref_tv_,raw_put,4
233 
234           gate      fm_replace_acl,fm_no_firstref_tv_,replace_acl,5
235 
236           gate      fm_replace_extended_acl,fm_no_firstref_tv_,replace_extended_acl,5
237 
238           gate      fm_set_bit_count,fm_no_firstref_tv_,set_bit_count,4
239 
240           gate      fm_set_max_length,fm_no_firstref_tv_,set_max_length,4
241 
242           gate      fm_set_ring_brackets,fm_firstref_tv_,set_ring_brackets,4
243 
244           gate      fm_set_switch,fm_no_firstref_tv_,set_switch,5
245 
246           gate      fm_simple_get,fm_firstref_tv_,simple_get,6
247 
248           gate      fm_simple_put,fm_firstref_tv_,simple_put,6
249 
250           gate      fm_status,fm_firstref_tv_,status,4
251 
252           gate      fm_sub_err_flag_get,fm_firstref_tv_,sub_err_flag_get,1
253 
254           gate      fm_sub_err_flag_set,fm_firstref_tv_,sub_err_flag_set,1
255 
256           gate      fm_suffix_info,fm_no_firstref_tv_,suffix_info,1
257 
258           gate      fm_terminate_ci_ptr,fm_firstref_tv_,terminate_ci_ptr,4
259 
260           gate      fm_validate,fm_no_firstref_tv_,validate,3
261 
262 
263 " Lock Manager entries
264 "         There are currently no unprivleged lock_manager_ entries.
265 "         Watch this space for further developments.
266 
267 
268 " Transaction Manager entries
269 
270           gate      tm_abandon_txn,tm_firstref_tv_,abandon_txn,2
271 
272           gate      tm_abort_txn,tm_firstref_tv_,abort_txn,2
273 
274           gate      tm_adjust_tdt,tm_firstref_tv_,adjust_tdt,0
275 
276           gate      tm_adjust_txn,tm_firstref_tv_,adjust_txn,2
277 
278           gate      tm_begin_txn,tm_firstref_tv_,begin_txn,4
279 
280           gate      tm_commit_txn,tm_firstref_tv_,commit_txn,2
281 
282           gate      tm_get_current_ids,tm_firstref_tv_,get_current_ids,4
283 
284           gate      tm_get_current_txn_id,tm_firstref_tv_,get_current_txn_id,2
285 
286           gate      tm_get_tdt_size,tm_firstref_tv_,get_tdt_size,1
287 
288           gate      tm_get_txn_index,tm_firstref_tv_,get_txn_index,3
289 
290           gate      tm_get_txn_info,tm_firstref_tv_,get_txn_info,3
291 
292           gate      tm_get_txn_info_index,tm_firstref_tv_,get_txn_info_index,3
293 
294           gate      tm_resume_txn,tm_firstref_tv_,resume_txn,1
295 
296           gate      tm_rollback_txn,tm_firstref_tv_,rollback_txn,3
297 
298           gate      tm_suspend_txn,tm_firstref_tv_,suspend_txn,1
299 
300           gate      tm_user_shutdown_real,tm_no_firstref_tv_,user_shutdown_real,3
301 
302           end