;;; -*- mode:lisp;package:user;base:10.;fonts: cptfontb -*- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; DIR_IOL ;;; ;;; ;;; ;;; ALEX C. MENG Sept-14-83 ;;; ;;; ;;; ;;; ;;; ;;; This file is part of a proprietary software project. Source ;;; ;;; code and documentation describing implementation details are ;;; ;;; available on a confidential, non-disclosure basis only. These ;;; ;;; materials, including this file in particular, are trade secrets ;;; ;;; of Computer * Thought Corporation. ;;; ;;; ;;; ;;; (c) Copyright 1982 and 1983, Computer * Thought Corporation. ;;; ;;; All Rights Reserved. ;;; ;;; ;;; ;;; Reference materials: ;;; ;;; Foderaro and Sklower, The FRANZ LISP Manual, September 1981. ;;; ;;; Weinreb and Moon, LISP MACHINE MANUAL, Symbolics, July 1981. ;;; ;;; Charniak et al., 1980. Artificial Intelligence Programming. ;;; ;;; Miller, 1982. The C*T Ada Tutor: Guide to the Implementation. ;;; ;;; AJPO, Feb 1983. ANSI/MIL-STD-1815A Ada Reference Manual. ;;; ;;; The following code assumes familiarity with these materials. ;;; ;;; ;;; ;;; ASSUMES CT_LOAD AND SUITABLE FILEMAP ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Ensure presence of needed files. (eval-when (compile load eval) (ct_load 'charmac)) ;CT char set extensions. (eval-when (compile load eval) (ct_load 'aip)) ;AIP macros pkg. (eval-when (compile load eval) (ct_load 'compat)) ;Franz/LM compat pkg. (eval-when (compile load eval) (ct_load 'stdenv)) ;Franz/LM stdenv pkg. (eval-when (compile load eval) (ct_load 'diana)) ; diana structure (eval-when (compile load eval) (ct_load 'directio)) ;load the directio ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Compiler Declarations and Global Variables -- #+franz (declare (macros t)) (declare (ct_includef 'intrpdcl)) ; get the specials ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Externally Call-able Functions/Macros -- ;;; ;;; Comment on the file management implementation ;;; ;;; The FILE_TYPE for the DIRECT_IO is a integer which is to be used ;;; as the index to a list of file objects. ;;; The list is **direct_file_list**. ;;; ;;; declare the special *fexpr functions ;;; (declare (*fexpr is_standard_procedure is_standard_function)) (defun initialize_dir_io () (direct_init) (with_package direct_io (is_standard_procedure create ada_direct_io_create ((in_out file file_type) (in mode file_mode) (in name string) (in form string ))) (is_standard_procedure open ada_direct_io_open ((in_out file file_type) (in mode file_mode) (in name string ) (in form string ))) (is_standard_procedure close ada_direct_io_close ((in_out file file_type))) (is_standard_procedure delete ada_direct_io_delete ((in_out file file_type))) (is_standard_procedure reset ada_direct_io_reset_with_mode ((in_out file file_type) (in mode file_mode))) (is_standard_procedure reset ada_direct_io_reset ((in_out file file_type))) (is_standard_function mode ada_direct_io_mode ((in file file_type)) file_mode) (is_standard_function name ada_direct_io_name ((in file file_type)) string) (is_standard_function form ada_direct_io_form ((in file file_type)) string) (is_standard_function is_open ada_direct_io_is_open ((in file file_type)) boolean) (is_standard_procedure read ada_direct_io_read ((in file file_type) (in_out item element_type))) (is_standard_procedure read ada_direct_io_read_from ((in file file_type) (in_out item element_type) (in from positive_count))) (is_standard_procedure write ada_direct_io_write ((in file file_type) (in item element_type))) (is_standard_procedure write ada_direct_io_write_to ((in file file_type) (in item element_type) (in to positive_count))) (is_standard_function end_of_file ada_direct_io_end_of_file ((in file file_type)) boolean) (is_standard_procedure set_index ada_direct_io_set_index ((in file file_type) (in to positive_count))) (is_standard_function index ada_direct_io_index ((in file file_type)) positive_count) (is_standard_function size ada_direct_io_size ((in file file_type)) count) ))