err.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /* err.h - error numbers and prototypes */
  2. /*
  3. * GRUB -- GRand Unified Bootloader
  4. * Copyright (C) 2002,2005,2007,2008 Free Software Foundation, Inc.
  5. *
  6. * GRUB is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * GRUB is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #ifndef GRUB_ERR_HEADER
  20. #define GRUB_ERR_HEADER 1
  21. #include <grub/symbol.h>
  22. #include <grub/compiler.h>
  23. #define GRUB_MAX_ERRMSG 256
  24. typedef enum
  25. {
  26. GRUB_ERR_NONE = 0,
  27. GRUB_ERR_TEST_FAILURE,
  28. GRUB_ERR_BAD_MODULE,
  29. GRUB_ERR_OUT_OF_MEMORY,
  30. GRUB_ERR_BAD_FILE_TYPE,
  31. GRUB_ERR_FILE_NOT_FOUND,
  32. GRUB_ERR_FILE_READ_ERROR,
  33. GRUB_ERR_BAD_FILENAME,
  34. GRUB_ERR_UNKNOWN_FS,
  35. GRUB_ERR_BAD_FS,
  36. GRUB_ERR_BAD_NUMBER,
  37. GRUB_ERR_OUT_OF_RANGE,
  38. GRUB_ERR_UNKNOWN_DEVICE,
  39. GRUB_ERR_BAD_DEVICE,
  40. GRUB_ERR_READ_ERROR,
  41. GRUB_ERR_WRITE_ERROR,
  42. GRUB_ERR_UNKNOWN_COMMAND,
  43. GRUB_ERR_INVALID_COMMAND,
  44. GRUB_ERR_BAD_ARGUMENT,
  45. GRUB_ERR_BAD_PART_TABLE,
  46. GRUB_ERR_UNKNOWN_OS,
  47. GRUB_ERR_BAD_OS,
  48. GRUB_ERR_NO_KERNEL,
  49. GRUB_ERR_BAD_FONT,
  50. GRUB_ERR_NOT_IMPLEMENTED_YET,
  51. GRUB_ERR_SYMLINK_LOOP,
  52. GRUB_ERR_BAD_COMPRESSED_DATA,
  53. GRUB_ERR_MENU,
  54. GRUB_ERR_TIMEOUT,
  55. GRUB_ERR_IO,
  56. GRUB_ERR_ACCESS_DENIED,
  57. GRUB_ERR_EXTRACTOR,
  58. GRUB_ERR_NET_BAD_ADDRESS,
  59. GRUB_ERR_NET_ROUTE_LOOP,
  60. GRUB_ERR_NET_NO_ROUTE,
  61. GRUB_ERR_NET_NO_ANSWER,
  62. GRUB_ERR_NET_NO_CARD,
  63. GRUB_ERR_WAIT,
  64. GRUB_ERR_BUG,
  65. GRUB_ERR_NET_PORT_CLOSED,
  66. GRUB_ERR_NET_INVALID_RESPONSE,
  67. GRUB_ERR_NET_UNKNOWN_ERROR,
  68. GRUB_ERR_NET_PACKET_TOO_BIG,
  69. GRUB_ERR_NET_NO_DOMAIN,
  70. GRUB_ERR_EOF,
  71. GRUB_ERR_BAD_SIGNATURE,
  72. GRUB_ERR_BAD_FIRMWARE,
  73. GRUB_ERR_STILL_REFERENCED,
  74. GRUB_ERR_RECURSION_DEPTH
  75. }
  76. grub_err_t;
  77. struct grub_error_saved
  78. {
  79. grub_err_t grub_errno;
  80. char errmsg[GRUB_MAX_ERRMSG];
  81. };
  82. extern grub_err_t EXPORT_VAR(grub_errno);
  83. extern char EXPORT_VAR(grub_errmsg)[GRUB_MAX_ERRMSG];
  84. grub_err_t EXPORT_FUNC(grub_error) (grub_err_t n, const char *fmt, ...)
  85. __attribute__ ((format (GNU_PRINTF, 2, 3)));
  86. void EXPORT_FUNC(grub_fatal) (const char *fmt, ...) __attribute__ ((noreturn));
  87. void EXPORT_FUNC(grub_error_push) (void);
  88. int EXPORT_FUNC(grub_error_pop) (void);
  89. void EXPORT_FUNC(grub_print_error) (void);
  90. extern int EXPORT_VAR(grub_err_printed_errors);
  91. int grub_err_printf (const char *fmt, ...)
  92. __attribute__ ((format (GNU_PRINTF, 1, 2)));
  93. #endif /* ! GRUB_ERR_HEADER */