aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1/gcc/ada/s-ficobl.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1/gcc/ada/s-ficobl.ads')
-rw-r--r--gcc-4.2.1/gcc/ada/s-ficobl.ads158
1 files changed, 0 insertions, 158 deletions
diff --git a/gcc-4.2.1/gcc/ada/s-ficobl.ads b/gcc-4.2.1/gcc/ada/s-ficobl.ads
deleted file mode 100644
index f19ea793b..000000000
--- a/gcc-4.2.1/gcc/ada/s-ficobl.ads
+++ /dev/null
@@ -1,158 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT RUN-TIME COMPONENTS --
--- --
--- S Y S T E M . F I L E _ C O N T R O L _ B L O C K --
--- --
--- S p e c --
--- --
--- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
--- --
--- GNAT is free software; you can redistribute it and/or modify it under --
--- terms of the GNU General Public License as published by the Free Soft- --
--- ware Foundation; either version 2, or (at your option) any later ver- --
--- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
--- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
--- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
--- for more details. You should have received a copy of the GNU General --
--- Public License distributed with GNAT; see file COPYING. If not, write --
--- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
--- Boston, MA 02110-1301, USA. --
--- --
--- As a special exception, if other files instantiate generics from this --
--- unit, or you link this unit with other files to produce an executable, --
--- this unit does not by itself cause the resulting executable to be --
--- covered by the GNU General Public License. This exception does not --
--- however invalidate any other reasons why the executable file might be --
--- covered by the GNU Public License. --
--- --
--- GNAT was originally developed by the GNAT team at New York University. --
--- Extensive contributions were provided by Ada Core Technologies Inc. --
--- --
-------------------------------------------------------------------------------
-
--- This package contains the declaration of the basic file control block
--- shared between Text_IO, Sequential_IO, Direct_IO and Streams.Stream_IO.
--- The actual control blocks are derived from this block by extension. The
--- control block is itself derived from Ada.Streams.Root_Stream_Type which
--- facilitates implementation of Stream_IO.Stream and Text_Streams.Stream.
-
-with Ada.Streams;
-with Interfaces.C_Streams;
-
-package System.File_Control_Block is
-
- ----------------------------
- -- Ada File Control Block --
- ----------------------------
-
- -- The Ada file control block is an abstract extension of the root
- -- stream type. This allows a file to be treated directly as a stream
- -- for the purposes of Stream_IO, or stream operations on a text file.
- -- The individual I/O packages extend this type with package specific
- -- fields to create the concrete types to which the routines in this
- -- package can be applied.
-
- -- The type File_Type in the individual packages is an access to the
- -- extended file control block. The value is null if the file is not
- -- open, and a pointer to the control block if the file is open.
-
- type Pstring is access all String;
- -- Used to hold name and form strings
-
- type File_Mode is (In_File, Inout_File, Out_File, Append_File);
- -- File mode (union of file modes permitted by individual packages,
- -- the types File_Mode in the individual packages are declared to
- -- allow easy conversion to and from this general type.
-
- type Shared_Status_Type is (Yes, No, None);
- -- This type is used to define the sharing status of a file. The default
- -- setting of None is used if no "shared=xxx" appears in the form string
- -- when a file is created or opened. For a file with Shared_Status set to
- -- None, Use_Error will be raised if any other file is opened or created
- -- with the same full name. Yes/No are set in response to the presence
- -- of "shared=yes" or "shared=no" in the form string. In either case it
- -- is permissible to have multiple files opened with the same full name.
- -- All files opened simultaneously with "shared=yes" will share the same
- -- stream with the semantics specified in the RM for file sharing. All
- -- files opened with "shared=no" will have their own stream.
-
- type AFCB;
- type AFCB_Ptr is access all AFCB'Class;
-
- type AFCB is abstract new Ada.Streams.Root_Stream_Type with record
-
- Stream : Interfaces.C_Streams.FILEs;
- -- The file descriptor
-
- Name : Pstring;
- -- A pointer to the file name. The file name is null for temporary
- -- files, and also for standard files (stdin, stdout, stderr). The
- -- name is always null-terminated if it is non-null.
-
- Form : Pstring;
- -- A pointer to the form string. This is the string used in the
- -- fopen call, and must be supplied by the caller (there are no
- -- defaults at this level). The string is always null-terminated.
-
- Mode : File_Mode;
- -- The file mode. No checks are made that the mode is consistent
- -- with the form used to fopen the file.
-
- Is_Regular_File : Boolean;
- -- A flag indicating if the file is a regular file
-
- Is_Temporary_File : Boolean;
- -- A flag set only for temporary files (i.e. files created using the
- -- Create function with a null name parameter, using tmpfile). This
- -- is currently not used since temporary files are deleted by the
- -- operating system, but it is set properly in case some systems
- -- need this information in the future.
-
- Is_System_File : Boolean;
- -- A flag set only for system files (stdin, stdout, stderr)
-
- Is_Text_File : Boolean;
- -- A flag set if the file was opened in text mode
-
- Shared_Status : Shared_Status_Type;
- -- Indicates sharing status of file, see description of type above
-
- Access_Method : Character;
- -- Set to 'Q', 'S', 'T, 'D' for Sequential_IO, Stream_IO, Text_IO
- -- Direct_IO file (used to validate file sharing request).
-
- Next : AFCB_Ptr;
- Prev : AFCB_Ptr;
- -- All open files are kept on a doubly linked chain, with these
- -- pointers used to maintain the next and previous pointers.
-
- end record;
-
- ----------------------------------
- -- Primitive Operations of AFCB --
- ----------------------------------
-
- -- Note that we inherit the abstract operations Read and Write from
- -- the base type. These must be overridden by the individual file
- -- access methods to provide Stream Read/Write access.
-
- function AFCB_Allocate (Control_Block : AFCB) return AFCB_Ptr is abstract;
- -- Given a control block, allocate space for a control block of the same
- -- type on the heap, and return the pointer to this allocated block. Note
- -- that the argument Control_Block is not used other than as the argument
- -- that controls which version of AFCB_Allocate is called.
-
- procedure AFCB_Close (File : access AFCB) is abstract;
- -- Performs any specialized close actions on a file before the file is
- -- actually closed at the system level. This is called by Close, and
- -- the reason we need the primitive operation is for the automatic
- -- close operations done as part of finalization.
-
- procedure AFCB_Free (File : access AFCB) is abstract;
- -- Frees the AFCB referenced by the given parameter. It is not necessary
- -- to free the strings referenced by the Form and Name fields, but if the
- -- extension has any other heap objects, they must be freed as well. This
- -- procedure must be overridden by each individual file package.
-
-end System.File_Control_Block;