errno.h 815 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright (c) 2018-2022, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <errno_codes.h>
  8. #include <sys/cdefs.h>
  9. #define __RETURN_WITH_ERRNO(rc, good_ret, bad_ret) \
  10. do { \
  11. if (rc < 0) { \
  12. errno = -rc; \
  13. return (bad_ret); \
  14. } \
  15. return (good_ret); \
  16. } while (0)
  17. __BEGIN_DECLS
  18. extern char const* const sys_errlist[];
  19. extern int sys_nerr;
  20. #ifdef NO_TLS
  21. extern int errno;
  22. #else
  23. extern __thread int errno;
  24. #endif
  25. int* __errno_location() __attribute__((const));
  26. #define errno (*__errno_location())
  27. __END_DECLS