Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/stand/liblua/lstd.h
34677 views
1
/*-
2
* Copyright (c) 2014 Pedro Souza <[email protected]>
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
*
14
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24
* SUCH DAMAGE.
25
*/
26
27
#ifndef LSTD_H
28
#define LSTD_H
29
30
#include <stand.h>
31
#include <sys/types.h>
32
#include <sys/stdarg.h>
33
#include <sys/stdint.h>
34
#include <limits.h>
35
#include <string.h>
36
37
/*
38
* Mini stdio FILE and DIR routines. These are the minimal routines needed by
39
* the lfs module and lua's base code. We define them minimally here so we don't
40
* have to modify lua on every import. Further, since they aren't completely
41
* standard, we #define them to other names so they don't conflict with other
42
* tooling that makes assumptions about these routines that might not be, in
43
* fact, correct.
44
*/
45
46
typedef struct FILE
47
{
48
int fd;
49
size_t offset;
50
size_t size;
51
} FILE;
52
53
typedef struct DIR
54
{
55
int fd;
56
} DIR;
57
58
#define fopen lua_loader_fopen
59
#define freopen lua_loader_freopen
60
#define fread lua_loader_fread
61
#define fwrite lua_loader_fwrite
62
#define fclose lua_loader_fclose
63
#define ferror lua_loader_ferror
64
#define feof lua_loader_feof
65
#define getc lua_loader_getc
66
#define opendir lua_loader_opendir
67
#define fdopendir lua_loader_fdopendir
68
#define closedir lua_loader_closedir
69
70
FILE *fopen(const char *filename, const char *mode);
71
FILE *freopen( const char *filename, const char *mode, FILE *stream);
72
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
73
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
74
int fclose(FILE *stream);
75
int ferror(FILE *stream);
76
int feof(FILE *stream);
77
int getc(FILE * stream);
78
DIR *opendir(const char *name);
79
DIR *fdopendir(int fd);
80
int closedir(DIR *);
81
82
#ifndef EOF
83
#define EOF (-1)
84
#endif
85
86
#define stdin ((FILE*)NULL)
87
#define stdout 1
88
89
#ifndef BUFSIZ
90
#define BUFSIZ 512
91
#endif
92
93
#define lua_writestringerror(s, p) do { printf((s), (p)); } while (0)
94
95
void luai_writestring(const char *, int);
96
97
#define lua_writestring(s,l) luai_writestring(s,l)
98
99
#define fflush /* */
100
#define fgets(b, l, s) fgetstr((b), (l), 0)
101
102
#endif /* LSTD_H */
103
104