mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
8c2f634996
This patch adds the basic functions needed for controlling auto conversion on z/OS. Auto conversion is enabled on untagged input file to ASCII by making the assumption that all untagged files are EBCDIC encoded. Output files are auto converted to EBCDIC IBM-1047. This change also enables conversion for stdin/stdout/stderr. For more information on how fcntl controls codepage https://www.ibm.com/docs/en/zos/2.4.0?topic=descriptions-fcntl-bpx1fct-bpx4fct-control-open-file-descriptors Reviewed By: anirudhp Differential Revision: https://reviews.llvm.org/D100483
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
//===- AutoConvert.h - Auto conversion between ASCII/EBCDIC -----*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains functions used for auto conversion between
|
|
// ASCII/EBCDIC codepages specific to z/OS.
|
|
//
|
|
//===----------------------------------------------------------------------===//i
|
|
|
|
#ifndef LLVM_SUPPORT_AUTOCONVERT_H
|
|
#define LLVM_SUPPORT_AUTOCONVERT_H
|
|
|
|
#ifdef __MVS__
|
|
#define CCSID_IBM_1047 1047
|
|
#define CCSID_UTF_8 1208
|
|
#include <system_error>
|
|
|
|
namespace llvm {
|
|
|
|
/// \brief Disable the z/OS enhanced ASCII auto-conversion for the file
|
|
/// descriptor.
|
|
std::error_code disableAutoConversion(int FD);
|
|
|
|
/// \brief Query the z/OS enhanced ASCII auto-conversion status of a file
|
|
/// descriptor and force the conversion if the file is not tagged with a
|
|
/// codepage.
|
|
std::error_code enableAutoConversion(int FD);
|
|
|
|
/// \brief Set the tag information for a file descriptor.
|
|
std::error_code setFileTag(int FD, int CCSID, bool Text);
|
|
|
|
} // namespace llvm
|
|
|
|
#endif // __MVS__
|
|
|
|
#endif // LLVM_SUPPORT_AUTOCONVERT_H
|