OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
ms
applink.c
Go to the documentation of this file.
1
#define APPLINK_STDIN 1
2
#define APPLINK_STDOUT 2
3
#define APPLINK_STDERR 3
4
#define APPLINK_FPRINTF 4
5
#define APPLINK_FGETS 5
6
#define APPLINK_FREAD 6
7
#define APPLINK_FWRITE 7
8
#define APPLINK_FSETMOD 8
9
#define APPLINK_FEOF 9
10
#define APPLINK_FCLOSE 10
/* should not be used */
11
12
#define APPLINK_FOPEN 11
/* solely for completeness */
13
#define APPLINK_FSEEK 12
14
#define APPLINK_FTELL 13
15
#define APPLINK_FFLUSH 14
16
#define APPLINK_FERROR 15
17
#define APPLINK_CLEARERR 16
18
#define APPLINK_FILENO 17
/* to be used with below */
19
20
#define APPLINK_OPEN 18
/* formally can't be used, as flags can vary */
21
#define APPLINK_READ 19
22
#define APPLINK_WRITE 20
23
#define APPLINK_LSEEK 21
24
#define APPLINK_CLOSE 22
25
#define APPLINK_MAX 22
/* always same as last macro */
26
27
#ifndef APPMACROS_ONLY
28
#include <stdio.h>
29
#include <io.h>
30
#include <fcntl.h>
31
32
static
void
*app_stdin(
void
) {
return
stdin; }
33
static
void
*app_stdout(
void
) {
return
stdout; }
34
static
void
*app_stderr(
void
) {
return
stderr; }
35
static
int
app_feof(FILE *
fp
) {
return
feof(fp); }
36
static
int
app_ferror(FILE *
fp
) {
return
ferror(fp); }
37
static
void
app_clearerr(FILE *
fp
) { clearerr(fp); }
38
static
int
app_fileno(FILE *
fp
) {
return
_fileno(fp); }
39
static
int
app_fsetmod(FILE *
fp
,
char
mod)
40
{
return
_setmode (_fileno(fp),mod==
'b'
?_O_BINARY:_O_TEXT); }
41
42
#ifdef __cplusplus
43
extern
"C"
{
44
#endif
45
46
__declspec
(dllexport)
47
void
**
48
#if defined(__BORLANDC__)
49
__stdcall
/* __stdcall appears to be the only way to get the name
50
* decoration right with Borland C. Otherwise it works
51
* purely incidentally, as we pass no parameters. */
52
#else
53
__cdecl
54
#endif
55
OPENSSL_Applink(
void
)
56
{
static
int
once=1;
57
static
void
*OPENSSL_ApplinkTable[
APPLINK_MAX
+1]={(
void
*)
APPLINK_MAX
};
58
59
if
(once)
60
{ OPENSSL_ApplinkTable[
APPLINK_STDIN
] = app_stdin;
61
OPENSSL_ApplinkTable[
APPLINK_STDOUT
] = app_stdout;
62
OPENSSL_ApplinkTable[
APPLINK_STDERR
] = app_stderr;
63
OPENSSL_ApplinkTable[
APPLINK_FPRINTF
] = fprintf;
64
OPENSSL_ApplinkTable[
APPLINK_FGETS
] = fgets;
65
OPENSSL_ApplinkTable[
APPLINK_FREAD
] = fread;
66
OPENSSL_ApplinkTable[
APPLINK_FWRITE
] = fwrite;
67
OPENSSL_ApplinkTable[
APPLINK_FSETMOD
] = app_fsetmod;
68
OPENSSL_ApplinkTable[
APPLINK_FEOF
] = app_feof;
69
OPENSSL_ApplinkTable[
APPLINK_FCLOSE
] = fclose;
70
71
OPENSSL_ApplinkTable[
APPLINK_FOPEN
] = fopen;
72
OPENSSL_ApplinkTable[
APPLINK_FSEEK
] = fseek;
73
OPENSSL_ApplinkTable[
APPLINK_FTELL
] = ftell;
74
OPENSSL_ApplinkTable[
APPLINK_FFLUSH
] = fflush;
75
OPENSSL_ApplinkTable[
APPLINK_FERROR
] = app_ferror;
76
OPENSSL_ApplinkTable[
APPLINK_CLEARERR
] = app_clearerr;
77
OPENSSL_ApplinkTable[
APPLINK_FILENO
] = app_fileno;
78
79
OPENSSL_ApplinkTable[
APPLINK_OPEN
] = _open;
80
OPENSSL_ApplinkTable[
APPLINK_READ
] = _read;
81
OPENSSL_ApplinkTable[
APPLINK_WRITE
] = _write;
82
OPENSSL_ApplinkTable[
APPLINK_LSEEK
] = _lseek;
83
OPENSSL_ApplinkTable[
APPLINK_CLOSE
] = _close;
84
85
once = 0;
86
}
87
88
return
OPENSSL_ApplinkTable;
89
}
90
91
#ifdef __cplusplus
92
}
93
#endif
94
#endif
Generated on Thu Jan 10 2013 09:53:42 for OpenSSL by
1.8.2