merge r67228-r67235, r67237, r67251 and r67256-67259 to trunk (they are
[mono.git] / support / stdlib.c
1 /*
2  * <stdlib.h> wrapper functions.
3  *
4  * Authors:
5  *   Jonathan Pryor (jonpryor@vt.edu)
6  *
7  * Copyright (C) 2004-2005 Jonathan Pryor
8  */
9
10 #include <stdlib.h>
11
12 #include "map.h"
13 #include "mph.h"
14
15 G_BEGIN_DECLS
16
17 gint32
18 Mono_Posix_Stdlib_EXIT_FAILURE (void)
19 {
20         return EXIT_FAILURE;
21 }
22
23 gint32
24 Mono_Posix_Stdlib_EXIT_SUCCESS (void)
25 {
26         return EXIT_SUCCESS;
27 }
28
29 gint32
30 Mono_Posix_Stdlib_MB_CUR_MAX (void)
31 {
32         return MB_CUR_MAX;
33 }
34
35 gint32
36 Mono_Posix_Stdlib_RAND_MAX (void)
37 {
38         return RAND_MAX;
39 }
40
41 void*
42 Mono_Posix_Stdlib_calloc (mph_size_t nmemb, mph_size_t size)
43 {
44         if (mph_have_size_t_overflow(nmemb) || mph_have_size_t_overflow(size))
45                 return NULL;
46
47         return calloc ((size_t) nmemb, (size_t) size);
48 }
49
50 void*
51 Mono_Posix_Stdlib_malloc (mph_size_t size)
52 {
53         if (mph_have_size_t_overflow(size))
54                 return NULL;
55
56         return malloc ((size_t) size);
57 }
58
59 void*
60 Mono_Posix_Stdlib_realloc (void* ptr, mph_size_t size)
61 {
62         if (mph_have_size_t_overflow(size))
63                 return NULL;
64
65         return realloc (ptr, (size_t) size);
66 }
67
68 G_END_DECLS
69
70 /*
71  * vim: noexpandtab
72  */