Add sysexits.h header with BSD exit codes (total-18) (#126112)

This pull request adds a new header file, SysExits.h, to the LLVM
project. The header includes 18 BSD exit code.
This commit is contained in:
Ajay Raj
2025-03-07 05:55:14 +05:30
committed by GitHub
parent 410a5b1518
commit 9a65dc9513
7 changed files with 75 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ set(TARGET_PUBLIC_HEADERS
libc.include.sys_socket
libc.include.sys_syscall
libc.include.sys_time
libc.include.sysexits
libc.include.sys_wait
libc.include.threads
libc.include.time

View File

@@ -50,6 +50,7 @@ set(TARGET_PUBLIC_HEADERS
libc.include.sys_types
libc.include.sys_utsname
libc.include.sys_wait
libc.include.sysexits
libc.include.termios
libc.include.threads
libc.include.time

View File

@@ -168,6 +168,16 @@ add_header_macro(
.llvm-libc-types.stdfix-types
)
add_header_macro(
sysexits
../libc/include/sysexits.yaml
sysexits.h
DEPENDS
.llvm-libc-macros.sysexits_macros
)
# TODO: This should be conditional on POSIX networking being included.
file(MAKE_DIRECTORY ${LIBC_INCLUDE_DIR}/arpa)

View File

@@ -343,3 +343,10 @@ add_macro_header(
HDR
EFIAPI-macros.h
)
add_macro_header(
sysexits_macros
HDR
sysexits-macros.h
)

View File

@@ -0,0 +1,29 @@
//===-- Macros defined in sysexits.h header file --------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
#ifndef SYSEXITS_MACROS_H
#define SYSEXITS_MACROS_H
#define EX_OK 0 // Successful termination
#define EX_USAGE 64 // Command line usage error
#define EX_DATAERR 65 // Data format error
#define EX_NOINPUT 66 // Cannot open input
#define EX_NOUSER 67 // Addressee unknown
#define EX_NOHOST 68 // Host name unknown
#define EX_UNAVAILABLE 69 // Service unavailable
#define EX_SOFTWARE 70 // Internal software error
#define EX_OSERR 71 // Operating system error
#define EX_OSFILE 72 // System file error
#define EX_CANTCREAT 73 // Cannot create (user) output file
#define EX_IOERR 74 // Input/output error
#define EX_TEMPFAIL 75 // Temporary failure, try again
#define EX_PROTOCOL 76 // Remote protocol error
#define EX_NOPERM 77 // Permission denied
#define EX_CONFIG 78 // Configuration error
#endif // SYSEXITS_MACROS_H

View File

@@ -0,0 +1,17 @@
//===-- POSIX header sysexits.h -----------------------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_LIBC_SYSEXITS_H
#define LLVM_LIBC_SYSEXITS_H
#include "__llvm-libc-common.h"
#include "llvm-libc-macros/sysexits-macros.h"
%%public_api()
#endif // LLVM_LIBC_SYSEXITS_H

View File

@@ -0,0 +1,10 @@
header: sysexits.h
header_template: sysexits.h.def
standards:
- BSDExtensions
- GNUExtensions
macros: []
types: []
enums: []
objects: []
functions: []