VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/CryptoPkg/Include/OpenSslSupport.h@ 75265

Last change on this file since 75265 was 58466, checked in by vboxsync, 9 years ago

EFI/Firmware: Merged in the svn:eol-style, svn:mime-type and trailing whitespace cleanup that was done after the initial UDK2014.SP1 import: svn merge /vendor/edk2/UDK2014.SP1 /vendor/edk2/current .

  • Property svn:eol-style set to native
File size: 10.4 KB
Line 
1/** @file
2 Root include file to support building OpenSSL Crypto Library.
3
4Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
5This program and the accompanying materials
6are licensed and made available under the terms and conditions of the BSD License
7which accompanies this distribution. The full text of the license may be found at
8http://opensource.org/licenses/bsd-license.php
9
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13**/
14
15#ifndef __OPEN_SSL_SUPPORT_H__
16#define __OPEN_SSL_SUPPORT_H__
17
18#include <Base.h>
19#include <Library/BaseLib.h>
20#include <Library/BaseMemoryLib.h>
21#include <Library/MemoryAllocationLib.h>
22#include <Library/DebugLib.h>
23
24//
25// File operations are not required for building Open SSL,
26// so FILE is mapped to VOID * to pass build
27//
28typedef VOID *FILE;
29
30//
31// Map all va_xxxx elements to VA_xxx defined in MdePkg/Include/Base.h
32//
33#if !defined(__CC_ARM) // if va_list is not already defined
34#define va_list VA_LIST
35#define va_arg VA_ARG
36#define va_start VA_START
37#define va_end VA_END
38#else // __CC_ARM
39#define va_start(Marker, Parameter) __va_start(Marker, Parameter)
40#define va_arg(Marker, TYPE) __va_arg(Marker, TYPE)
41#define va_end(Marker) ((void)0)
42#endif
43
44//
45// #defines from EFI Application Toolkit required to buiild Open SSL
46//
47#define ENOMEM 12 /* Cannot allocate memory */
48#define EINVAL 22 /* Invalid argument */
49#define BUFSIZ 1024 /* size of buffer used by setbuf */
50#define INT_MAX 2147483647 /* max value for an int */
51#define INT_MIN (-2147483647-1) /* min value for an int */
52#define LONG_MAX 2147483647L /* max value for a long */
53#define LONG_MIN (-2147483647-1) /* min value for a long */
54#define ULONG_MAX 0xffffffff /* max value for an unsigned long */
55#define LOG_DAEMON (3<<3) /* system daemons */
56#define LOG_EMERG 0 /* system is unusable */
57#define LOG_ALERT 1 /* action must be taken immediately */
58#define LOG_CRIT 2 /* critical conditions */
59#define LOG_ERR 3 /* error conditions */
60#define LOG_WARNING 4 /* warning conditions */
61#define LOG_NOTICE 5 /* normal but significant condition */
62#define LOG_INFO 6 /* informational */
63#define LOG_DEBUG 7 /* debug-level messages */
64#define LOG_PID 0x01 /* log the pid with each message */
65#define LOG_CONS 0x02 /* log on the console if errors in sending */
66
67//
68// Macros from EFI Application Toolkit required to buiild Open SSL
69//
70/* The offsetof() macro calculates the offset of a structure member
71 in its structure. Unfortunately this cannot be written down
72 portably, hence it is provided by a Standard C header file.
73 For pre-Standard C compilers, here is a version that usually works
74 (but watch out!): */
75#define offsetof(type, member) OFFSET_OF (type, member)
76
77//
78// Basic types from EFI Application Toolkit required to buiild Open SSL
79//
80typedef UINTN size_t;
81typedef INTN ssize_t;
82typedef INT64 off_t;
83typedef UINT16 mode_t;
84typedef long time_t;
85typedef unsigned long clock_t;
86typedef UINT32 uid_t;
87typedef UINT32 gid_t;
88typedef UINT32 ino_t;
89typedef UINT32 dev_t;
90typedef UINT16 nlink_t;
91typedef int pid_t;
92typedef void *DIR;
93typedef void __sighandler_t (int);
94
95//
96// Structures from EFI Application Toolkit required to buiild Open SSL
97//
98struct tm {
99 int tm_sec; /* seconds after the minute [0-60] */
100 int tm_min; /* minutes after the hour [0-59] */
101 int tm_hour; /* hours since midnight [0-23] */
102 int tm_mday; /* day of the month [1-31] */
103 int tm_mon; /* months since January [0-11] */
104 int tm_year; /* years since 1900 */
105 int tm_wday; /* days since Sunday [0-6] */
106 int tm_yday; /* days since January 1 [0-365] */
107 int tm_isdst; /* Daylight Savings Time flag */
108 long tm_gmtoff; /* offset from CUT in seconds */
109 char *tm_zone; /* timezone abbreviation */
110};
111
112struct timeval {
113 long tv_sec; /* time value, in seconds */
114 long tv_usec; /* time value, in microseconds */
115} timeval;
116
117struct dirent {
118 UINT32 d_fileno; /* file number of entry */
119 UINT16 d_reclen; /* length of this record */
120 UINT8 d_type; /* file type, see below */
121 UINT8 d_namlen; /* length of string in d_name */
122 char d_name[255 + 1]; /* name must be no longer than this */
123};
124
125struct stat {
126 dev_t st_dev; /* inode's device */
127 ino_t st_ino; /* inode's number */
128 mode_t st_mode; /* inode protection mode */
129 nlink_t st_nlink; /* number of hard links */
130 uid_t st_uid; /* user ID of the file's owner */
131 gid_t st_gid; /* group ID of the file's group */
132 dev_t st_rdev; /* device type */
133 time_t st_atime; /* time of last access */
134 long st_atimensec; /* nsec of last access */
135 time_t st_mtime; /* time of last data modification */
136 long st_mtimensec; /* nsec of last data modification */
137 time_t st_ctime; /* time of last file status change */
138 long st_ctimensec; /* nsec of last file status change */
139 off_t st_size; /* file size, in bytes */
140 INT64 st_blocks; /* blocks allocated for file */
141 UINT32 st_blksize; /* optimal blocksize for I/O */
142 UINT32 st_flags; /* user defined flags for file */
143 UINT32 st_gen; /* file generation number */
144 INT32 st_lspare;
145 INT64 st_qspare[2];
146};
147
148//
149// Externs from EFI Application Toolkit required to buiild Open SSL
150//
151extern int errno;
152
153//
154// Function prototypes from EFI Application Toolkit required to buiild Open SSL
155//
156void *malloc (size_t);
157void *realloc (void *, size_t);
158void free (void *);
159int isdigit (int);
160int isspace (int);
161int tolower (int);
162int isupper (int);
163int isxdigit (int);
164int isalnum (int);
165void *memcpy (void *, const void *, size_t);
166void *memset (void *, int, size_t);
167void *memchr (const void *, int, size_t);
168int memcmp (const void *, const void *, size_t);
169void *memmove (void *, const void *, size_t);
170int strcmp (const char *, const char *);
171int strncmp (const char *, const char *, size_t);
172char *strcpy (char *, const char *);
173char *strncpy (char *, const char *, size_t);
174size_t strlen (const char *);
175char *strcat (char *, const char *);
176char *strchr (const char *, int);
177int strcasecmp (const char *, const char *);
178int strncasecmp (const char *, const char *, size_t);
179char *strncpy (char *, const char *, size_t);
180int strncmp (const char *, const char *, size_t);
181char *strrchr (const char *, int);
182unsigned long strtoul (const char *, char **, int);
183long strtol (const char *, char **, int);
184int printf (const char *, ...);
185int sscanf (const char *, const char *, ...);
186int open (const char *, int, ...);
187int chmod (const char *, mode_t);
188int stat (const char *, struct stat *);
189off_t lseek (int, off_t, int);
190ssize_t read (int, void *, size_t);
191ssize_t write (int, const void *, size_t);
192int close (int);
193FILE *fopen (const char *, const char *);
194size_t fread (void *, size_t, size_t, FILE *);
195size_t fwrite (const void *, size_t, size_t, FILE *);
196char *fgets (char *, int, FILE *);
197int fputs (const char *, FILE *);
198int fprintf (FILE *, const char *, ...);
199int vfprintf (FILE *, const char *, VA_LIST);
200int fflush (FILE *);
201int fclose (FILE *);
202DIR *opendir (const char *);
203struct dirent *readdir (DIR *);
204int closedir (DIR *);
205void openlog (const char *, int, int);
206void closelog (void);
207void syslog (int, const char *, ...);
208time_t time (time_t *);
209struct tm *localtime (const time_t *);
210struct tm *gmtime (const time_t *);
211struct tm *gmtime_r (const time_t *, struct tm *);
212uid_t getuid (void);
213uid_t geteuid (void);
214gid_t getgid (void);
215gid_t getegid (void);
216void qsort (void *, size_t, size_t, int (*)(const void *, const void *));
217char *getenv (const char *);
218void exit (int);
219void abort (void);
220__sighandler_t *signal (int, __sighandler_t *);
221
222//
223// Global variables from EFI Application Toolkit required to buiild Open SSL
224//
225extern FILE *stderr;
226extern FILE *stdin;
227extern FILE *stdout;
228
229//
230// Macros that directly map functions to BaseLib, BaseMemoryLib, and DebugLib functions
231//
232#define memcpy(dest,source,count) CopyMem(dest,source,(UINTN)(count))
233#define memset(dest,ch,count) SetMem(dest,(UINTN)(count),(UINT8)(ch))
234#define memchr(buf,ch,count) ScanMem8(buf,(UINTN)(count),(UINT8)ch)
235#define memcmp(buf1,buf2,count) (int)(CompareMem(buf1,buf2,(UINTN)(count)))
236#define memmove(dest,source,count) CopyMem(dest,source,(UINTN)(count))
237#define strcmp AsciiStrCmp
238#define strncmp(string1,string2,count) (int)(AsciiStrnCmp(string1,string2,(UINTN)(count)))
239#define strcpy(strDest,strSource) AsciiStrCpy(strDest,strSource)
240#define strncpy(strDest,strSource,count) AsciiStrnCpy(strDest,strSource,(UINTN)count)
241#define strlen(str) (size_t)(AsciiStrLen(str))
242#define strcat(strDest,strSource) AsciiStrCat(strDest,strSource)
243#define strchr(str,ch) ScanMem8((VOID *)(str),AsciiStrSize(str),(UINT8)ch)
244#define abort() ASSERT (FALSE)
245#define assert(expression)
246#define localtime(timer) NULL
247#define gmtime_r(timer,result) (result = NULL)
248#define atoi(nptr) AsciiStrDecimalToUintn(nptr)
249
250#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette