2004-12-30 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / support / stdio.c
1 /*
2  * <stdio.h> wrapper functions.
3  *
4  * Authors:
5  *   Jonathan Pryor (jonpryor@vt.edu)
6  *
7  * Copyright (C) 2004 Jonathan Pryor
8  */
9
10 #include <stdio.h>
11
12 #include "mph.h"
13
14 G_BEGIN_DECLS
15
16 gint32
17 Mono_Posix_Syscall_L_ctermid (void)
18 {
19         return L_ctermid;
20 }
21
22 gint32
23 Mono_Posix_Syscall_L_cuserid (void)
24 {
25         return L_cuserid;
26 }
27
28 mph_size_t
29 Mono_Posix_Stdlib_fread (void *ptr, mph_size_t size, mph_size_t nmemb, FILE *stream)
30 {
31         mph_return_if_size_t_overflow (size);
32         mph_return_if_size_t_overflow (nmemb);
33
34         return fread (ptr, (size_t) size, (size_t) nmemb, stream);
35 }
36
37 mph_size_t
38 Mono_Posix_Stdlib_fwrite (const void *ptr, mph_size_t size, mph_size_t nmemb, FILE *stream)
39 {
40         mph_return_if_size_t_overflow (size);
41         mph_return_if_size_t_overflow (nmemb);
42
43         return fwrite (ptr, (size_t) size, (size_t) nmemb, stream);
44 }
45
46 gint32
47 Mono_Posix_Stdlib__IOFBF (void)
48 {
49         return _IOFBF;
50 }
51
52 gint32
53 Mono_Posix_Stdlib__IOLBF (void)
54 {
55         return _IOLBF;
56 }
57
58 gint32
59 Mono_Posix_Stdlib__IONBF (void)
60 {
61         return _IONBF;
62 }
63
64 gint32
65 Mono_Posix_Stdlib_BUFSIZ (void)
66 {
67         return BUFSIZ;
68 }
69
70 gint32
71 Mono_Posix_Stdlib_L_tmpnam (void)
72 {
73         return L_tmpnam;
74 }
75
76 FILE*
77 Mono_Posix_Stdlib_stdin (void)
78 {
79         return stdin;
80 }
81
82 FILE*
83 Mono_Posix_Stdlib_stdout (void)
84 {
85         return stdout;
86 }
87
88 FILE*
89 Mono_Posix_Stdlib_stderr (void)
90 {
91         return stderr;
92 }
93
94 gint32
95 Mono_Posix_Stdlib_setvbuf (FILE *stream, char *buf, int mode, mph_size_t size)
96 {
97         mph_return_if_size_t_overflow (size);
98         return setvbuf (stream, buf, mode, (size_t) size);
99 }
100
101 gint32
102 Mono_Posix_Stdlib_fseek (FILE* stream, gint64 offset, int origin)
103 {
104         mph_return_if_long_overflow (offset);
105
106         return fseek (stream, offset, origin);
107 }
108
109 gint64
110 Mono_Posix_Stdlib_ftell (FILE* stream)
111 {
112         return ftell (stream);
113 }
114
115 fpos_t*
116 Mono_Posix_Stdlib_CreateFilePosition ()
117 {
118         fpos_t* pos = malloc (sizeof(fpos_t));
119         return pos;
120 }
121
122 gint32
123 Mono_Posix_Stdlib_fgetpos (FILE* stream, fpos_t *pos)
124 {
125         return fgetpos (stream, pos);
126 }
127
128 gint32
129 Mono_Posix_Stdlib_fsetpos (FILE* stream, fpos_t *pos)
130 {
131         return fsetpos (stream, pos);
132 }
133
134 G_END_DECLS
135
136 /*
137  * vim: noexpandtab
138  */