stdlib.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. * <stdlib.h> wrapper functions.
  3. *
  4. * Authors:
  5. * Jonathan Pryor ([email protected])
  6. *
  7. * Copyright (C) 2004-2005 Jonathan Pryor
  8. */
  9. #include <stdlib.h>
  10. #include "mph.h"
  11. G_BEGIN_DECLS
  12. gint32
  13. Mono_Posix_Stdlib_EXIT_FAILURE (void)
  14. {
  15. return EXIT_FAILURE;
  16. }
  17. gint32
  18. Mono_Posix_Stdlib_EXIT_SUCCESS (void)
  19. {
  20. return EXIT_SUCCESS;
  21. }
  22. gint32
  23. Mono_Posix_Stdlib_MB_CUR_MAX (void)
  24. {
  25. return MB_CUR_MAX;
  26. }
  27. gint32
  28. Mono_Posix_Stdlib_RAND_MAX (void)
  29. {
  30. return RAND_MAX;
  31. }
  32. void*
  33. Mono_Posix_Stdlib_calloc (mph_size_t nmemb, mph_size_t size)
  34. {
  35. if (mph_have_size_t_overflow(nmemb) || mph_have_size_t_overflow(size))
  36. return NULL;
  37. return calloc ((size_t) nmemb, (size_t) size);
  38. }
  39. void*
  40. Mono_Posix_Stdlib_malloc (mph_size_t size)
  41. {
  42. if (mph_have_size_t_overflow(size))
  43. return NULL;
  44. return malloc ((size_t) size);
  45. }
  46. void*
  47. Mono_Posix_Stdlib_realloc (void* ptr, mph_size_t size)
  48. {
  49. if (mph_have_size_t_overflow(size))
  50. return NULL;
  51. return realloc (ptr, (size_t) size);
  52. }
  53. #ifndef PLATFORM_WIN32
  54. int
  55. Mono_Posix_Syscall_setkey (const char* key)
  56. {
  57. errno = 0;
  58. setkey (key);
  59. return errno == 0 ? 0 : -1;
  60. }
  61. #endif /* ndef PLATFORM_WIN32 */
  62. G_END_DECLS
  63. /*
  64. * vim: noexpandtab
  65. */