Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions libc/config/linux/aarch64/headers.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions libc/config/linux/x86_64/headers.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 10 additions & 0 deletions libc/include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
7 changes: 7 additions & 0 deletions libc/include/llvm-libc-macros/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -343,3 +343,10 @@ add_macro_header(
HDR
EFIAPI-macros.h
)

add_macro_header(
sysexits_macros
HDR
sysexits-macros.h
)

29 changes: 29 additions & 0 deletions libc/include/llvm-libc-macros/sysexits-macros.h
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions libc/include/sysexits.h.def
Original file line number Diff line number Diff line change
@@ -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

10 changes: 10 additions & 0 deletions libc/include/sysexits.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
header: sysexits.h
header_template: sysexits.h.def
standards:
- BSDExtensions
- GNUExtensions
macros: []
types: []
enums: []
objects: []
functions: []
Loading