source: trunk/src/msvcrt/msvcrt.h@ 9633

Last change on this file since 9633 was 9633, checked in by sandervl, 23 years ago

PF: Msvcrt Wine port with GCC

File size: 3.2 KB
Line 
1/*
2 * Copyright 2001 Jon Griffiths
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
19#ifndef __WINE_MSVCRT_H
20#define __WINE_MSVCRT_H
21
22#include <stdarg.h>
23
24#include "winbase.h"
25#include "winnls.h"
26#include "winerror.h"
27#include "msvcrt/eh.h"
28
29/* TLS data */
30extern DWORD MSVCRT_tls_index;
31
32typedef struct __MSVCRT_thread_data
33{
34 int errno;
35 unsigned long doserrno;
36 terminate_function terminate_handler;
37 unexpected_function unexpected_handler;
38 _se_translator_function se_translator;
39 EXCEPTION_RECORD *exc_record;
40} MSVCRT_thread_data;
41
42extern MSVCRT_thread_data *msvcrt_get_thread_data(void);
43
44extern int MSVCRT_current_lc_all_cp;
45
46void _purecall(void);
47void MSVCRT__set_errno(int);
48char* msvcrt_strndup(const char*,unsigned int);
49LPWSTR msvcrt_wstrndup(LPCWSTR, unsigned int);
50
51void MSVCRT__amsg_exit(int errnum);
52
53extern char **MSVCRT__environ;
54extern WCHAR **MSVCRT__wenviron;
55
56extern char ** msvcrt_SnapshotOfEnvironmentA(char **);
57extern WCHAR ** msvcrt_SnapshotOfEnvironmentW(WCHAR **);
58
59/* FIXME: This should be declared in new.h but it's not an extern "C" so
60 * it would not be much use anyway. Even for Winelib applications.
61 */
62int MSVCRT__set_new_mode(int mode);
63
64/* Setup and teardown multi threaded locks */
65extern void msvcrt_init_mt_locks(void);
66extern void msvcrt_free_mt_locks(void);
67
68extern void msvcrt_init_io(void);
69extern void msvcrt_free_io(void);
70extern void msvcrt_init_console(void);
71extern void msvcrt_free_console(void);
72extern void msvcrt_init_args(void);
73extern void msvcrt_free_args(void);
74extern void msvcrt_init_vtables(void);
75
76/* run-time error codes */
77#define _RT_STACK 0
78#define _RT_NULLPTR 1
79#define _RT_FLOAT 2
80#define _RT_INTDIV 3
81#define _RT_EXECMEM 5
82#define _RT_EXECFORM 6
83#define _RT_EXECENV 7
84#define _RT_SPACEARG 8
85#define _RT_SPACEENV 9
86#define _RT_ABORT 10
87#define _RT_NPTR 12
88#define _RT_FPTR 13
89#define _RT_BREAK 14
90#define _RT_INT 15
91#define _RT_THREAD 16
92#define _RT_LOCK 17
93#define _RT_HEAP 18
94#define _RT_OPENCON 19
95#define _RT_QWIN 20
96#define _RT_NOMAIN 21
97#define _RT_NONCONT 22
98#define _RT_INVALDISP 23
99#define _RT_ONEXIT 24
100#define _RT_PUREVIRT 25
101#define _RT_STDIOINIT 26
102#define _RT_LOWIOINIT 27
103#define _RT_HEAPINIT 28
104#define _RT_DOMAIN 120
105#define _RT_SING 121
106#define _RT_TLOSS 122
107#define _RT_CRNL 252
108#define _RT_BANNER 255
109
110#endif /* __WINE_MSVCRT_H */
Note: See TracBrowser for help on using the repository browser.