Merge pull request #5714 from alexischr/update_bockbuild
[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 // See Stdlib.cs
18 void*
19 Mono_Unix_VersionString ()
20 {
21         return (void *) "MonoProject-2015-12-1";
22 }
23
24 gint32
25 Mono_Posix_Stdlib_EXIT_FAILURE (void)
26 {
27         return EXIT_FAILURE;
28 }
29
30 gint32
31 Mono_Posix_Stdlib_EXIT_SUCCESS (void)
32 {
33         return EXIT_SUCCESS;
34 }
35
36 gint32
37 Mono_Posix_Stdlib_MB_CUR_MAX (void)
38 {
39         return MB_CUR_MAX;
40 }
41
42 gint32
43 Mono_Posix_Stdlib_RAND_MAX (void)
44 {
45         return RAND_MAX;
46 }
47
48 void*
49 Mono_Posix_Stdlib_calloc (mph_size_t nmemb, mph_size_t size)
50 {
51         if (mph_have_size_t_overflow(nmemb) || mph_have_size_t_overflow(size))
52                 return NULL;
53
54         return calloc ((size_t) nmemb, (size_t) size);
55 }
56
57 void*
58 Mono_Posix_Stdlib_malloc (mph_size_t size)
59 {
60         if (mph_have_size_t_overflow(size))
61                 return NULL;
62
63         return malloc ((size_t) size);
64 }
65
66 void*
67 Mono_Posix_Stdlib_realloc (void* ptr, mph_size_t size)
68 {
69         if (mph_have_size_t_overflow(size))
70                 return NULL;
71
72         return realloc (ptr, (size_t) size);
73 }
74
75 void
76 Mono_Posix_Stdlib_free (void* p)
77 {
78         free (p);
79 }
80
81 G_END_DECLS
82
83 /*
84  * vim: noexpandtab
85  */