mirror of
https://github.com/gcc-mirror/gcc.git
synced 2025-08-20 16:14:20 +00:00

libgcobol/ * Makefile.am: New file. * Makefile.in: Autogenerate. * acinclude.m4: Likewise. * aclocal.m4: Likewise. * configure.ac: New file. * configure: Autogenerate. * configure.tgt: New file. * README: New file. * charmaps.cc: New file. * config.h.in: New file. * constants.cc: New file. * gfileio.cc: New file. * gmath.cc: New file. * io.cc: New file. * valconv.cc: New file. * charmaps.h: New file. * common-defs.h: New file. * ec.h: New file. * exceptl.h: New file. * gcobolio.h: New file. * gfileio.h: New file. * gmath.h: New file. * io.h: New file. * libgcobol.h: New file. * valconv.h: New file. * libgcobol.cc: New file. * intrinsic.cc: New file.
138 lines
5.6 KiB
C
138 lines
5.6 KiB
C
/*
|
|
* Copyright (c) 2021-2025 Symas Corporation
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following disclaimer
|
|
* in the documentation and/or other materials provided with the
|
|
* distribution.
|
|
* * Neither the name of the Symas Corporation nor the names of its
|
|
* contributors may be used to endorse or promote products derived from
|
|
* this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
/*
|
|
* File status key values and meanings
|
|
* 0 Successful completion
|
|
* 0 No further information
|
|
* 2 Duplicate key READ
|
|
* 4 Short/long READ
|
|
* 5 OPEN optional file unavailable
|
|
* 7 Not a tape
|
|
* 1 At-end condition
|
|
* 0 Sequential READ EOF
|
|
* 4 Relative record too big
|
|
* 2 Invalid key condition
|
|
* 1 Sequence error
|
|
* 2 Duplicate key WRITE
|
|
* 3 Record not found
|
|
* 4 Sequential WRITE EOF
|
|
* 3 Permanent error
|
|
* 0 No further information
|
|
* 1 Filename inconsistent with operating system
|
|
* 4 Boundary violation
|
|
* 5 OPEN nonoptional file unavailable
|
|
* 7 OPEN EACCES
|
|
* 8 OPEN file previously closed with lock
|
|
* 9 OPEN wrong file type
|
|
* 4 Logic error condition
|
|
* 1 OPEN file already open
|
|
* 2 CLOSE file not open
|
|
* 3 REWRITE without prior READ
|
|
* 4 REWRITE/WRITE boundary violation
|
|
* 6 READ after failed READ
|
|
* 7 File not open for READ
|
|
* 8 File not open for WRITE
|
|
* 9 File not open for DELETE/REWRITE
|
|
* 9 Implementor-defined
|
|
* 0 VSAM/QSAM close on wrong thread
|
|
* 1 VSAM password failure
|
|
* 2 Logic error
|
|
* 3 Resource unavailable
|
|
* 5 Incomplete file information
|
|
* 6 VSAM no DD statement
|
|
* 7 VSAM File integrity verified
|
|
* 8 OPEN invalid environment variable contents
|
|
*/
|
|
|
|
#ifndef IO_H_
|
|
#define IO_H_
|
|
|
|
enum file_high_t {
|
|
FhSuccess = 0,
|
|
FhAtEnd = 1,
|
|
FhInvKey = 2,
|
|
FhOsError = 3,
|
|
FhLogicError = 4,
|
|
FhImplementor = 9,
|
|
};
|
|
|
|
enum file_status_t {
|
|
FsSuccess = FhSuccess,
|
|
FsDupRead = (FhSuccess * 10) + 2, // First digit is 0
|
|
FsRecordLength= (FhSuccess * 10) + 4,
|
|
FsUnavail = (FhSuccess * 10) + 5,
|
|
FsNotaTape = (FhSuccess * 10) + 7,
|
|
|
|
FsEofSeq = (FhAtEnd * 10) + 0, // First digit is 1
|
|
FsEofRel = (FhAtEnd * 10) + 4,
|
|
|
|
FsKeySeq = (FhInvKey * 10) + 1, // First digit is 2
|
|
FsDupWrite = (FhInvKey * 10) + 2,
|
|
FsNotFound = (FhInvKey * 10) + 3,
|
|
FsEofWrite = (FhInvKey * 10) + 4,
|
|
|
|
FsOsError = (FhOsError * 10) + 0, // First digit is 3
|
|
FsNameError = (FhOsError * 10) + 1,
|
|
FsBoundary = (FhOsError * 10) + 4,
|
|
FsNoFile = (FhOsError * 10) + 5,
|
|
FsNoAccess = (FhOsError * 10) + 7,
|
|
FsCloseLock = (FhOsError * 10) + 8,
|
|
FsWrongType = (FhOsError * 10) + 9,
|
|
|
|
FsLogicErr = (FhLogicError * 10) + 0, // First digit is 4
|
|
FsIsOpen = (FhLogicError * 10) + 1,
|
|
FsCloseNotOpen= (FhLogicError * 10) + 2,
|
|
FsNoRead = (FhLogicError * 10) + 3,
|
|
FsBoundWrite = (FhLogicError * 10) + 4,
|
|
FsReadError = (FhLogicError * 10) + 6,
|
|
FsReadNotOpen = (FhLogicError * 10) + 7,
|
|
FsNoWrite = (FhLogicError * 10) + 8,
|
|
FsNoDelete = (FhLogicError * 10) + 9,
|
|
|
|
FsWrongThread = (FhImplementor * 10) + 0, // First digit is 9
|
|
FsPassword = (FhImplementor * 10) + 1,
|
|
FsLogicOther = (FhImplementor * 10) + 2,
|
|
FsNoResource = (FhImplementor * 10) + 3,
|
|
FsIncomplete = (FhImplementor * 10) + 5,
|
|
FsNoDD = (FhImplementor * 10) + 6,
|
|
FsVsamOK = (FhImplementor * 10) + 7,
|
|
FsBadEnvVar = (FhImplementor * 10) + 8,
|
|
|
|
FsErrno = (1000000) // This means "map errno to one of the above errors"
|
|
};
|
|
|
|
#define FhNotOkay FsEofSeq // Values less than 10 mean the data are valid
|
|
|
|
extern "C" file_status_t __gg__file_status_word(enum file_status_t status,
|
|
int error_number);
|
|
|
|
#endif
|