Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 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
)

21 changes: 21 additions & 0 deletions libc/include/llvm-libc-macros/sysexits-macros.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#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: []