Compare commits
No commits in common. "57dde9b71e24df66774774d60a159f3aeafce6dd" and "52164c82e305bd7439447b8f01f2359f1e71e821" have entirely different histories.
57dde9b71e
...
52164c82e3
2288 changed files with 73016 additions and 288490 deletions
|
@ -1,10 +0,0 @@
|
||||||
00/*
|
|
||||||
01/*
|
|
||||||
02/*
|
|
||||||
03/*
|
|
||||||
04/*
|
|
||||||
04a
|
|
||||||
# 05/musl*
|
|
||||||
05/tcc-0*
|
|
||||||
05/musl-0*
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
all: out00
|
all: README.html out00
|
||||||
out00: in00
|
out00: in00
|
||||||
./hexcompile
|
./hexcompile
|
||||||
%.html: %.md ../markdown
|
%.html: %.md ../markdown
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
all: out01
|
all: out01 README.html
|
||||||
out01: in01 out00
|
out01: in01 out00
|
||||||
./out00
|
./out00
|
||||||
out00: in00
|
out00: in00
|
||||||
../00/hexcompile
|
../00/hexcompile
|
||||||
|
%.html: %.md ../markdown
|
||||||
|
../markdown $<
|
||||||
clean:
|
clean:
|
||||||
rm -f out00 out01
|
rm -f out00 out01 README.html
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
all: out01 out02
|
all: out01 out02 README.html
|
||||||
out01: in01
|
out01: in01
|
||||||
../01/out00
|
../01/out00
|
||||||
out02: out01 in02
|
out02: out01 in02
|
||||||
./out01
|
./out01
|
||||||
|
%.html: %.md ../markdown
|
||||||
|
../markdown $<
|
||||||
clean:
|
clean:
|
||||||
rm -f out01 out02
|
rm -f out01 out02 README.html
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
all: out02 out03
|
all: out02 out03 README.html
|
||||||
out02: in02 ../02/out01
|
out02: in02 ../02/out01
|
||||||
../02/out01
|
../02/out01
|
||||||
out03: out02 in03
|
out03: out02 in03
|
||||||
./out02
|
./out02
|
||||||
|
%.html: %.md ../markdown
|
||||||
|
../markdown $<
|
||||||
clean:
|
clean:
|
||||||
rm -f out*
|
rm -f out* README.html
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
all: out03 guessing_game.out out04
|
all: out03 guessing_game.out out04 README.html
|
||||||
out03: in03 ../03/out02
|
out03: in03 ../03/out02
|
||||||
../03/out02
|
../03/out02
|
||||||
|
%.html: %.md ../markdown
|
||||||
|
../markdown $<
|
||||||
out04: in04 out03
|
out04: in04 out03
|
||||||
./out03
|
./out03
|
||||||
%.out: % out03
|
%.out: % out03
|
||||||
./out03 $< $@
|
./out03 $< $@
|
||||||
clean:
|
clean:
|
||||||
rm -f out* *.out
|
rm -f out* README.html *.out
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
all: out04 out04a
|
all: out04 out04a README.html
|
||||||
out04: in04 ../04/out03
|
out04: in04 ../04/out03
|
||||||
../04/out03
|
../04/out03
|
||||||
out04a: in04a out04
|
out04a: in04a out04
|
||||||
./out04
|
./out04
|
||||||
|
%.html: %.md ../markdown
|
||||||
|
../markdown $<
|
||||||
clean:
|
clean:
|
||||||
rm -f out*
|
rm -f out* README.html
|
||||||
|
|
1
05/.gitignore
vendored
1
05/.gitignore
vendored
|
@ -4,4 +4,3 @@ address_map.txt
|
||||||
*.d
|
*.d
|
||||||
tcc-bootstrap
|
tcc-bootstrap
|
||||||
musl-bootstrap
|
musl-bootstrap
|
||||||
musl-bootstrap-final
|
|
||||||
|
|
27
05/Makefile
27
05/Makefile
|
@ -2,7 +2,7 @@ TCCDIR=tcc-0.9.27
|
||||||
TCC=$(TCCDIR)/tcc
|
TCC=$(TCCDIR)/tcc
|
||||||
TCC0=$(TCC)0
|
TCC0=$(TCC)0
|
||||||
TCCINST=tcc-bootstrap
|
TCCINST=tcc-bootstrap
|
||||||
all: testapp
|
all: out04 a.out $(TCCDIR)/lib/libtcc1.a
|
||||||
in04: *.b ../04a/out04
|
in04: *.b ../04a/out04
|
||||||
../04a/out04 main.b in04
|
../04a/out04 main.b in04
|
||||||
out04: in04 ../04/out03
|
out04: in04 ../04/out03
|
||||||
|
@ -13,6 +13,12 @@ out04: in04 ../04/out03
|
||||||
./out04 $< $@
|
./out04 $< $@
|
||||||
a.out: main.c *.h out04
|
a.out: main.c *.h out04
|
||||||
./out04
|
./out04
|
||||||
|
test.out: test.s.o test.c.o
|
||||||
|
$(TCC0) -static -nostdlib test.s.o test.c.o -o test.out
|
||||||
|
test.s.o: $(TCC0) test.s
|
||||||
|
$(TCC0) -static -nostdlib -c test.s -o test.s.o
|
||||||
|
test.c.o: $(TCC0) test.c
|
||||||
|
$(TCC0) -static -nostdlib -c test.c -o test.c.o
|
||||||
$(TCC0): $(TCCDIR)/*.c $(TCCDIR)/*.h out04
|
$(TCC0): $(TCCDIR)/*.c $(TCCDIR)/*.h out04
|
||||||
cd $(TCCDIR) && ../out04 tcc.c tcc0
|
cd $(TCCDIR) && ../out04 tcc.c tcc0
|
||||||
$(TCCDIR)/lib/libtcc1.a: $(TCC0) $(TCCDIR)/lib/*.[cS]
|
$(TCCDIR)/lib/libtcc1.a: $(TCC0) $(TCCDIR)/lib/*.[cS]
|
||||||
|
@ -22,9 +28,6 @@ $(TCCDIR)/lib/libtcc1.a: $(TCC0) $(TCCDIR)/lib/*.[cS]
|
||||||
$(TCC0) -c $(TCCDIR)/lib/libtcc1.c -o $(TCCDIR)/lib/libtcc1.o
|
$(TCC0) -c $(TCCDIR)/lib/libtcc1.c -o $(TCCDIR)/lib/libtcc1.o
|
||||||
$(TCC0) -ar $(TCCDIR)/lib/libtcc1.a $(TCCDIR)/lib/*.o
|
$(TCC0) -ar $(TCCDIR)/lib/libtcc1.a $(TCCDIR)/lib/*.o
|
||||||
musl: tcc-files
|
musl: tcc-files
|
||||||
mkdir -p musl-bootstrap/include
|
|
||||||
mkdir -p musl-bootstrap/bin
|
|
||||||
mkdir -p musl-bootstrap/lib
|
|
||||||
$(MAKE) -j8 -C musl-0.6.0
|
$(MAKE) -j8 -C musl-0.6.0
|
||||||
$(MAKE) -C musl-0.6.0 install
|
$(MAKE) -C musl-0.6.0 install
|
||||||
tcc-files: $(TCCDIR)/lib/libtcc1.a $(TCCDIR)/include/*.h
|
tcc-files: $(TCCDIR)/lib/libtcc1.a $(TCCDIR)/include/*.h
|
||||||
|
@ -32,17 +35,8 @@ tcc-files: $(TCCDIR)/lib/libtcc1.a $(TCCDIR)/include/*.h
|
||||||
cp -r $(TCCDIR)/include/*.h $(TCCINST)/include/
|
cp -r $(TCCDIR)/include/*.h $(TCCINST)/include/
|
||||||
cp -r $(TCCDIR)/lib/libtcc1.a $(TCCINST)/
|
cp -r $(TCCDIR)/lib/libtcc1.a $(TCCINST)/
|
||||||
$(TCC): $(TCC0) musl
|
$(TCC): $(TCC0) musl
|
||||||
cd $(TCCDIR) && ./tcc0 -nostdinc -nostdlib -B ../tcc-bootstrap -I ../musl-bootstrap/include tcc.c ../musl-bootstrap/lib/*.[oa] -o tcc
|
cd $(TCCDIR) && ./tcc0 -nostdinc -nostdlib -B ../tcc-boostrap -I ../musl-bootstrap/include tcc.c ../musl-bootstrap/lib/*.[oa] -o tcc
|
||||||
tcc: $(TCC)
|
tcc: $(TCC)
|
||||||
musl-final: tcc
|
|
||||||
mkdir -p musl-bootstrap-final/include
|
|
||||||
mkdir -p musl-bootstrap-final/bin
|
|
||||||
mkdir -p musl-bootstrap-final/lib
|
|
||||||
$(MAKE) -C musl-final
|
|
||||||
tcc-final: tcc musl-final
|
|
||||||
cd tcc-final && ../$(TCCDIR)/tcc -Wall -g -static -nostdinc -nostdlib -B ../tcc-bootstrap -I ../musl-final/include tcc.c ../musl-final/lib/*.[oa] -o tcc
|
|
||||||
testapp: tcc musl-final
|
|
||||||
./tcc-final/tcc -Wall -g -static -nostdinc -nostdlib -I ./tcc-final/include -I ./musl-final/include test.c ./musl-final/lib/*.[oa] -o test
|
|
||||||
|
|
||||||
$(TCC)2: $(TCC)1
|
$(TCC)2: $(TCC)1
|
||||||
cd $(TCCDIR) && ./tcc1 tcc.c -o tcc2
|
cd $(TCCDIR) && ./tcc1 tcc.c -o tcc2
|
||||||
|
@ -51,9 +45,6 @@ $(TCC)0a: $(TCCDIR)/*.c $(TCCDIR)/*.h
|
||||||
$(TCC)1a: $(TCCDIR)/*.c $(TCCDIR)/*.h
|
$(TCC)1a: $(TCCDIR)/*.c $(TCCDIR)/*.h
|
||||||
cd $(TCCDIR) && ./tcc0a tcc.c -o tcc1a
|
cd $(TCCDIR) && ./tcc0a tcc.c -o tcc1a
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -C musl-final clean
|
|
||||||
$(MAKE) -C musl-0.6.0 clean
|
|
||||||
rm -rf musl-bootstrap
|
rm -rf musl-bootstrap
|
||||||
rm -rf musl-bootstrap-final
|
|
||||||
rm -rf tcc-bootstrap
|
rm -rf tcc-bootstrap
|
||||||
rm -f out* *.out *.o $(TCCDIR)/tcc[0123456] $(TCCDIR)/tcc[0123456]a $(TCCDIR)/lib/*.[oa]
|
rm -f out* README.html *.out *.o $(TCCDIR)/tcc[0123456] $(TCCDIR)/tcc[0123456]a $(TCCDIR)/lib/*.[oa]
|
||||||
|
|
|
@ -14,7 +14,7 @@ exec_prefix = ../musl-bootstrap
|
||||||
# Uncomment if you want to build i386 musl on a 64-bit host
|
# Uncomment if you want to build i386 musl on a 64-bit host
|
||||||
#CFLAGS += -m32
|
#CFLAGS += -m32
|
||||||
|
|
||||||
CFLAGS += -g
|
#CFLAGS += -g
|
||||||
|
|
||||||
# Uncomment for smaller code size.
|
# Uncomment for smaller code size.
|
||||||
#CFLAGS += -fomit-frame-pointer -mno-accumulate-outgoing-args
|
#CFLAGS += -fomit-frame-pointer -mno-accumulate-outgoing-args
|
||||||
|
|
3
05/musl-final/.gitignore
vendored
3
05/musl-final/.gitignore
vendored
|
@ -1,3 +0,0 @@
|
||||||
*.o
|
|
||||||
*.a
|
|
||||||
musl-gcc
|
|
|
@ -1,504 +0,0 @@
|
||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
Version 2.1, February 1999
|
|
||||||
|
|
||||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
[This is the first released version of the Lesser GPL. It also counts
|
|
||||||
as the successor of the GNU Library Public License, version 2, hence
|
|
||||||
the version number 2.1.]
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
Licenses are intended to guarantee your freedom to share and change
|
|
||||||
free software--to make sure the software is free for all its users.
|
|
||||||
|
|
||||||
This license, the Lesser General Public License, applies to some
|
|
||||||
specially designated software packages--typically libraries--of the
|
|
||||||
Free Software Foundation and other authors who decide to use it. You
|
|
||||||
can use it too, but we suggest you first think carefully about whether
|
|
||||||
this license or the ordinary General Public License is the better
|
|
||||||
strategy to use in any particular case, based on the explanations below.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom of use,
|
|
||||||
not price. Our General Public Licenses are designed to make sure that
|
|
||||||
you have the freedom to distribute copies of free software (and charge
|
|
||||||
for this service if you wish); that you receive source code or can get
|
|
||||||
it if you want it; that you can change the software and use pieces of
|
|
||||||
it in new free programs; and that you are informed that you can do
|
|
||||||
these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
distributors to deny you these rights or to ask you to surrender these
|
|
||||||
rights. These restrictions translate to certain responsibilities for
|
|
||||||
you if you distribute copies of the library or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of the library, whether gratis
|
|
||||||
or for a fee, you must give the recipients all the rights that we gave
|
|
||||||
you. You must make sure that they, too, receive or can get the source
|
|
||||||
code. If you link other code with the library, you must provide
|
|
||||||
complete object files to the recipients, so that they can relink them
|
|
||||||
with the library after making changes to the library and recompiling
|
|
||||||
it. And you must show them these terms so they know their rights.
|
|
||||||
|
|
||||||
We protect your rights with a two-step method: (1) we copyright the
|
|
||||||
library, and (2) we offer you this license, which gives you legal
|
|
||||||
permission to copy, distribute and/or modify the library.
|
|
||||||
|
|
||||||
To protect each distributor, we want to make it very clear that
|
|
||||||
there is no warranty for the free library. Also, if the library is
|
|
||||||
modified by someone else and passed on, the recipients should know
|
|
||||||
that what they have is not the original version, so that the original
|
|
||||||
author's reputation will not be affected by problems that might be
|
|
||||||
introduced by others.
|
|
||||||
|
|
||||||
Finally, software patents pose a constant threat to the existence of
|
|
||||||
any free program. We wish to make sure that a company cannot
|
|
||||||
effectively restrict the users of a free program by obtaining a
|
|
||||||
restrictive license from a patent holder. Therefore, we insist that
|
|
||||||
any patent license obtained for a version of the library must be
|
|
||||||
consistent with the full freedom of use specified in this license.
|
|
||||||
|
|
||||||
Most GNU software, including some libraries, is covered by the
|
|
||||||
ordinary GNU General Public License. This license, the GNU Lesser
|
|
||||||
General Public License, applies to certain designated libraries, and
|
|
||||||
is quite different from the ordinary General Public License. We use
|
|
||||||
this license for certain libraries in order to permit linking those
|
|
||||||
libraries into non-free programs.
|
|
||||||
|
|
||||||
When a program is linked with a library, whether statically or using
|
|
||||||
a shared library, the combination of the two is legally speaking a
|
|
||||||
combined work, a derivative of the original library. The ordinary
|
|
||||||
General Public License therefore permits such linking only if the
|
|
||||||
entire combination fits its criteria of freedom. The Lesser General
|
|
||||||
Public License permits more lax criteria for linking other code with
|
|
||||||
the library.
|
|
||||||
|
|
||||||
We call this license the "Lesser" General Public License because it
|
|
||||||
does Less to protect the user's freedom than the ordinary General
|
|
||||||
Public License. It also provides other free software developers Less
|
|
||||||
of an advantage over competing non-free programs. These disadvantages
|
|
||||||
are the reason we use the ordinary General Public License for many
|
|
||||||
libraries. However, the Lesser license provides advantages in certain
|
|
||||||
special circumstances.
|
|
||||||
|
|
||||||
For example, on rare occasions, there may be a special need to
|
|
||||||
encourage the widest possible use of a certain library, so that it becomes
|
|
||||||
a de-facto standard. To achieve this, non-free programs must be
|
|
||||||
allowed to use the library. A more frequent case is that a free
|
|
||||||
library does the same job as widely used non-free libraries. In this
|
|
||||||
case, there is little to gain by limiting the free library to free
|
|
||||||
software only, so we use the Lesser General Public License.
|
|
||||||
|
|
||||||
In other cases, permission to use a particular library in non-free
|
|
||||||
programs enables a greater number of people to use a large body of
|
|
||||||
free software. For example, permission to use the GNU C Library in
|
|
||||||
non-free programs enables many more people to use the whole GNU
|
|
||||||
operating system, as well as its variant, the GNU/Linux operating
|
|
||||||
system.
|
|
||||||
|
|
||||||
Although the Lesser General Public License is Less protective of the
|
|
||||||
users' freedom, it does ensure that the user of a program that is
|
|
||||||
linked with the Library has the freedom and the wherewithal to run
|
|
||||||
that program using a modified version of the Library.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow. Pay close attention to the difference between a
|
|
||||||
"work based on the library" and a "work that uses the library". The
|
|
||||||
former contains code derived from the library, whereas the latter must
|
|
||||||
be combined with the library in order to run.
|
|
||||||
|
|
||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License Agreement applies to any software library or other
|
|
||||||
program which contains a notice placed by the copyright holder or
|
|
||||||
other authorized party saying it may be distributed under the terms of
|
|
||||||
this Lesser General Public License (also called "this License").
|
|
||||||
Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
A "library" means a collection of software functions and/or data
|
|
||||||
prepared so as to be conveniently linked with application programs
|
|
||||||
(which use some of those functions and data) to form executables.
|
|
||||||
|
|
||||||
The "Library", below, refers to any such software library or work
|
|
||||||
which has been distributed under these terms. A "work based on the
|
|
||||||
Library" means either the Library or any derivative work under
|
|
||||||
copyright law: that is to say, a work containing the Library or a
|
|
||||||
portion of it, either verbatim or with modifications and/or translated
|
|
||||||
straightforwardly into another language. (Hereinafter, translation is
|
|
||||||
included without limitation in the term "modification".)
|
|
||||||
|
|
||||||
"Source code" for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For a library, complete source code means
|
|
||||||
all the source code for all modules it contains, plus any associated
|
|
||||||
interface definition files, plus the scripts used to control compilation
|
|
||||||
and installation of the library.
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running a program using the Library is not restricted, and output from
|
|
||||||
such a program is covered only if its contents constitute a work based
|
|
||||||
on the Library (independent of the use of the Library in a tool for
|
|
||||||
writing it). Whether that is true depends on what the Library does
|
|
||||||
and what the program that uses the Library does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Library's
|
|
||||||
complete source code as you receive it, in any medium, provided that
|
|
||||||
you conspicuously and appropriately publish on each copy an
|
|
||||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
|
||||||
all the notices that refer to this License and to the absence of any
|
|
||||||
warranty; and distribute a copy of this License along with the
|
|
||||||
Library.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy,
|
|
||||||
and you may at your option offer warranty protection in exchange for a
|
|
||||||
fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Library or any portion
|
|
||||||
of it, thus forming a work based on the Library, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The modified work must itself be a software library.
|
|
||||||
|
|
||||||
b) You must cause the files modified to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
c) You must cause the whole of the work to be licensed at no
|
|
||||||
charge to all third parties under the terms of this License.
|
|
||||||
|
|
||||||
d) If a facility in the modified Library refers to a function or a
|
|
||||||
table of data to be supplied by an application program that uses
|
|
||||||
the facility, other than as an argument passed when the facility
|
|
||||||
is invoked, then you must make a good faith effort to ensure that,
|
|
||||||
in the event an application does not supply such function or
|
|
||||||
table, the facility still operates, and performs whatever part of
|
|
||||||
its purpose remains meaningful.
|
|
||||||
|
|
||||||
(For example, a function in a library to compute square roots has
|
|
||||||
a purpose that is entirely well-defined independent of the
|
|
||||||
application. Therefore, Subsection 2d requires that any
|
|
||||||
application-supplied function or table used by this function must
|
|
||||||
be optional: if the application does not supply it, the square
|
|
||||||
root function must still compute square roots.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Library,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Library, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote
|
|
||||||
it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Library.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Library
|
|
||||||
with the Library (or with a work based on the Library) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
|
||||||
License instead of this License to a given copy of the Library. To do
|
|
||||||
this, you must alter all the notices that refer to this License, so
|
|
||||||
that they refer to the ordinary GNU General Public License, version 2,
|
|
||||||
instead of to this License. (If a newer version than version 2 of the
|
|
||||||
ordinary GNU General Public License has appeared, then you can specify
|
|
||||||
that version instead if you wish.) Do not make any other change in
|
|
||||||
these notices.
|
|
||||||
|
|
||||||
Once this change is made in a given copy, it is irreversible for
|
|
||||||
that copy, so the ordinary GNU General Public License applies to all
|
|
||||||
subsequent copies and derivative works made from that copy.
|
|
||||||
|
|
||||||
This option is useful when you wish to copy part of the code of
|
|
||||||
the Library into a program that is not a library.
|
|
||||||
|
|
||||||
4. You may copy and distribute the Library (or a portion or
|
|
||||||
derivative of it, under Section 2) in object code or executable form
|
|
||||||
under the terms of Sections 1 and 2 above provided that you accompany
|
|
||||||
it with the complete corresponding machine-readable source code, which
|
|
||||||
must be distributed under the terms of Sections 1 and 2 above on a
|
|
||||||
medium customarily used for software interchange.
|
|
||||||
|
|
||||||
If distribution of object code is made by offering access to copy
|
|
||||||
from a designated place, then offering equivalent access to copy the
|
|
||||||
source code from the same place satisfies the requirement to
|
|
||||||
distribute the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
5. A program that contains no derivative of any portion of the
|
|
||||||
Library, but is designed to work with the Library by being compiled or
|
|
||||||
linked with it, is called a "work that uses the Library". Such a
|
|
||||||
work, in isolation, is not a derivative work of the Library, and
|
|
||||||
therefore falls outside the scope of this License.
|
|
||||||
|
|
||||||
However, linking a "work that uses the Library" with the Library
|
|
||||||
creates an executable that is a derivative of the Library (because it
|
|
||||||
contains portions of the Library), rather than a "work that uses the
|
|
||||||
library". The executable is therefore covered by this License.
|
|
||||||
Section 6 states terms for distribution of such executables.
|
|
||||||
|
|
||||||
When a "work that uses the Library" uses material from a header file
|
|
||||||
that is part of the Library, the object code for the work may be a
|
|
||||||
derivative work of the Library even though the source code is not.
|
|
||||||
Whether this is true is especially significant if the work can be
|
|
||||||
linked without the Library, or if the work is itself a library. The
|
|
||||||
threshold for this to be true is not precisely defined by law.
|
|
||||||
|
|
||||||
If such an object file uses only numerical parameters, data
|
|
||||||
structure layouts and accessors, and small macros and small inline
|
|
||||||
functions (ten lines or less in length), then the use of the object
|
|
||||||
file is unrestricted, regardless of whether it is legally a derivative
|
|
||||||
work. (Executables containing this object code plus portions of the
|
|
||||||
Library will still fall under Section 6.)
|
|
||||||
|
|
||||||
Otherwise, if the work is a derivative of the Library, you may
|
|
||||||
distribute the object code for the work under the terms of Section 6.
|
|
||||||
Any executables containing that work also fall under Section 6,
|
|
||||||
whether or not they are linked directly with the Library itself.
|
|
||||||
|
|
||||||
6. As an exception to the Sections above, you may also combine or
|
|
||||||
link a "work that uses the Library" with the Library to produce a
|
|
||||||
work containing portions of the Library, and distribute that work
|
|
||||||
under terms of your choice, provided that the terms permit
|
|
||||||
modification of the work for the customer's own use and reverse
|
|
||||||
engineering for debugging such modifications.
|
|
||||||
|
|
||||||
You must give prominent notice with each copy of the work that the
|
|
||||||
Library is used in it and that the Library and its use are covered by
|
|
||||||
this License. You must supply a copy of this License. If the work
|
|
||||||
during execution displays copyright notices, you must include the
|
|
||||||
copyright notice for the Library among them, as well as a reference
|
|
||||||
directing the user to the copy of this License. Also, you must do one
|
|
||||||
of these things:
|
|
||||||
|
|
||||||
a) Accompany the work with the complete corresponding
|
|
||||||
machine-readable source code for the Library including whatever
|
|
||||||
changes were used in the work (which must be distributed under
|
|
||||||
Sections 1 and 2 above); and, if the work is an executable linked
|
|
||||||
with the Library, with the complete machine-readable "work that
|
|
||||||
uses the Library", as object code and/or source code, so that the
|
|
||||||
user can modify the Library and then relink to produce a modified
|
|
||||||
executable containing the modified Library. (It is understood
|
|
||||||
that the user who changes the contents of definitions files in the
|
|
||||||
Library will not necessarily be able to recompile the application
|
|
||||||
to use the modified definitions.)
|
|
||||||
|
|
||||||
b) Use a suitable shared library mechanism for linking with the
|
|
||||||
Library. A suitable mechanism is one that (1) uses at run time a
|
|
||||||
copy of the library already present on the user's computer system,
|
|
||||||
rather than copying library functions into the executable, and (2)
|
|
||||||
will operate properly with a modified version of the library, if
|
|
||||||
the user installs one, as long as the modified version is
|
|
||||||
interface-compatible with the version that the work was made with.
|
|
||||||
|
|
||||||
c) Accompany the work with a written offer, valid for at
|
|
||||||
least three years, to give the same user the materials
|
|
||||||
specified in Subsection 6a, above, for a charge no more
|
|
||||||
than the cost of performing this distribution.
|
|
||||||
|
|
||||||
d) If distribution of the work is made by offering access to copy
|
|
||||||
from a designated place, offer equivalent access to copy the above
|
|
||||||
specified materials from the same place.
|
|
||||||
|
|
||||||
e) Verify that the user has already received a copy of these
|
|
||||||
materials or that you have already sent this user a copy.
|
|
||||||
|
|
||||||
For an executable, the required form of the "work that uses the
|
|
||||||
Library" must include any data and utility programs needed for
|
|
||||||
reproducing the executable from it. However, as a special exception,
|
|
||||||
the materials to be distributed need not include anything that is
|
|
||||||
normally distributed (in either source or binary form) with the major
|
|
||||||
components (compiler, kernel, and so on) of the operating system on
|
|
||||||
which the executable runs, unless that component itself accompanies
|
|
||||||
the executable.
|
|
||||||
|
|
||||||
It may happen that this requirement contradicts the license
|
|
||||||
restrictions of other proprietary libraries that do not normally
|
|
||||||
accompany the operating system. Such a contradiction means you cannot
|
|
||||||
use both them and the Library together in an executable that you
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
7. You may place library facilities that are a work based on the
|
|
||||||
Library side-by-side in a single library together with other library
|
|
||||||
facilities not covered by this License, and distribute such a combined
|
|
||||||
library, provided that the separate distribution of the work based on
|
|
||||||
the Library and of the other library facilities is otherwise
|
|
||||||
permitted, and provided that you do these two things:
|
|
||||||
|
|
||||||
a) Accompany the combined library with a copy of the same work
|
|
||||||
based on the Library, uncombined with any other library
|
|
||||||
facilities. This must be distributed under the terms of the
|
|
||||||
Sections above.
|
|
||||||
|
|
||||||
b) Give prominent notice with the combined library of the fact
|
|
||||||
that part of it is a work based on the Library, and explaining
|
|
||||||
where to find the accompanying uncombined form of the same work.
|
|
||||||
|
|
||||||
8. You may not copy, modify, sublicense, link with, or distribute
|
|
||||||
the Library except as expressly provided under this License. Any
|
|
||||||
attempt otherwise to copy, modify, sublicense, link with, or
|
|
||||||
distribute the Library is void, and will automatically terminate your
|
|
||||||
rights under this License. However, parties who have received copies,
|
|
||||||
or rights, from you under this License will not have their licenses
|
|
||||||
terminated so long as such parties remain in full compliance.
|
|
||||||
|
|
||||||
9. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Library or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Library (or any work based on the
|
|
||||||
Library), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Library or works based on it.
|
|
||||||
|
|
||||||
10. Each time you redistribute the Library (or any work based on the
|
|
||||||
Library), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute, link with or modify the Library
|
|
||||||
subject to these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties with
|
|
||||||
this License.
|
|
||||||
|
|
||||||
11. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Library at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Library by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Library.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under any
|
|
||||||
particular circumstance, the balance of the section is intended to apply,
|
|
||||||
and the section as a whole is intended to apply in other circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
12. If the distribution and/or use of the Library is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Library under this License may add
|
|
||||||
an explicit geographical distribution limitation excluding those countries,
|
|
||||||
so that distribution is permitted only in or among countries not thus
|
|
||||||
excluded. In such case, this License incorporates the limitation as if
|
|
||||||
written in the body of this License.
|
|
||||||
|
|
||||||
13. The Free Software Foundation may publish revised and/or new
|
|
||||||
versions of the Lesser General Public License from time to time.
|
|
||||||
Such new versions will be similar in spirit to the present version,
|
|
||||||
but may differ in detail to address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Library
|
|
||||||
specifies a version number of this License which applies to it and
|
|
||||||
"any later version", you have the option of following the terms and
|
|
||||||
conditions either of that version or of any later version published by
|
|
||||||
the Free Software Foundation. If the Library does not specify a
|
|
||||||
license version number, you may choose any version ever published by
|
|
||||||
the Free Software Foundation.
|
|
||||||
|
|
||||||
14. If you wish to incorporate parts of the Library into other free
|
|
||||||
programs whose distribution conditions are incompatible with these,
|
|
||||||
write to the author to ask for permission. For software which is
|
|
||||||
copyrighted by the Free Software Foundation, write to the Free
|
|
||||||
Software Foundation; we sometimes make exceptions for this. Our
|
|
||||||
decision will be guided by the two goals of preserving the free status
|
|
||||||
of all derivatives of our free software and of promoting the sharing
|
|
||||||
and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
|
||||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
|
||||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
|
||||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
|
||||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
|
||||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
|
||||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
|
||||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
|
||||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
|
||||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
|
||||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
|
||||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
|
||||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
|
||||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
|
||||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
||||||
DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Libraries
|
|
||||||
|
|
||||||
If you develop a new library, and you want it to be of the greatest
|
|
||||||
possible use to the public, we recommend making it free software that
|
|
||||||
everyone can redistribute and change. You can do so by permitting
|
|
||||||
redistribution under these terms (or, alternatively, under the terms of the
|
|
||||||
ordinary General Public License).
|
|
||||||
|
|
||||||
To apply these terms, attach the following notices to the library. It is
|
|
||||||
safest to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least the
|
|
||||||
"copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the library's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
|
||||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1990
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
That's all there is to it!
|
|
||||||
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
musl as a whole is licensed under the GNU LGPL version 2.1 or later.
|
|
||||||
See the file COPYING for the text of this license.
|
|
||||||
|
|
||||||
See below for the copyright status on all code included in musl:
|
|
||||||
|
|
||||||
The TRE regular expression implementation (src/regex/reg* and
|
|
||||||
src/regex/tre*) is Copyright © 2001-2006 Ville Laurikari and licensed
|
|
||||||
under the terms of the GNU LGPL version 2.1 or later. The included
|
|
||||||
version was heavily modified in Spring 2006 by Rich Felker in the
|
|
||||||
interests of size, simplicity, and namespace cleanliness.
|
|
||||||
|
|
||||||
Most of the math library code (src/math/*) is Copyright © 1993 Sun
|
|
||||||
Microsystems, Inc. Some files are Copyright © 2003 Steven G. Kargl and
|
|
||||||
labelled as such. All have been licensed under extremely permissive
|
|
||||||
terms which are compatible with the GNU LGPL. See the comments in the
|
|
||||||
individual files for details.
|
|
||||||
|
|
||||||
The implementation of DES for crypt (src/misc/crypt.c) is Copyright ©
|
|
||||||
1994 David Burren. It is licensed under a BSD license compatible with
|
|
||||||
the GNU LGPL.
|
|
||||||
|
|
||||||
The x86_64 port was written by Nicholas J. Kain. See individual files
|
|
||||||
for their copyright status.
|
|
||||||
|
|
||||||
All files which have no copyright comments are original works
|
|
||||||
Copyright © 2005-2011 Rich Felker, the main author of this library.
|
|
||||||
The decision to exclude such comments is intentional, as it should be
|
|
||||||
possible to carry around the complete source code on tiny storage
|
|
||||||
media. All public header files (include/*) should be treated as Public
|
|
||||||
Domain as they intentionally contain no content which can be covered
|
|
||||||
by copyright. Some source modules may fall in this category as well.
|
|
||||||
If you believe that a file is so trivial that it should be in the
|
|
||||||
Public Domain, please contact me and, if I agree, I will explicitly
|
|
||||||
release it from copyright.
|
|
||||||
|
|
||||||
The following files are trivial, in my opinion not copyrightable in
|
|
||||||
the first place, and hereby explicitly released to the Public Domain:
|
|
||||||
|
|
||||||
All public headers: include/*
|
|
||||||
Startup files: crt/*
|
|
|
@ -1,58 +0,0 @@
|
||||||
|
|
||||||
A quick-and-simple guide to installing musl:
|
|
||||||
|
|
||||||
|
|
||||||
STEP 1: Configuration
|
|
||||||
|
|
||||||
Edit config.mak to override installation prefix, compiler options,
|
|
||||||
target architecture, etc. as needed. Currently supported archs are
|
|
||||||
i386 and x86_64. Otherwise, the defaults should be okay for trying out
|
|
||||||
musl with static linking only.
|
|
||||||
|
|
||||||
DO NOT set the prefix to /, /usr, or even /usr/local unless you really
|
|
||||||
know what you're doing! You'll probably break your system such that
|
|
||||||
you'll no longer be able to compile and link programs against glibc!
|
|
||||||
This kind of setup should only be used if you're building a system
|
|
||||||
where musl is the default/primary/only libc.
|
|
||||||
|
|
||||||
The default prefix is /usr/local/musl for a reason, but some people
|
|
||||||
may prefer /opt/musl or $HOME/musl.
|
|
||||||
|
|
||||||
|
|
||||||
STEP 2: Compiling
|
|
||||||
|
|
||||||
Run "make". (GNU make is required.)
|
|
||||||
|
|
||||||
|
|
||||||
STEP 3: Installation
|
|
||||||
|
|
||||||
With appropriate privileges, run "make install".
|
|
||||||
|
|
||||||
|
|
||||||
STEP 4: Using the gcc wrapper.
|
|
||||||
|
|
||||||
musl comes with a script "musl-gcc" (installed in /usr/local/bin by
|
|
||||||
default) that can be used to compile and link C programs against musl.
|
|
||||||
It requires a version of gcc with the -wrapper option (gcc 4.x should
|
|
||||||
work). For example:
|
|
||||||
|
|
||||||
cat > hello.c <<EOF
|
|
||||||
#include <stdio.h>
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
printf("hello, world!\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
musl-gcc hello.c
|
|
||||||
./a.out
|
|
||||||
|
|
||||||
For compiling programs that use autoconf, you'll need to configure
|
|
||||||
them with a command like this:
|
|
||||||
|
|
||||||
CC=musl-gcc ./configure
|
|
||||||
|
|
||||||
Be aware that (at present) libraries linked against glibc are unlikely
|
|
||||||
to be usable, and the musl-gcc wrapper inhibits search of the system
|
|
||||||
library paths in any case. You'll need to compile any prerequisite
|
|
||||||
libraries (like ncurses, glib, etc.) yourself.
|
|
|
@ -1,113 +0,0 @@
|
||||||
#
|
|
||||||
# Makefile for musl (requires GNU make)
|
|
||||||
#
|
|
||||||
# This is how simple every makefile should be...
|
|
||||||
# No, I take that back - actually most should be less than half this size.
|
|
||||||
#
|
|
||||||
# Use config.mak to override any of the following variables.
|
|
||||||
# Do not make changes here.
|
|
||||||
#
|
|
||||||
|
|
||||||
CC = ../tcc-0.9.27/tcc
|
|
||||||
exec_prefix = ../musl-bootstrap-final
|
|
||||||
bindir = $(exec_prefix)/bin
|
|
||||||
|
|
||||||
prefix = /usr/local/musl-bootstrap
|
|
||||||
includedir = $(prefix)/include
|
|
||||||
libdir = $(prefix)/lib
|
|
||||||
|
|
||||||
SRCS = $(sort $(wildcard src/*/*.c))
|
|
||||||
OBJS = $(SRCS:.c=.o) src/alloca86_64-bt.o src/alloca86_64.o src/libtcc1.o src/va_list.o src/syscall.o
|
|
||||||
LOBJS = $(OBJS:.o=.lo)
|
|
||||||
GENH = include/bits/alltypes.h
|
|
||||||
|
|
||||||
CFLAGS = -Os -nostdinc -ffreestanding -std=c99 -D_XOPEN_SOURCE=700 -pipe
|
|
||||||
LDFLAGS = -nostdlib -shared -Wl,-Bsymbolic
|
|
||||||
INC = -I./include -I./src/internal -I./arch/$(ARCH)
|
|
||||||
PIC = -fPIC
|
|
||||||
AR = $(CC) -ar
|
|
||||||
RANLIB =
|
|
||||||
OBJCOPY =
|
|
||||||
|
|
||||||
ALL_INCLUDES = $(sort $(wildcard include/*.h include/*/*.h) $(GENH))
|
|
||||||
|
|
||||||
EMPTY_LIB_NAMES = m rt pthread crypt util xnet resolv
|
|
||||||
EMPTY_LIBS = $(EMPTY_LIB_NAMES:%=lib/lib%.a)
|
|
||||||
CRT_LIBS = lib/crt1.o lib/crti.o lib/crtn.o
|
|
||||||
LIBC_LIBS = lib/libc.a
|
|
||||||
ALL_LIBS = $(LIBC_LIBS) $(CRT_LIBS)
|
|
||||||
|
|
||||||
ALL_TOOLS = tools/musl-gcc
|
|
||||||
|
|
||||||
-include config.mak
|
|
||||||
|
|
||||||
all: $(ALL_LIBS) $(ALL_TOOLS)
|
|
||||||
|
|
||||||
install: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(ALL_INCLUDES:include/%=$(DESTDIR)$(includedir)/%) $(ALL_TOOLS:tools/%=$(DESTDIR)$(bindir)/%)
|
|
||||||
|
|
||||||
src/syscall.o: src/syscall.s
|
|
||||||
$(CC) -c -o $@ $<
|
|
||||||
src/%.o: ../tcc-0.9.27/lib/%.o
|
|
||||||
cp $< $@
|
|
||||||
clean:
|
|
||||||
rm -f crt/*.o
|
|
||||||
rm -f $(OBJS)
|
|
||||||
rm -f $(LOBJS)
|
|
||||||
rm -f $(ALL_LIBS) lib/*.[ao] lib/*.so
|
|
||||||
rm -f $(ALL_TOOLS)
|
|
||||||
rm -f $(GENH)
|
|
||||||
rm -f include/bits
|
|
||||||
|
|
||||||
include/bits:
|
|
||||||
@test "$(ARCH)" || { echo "Please set ARCH in config.mak before running make." ; exit 1 ; }
|
|
||||||
ln -sf ../arch/$(ARCH)/bits $@
|
|
||||||
|
|
||||||
include/bits/alltypes.h.sh: include/bits
|
|
||||||
|
|
||||||
include/bits/alltypes.h: include/bits/alltypes.h.sh
|
|
||||||
sh $< > $@
|
|
||||||
|
|
||||||
%.o: $(ARCH)/%.s
|
|
||||||
$(CC) $(CFLAGS) $(INC) -c -o $@ $<
|
|
||||||
|
|
||||||
%.o: $(ARCH)/%.s
|
|
||||||
$(CC) $(CFLAGS) $(INC) -c -o $@ $<
|
|
||||||
|
|
||||||
%.o: %.c $(GENH)
|
|
||||||
$(CC) $(CFLAGS) $(INC) -c -o $@ $<
|
|
||||||
|
|
||||||
%.lo: $(ARCH)/%.s
|
|
||||||
$(CC) $(CFLAGS) $(INC) $(PIC) -c -o $@ $<
|
|
||||||
|
|
||||||
%.lo: %.c $(GENH)
|
|
||||||
$(CC) $(CFLAGS) $(INC) $(PIC) -c -o $@ $<
|
|
||||||
|
|
||||||
lib/libc.so: $(LOBJS)
|
|
||||||
$(CC) $(LDFLAGS) -o $@ $(LOBJS) -lgcc
|
|
||||||
$(OBJCOPY) --weaken $@
|
|
||||||
|
|
||||||
lib/libc.a: $(OBJS)
|
|
||||||
mkdir -p lib
|
|
||||||
$(AR) rc $@ $(OBJS)
|
|
||||||
# $(RANLIB) $@
|
|
||||||
|
|
||||||
$(EMPTY_LIBS):
|
|
||||||
rm -f $@
|
|
||||||
$(AR) rc $@
|
|
||||||
|
|
||||||
lib/%.o: crt/%.o
|
|
||||||
cp $< $@
|
|
||||||
|
|
||||||
tools/musl-gcc: tools/gen-musl-gcc.sh config.mak
|
|
||||||
sh $< "$(prefix)" > $@ || { rm -f $@ ; exit 1 ; }
|
|
||||||
chmod +x $@
|
|
||||||
|
|
||||||
$(DESTDIR)$(bindir)/%: tools/%
|
|
||||||
install -D $< $@
|
|
||||||
|
|
||||||
$(DESTDIR)$(prefix)/%: %
|
|
||||||
install -D -m 644 $< $@
|
|
||||||
|
|
||||||
.PRECIOUS: $(CRT_LIBS:lib/%=crt/%)
|
|
||||||
|
|
||||||
.PHONY: all clean install
|
|
|
@ -1,44 +0,0 @@
|
||||||
|
|
||||||
musl libc - a new standard library to power a new generation of
|
|
||||||
Linux-based devices. musl is lightweight, fast, simple, free, and
|
|
||||||
strives to be correct in the sense of standards-conformance and
|
|
||||||
safety.
|
|
||||||
|
|
||||||
musl is an alternative to glibc, eglibc, uClibc, dietlibc, and klibc.
|
|
||||||
For reasons why one might prefer musl, please see the FAQ and libc
|
|
||||||
comparison chart on the project website,
|
|
||||||
|
|
||||||
http://www.etalabs.net/musl/
|
|
||||||
|
|
||||||
For installation instructions, see the INSTALL file.
|
|
||||||
|
|
||||||
Please refer to the COPYRIGHT file for details on the copyright status
|
|
||||||
of code included in musl, and the COPYING file for the license (LGPL)
|
|
||||||
under which the library as a whole is distributed.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Greetings libc hackers!
|
|
||||||
|
|
||||||
This package is an _alpha_ release of musl, intended for the curious
|
|
||||||
and the adventurous. While it can be used to build a complete small
|
|
||||||
Linux system (musl is self-hosted on the system I use to develop it),
|
|
||||||
at this point doing so requires a lot of manual effort. Nonetheless, I
|
|
||||||
hope low-level Linux enthusiasts will try out building some compact
|
|
||||||
static binaries with musl using the provided gcc wrapper (which allows
|
|
||||||
you to link programs with musl on a "standard" glibc Linux system),
|
|
||||||
find whatever embarassing bugs I've let slip through, and provide
|
|
||||||
feedback on issues encountered building various software against musl.
|
|
||||||
|
|
||||||
Please visit #musl on Freenode IRC or contact me via email at dalias
|
|
||||||
AT etalabs DOT net for bug reports, support requests, or to get
|
|
||||||
involved in development. As this has been a one-person project so far,
|
|
||||||
mailing lists will be setup in due time on an as-needed basis.
|
|
||||||
|
|
||||||
Thank you for trying out musl.
|
|
||||||
|
|
||||||
Cheers,
|
|
||||||
|
|
||||||
Rich Felker / dalias
|
|
||||||
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
0.5.0 - initial release
|
|
||||||
|
|
||||||
0.5.9 - signal ABI bugfix, various cleanup and fixes:
|
|
||||||
|
|
||||||
sigset_t was wrongly defined as 1024 bytes instead of 1024 bits,
|
|
||||||
breaking the intended ABI compatibility with the LSB/glibc sigaction
|
|
||||||
structure. users should upgrade immediately and rebuild any libraries
|
|
||||||
or object files that might be using the incorrect definitions.
|
|
||||||
|
|
||||||
improved security against DoS with tcb shadow passwords by checking
|
|
||||||
that the file opened was really an ordinary file.
|
|
||||||
|
|
||||||
fixed a bug in the implementation of atomic ops that could have
|
|
||||||
allowed the compiler to incorrectly reorder them (in practice, gcc
|
|
||||||
with the default settings on i386 was not reordering them).
|
|
||||||
|
|
||||||
greatly improved conformance to the C and POSIX standards regarding
|
|
||||||
what the standard header files make visible. _POSIX_C_SOURCE is now
|
|
||||||
needed to get POSIX functions in standard C headers, and _XOPEN_SOURCE
|
|
||||||
or _GNU_SOURCE are required to get XSI interfaces or GNU extensions,
|
|
||||||
respectively.
|
|
||||||
|
|
||||||
many internal improvements have been made to the syscall-related code
|
|
||||||
in preparation for porting to x86_64 and other archs.
|
|
||||||
|
|
||||||
0.6.0 - x86_64 port, various important bugs fixed
|
|
||||||
|
|
||||||
new x86_64 (amd64) architecture port, contributed by Nicholas J. Kain,
|
|
||||||
along with PORTING guide. source tree layout and build system have
|
|
||||||
been improved to accommodate further ports.
|
|
||||||
|
|
||||||
various bugs that were introduced while making the headers respect C
|
|
||||||
and POSIX namespace standards have been fixed. conformance to the
|
|
||||||
standards has been improved.
|
|
||||||
|
|
||||||
fixed an inefficiency in qsort that triggered a bug (occasionaly
|
|
||||||
internal compiler error) in some versions of gcc.
|
|
||||||
|
|
||||||
fixed a major bug in the printf %n specifier that prevented it from
|
|
||||||
working and caused memory corruption.
|
|
|
@ -1,110 +0,0 @@
|
||||||
#ifndef _INTERNAA_ATOMIC_H
|
|
||||||
#define _INTERNAA_ATOMIC_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
static inline int a_ctz_64(uint64_t x)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
__asm__( "bsf %1,%0 ; jnz 1f ; bsf %2,%0 ; addl $32,%0\n1:"
|
|
||||||
: "=r"(r) : "r"((unsigned)x), "r"((unsigned)(x>>32)) );
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; andl %1, (%0) ; lock ; andl %2, 4(%0)"
|
|
||||||
: : "r"((long *)p), "r"((unsigned)v), "r"((unsigned)(v>>32)) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_or_64(volatile uint64_t *p, uint64_t v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; orl %1, (%0) ; lock ; orl %2, 4(%0)"
|
|
||||||
: : "r"((long *)p), "r"((unsigned)v), "r"((unsigned)(v>>32)) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_store_l(volatile void *p, long x)
|
|
||||||
{
|
|
||||||
__asm__( "movl %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_or_l(volatile void *p, long v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; orl %1, %0"
|
|
||||||
: "=m"(*(long *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void *a_cas_p(volatile void *p, void *t, void *s)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; cmpxchg %3, %1"
|
|
||||||
: "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" );
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long a_cas_l(volatile void *p, long t, long s)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; cmpxchg %3, %1"
|
|
||||||
: "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" );
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void *a_swap_p(void *volatile *x, void *v)
|
|
||||||
{
|
|
||||||
__asm__( "xchg %0, %1" : "=r"(v), "=m"(*(void **)x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
static inline long a_swap_l(volatile void *x, long v)
|
|
||||||
{
|
|
||||||
__asm__( "xchg %0, %1" : "=r"(v), "=m"(*(long *)x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_or(volatile void *p, int v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; orl %1, %0"
|
|
||||||
: "=m"(*(int *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_and(volatile void *p, int v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; andl %1, %0"
|
|
||||||
: "=m"(*(int *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int a_swap(volatile int *x, int v)
|
|
||||||
{
|
|
||||||
__asm__( "xchg %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define a_xchg a_swap
|
|
||||||
|
|
||||||
static inline int a_fetch_add(volatile int *x, int v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; xadd %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_inc(volatile int *x)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; incl %0" : "=m"(*x) : "m"(*x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_dec(volatile int *x)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; decl %0" : "=m"(*x) : "m"(*x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_store(volatile int *p, int x)
|
|
||||||
{
|
|
||||||
__asm__( "movl %1, %0" : "=m"(*p) : "r"(x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_spin()
|
|
||||||
{
|
|
||||||
__asm__ __volatile__( "pause" : : : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,131 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
sed -e << EOF \
|
|
||||||
'/^TYPEDEF/s/TYPEDEF \(.*\) \([^ ]*\);$/#if defined(__NEED_\2) \&\& !defined(__DEFINED_\2)\
|
|
||||||
typedef \1 \2;\
|
|
||||||
#define __DEFINED_\2\
|
|
||||||
#endif\
|
|
||||||
/
|
|
||||||
/^STRUCT/s/STRUCT * \([^ ]*\) \(.*\);$/#if defined(__NEED_struct_\1) \&\& !defined(__DEFINED_struct_\1)\
|
|
||||||
struct \1 \2;\
|
|
||||||
#define __DEFINED_struct_\1\
|
|
||||||
#endif\
|
|
||||||
/
|
|
||||||
/^UNION/s/UNION * \([^ ]*\) \(.*\);$/#if defined(__NEED_union_\1) \&\& !defined(__DEFINED_union_\1)\
|
|
||||||
union \1 \2;\
|
|
||||||
#define __DEFINED_union_\1\
|
|
||||||
#endif\
|
|
||||||
/'
|
|
||||||
|
|
||||||
TYPEDEF unsigned size_t;
|
|
||||||
TYPEDEF int ssize_t;
|
|
||||||
TYPEDEF long ptrdiff_t;
|
|
||||||
TYPEDEF struct __va_list * va_list;
|
|
||||||
|
|
||||||
TYPEDEF long wchar_t;
|
|
||||||
TYPEDEF long wint_t;
|
|
||||||
TYPEDEF long wctrans_t;
|
|
||||||
TYPEDEF long wctype_t;
|
|
||||||
|
|
||||||
TYPEDEF char int8_t;
|
|
||||||
TYPEDEF short int16_t;
|
|
||||||
TYPEDEF int int32_t;
|
|
||||||
TYPEDEF long long int64_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned char uint8_t;
|
|
||||||
TYPEDEF unsigned short uint16_t;
|
|
||||||
TYPEDEF unsigned int uint32_t;
|
|
||||||
TYPEDEF unsigned long long uint64_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned char __uint8_t;
|
|
||||||
TYPEDEF unsigned short __uint16_t;
|
|
||||||
TYPEDEF unsigned int __uint32_t;
|
|
||||||
TYPEDEF unsigned long long __uint64_t;
|
|
||||||
|
|
||||||
TYPEDEF int8_t int_least8_t;
|
|
||||||
TYPEDEF int16_t int_least16_t;
|
|
||||||
TYPEDEF int32_t int_least32_t;
|
|
||||||
TYPEDEF int64_t int_least64_t;
|
|
||||||
|
|
||||||
TYPEDEF uint8_t uint_least8_t;
|
|
||||||
TYPEDEF uint16_t uint_least16_t;
|
|
||||||
TYPEDEF uint32_t uint_least32_t;
|
|
||||||
TYPEDEF uint64_t uint_least64_t;
|
|
||||||
|
|
||||||
TYPEDEF int8_t int_fast8_t;
|
|
||||||
TYPEDEF int int_fast16_t;
|
|
||||||
TYPEDEF int int_fast32_t;
|
|
||||||
TYPEDEF int64_t int_fast64_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned char uint_fast8_t;
|
|
||||||
TYPEDEF unsigned int uint_fast16_t;
|
|
||||||
TYPEDEF unsigned int uint_fast32_t;
|
|
||||||
TYPEDEF uint64_t uint_fast64_t;
|
|
||||||
|
|
||||||
TYPEDEF long intptr_t;
|
|
||||||
TYPEDEF unsigned long uintptr_t;
|
|
||||||
|
|
||||||
TYPEDEF long long intmax_t;
|
|
||||||
TYPEDEF unsigned long long uintmax_t;
|
|
||||||
|
|
||||||
TYPEDEF long time_t;
|
|
||||||
TYPEDEF unsigned useconds_t;
|
|
||||||
TYPEDEF int suseconds_t;
|
|
||||||
STRUCT timeval { time_t tv_sec; int tv_usec; };
|
|
||||||
STRUCT timespec { time_t tv_sec; long tv_nsec; };
|
|
||||||
|
|
||||||
TYPEDEF int pid_t;
|
|
||||||
TYPEDEF int id_t;
|
|
||||||
TYPEDEF int uid_t;
|
|
||||||
TYPEDEF int gid_t;
|
|
||||||
TYPEDEF int key_t;
|
|
||||||
|
|
||||||
TYPEDEF struct __pthread * pthread_t;
|
|
||||||
TYPEDEF int pthread_once_t;
|
|
||||||
TYPEDEF int pthread_key_t;
|
|
||||||
TYPEDEF int pthread_spinlock_t;
|
|
||||||
|
|
||||||
TYPEDEF struct { union { int __i[9]; size_t __s[2]; } __u; } pthread_attr_t;
|
|
||||||
TYPEDEF unsigned pthread_mutexattr_t;
|
|
||||||
TYPEDEF unsigned pthread_condattr_t;
|
|
||||||
TYPEDEF unsigned pthread_barrierattr_t;
|
|
||||||
TYPEDEF struct { unsigned __attr[2]; } pthread_rwlockattr_t;
|
|
||||||
|
|
||||||
TYPEDEF struct { union { int __i[6]; void *__p[1]; } __u; } pthread_mutex_t;
|
|
||||||
TYPEDEF struct { union { int __i[12]; void *__p[1]; } __u; } pthread_cond_t;
|
|
||||||
TYPEDEF struct { union { int __i[8]; void *__p[1]; } __u; } pthread_rwlock_t;
|
|
||||||
TYPEDEF struct { union { int __i[5]; void *__p[1]; } __u; } pthread_barrier_t;
|
|
||||||
|
|
||||||
TYPEDEF long long off_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned int mode_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned int nlink_t;
|
|
||||||
TYPEDEF unsigned long long ino_t;
|
|
||||||
TYPEDEF long long dev_t;
|
|
||||||
TYPEDEF long blksize_t;
|
|
||||||
TYPEDEF long long blkcnt_t;
|
|
||||||
TYPEDEF unsigned long long fsblkcnt_t;
|
|
||||||
TYPEDEF unsigned long long fsfilcnt_t;
|
|
||||||
|
|
||||||
TYPEDEF void * timer_t;
|
|
||||||
TYPEDEF int clockid_t;
|
|
||||||
TYPEDEF unsigned long clock_t;
|
|
||||||
|
|
||||||
TYPEDEF struct { unsigned long __bits[128/sizeof(long)]; } sigset_t;
|
|
||||||
TYPEDEF struct __siginfo siginfo_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned int socklen_t;
|
|
||||||
TYPEDEF unsigned short sa_family_t;
|
|
||||||
TYPEDEF unsigned short in_port_t;
|
|
||||||
TYPEDEF unsigned int in_addr_t;
|
|
||||||
STRUCT in_addr { in_addr_t s_addr; };
|
|
||||||
|
|
||||||
TYPEDEF struct __FILE_s FILE;
|
|
||||||
|
|
||||||
TYPEDEF int nl_item;
|
|
||||||
|
|
||||||
TYPEDEF struct __locale * locale_t;
|
|
||||||
|
|
||||||
STRUCT iovec { void *iov_base; size_t iov_len; };
|
|
||||||
|
|
||||||
EOF
|
|
|
@ -1 +0,0 @@
|
||||||
#define __BYTE_ORDER __LITTLE_ENDIAN
|
|
|
@ -1,132 +0,0 @@
|
||||||
#define EPERM 1
|
|
||||||
#define ENOENT 2
|
|
||||||
#define ESRCH 3
|
|
||||||
#define EINTR 4
|
|
||||||
#define EIO 5
|
|
||||||
#define ENXIO 6
|
|
||||||
#define E2BIG 7
|
|
||||||
#define ENOEXEC 8
|
|
||||||
#define EBADF 9
|
|
||||||
#define ECHILD 10
|
|
||||||
#define EAGAIN 11
|
|
||||||
#define ENOMEM 12
|
|
||||||
#define EACCES 13
|
|
||||||
#define EFAULT 14
|
|
||||||
#define ENOTBLK 15
|
|
||||||
#define EBUSY 16
|
|
||||||
#define EEXIST 17
|
|
||||||
#define EXDEV 18
|
|
||||||
#define ENODEV 19
|
|
||||||
#define ENOTDIR 20
|
|
||||||
#define EISDIR 21
|
|
||||||
#define EINVAL 22
|
|
||||||
#define ENFILE 23
|
|
||||||
#define EMFILE 24
|
|
||||||
#define ENOTTY 25
|
|
||||||
#define ETXTBSY 26
|
|
||||||
#define EFBIG 27
|
|
||||||
#define ENOSPC 28
|
|
||||||
#define ESPIPE 29
|
|
||||||
#define EROFS 30
|
|
||||||
#define EMLINK 31
|
|
||||||
#define EPIPE 32
|
|
||||||
#define EDOM 33
|
|
||||||
#define ERANGE 34
|
|
||||||
#define EDEADLK 35
|
|
||||||
#define ENAMETOOLONG 36
|
|
||||||
#define ENOLCK 37
|
|
||||||
#define ENOSYS 38
|
|
||||||
#define ENOTEMPTY 39
|
|
||||||
#define ELOOP 40
|
|
||||||
#define EWOULDBLOCK EAGAIN
|
|
||||||
#define ENOMSG 42
|
|
||||||
#define EIDRM 43
|
|
||||||
#define ECHRNG 44
|
|
||||||
#define EL2NSYNC 45
|
|
||||||
#define EL3HLT 46
|
|
||||||
#define EL3RST 47
|
|
||||||
#define ELNRNG 48
|
|
||||||
#define EUNATCH 49
|
|
||||||
#define ENOCSI 50
|
|
||||||
#define EL2HLT 51
|
|
||||||
#define EBADE 52
|
|
||||||
#define EBADR 53
|
|
||||||
#define EXFULL 54
|
|
||||||
#define ENOANO 55
|
|
||||||
#define EBADRQC 56
|
|
||||||
#define EBADSLT 57
|
|
||||||
#define EDEADLOCK EDEADLK
|
|
||||||
#define EBFONT 59
|
|
||||||
#define ENOSTR 60
|
|
||||||
#define ENODATA 61
|
|
||||||
#define ETIME 62
|
|
||||||
#define ENOSR 63
|
|
||||||
#define ENONET 64
|
|
||||||
#define ENOPKG 65
|
|
||||||
#define EREMOTE 66
|
|
||||||
#define ENOLINK 67
|
|
||||||
#define EADV 68
|
|
||||||
#define ESRMNT 69
|
|
||||||
#define ECOMM 70
|
|
||||||
#define EPROTO 71
|
|
||||||
#define EMULTIHOP 72
|
|
||||||
#define EDOTDOT 73
|
|
||||||
#define EBADMSG 74
|
|
||||||
#define EOVERFLOW 75
|
|
||||||
#define ENOTUNIQ 76
|
|
||||||
#define EBADFD 77
|
|
||||||
#define EREMCHG 78
|
|
||||||
#define ELIBACC 79
|
|
||||||
#define ELIBBAD 80
|
|
||||||
#define ELIBSCN 81
|
|
||||||
#define ELIBMAX 82
|
|
||||||
#define ELIBEXEC 83
|
|
||||||
#define EILSEQ 84
|
|
||||||
#define ERESTART 85
|
|
||||||
#define ESTRPIPE 86
|
|
||||||
#define EUSERS 87
|
|
||||||
#define ENOTSOCK 88
|
|
||||||
#define EDESTADDRREQ 89
|
|
||||||
#define EMSGSIZE 90
|
|
||||||
#define EPROTOTYPE 91
|
|
||||||
#define ENOPROTOOPT 92
|
|
||||||
#define EPROTONOSUPPORT 93
|
|
||||||
#define ESOCKTNOSUPPORT 94
|
|
||||||
#define EOPNOTSUPP 95
|
|
||||||
#define EPFNOSUPPORT 96
|
|
||||||
#define EAFNOSUPPORT 97
|
|
||||||
#define EADDRINUSE 98
|
|
||||||
#define EADDRNOTAVAIL 99
|
|
||||||
#define ENETDOWN 100
|
|
||||||
#define ENETUNREACH 101
|
|
||||||
#define ENETRESET 102
|
|
||||||
#define ECONNABORTED 103
|
|
||||||
#define ECONNRESET 104
|
|
||||||
#define ENOBUFS 105
|
|
||||||
#define EISCONN 106
|
|
||||||
#define ENOTCONN 107
|
|
||||||
#define ESHUTDOWN 108
|
|
||||||
#define ETOOMANYREFS 109
|
|
||||||
#define ETIMEDOUT 110
|
|
||||||
#define ECONNREFUSED 111
|
|
||||||
#define EHOSTDOWN 112
|
|
||||||
#define EHOSTUNREACH 113
|
|
||||||
#define EALREADY 114
|
|
||||||
#define EINPROGRESS 115
|
|
||||||
#define ESTALE 116
|
|
||||||
#define EUCLEAN 117
|
|
||||||
#define ENOTNAM 118
|
|
||||||
#define ENAVAIL 119
|
|
||||||
#define EISNAM 120
|
|
||||||
#define EREMOTEIO 121
|
|
||||||
#define EDQUOT 122
|
|
||||||
#define ENOMEDIUM 123
|
|
||||||
#define EMEDIUMTYPE 124
|
|
||||||
#define ECANCELED 125
|
|
||||||
#define ENOKEY 126
|
|
||||||
#define EKEYEXPIRED 127
|
|
||||||
#define EKEYREVOKED 128
|
|
||||||
#define EKEYREJECTED 129
|
|
||||||
#define EOWNERDEAD 130
|
|
||||||
#define ENOTRECOVERABLE 131
|
|
||||||
#define ERFKILL 132
|
|
|
@ -1,60 +0,0 @@
|
||||||
#define O_ACCMODE 03
|
|
||||||
#define O_RDONLY 00
|
|
||||||
#define O_WRONLY 01
|
|
||||||
#define O_RDWR 02
|
|
||||||
|
|
||||||
#define O_CREAT 0100
|
|
||||||
#define O_EXCL 0200
|
|
||||||
#define O_NOCTTY 0400
|
|
||||||
#define O_TRUNC 01000
|
|
||||||
#define O_APPEND 02000
|
|
||||||
#define O_NONBLOCK 04000
|
|
||||||
#define O_SYNC 010000
|
|
||||||
#define O_DIRECTORY 0200000
|
|
||||||
#define O_NOFOLLOW 0400000
|
|
||||||
#define O_CLOEXEC 02000000
|
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
|
||||||
#define O_NDELAY O_NONBLOCK
|
|
||||||
#define O_ASYNC 020000
|
|
||||||
#define O_DIRECT 040000
|
|
||||||
#define O_NOATIME 01000000
|
|
||||||
#define F_DUPFD_CLOEXEC 1030
|
|
||||||
#define FAPPENT O_APPEND
|
|
||||||
#define FFSYNC O_FSYNC
|
|
||||||
#define FASYNC O_ASYNC
|
|
||||||
#define FNONBLOCK O_NONBLOCK
|
|
||||||
#define FNDELAY O_NDELAY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define F_DUPFD 0
|
|
||||||
#define F_GETFD 1
|
|
||||||
#define F_SETFD 2
|
|
||||||
#define F_GETFL 3
|
|
||||||
#define F_SETFL 4
|
|
||||||
|
|
||||||
#define F_SETOWN 8
|
|
||||||
#define F_GETOWN 9
|
|
||||||
|
|
||||||
#define F_GETLK 12
|
|
||||||
#define F_SETLK 13
|
|
||||||
#define F_SETLKW 14
|
|
||||||
|
|
||||||
#define FD_CLOEXEC 1
|
|
||||||
|
|
||||||
#define F_RDLCK 0
|
|
||||||
#define F_WRLCK 1
|
|
||||||
#define F_UNLCK 2
|
|
||||||
|
|
||||||
#define AT_FDCWD (-100)
|
|
||||||
#define AT_SYMLINK_NOFOLLOW 0x100
|
|
||||||
#define AT_REMOVEDIR 0x200
|
|
||||||
#define AT_SYMLINK_FOLLOW 0x400
|
|
||||||
#define AT_EACCESS 0x200
|
|
||||||
|
|
||||||
#define POSIX_FADV_NORMAL 0
|
|
||||||
#define POSIX_FADV_RANDOM 1
|
|
||||||
#define POSIX_FADV_SEQUENTIAL 2
|
|
||||||
#define POSIX_FADV_WILLNEED 3
|
|
||||||
#define POSIX_FADV_DONTNEED 4
|
|
||||||
#define POSIX_FADV_NOREUSE 5
|
|
|
@ -1,34 +0,0 @@
|
||||||
#define FE_INVALID 1
|
|
||||||
#define __FE_DENORM 2
|
|
||||||
#define FE_DIVBYZERO 4
|
|
||||||
#define FE_OVERFLOW 8
|
|
||||||
#define FE_UNDERFLOW 16
|
|
||||||
#define FE_INEXACT 32
|
|
||||||
|
|
||||||
#define FE_ALL_EXCEPT 63
|
|
||||||
|
|
||||||
#define FE_TONEAREST 0
|
|
||||||
#define FE_DOWNWARD 0x400
|
|
||||||
#define FE_UPWARD 0x800
|
|
||||||
#define FE_TOWARDZERO 0xc00
|
|
||||||
|
|
||||||
typedef unsigned short fexcept_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned short __control_word;
|
|
||||||
unsigned short __unused1;
|
|
||||||
unsigned short __status_word;
|
|
||||||
unsigned short __unused2;
|
|
||||||
unsigned short __tags;
|
|
||||||
unsigned short __unused3;
|
|
||||||
unsigned int __eip;
|
|
||||||
unsigned short __cs_selector;
|
|
||||||
unsigned int __opcode:11;
|
|
||||||
unsigned int __unused4:5;
|
|
||||||
unsigned int __data_offset;
|
|
||||||
unsigned short __data_selector;
|
|
||||||
unsigned short __unused5;
|
|
||||||
unsigned int __mxcsr;
|
|
||||||
} fenv_t;
|
|
||||||
|
|
||||||
#define FE_DFL_ENV ((const fenv_t *) -1)
|
|
|
@ -1,11 +0,0 @@
|
||||||
#define LDBL_MIN 3.3621031431120935063e-4932L
|
|
||||||
#define LDBL_MAX 1.1897314953572317650e+4932L
|
|
||||||
#define LDBL_EPSILON 1.0842021724855044340e-19L
|
|
||||||
|
|
||||||
#define LDBL_MANT_DIG 64
|
|
||||||
#define LDBL_MIN_EXP (-16381)
|
|
||||||
#define LDBL_MAX_EXP 16384
|
|
||||||
|
|
||||||
#define LDBL_DIG 18
|
|
||||||
#define LDBL_MIN_10_EXP (-4931)
|
|
||||||
#define LDBL_MAX_10_EXP 4932
|
|
|
@ -1,133 +0,0 @@
|
||||||
#define IP_TOS 1
|
|
||||||
#define IP_TTL 2
|
|
||||||
#define IP_HDRINCL 3
|
|
||||||
#define IP_OPTIONS 4
|
|
||||||
#define IP_ROUTER_ALERT 5
|
|
||||||
#define IP_RECVOPTS 6
|
|
||||||
#define IP_RETOPTS 7
|
|
||||||
//#define IP_PKTINFO 8
|
|
||||||
#define IP_PKTOPTIONS 9
|
|
||||||
#define IP_PMTUDISC 10
|
|
||||||
#define IP_MTU_DISCOVER 10
|
|
||||||
#define IP_RECVERR 11
|
|
||||||
#define IP_RECVTTL 12
|
|
||||||
#define IP_RECVTOS 13
|
|
||||||
#define IP_MTU 14
|
|
||||||
#define IP_FREEBIND 15
|
|
||||||
#define IP_IPSEC_POLICY 16
|
|
||||||
#define IP_XFRM_POLICY 17
|
|
||||||
#define IP_PASSSEC 18
|
|
||||||
#define IP_TRANSPARENT 19
|
|
||||||
#define IP_ORIGDSTADDR 20
|
|
||||||
#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
|
|
||||||
#define IP_MINTTL 21
|
|
||||||
#define IP_MULTICAST_IF 32
|
|
||||||
#define IP_MULTICAST_TTL 33
|
|
||||||
#define IP_MULTICAST_LOOP 34
|
|
||||||
#define IP_ADD_MEMBERSHIP 35
|
|
||||||
#define IP_DROP_MEMBERSHIP 36
|
|
||||||
#define IP_UNBLOCK_SOURCE 37
|
|
||||||
#define IP_BLOCK_SOURCE 38
|
|
||||||
#define IP_ADD_SOURCE_MEMBERSHIP 39
|
|
||||||
#define IP_DROP_SOURCE_MEMBERSHIP 40
|
|
||||||
#define IP_MSFILTER 41
|
|
||||||
|
|
||||||
#define IP_RECVRETOPTS IP_RETOPTS
|
|
||||||
|
|
||||||
#define IP_PMTUDISC_DONT 0
|
|
||||||
#define IP_PMTUDISC_WANT 1
|
|
||||||
#define IP_PMTUDISC_DO 2
|
|
||||||
#define IP_PMTUDISC_PROBE 3
|
|
||||||
|
|
||||||
#define SOL_IP 0
|
|
||||||
|
|
||||||
#define IP_DEFAULT_MULTICAST_TTL 1
|
|
||||||
#define IP_DEFAULT_MULTICAST_LOOP 1
|
|
||||||
#define IP_MAX_MEMBERSHIPS 20
|
|
||||||
|
|
||||||
struct ip_opts
|
|
||||||
{
|
|
||||||
struct in_addr ip_dst;
|
|
||||||
char ip_opts[40];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ip_mreq
|
|
||||||
{
|
|
||||||
struct in_addr imr_multiaddr;
|
|
||||||
struct in_addr imr_interface;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ip_mreqn
|
|
||||||
{
|
|
||||||
struct in_addr imr_multiaddr;
|
|
||||||
struct in_addr imr_address;
|
|
||||||
int imr_ifindex;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct in_pktinfo
|
|
||||||
{
|
|
||||||
int ipi_ifindex;
|
|
||||||
struct in_addr ipi_spec_dst;
|
|
||||||
struct in_addr ipi_addr;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define IPV6_ADDRFORM 1
|
|
||||||
#define IPV6_2292PKTINFO 2
|
|
||||||
#define IPV6_2292HOPOPTS 3
|
|
||||||
#define IPV6_2292DSTOPTS 4
|
|
||||||
#define IPV6_2292RTHDR 5
|
|
||||||
#define IPV6_2292PKTOPTIONS 6
|
|
||||||
#define IPV6_CHECKSUM 7
|
|
||||||
#define IPV6_2292HOPLIMIT 8
|
|
||||||
#define SCM_SRCRT IPV6_RXSRCRT
|
|
||||||
#define IPV6_NEXTHOP 9
|
|
||||||
#define IPV6_AUTHHDR 10
|
|
||||||
#define IPV6_UNICAST_HOPS 16
|
|
||||||
#define IPV6_MULTICAST_IF 17
|
|
||||||
#define IPV6_MULTICAST_HOPS 18
|
|
||||||
#define IPV6_MULTICAST_LOOP 19
|
|
||||||
#define IPV6_JOIN_GROUP 20
|
|
||||||
#define IPV6_LEAVE_GROUP 21
|
|
||||||
#define IPV6_ROUTER_ALERT 22
|
|
||||||
#define IPV6_MTU_DISCOVER 23
|
|
||||||
#define IPV6_MTU 24
|
|
||||||
#define IPV6_RECVERR 25
|
|
||||||
#define IPV6_V6ONLY 26
|
|
||||||
#define IPV6_JOIN_ANYCAST 27
|
|
||||||
#define IPV6_LEAVE_ANYCAST 28
|
|
||||||
#define IPV6_IPSEC_POLICY 34
|
|
||||||
#define IPV6_XFRM_POLICY 35
|
|
||||||
|
|
||||||
#define IPV6_RECVPKTINFO 49
|
|
||||||
#define IPV6_PKTINFO 50
|
|
||||||
#define IPV6_RECVHOPLIMIT 51
|
|
||||||
#define IPV6_HOPLIMIT 52
|
|
||||||
#define IPV6_RECVHOPOPTS 53
|
|
||||||
#define IPV6_HOPOPTS 54
|
|
||||||
#define IPV6_RTHDRDSTOPTS 55
|
|
||||||
#define IPV6_RECVRTHDR 56
|
|
||||||
#define IPV6_RTHDR 57
|
|
||||||
#define IPV6_RECVDSTOPTS 58
|
|
||||||
#define IPV6_DSTOPTS 59
|
|
||||||
|
|
||||||
#define IPV6_RECVTCLASS 66
|
|
||||||
#define IPV6_TCLASS 67
|
|
||||||
|
|
||||||
#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
|
|
||||||
#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
|
|
||||||
#define IPV6_RXHOPOPTS IPV6_HOPOPTS
|
|
||||||
#define IPV6_RXDSTOPTS IPV6_DSTOPTS
|
|
||||||
|
|
||||||
|
|
||||||
#define IPV6_PMTUDISC_DONT 0
|
|
||||||
#define IPV6_PMTUDISC_WANT 1
|
|
||||||
#define IPV6_PMTUDISC_DO 2
|
|
||||||
#define IPV6_PMTUDISC_PROBE 3
|
|
||||||
|
|
||||||
#define SOL_IPV6 41
|
|
||||||
#define SOL_ICMPV6 58
|
|
||||||
|
|
||||||
#define IPV6_RTHDR_LOOSE 0
|
|
||||||
#define IPV6_RTHDR_STRICT 1
|
|
||||||
|
|
||||||
#define IPV6_RTHDR_TYPE_0 0
|
|
|
@ -1,197 +0,0 @@
|
||||||
#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
|
|
||||||
#define _IOC_NONE 0U
|
|
||||||
#define _IOC_WRITE 1U
|
|
||||||
#define _IOC_READ 2U
|
|
||||||
|
|
||||||
#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
|
|
||||||
#define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c))
|
|
||||||
#define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c))
|
|
||||||
#define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c))
|
|
||||||
|
|
||||||
#define TCGETS 0x5401
|
|
||||||
#define TCSETS 0x5402
|
|
||||||
#define TCSETSW 0x5403
|
|
||||||
#define TCSETSF 0x5404
|
|
||||||
#define TCGETA 0x5405
|
|
||||||
#define TCSETA 0x5406
|
|
||||||
#define TCSETAW 0x5407
|
|
||||||
#define TCSETAF 0x5408
|
|
||||||
#define TCSBRK 0x5409
|
|
||||||
#define TCXONC 0x540A
|
|
||||||
#define TCFLSH 0x540B
|
|
||||||
#define TIOCEXCL 0x540C
|
|
||||||
#define TIOCNXCL 0x540D
|
|
||||||
#define TIOCSCTTY 0x540E
|
|
||||||
#define TIOCGPGRP 0x540F
|
|
||||||
#define TIOCSPGRP 0x5410
|
|
||||||
#define TIOCOUTQ 0x5411
|
|
||||||
#define TIOCSTI 0x5412
|
|
||||||
#define TIOCGWINSZ 0x5413
|
|
||||||
#define TIOCSWINSZ 0x5414
|
|
||||||
#define TIOCMGET 0x5415
|
|
||||||
#define TIOCMBIS 0x5416
|
|
||||||
#define TIOCMBIC 0x5417
|
|
||||||
#define TIOCMSET 0x5418
|
|
||||||
#define TIOCGSOFTCAR 0x5419
|
|
||||||
#define TIOCSSOFTCAR 0x541A
|
|
||||||
#define FIONREAD 0x541B
|
|
||||||
#define TIOCINQ FIONREAD
|
|
||||||
#define TIOCLINUX 0x541C
|
|
||||||
#define TIOCCONS 0x541D
|
|
||||||
#define TIOCGSERIAL 0x541E
|
|
||||||
#define TIOCSSERIAL 0x541F
|
|
||||||
#define TIOCPKT 0x5420
|
|
||||||
#define FIONBIO 0x5421
|
|
||||||
#define TIOCNOTTY 0x5422
|
|
||||||
#define TIOCSETD 0x5423
|
|
||||||
#define TIOCGETD 0x5424
|
|
||||||
#define TCSBRKP 0x5425
|
|
||||||
#define TIOCTTYGSTRUCT 0x5426
|
|
||||||
#define TIOCSBRK 0x5427
|
|
||||||
#define TIOCCBRK 0x5428
|
|
||||||
#define TIOCGSID 0x5429
|
|
||||||
#define TIOCGPTN 0x80045430
|
|
||||||
#define TIOCSPTLCK 0x40045431
|
|
||||||
#define TCGETX 0x5432
|
|
||||||
#define TCSETX 0x5433
|
|
||||||
#define TCSETXF 0x5434
|
|
||||||
#define TCSETXW 0x5435
|
|
||||||
|
|
||||||
#define FIONCLEX 0x5450
|
|
||||||
#define FIOCLEX 0x5451
|
|
||||||
#define FIOASYNC 0x5452
|
|
||||||
#define TIOCSERCONFIG 0x5453
|
|
||||||
#define TIOCSERGWILD 0x5454
|
|
||||||
#define TIOCSERSWILD 0x5455
|
|
||||||
#define TIOCGLCKTRMIOS 0x5456
|
|
||||||
#define TIOCSLCKTRMIOS 0x5457
|
|
||||||
#define TIOCSERGSTRUCT 0x5458
|
|
||||||
#define TIOCSERGETLSR 0x5459
|
|
||||||
#define TIOCSERGETMULTI 0x545A
|
|
||||||
#define TIOCSERSETMULTI 0x545B
|
|
||||||
|
|
||||||
#define TIOCMIWAIT 0x545C
|
|
||||||
#define TIOCGICOUNT 0x545D
|
|
||||||
#define TIOCGHAYESESP 0x545E
|
|
||||||
#define TIOCSHAYESESP 0x545F
|
|
||||||
#define FIOQSIZE 0x5460
|
|
||||||
|
|
||||||
#define TIOCPKT_DATA 0
|
|
||||||
#define TIOCPKT_FLUSHREAD 1
|
|
||||||
#define TIOCPKT_FLUSHWRITE 2
|
|
||||||
#define TIOCPKT_STOP 4
|
|
||||||
#define TIOCPKT_START 8
|
|
||||||
#define TIOCPKT_NOSTOP 16
|
|
||||||
#define TIOCPKT_DOSTOP 32
|
|
||||||
#define TIOCPKT_IOCTL 64
|
|
||||||
|
|
||||||
#define TIOCSER_TEMT 0x01
|
|
||||||
|
|
||||||
struct winsize {
|
|
||||||
unsigned short ws_row;
|
|
||||||
unsigned short ws_col;
|
|
||||||
unsigned short ws_xpixel;
|
|
||||||
unsigned short ws_ypixel;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define TIOCM_LE 0x001
|
|
||||||
#define TIOCM_DTR 0x002
|
|
||||||
#define TIOCM_RTS 0x004
|
|
||||||
#define TIOCM_ST 0x008
|
|
||||||
#define TIOCM_SR 0x010
|
|
||||||
#define TIOCM_CTS 0x020
|
|
||||||
#define TIOCM_CAR 0x040
|
|
||||||
#define TIOCM_RNG 0x080
|
|
||||||
#define TIOCM_DSR 0x100
|
|
||||||
#define TIOCM_CD TIOCM_CAR
|
|
||||||
#define TIOCM_RI TIOCM_RNG
|
|
||||||
#define TIOCM_OUT1 0x2000
|
|
||||||
#define TIOCM_OUT2 0x4000
|
|
||||||
#define TIOCM_LOOP 0x8000
|
|
||||||
#define TIOCM_MODEM_BITS TIOCM_OUT2
|
|
||||||
|
|
||||||
#define N_TTY 0
|
|
||||||
#define N_SLIP 1
|
|
||||||
#define N_MOUSE 2
|
|
||||||
#define N_PPP 3
|
|
||||||
#define N_STRIP 4
|
|
||||||
#define N_AX25 5
|
|
||||||
#define N_X25 6
|
|
||||||
#define N_6PACK 7
|
|
||||||
#define N_MASC 8
|
|
||||||
#define N_R3964 9
|
|
||||||
#define N_PROFIBUS_FDL 10
|
|
||||||
#define N_IRDA 11
|
|
||||||
#define N_SMSBLOCK 12
|
|
||||||
#define N_HDLC 13
|
|
||||||
#define N_SYNC_PPP 14
|
|
||||||
#define N_HCI 15
|
|
||||||
|
|
||||||
#define FIOSETOWN 0x8901
|
|
||||||
#define SIOCSPGRP 0x8902
|
|
||||||
#define FIOGETOWN 0x8903
|
|
||||||
#define SIOCGPGRP 0x8904
|
|
||||||
#define SIOCATMARK 0x8905
|
|
||||||
#define SIOCGSTAMP 0x8906
|
|
||||||
|
|
||||||
#define SIOCADDRT 0x890B
|
|
||||||
#define SIOCDELRT 0x890C
|
|
||||||
#define SIOCRTMSG 0x890D
|
|
||||||
|
|
||||||
#define SIOCGIFNAME 0x8910
|
|
||||||
#define SIOCSIFLINK 0x8911
|
|
||||||
#define SIOCGIFCONF 0x8912
|
|
||||||
#define SIOCGIFFLAGS 0x8913
|
|
||||||
#define SIOCSIFFLAGS 0x8914
|
|
||||||
#define SIOCGIFADDR 0x8915
|
|
||||||
#define SIOCSIFADDR 0x8916
|
|
||||||
#define SIOCGIFDSTADDR 0x8917
|
|
||||||
#define SIOCSIFDSTADDR 0x8918
|
|
||||||
#define SIOCGIFBRDADDR 0x8919
|
|
||||||
#define SIOCSIFBRDADDR 0x891a
|
|
||||||
#define SIOCGIFNETMASK 0x891b
|
|
||||||
#define SIOCSIFNETMASK 0x891c
|
|
||||||
#define SIOCGIFMETRIC 0x891d
|
|
||||||
#define SIOCSIFMETRIC 0x891e
|
|
||||||
#define SIOCGIFMEM 0x891f
|
|
||||||
#define SIOCSIFMEM 0x8920
|
|
||||||
#define SIOCGIFMTU 0x8921
|
|
||||||
#define SIOCSIFMTU 0x8922
|
|
||||||
#define SIOCSIFHWADDR 0x8924
|
|
||||||
#define SIOCGIFENCAP 0x8925
|
|
||||||
#define SIOCSIFENCAP 0x8926
|
|
||||||
#define SIOCGIFHWADDR 0x8927
|
|
||||||
#define SIOCGIFSLAVE 0x8929
|
|
||||||
#define SIOCSIFSLAVE 0x8930
|
|
||||||
#define SIOCADDMULTI 0x8931
|
|
||||||
#define SIOCDELMULTI 0x8932
|
|
||||||
#define SIOCGIFINDEX 0x8933
|
|
||||||
#define SIOGIFINDEX SIOCGIFINDEX
|
|
||||||
#define SIOCSIFPFLAGS 0x8934
|
|
||||||
#define SIOCGIFPFLAGS 0x8935
|
|
||||||
#define SIOCDIFADDR 0x8936
|
|
||||||
#define SIOCSIFHWBROADCAST 0x8937
|
|
||||||
#define SIOCGIFCOUNT 0x8938
|
|
||||||
|
|
||||||
#define SIOCGIFBR 0x8940
|
|
||||||
#define SIOCSIFBR 0x8941
|
|
||||||
|
|
||||||
#define SIOCGIFTXQLEN 0x8942
|
|
||||||
#define SIOCSIFTXQLEN 0x8943
|
|
||||||
|
|
||||||
#define SIOCDARP 0x8953
|
|
||||||
#define SIOCGARP 0x8954
|
|
||||||
#define SIOCSARP 0x8955
|
|
||||||
|
|
||||||
#define SIOCDRARP 0x8960
|
|
||||||
#define SIOCGRARP 0x8961
|
|
||||||
#define SIOCSRARP 0x8962
|
|
||||||
|
|
||||||
#define SIOCGIFMAP 0x8970
|
|
||||||
#define SIOCSIFMAP 0x8971
|
|
||||||
|
|
||||||
#define SIOCADDDLCI 0x8980
|
|
||||||
#define SIOCDELDLCI 0x8981
|
|
||||||
|
|
||||||
#define SIOCDEVPRIVATE 0x89F0
|
|
||||||
#define SIOCPROTOPRIVATE 0x89E0
|
|
|
@ -1,25 +0,0 @@
|
||||||
#define IPC_CREAT 01000
|
|
||||||
#define IPC_EXCL 02000
|
|
||||||
#define IPC_NOWAIT 04000
|
|
||||||
|
|
||||||
#define IPC_RMID 0
|
|
||||||
#define IPC_SET 1
|
|
||||||
#define IPC_STAT 2
|
|
||||||
#ifdef _GNU_SOURCE
|
|
||||||
#define IPC_INFO 3
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define IPC_PRIVATE ((key_t) 0)
|
|
||||||
|
|
||||||
struct ipc_perm
|
|
||||||
{
|
|
||||||
key_t key;
|
|
||||||
uid_t uid;
|
|
||||||
gid_t gid;
|
|
||||||
uid_t cuid;
|
|
||||||
gid_t cgid;
|
|
||||||
mode_t mode;
|
|
||||||
int seq;
|
|
||||||
long __pad1;
|
|
||||||
long __pad2;
|
|
||||||
};
|
|
|
@ -1,33 +0,0 @@
|
||||||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
|
||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
|
||||||
#define PIPE_BUF 4096
|
|
||||||
#define PAGESIZE 4096
|
|
||||||
#define PAGE_SIZE PAGESIZE
|
|
||||||
#define FILESIZEBITS 64
|
|
||||||
#define NAME_MAX 255
|
|
||||||
#define SYMLINK_MAX 255
|
|
||||||
#define PATH_MAX 4096
|
|
||||||
#define NZERO 20
|
|
||||||
#define NGROUPS_MAX 32
|
|
||||||
#define ARG_MAX 131072
|
|
||||||
#define IOV_MAX 1024
|
|
||||||
#define SYMLOOP_MAX 40
|
|
||||||
#define WORD_BIT 32
|
|
||||||
#define LONG_BIT 32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SHRT_MIN (-1-0x7fff)
|
|
||||||
#define SHRT_MAX 0x7fff
|
|
||||||
#define USHRT_MAX 0xffff
|
|
||||||
|
|
||||||
#define INT_MIN (-1-0x7fffffff)
|
|
||||||
#define INT_MAX 0x7fffffff
|
|
||||||
#define UINT_MAX 0xffffffffU
|
|
||||||
|
|
||||||
#define LONG_MIN (-1-0x7fffffffL)
|
|
||||||
#define LONG_MAX 0x7fffffffL
|
|
||||||
#define ULONG_MAX 0xffffffffUL
|
|
||||||
|
|
||||||
#define LLONG_MIN (-1-0x7fffffffffffffffLL)
|
|
||||||
#define LLONG_MAX 0x7fffffffffffffffLL
|
|
||||||
#define ULLONG_MAX 0xffffffffffffffffULL
|
|
|
@ -1,50 +0,0 @@
|
||||||
#define MAP_FAILED ((void *) -1)
|
|
||||||
|
|
||||||
#define PROT_NONE 0
|
|
||||||
#define PROT_READ 1
|
|
||||||
#define PROT_WRITE 2
|
|
||||||
#define PROT_EXEC 4
|
|
||||||
#define PROT_GROWSDOWN 0x01000000
|
|
||||||
#define PROT_GROWSUP 0x02000000
|
|
||||||
|
|
||||||
#define MAP_SHARED 0x01
|
|
||||||
#define MAP_PRIVATE 0x02
|
|
||||||
#define MAP_FIXED 0x10
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define MAP_TYPE 0x0f
|
|
||||||
#define MAP_FILE 0x00
|
|
||||||
#define MAP_ANON 0x20
|
|
||||||
#define MAP_ANONYMOUS MAP_ANON
|
|
||||||
#define MAP_32BIT 0x40
|
|
||||||
|
|
||||||
#define MADV_NORMAL 0
|
|
||||||
#define MADV_RANDOM 1
|
|
||||||
#define MADV_SEQUENTIAL 2
|
|
||||||
#define MADV_WILLNEED 3
|
|
||||||
#define MADV_DONTNEED 4
|
|
||||||
#define MADV_REMOVE 9
|
|
||||||
#define MADV_DONTFORK 10
|
|
||||||
#define MADV_DOFORK 11
|
|
||||||
#define MADV_MERGEABLE 12
|
|
||||||
#define MADV_UNMERGEABLE 13
|
|
||||||
#define MADV_HUGEPAGE 14
|
|
||||||
#define MADV_NOHUGEPAGE 15
|
|
||||||
#define MADV_HWPOISON 100
|
|
||||||
|
|
||||||
#define POSIX_MADV_NORMAL 0
|
|
||||||
#define POSIX_MADV_RANDOM 1
|
|
||||||
#define POSIX_MADV_SEQUENTIAL 2
|
|
||||||
#define POSIX_MADV_WILLNEED 3
|
|
||||||
#define POSIX_MADV_DONTNEED 0
|
|
||||||
|
|
||||||
#define MS_ASYNC 1
|
|
||||||
#define MS_INVALIDATE 2
|
|
||||||
#define MS_SYNC 4
|
|
||||||
|
|
||||||
#define MCL_CURRENT 1
|
|
||||||
#define MCL_FUTURE 2
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define MREMAP_MAYMOVE 1
|
|
||||||
#define MREMAP_FIXED 2
|
|
|
@ -1,2 +0,0 @@
|
||||||
#define _POSIX_V6_ILP32_OFFBIG 1
|
|
||||||
#define _POSIX_V7_ILP32_OFFBIG 1
|
|
|
@ -1,6 +0,0 @@
|
||||||
struct __ptcb {
|
|
||||||
long __jb[7];
|
|
||||||
int __dummy;
|
|
||||||
struct __ptcb *__next;
|
|
||||||
void *__ptrs[3];
|
|
||||||
};
|
|
|
@ -1,19 +0,0 @@
|
||||||
#undef __WORDSIZE
|
|
||||||
#define __WORDSIZE 32
|
|
||||||
#define EBX 0
|
|
||||||
#define ECX 1
|
|
||||||
#define EDX 2
|
|
||||||
#define ESI 3
|
|
||||||
#define EDI 4
|
|
||||||
#define EBP 5
|
|
||||||
#define EAX 6
|
|
||||||
#define DS 7
|
|
||||||
#define ES 8
|
|
||||||
#define FS 9
|
|
||||||
#define GS 10
|
|
||||||
#define ORIG_EAX 11
|
|
||||||
#define EIP 12
|
|
||||||
#define CS 13
|
|
||||||
#define EFL 14
|
|
||||||
#define UESP 15
|
|
||||||
#define SS 16
|
|
|
@ -1 +0,0 @@
|
||||||
typedef unsigned long jmp_buf [7];
|
|
|
@ -1,24 +0,0 @@
|
||||||
#define SHMLBA 4096
|
|
||||||
|
|
||||||
#define SHM_RDONLY 010000
|
|
||||||
#define SHM_RND 020000
|
|
||||||
#define SHM_REMAP 040000
|
|
||||||
#define SHM_EXEC 0100000
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define SHM_LOCK 11
|
|
||||||
#define SHM_UNLOCK 12
|
|
||||||
|
|
||||||
struct shmid_ds
|
|
||||||
{
|
|
||||||
struct ipc_perm shm_perm;
|
|
||||||
size_t shm_segsz;
|
|
||||||
time_t shm_atime;
|
|
||||||
time_t shm_dtime;
|
|
||||||
time_t shm_ctime;
|
|
||||||
pid_t shm_cpid;
|
|
||||||
pid_t shm_lpid;
|
|
||||||
unsigned long shm_nattch;
|
|
||||||
unsigned long __pad1;
|
|
||||||
unsigned long __pad2;
|
|
||||||
};
|
|
|
@ -1,107 +0,0 @@
|
||||||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
|
||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
|
||||||
|
|
||||||
struct __siginfo
|
|
||||||
{
|
|
||||||
int si_signo;
|
|
||||||
int si_errno;
|
|
||||||
int si_code;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
char __pad[128 - 3*sizeof(int)];
|
|
||||||
struct {
|
|
||||||
pid_t si_pid;
|
|
||||||
uid_t si_uid;
|
|
||||||
union sigval si_sigval;
|
|
||||||
} __rt;
|
|
||||||
struct {
|
|
||||||
unsigned int si_timer1;
|
|
||||||
unsigned int si_timer2;
|
|
||||||
} __timer;
|
|
||||||
struct {
|
|
||||||
pid_t si_pid;
|
|
||||||
uid_t si_uid;
|
|
||||||
int si_status;
|
|
||||||
clock_t si_utime;
|
|
||||||
clock_t si_stime;
|
|
||||||
} __sigchld;
|
|
||||||
struct {
|
|
||||||
void *si_addr;
|
|
||||||
} __sigfault;
|
|
||||||
struct {
|
|
||||||
long int si_band;
|
|
||||||
int si_fd;
|
|
||||||
} __sigpoll;
|
|
||||||
} __si_fields;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define si_pid __si_fields.__sigchld.si_pid
|
|
||||||
#define si_uid __si_fields.__sigchld.si_uid
|
|
||||||
#define si_status __si_fields.__sigchld.si_status
|
|
||||||
#define si_utime __si_fields.__sigchld.si_utime
|
|
||||||
#define si_stime __si_fields.__sigchld.si_stime
|
|
||||||
#define si_value __si_fields.__rt.si_sigval
|
|
||||||
#define si_addr __si_fields.__sigfault.si_addr
|
|
||||||
#define si_band __si_fields.__sigpoll.si_band
|
|
||||||
|
|
||||||
#define SA_NOCLDSTOP 1
|
|
||||||
#define SA_NOCLDWAIT 2
|
|
||||||
#define SA_SIGINFO 4
|
|
||||||
#define SA_ONSTACK 0x08000000
|
|
||||||
#define SA_RESTART 0x10000000
|
|
||||||
#define SA_NODEFER 0x40000000
|
|
||||||
#define SA_RESETHAND 0x80000000
|
|
||||||
#define SA_RESTORER 0x04000000
|
|
||||||
|
|
||||||
#define SS_ONSTACK 1
|
|
||||||
#define SS_DISABLE 2
|
|
||||||
|
|
||||||
#define SIG_BLOCK 0
|
|
||||||
#define SIG_UNBLOCK 1
|
|
||||||
#define SIG_SETMASK 2
|
|
||||||
|
|
||||||
#define SIG_HOLD ((void (*)(int)) 2)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
|
||||||
#define NSIG 64
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SIG_ERR ((void (*)(int))-1)
|
|
||||||
#define SIG_DFL ((void (*)(int)) 0)
|
|
||||||
#define SIG_IGN ((void (*)(int)) 1)
|
|
||||||
|
|
||||||
#define SIGHUP 1
|
|
||||||
#define SIGINT 2
|
|
||||||
#define SIGQUIT 3
|
|
||||||
#define SIGILL 4
|
|
||||||
#define SIGTRAP 5
|
|
||||||
#define SIGABRT 6
|
|
||||||
#define SIGBUS 7
|
|
||||||
#define SIGFPE 8
|
|
||||||
#define SIGKILL 9
|
|
||||||
#define SIGUSR1 10
|
|
||||||
#define SIGSEGV 11
|
|
||||||
#define SIGUSR2 12
|
|
||||||
#define SIGPIPE 13
|
|
||||||
#define SIGALRM 14
|
|
||||||
#define SIGTERM 15
|
|
||||||
#define SIGSTKFLT 16
|
|
||||||
#define SIGCHLD 17
|
|
||||||
#define SIGCONT 18
|
|
||||||
#define SIGSTOP 19
|
|
||||||
#define SIGTSTP 20
|
|
||||||
#define SIGTTIN 21
|
|
||||||
#define SIGTTOU 22
|
|
||||||
#define SIGURG 23
|
|
||||||
#define SIGXCPU 24
|
|
||||||
#define SIGXFSZ 25
|
|
||||||
#define SIGVTALRM 26
|
|
||||||
#define SIGPROF 27
|
|
||||||
#define SIGWINCH 28
|
|
||||||
#define SIGIO 29
|
|
||||||
#define SIGPOLL 29
|
|
||||||
#define SIGPWR 30
|
|
||||||
#define SIGSYS 31
|
|
||||||
#define SIGUNUSED SIGSYS
|
|
|
@ -1,210 +0,0 @@
|
||||||
struct msghdr
|
|
||||||
{
|
|
||||||
void *msg_name;
|
|
||||||
socklen_t msg_namelen;
|
|
||||||
struct iovec *msg_iov;
|
|
||||||
int msg_iovlen;
|
|
||||||
void *msg_control;
|
|
||||||
socklen_t msg_controllen;
|
|
||||||
int msg_flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct cmsghdr
|
|
||||||
{
|
|
||||||
socklen_t cmsg_len;
|
|
||||||
int cmsg_level;
|
|
||||||
int cmsg_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ucred
|
|
||||||
{
|
|
||||||
pid_t pid;
|
|
||||||
uid_t uid;
|
|
||||||
gid_t gid;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct linger
|
|
||||||
{
|
|
||||||
int l_onoff;
|
|
||||||
int l_linger;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define SHUT_RD 0
|
|
||||||
#define SHUT_WD 1
|
|
||||||
#define SHUT_RDWR 2
|
|
||||||
|
|
||||||
#define SOCK_STREAM 1
|
|
||||||
#define SOCK_DGRAM 2
|
|
||||||
#define SOCK_RAW 3
|
|
||||||
#define SOCK_RDM 4
|
|
||||||
#define SOCK_SEQPACKET 5
|
|
||||||
#define SOCK_DCCP 6
|
|
||||||
#define SOCK_PACKET 10
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define SOCK_CLOEXEC 02000000
|
|
||||||
#define SOCK_NONBLOCK 04000
|
|
||||||
|
|
||||||
#define PF_UNSPEC 0
|
|
||||||
#define PF_LOCAL 1
|
|
||||||
#define PF_UNIX PF_LOCAL
|
|
||||||
#define PF_FILE PF_LOCAL
|
|
||||||
#define PF_INET 2
|
|
||||||
#define PF_AX25 3
|
|
||||||
#define PF_IPX 4
|
|
||||||
#define PF_APPLETALK 5
|
|
||||||
#define PF_NETROM 6
|
|
||||||
#define PF_BRIDGE 7
|
|
||||||
#define PF_ATMPVC 8
|
|
||||||
#define PF_X25 9
|
|
||||||
#define PF_INET6 10
|
|
||||||
#define PF_ROSE 11
|
|
||||||
#define PF_DECnet 12
|
|
||||||
#define PF_NETBEUI 13
|
|
||||||
#define PF_SECURITY 14
|
|
||||||
#define PF_KEY 15
|
|
||||||
#define PF_NETLINK 16
|
|
||||||
#define PF_ROUTE PF_NETLINK
|
|
||||||
#define PF_PACKET 17
|
|
||||||
#define PF_ASH 18
|
|
||||||
#define PF_ECONET 19
|
|
||||||
#define PF_ATMSVC 20
|
|
||||||
#define PF_SNA 22
|
|
||||||
#define PF_IRDA 23
|
|
||||||
#define PF_PPPOX 24
|
|
||||||
#define PF_WANPIPE 25
|
|
||||||
#define PF_BLUETOOTH 31
|
|
||||||
#define PF_IUCV 32
|
|
||||||
#define PF_RXRPC 33
|
|
||||||
#define PF_ISDN 34
|
|
||||||
#define PF_PHONET 35
|
|
||||||
#define PF_IEEE802154 36
|
|
||||||
#define PF_CAIF 37
|
|
||||||
#define PF_ALG 38
|
|
||||||
#define PF_MAX 39
|
|
||||||
|
|
||||||
#define AF_UNSPEC PF_UNSPEC
|
|
||||||
#define AF_LOCAL PF_LOCAL
|
|
||||||
#define AF_UNIX AF_LOCAL
|
|
||||||
#define AF_FILE AF_LOCAL
|
|
||||||
#define AF_INET PF_INET
|
|
||||||
#define AF_AX25 PF_AX25
|
|
||||||
#define AF_IPX PF_IPX
|
|
||||||
#define AF_APPLETALK PF_APPLETALK
|
|
||||||
#define AF_NETROM PF_NETROM
|
|
||||||
#define AF_BRIDGE PF_BRIDGE
|
|
||||||
#define AF_ATMPVC PF_ATMPVC
|
|
||||||
#define AF_X25 PF_X25
|
|
||||||
#define AF_INET6 PF_INET6
|
|
||||||
#define AF_ROSE PF_ROSE
|
|
||||||
#define AF_DECnet PF_DECnet
|
|
||||||
#define AF_NETBEUI PF_NETBEUI
|
|
||||||
#define AF_SECURITY PF_SECURITY
|
|
||||||
#define AF_KEY PF_KEY
|
|
||||||
#define AF_NETLINK PF_NETLINK
|
|
||||||
#define AF_ROUTE AF_NETLINK
|
|
||||||
#define AF_PACKET PF_PACKET
|
|
||||||
#define AF_ASH PF_ASH
|
|
||||||
#define AF_ECONET PF_ECONET
|
|
||||||
#define AF_ATMSVC PF_ATMSVC
|
|
||||||
#define AF_SNA PF_SNA
|
|
||||||
#define AF_IRDA PF_IRDA
|
|
||||||
#define AF_PPPOX PF_PPPOX
|
|
||||||
#define AF_WANPIPE PF_WANPIPE
|
|
||||||
#define AF_BLUETOOTH PF_BLUETOOTH
|
|
||||||
#define AF_IUCV PF_IUCV
|
|
||||||
#define AF_RXRPC PF_RXRPC
|
|
||||||
#define AF_ISDN PF_ISDN
|
|
||||||
#define AF_PHONET PF_PHONET
|
|
||||||
#define AF_IEEE802154 PF_IEEE802154
|
|
||||||
#define AF_CAIF PF_CAIF
|
|
||||||
#define AF_ALG PF_ALG
|
|
||||||
#define AF_MAX PF_MAX
|
|
||||||
|
|
||||||
#define SO_DEBUG 1
|
|
||||||
#define SO_REUSEADDR 2
|
|
||||||
#define SO_TYPE 3
|
|
||||||
#define SO_ERROR 4
|
|
||||||
#define SO_DONTROUTE 5
|
|
||||||
#define SO_BROADCAST 6
|
|
||||||
#define SO_SNDBUF 7
|
|
||||||
#define SO_RCVBUF 8
|
|
||||||
#define SO_KEEPALIVE 9
|
|
||||||
#define SO_OOBINLINE 10
|
|
||||||
#define SO_NO_CHECK 11
|
|
||||||
#define SO_PRIORITY 12
|
|
||||||
#define SO_LINGER 13
|
|
||||||
#define SO_BSDCOMPAT 14
|
|
||||||
#define SO_REUSEPORT 15
|
|
||||||
#define SO_PASSCRED 16
|
|
||||||
#define SO_PEERCRED 17
|
|
||||||
#define SO_RCVLOWAT 18
|
|
||||||
#define SO_SNDLOWAT 19
|
|
||||||
#define SO_RCVTIMEO 20
|
|
||||||
#define SO_SNDTIMEO 21
|
|
||||||
|
|
||||||
#define SO_SECURITY_AUTHENTICATION 22
|
|
||||||
#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
|
||||||
#define SO_SECURITY_ENCRYPTION_NETWORK 24
|
|
||||||
|
|
||||||
#define SO_BINDTODEVICE 25
|
|
||||||
|
|
||||||
#define SO_ATTACH_FILTER 26
|
|
||||||
#define SO_DETACH_FILTER 27
|
|
||||||
|
|
||||||
#define SO_PEERNAME 28
|
|
||||||
#define SO_TIMESTAMP 29
|
|
||||||
#define SCM_TIMESTAMP SO_TIMESTAMP
|
|
||||||
|
|
||||||
#define SO_ACCEPTCONN 30
|
|
||||||
|
|
||||||
#define SOL_SOCKET 1
|
|
||||||
|
|
||||||
/* ??? */
|
|
||||||
#define SOL_RAW 255
|
|
||||||
#define SOL_DECNET 261
|
|
||||||
#define SOL_X25 262
|
|
||||||
#define SOL_PACKET 263
|
|
||||||
#define SOL_ATM 264
|
|
||||||
#define SOL_AAL 265
|
|
||||||
#define SOL_IRDA 266
|
|
||||||
|
|
||||||
#define SOMAXCONN 128
|
|
||||||
|
|
||||||
#define MSG_OOB 0x0001
|
|
||||||
#define MSG_PEEK 0x0002
|
|
||||||
#define MSG_DONTROUTE 0x0004
|
|
||||||
#define MSG_CTRUNC 0x0008
|
|
||||||
#define MSG_PROXY 0x0010
|
|
||||||
#define MSG_TRUNC 0x0020
|
|
||||||
#define MSG_DONTWAIT 0x0040
|
|
||||||
#define MSG_EOR 0x0080
|
|
||||||
#define MSG_WAITALL 0x0100
|
|
||||||
#define MSG_FIN 0x0200
|
|
||||||
#define MSD_SYN 0x0400
|
|
||||||
#define MSG_CONFIRM 0x0800
|
|
||||||
#define MSG_RST 0x1000
|
|
||||||
#define MSG_ERRQUEUE 0x2000
|
|
||||||
#define MSG_NOSIGNAL 0x4000
|
|
||||||
#define MSG_MORE 0x8000
|
|
||||||
#define MSG_WAITFORONE 0x10000
|
|
||||||
#define MSG_CMSG_CLOEXEC 0x40000000
|
|
||||||
|
|
||||||
/* Internal use only!! to make CMSG_NXTHDR definition readable by mortals */
|
|
||||||
#define __CMSG_LEN(cmsg) (((cmsg)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1))
|
|
||||||
#define __CMSG_NEXT(cmsg) ((unsigned char *)(cmsg) + __CMSG_LEN(cmsg))
|
|
||||||
#define __MHDR_END(mhdr) ((unsigned char *)(mhdr)->msg_control + (mhdr)->msg_controllen)
|
|
||||||
|
|
||||||
#define CMSG_DATA(cmsg) ((unsigned char *) (((struct cmsghdr *)(cmsg)) + 1))
|
|
||||||
#define CMSG_NXTHDR(mhdr, cmsg) ((cmsg)->cmsg_len < sizeof (struct cmsghdr) ? (struct cmsghdr *)0 : \
|
|
||||||
(__CMSG_NEXT(cmsg) + sizeof (struct cmsghdr) >= __MHDR_END(mhdr) ? (struct cmsghdr *)0 : \
|
|
||||||
((struct cmsghdr *)__CMSG_NEXT(cmsg))))
|
|
||||||
#define CMSG_FIRSTHDR(mhdr) ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
|
|
||||||
|
|
||||||
/* Are these valid? */
|
|
||||||
#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
|
|
||||||
#define CMSG_SPACE(len) (CMSG_ALIGN (len) + CMSG_ALIGN (sizeof (struct cmsghdr)))
|
|
||||||
#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
|
|
||||||
|
|
||||||
#define SCM_RIGHTS 0x01
|
|
||||||
#define SCM_CREDENTIALS 0x02
|
|
|
@ -1,22 +0,0 @@
|
||||||
/* copied from kernel definition, but with padding replaced
|
|
||||||
* by the corresponding correctly-sized userspace types. */
|
|
||||||
|
|
||||||
struct stat
|
|
||||||
{
|
|
||||||
dev_t st_dev;
|
|
||||||
int __st_dev_padding;
|
|
||||||
long __st_ino_truncated;
|
|
||||||
mode_t st_mode;
|
|
||||||
nlink_t st_nlink;
|
|
||||||
uid_t st_uid;
|
|
||||||
gid_t st_gid;
|
|
||||||
dev_t st_rdev;
|
|
||||||
int __st_rdev_padding;
|
|
||||||
off_t st_size;
|
|
||||||
blksize_t st_blksize;
|
|
||||||
blkcnt_t st_blocks;
|
|
||||||
struct timespec st_atim;
|
|
||||||
struct timespec st_mtim;
|
|
||||||
struct timespec st_ctim;
|
|
||||||
ino_t st_ino;
|
|
||||||
};
|
|
|
@ -1,16 +0,0 @@
|
||||||
struct statvfs {
|
|
||||||
unsigned long f_type;
|
|
||||||
unsigned long f_bsize;
|
|
||||||
fsblkcnt_t f_blocks;
|
|
||||||
fsblkcnt_t f_bfree;
|
|
||||||
fsblkcnt_t f_bavail;
|
|
||||||
fsfilcnt_t f_files;
|
|
||||||
fsfilcnt_t f_ffree;
|
|
||||||
unsigned long f_fsid;
|
|
||||||
unsigned long __unused;
|
|
||||||
unsigned long f_namemax;
|
|
||||||
unsigned long f_frsize;
|
|
||||||
fsfilcnt_t f_favail;
|
|
||||||
unsigned long f_flag;
|
|
||||||
unsigned long __reserved[2];
|
|
||||||
};
|
|
|
@ -1,9 +0,0 @@
|
||||||
#define __VA_ALIGNED_SIZE(x) ((sizeof(x) + sizeof(int) - 1) & ~(sizeof(int) - 1))
|
|
||||||
|
|
||||||
#define va_start(ap, last) ((ap) = (void *)(((char *)&(last)) + __VA_ALIGNED_SIZE(last)))
|
|
||||||
#define va_end(ap) ((void)0)
|
|
||||||
#define va_copy(dest, src) ((dest) = (src))
|
|
||||||
|
|
||||||
#define va_arg(ap, type) \
|
|
||||||
( ((ap) = (va_list)((char *)(ap) + __VA_ALIGNED_SIZE(type))), \
|
|
||||||
*(type *)(void *)((char *)(ap) - __VA_ALIGNED_SIZE(type)) )
|
|
|
@ -1,23 +0,0 @@
|
||||||
#define INT_FAST8_MIN INT8_MIN
|
|
||||||
#define INT_FAST16_MIN INT32_MIN
|
|
||||||
#define INT_FAST32_MIN INT32_MIN
|
|
||||||
#define INT_FAST64_MIN INT64_MIN
|
|
||||||
|
|
||||||
#define INT_FAST8_MAX INT8_MAX
|
|
||||||
#define INT_FAST16_MAX INT32_MAX
|
|
||||||
#define INT_FAST32_MAX INT32_MAX
|
|
||||||
#define INT_FAST64_MAX INT64_MAX
|
|
||||||
|
|
||||||
#define UINT_FAST8_MAX UINT8_MAX
|
|
||||||
#define UINT_FAST16_MAX UINT32_MAX
|
|
||||||
#define UINT_FAST32_MAX UINT32_MAX
|
|
||||||
#define UINT_FAST64_MAX UINT64_MAX
|
|
||||||
|
|
||||||
#define INTPTR_MIN INT32_MIN
|
|
||||||
#define INTPTR_MAX INT32_MAX
|
|
||||||
#define UINTPTR_MAX UINT32_MAX
|
|
||||||
#define PTRDIFF_MIN INT32_MIN
|
|
||||||
#define PTRDIFF_MAX INT32_MAX
|
|
||||||
#define SIG_ATOMIC_MIN INT32_MIN
|
|
||||||
#define SIG_ATOMIC_MAX INT32_MAX
|
|
||||||
#define SIZE_MAX UINT32_MAX
|
|
|
@ -1,7 +0,0 @@
|
||||||
#define major(x) (((x) >> 8) & 0xff)
|
|
||||||
#define minor(x) ((x) & 0xff)
|
|
||||||
#define makedev(x,y) (((x)<<8)|((y)&0xff))
|
|
||||||
|
|
||||||
//#define makedev(x,y) \
|
|
||||||
// ((x)*0x100000001ULL)&(0xfffffffffff0)
|
|
||||||
// ((y)*0x1001 & 0xffff0ff)
|
|
|
@ -1 +0,0 @@
|
||||||
#define TCP_NODELAY 1
|
|
|
@ -1,158 +0,0 @@
|
||||||
struct termios
|
|
||||||
{
|
|
||||||
tcflag_t c_iflag;
|
|
||||||
tcflag_t c_oflag;
|
|
||||||
tcflag_t c_cflag;
|
|
||||||
tcflag_t c_lflag;
|
|
||||||
cc_t c_line;
|
|
||||||
cc_t c_cc[NCCS];
|
|
||||||
speed_t __c_ispeed;
|
|
||||||
speed_t __c_ospeed;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define VINTR 0
|
|
||||||
#define VQUIT 1
|
|
||||||
#define VERASE 2
|
|
||||||
#define VKILL 3
|
|
||||||
#define VEOF 4
|
|
||||||
#define VTIME 5
|
|
||||||
#define VMIN 6
|
|
||||||
#define VSWTC 7
|
|
||||||
#define VSTART 8
|
|
||||||
#define VSTOP 9
|
|
||||||
#define VSUSP 10
|
|
||||||
#define VEOL 11
|
|
||||||
#define VREPRINT 12
|
|
||||||
#define VDISCARD 13
|
|
||||||
#define VWERASE 14
|
|
||||||
#define VLNEXT 15
|
|
||||||
#define VEOL2 16
|
|
||||||
|
|
||||||
#define IGNBRK 0000001
|
|
||||||
#define BRKINT 0000002
|
|
||||||
#define IGNPAR 0000004
|
|
||||||
#define PARMRK 0000010
|
|
||||||
#define INPCK 0000020
|
|
||||||
#define ISTRIP 0000040
|
|
||||||
#define INLCR 0000100
|
|
||||||
#define IGNCR 0000200
|
|
||||||
#define ICRNL 0000400
|
|
||||||
#define IUCLC 0001000
|
|
||||||
#define IXON 0002000
|
|
||||||
#define IXANY 0004000
|
|
||||||
#define IXOFF 0010000
|
|
||||||
#define IMAXBEL 0020000
|
|
||||||
|
|
||||||
#define OPOST 0000001
|
|
||||||
#define OLCUC 0000002
|
|
||||||
#define ONLCR 0000004
|
|
||||||
#define OCRNL 0000010
|
|
||||||
#define ONOCR 0000020
|
|
||||||
#define ONLRET 0000040
|
|
||||||
#define OFILL 0000100
|
|
||||||
#define OFDEL 0000200
|
|
||||||
#define NLDLY 0000400
|
|
||||||
#define NL0 0000000
|
|
||||||
#define NL1 0000400
|
|
||||||
#define CRDLY 0003000
|
|
||||||
#define CR0 0000000
|
|
||||||
#define CR1 0001000
|
|
||||||
#define CR2 0002000
|
|
||||||
#define CR3 0003000
|
|
||||||
#define TABDLY 0014000
|
|
||||||
#define TAB0 0000000
|
|
||||||
#define TAB1 0004000
|
|
||||||
#define TAB2 0010000
|
|
||||||
#define TAB3 0014000
|
|
||||||
#define BSDLY 0020000
|
|
||||||
#define BS0 0000000
|
|
||||||
#define BS1 0020000
|
|
||||||
#define FFDLY 0100000
|
|
||||||
#define FF0 0000000
|
|
||||||
#define FF1 0100000
|
|
||||||
|
|
||||||
#define VTDLY 0040000
|
|
||||||
#define VT0 0000000
|
|
||||||
#define VT1 0040000
|
|
||||||
|
|
||||||
/* ?? */
|
|
||||||
#define XTABS 0014000
|
|
||||||
|
|
||||||
#define B0 0000000
|
|
||||||
#define B50 0000001
|
|
||||||
#define B75 0000002
|
|
||||||
#define B110 0000003
|
|
||||||
#define B134 0000004
|
|
||||||
#define B150 0000005
|
|
||||||
#define B200 0000006
|
|
||||||
#define B300 0000007
|
|
||||||
#define B600 0000010
|
|
||||||
#define B1200 0000011
|
|
||||||
#define B1800 0000012
|
|
||||||
#define B2400 0000013
|
|
||||||
#define B4800 0000014
|
|
||||||
#define B9600 0000015
|
|
||||||
#define B19200 0000016
|
|
||||||
#define B38400 0000017
|
|
||||||
|
|
||||||
#define B57600 0010001
|
|
||||||
#define B115200 0010002
|
|
||||||
#define B230400 0010003
|
|
||||||
#define B460800 0010004
|
|
||||||
#define B500000 0010005
|
|
||||||
#define B576000 0010006
|
|
||||||
#define B921600 0010007
|
|
||||||
#define B1000000 0010010
|
|
||||||
#define B1152000 0010011
|
|
||||||
#define B1500000 0010012
|
|
||||||
#define B2000000 0010013
|
|
||||||
#define B2500000 0010014
|
|
||||||
#define B3000000 0010015
|
|
||||||
#define B3500000 0010016
|
|
||||||
#define B4000000 0010017
|
|
||||||
|
|
||||||
#define CBAUD 0010017
|
|
||||||
|
|
||||||
#define CSIZE 0000060
|
|
||||||
#define CS5 0000000
|
|
||||||
#define CS6 0000020
|
|
||||||
#define CS7 0000040
|
|
||||||
#define CS8 0000060
|
|
||||||
#define CSTOPB 0000100
|
|
||||||
#define CREAD 0000200
|
|
||||||
#define PARENB 0000400
|
|
||||||
#define PARODD 0001000
|
|
||||||
#define HUPCL 0002000
|
|
||||||
#define CLOCAL 0004000
|
|
||||||
|
|
||||||
#define CRTSCTS 020000000000
|
|
||||||
|
|
||||||
#define ISIG 0000001
|
|
||||||
#define ICANON 0000002
|
|
||||||
#define ECHO 0000010
|
|
||||||
#define ECHOE 0000020
|
|
||||||
#define ECHOK 0000040
|
|
||||||
#define ECHONL 0000100
|
|
||||||
#define NOFLSH 0000200
|
|
||||||
#define TOSTOP 0000400
|
|
||||||
#define IEXTEN 0100000
|
|
||||||
|
|
||||||
/* Extensions? */
|
|
||||||
#define ECHOCTL 0001000
|
|
||||||
#define ECHOPRT 0002000
|
|
||||||
#define ECHOKE 0004000
|
|
||||||
#define FLUSHO 0010000
|
|
||||||
#define PENDIN 0040000
|
|
||||||
|
|
||||||
#define TCOOFF 0
|
|
||||||
#define TCOON 1
|
|
||||||
#define TCIOFF 2
|
|
||||||
#define TCION 3
|
|
||||||
|
|
||||||
#define TCIFLUSH 0
|
|
||||||
#define TCOFLUSH 1
|
|
||||||
#define TCIOFLUSH 2
|
|
||||||
|
|
||||||
#define TCSANOW 0
|
|
||||||
#define TCSADRAIN 1
|
|
||||||
#define TCSAFLUSH 2
|
|
|
@ -1,77 +0,0 @@
|
||||||
#undef __WORDSIZE
|
|
||||||
#define __WORDSIZE 32
|
|
||||||
|
|
||||||
struct user_fpregs_struct
|
|
||||||
{
|
|
||||||
long int cwd;
|
|
||||||
long int swd;
|
|
||||||
long int twd;
|
|
||||||
long int fip;
|
|
||||||
long int fcs;
|
|
||||||
long int foo;
|
|
||||||
long int fos;
|
|
||||||
long int st_space[20];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct user_fpxregs_struct
|
|
||||||
{
|
|
||||||
unsigned short int cwd;
|
|
||||||
unsigned short int swd;
|
|
||||||
unsigned short int twd;
|
|
||||||
unsigned short int fop;
|
|
||||||
long int fip;
|
|
||||||
long int fcs;
|
|
||||||
long int foo;
|
|
||||||
long int fos;
|
|
||||||
long int mxcsr;
|
|
||||||
long int reserved;
|
|
||||||
long int st_space[32];
|
|
||||||
long int xmm_space[32];
|
|
||||||
long int padding[56];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct user_regs_struct
|
|
||||||
{
|
|
||||||
long int ebx;
|
|
||||||
long int ecx;
|
|
||||||
long int edx;
|
|
||||||
long int esi;
|
|
||||||
long int edi;
|
|
||||||
long int ebp;
|
|
||||||
long int eax;
|
|
||||||
long int xds;
|
|
||||||
long int xes;
|
|
||||||
long int xfs;
|
|
||||||
long int xgs;
|
|
||||||
long int orig_eax;
|
|
||||||
long int eip;
|
|
||||||
long int xcs;
|
|
||||||
long int eflags;
|
|
||||||
long int esp;
|
|
||||||
long int xss;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct user
|
|
||||||
{
|
|
||||||
struct user_regs_struct regs;
|
|
||||||
int u_fpvalid;
|
|
||||||
struct user_fpregs_struct i387;
|
|
||||||
unsigned long int u_tsize;
|
|
||||||
unsigned long int u_dsize;
|
|
||||||
unsigned long int u_ssize;
|
|
||||||
unsigned long start_code;
|
|
||||||
unsigned long start_stack;
|
|
||||||
long int signal;
|
|
||||||
int reserved;
|
|
||||||
struct user_regs_struct *u_ar0;
|
|
||||||
struct user_fpregs_struct *u_fpstate;
|
|
||||||
unsigned long int magic;
|
|
||||||
char u_comm[32];
|
|
||||||
int u_debugreg[8];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
|
||||||
#define NBPG PAGE_SIZE
|
|
||||||
#define UPAGES 1
|
|
||||||
#define HOST_TEXT_START_ADDR (u.start_code)
|
|
||||||
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
|
|
|
@ -1,13 +0,0 @@
|
||||||
#define WNOHANG 1
|
|
||||||
#define WUNTRACED 2
|
|
||||||
|
|
||||||
#define WSTOPPED 2
|
|
||||||
#define WEXITED 4
|
|
||||||
#define WCONTINUED 8
|
|
||||||
#define WNOWAIT 0x1000000
|
|
||||||
|
|
||||||
#if defined(__XOPEN_SOURCE) || defined(__GNU_SOURCE)
|
|
||||||
#define P_ALL 0
|
|
||||||
#define P_PID 1
|
|
||||||
#define P_PGID 2
|
|
||||||
#endif
|
|
|
@ -1,9 +0,0 @@
|
||||||
#ifndef WEXITSTATUS
|
|
||||||
#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
|
|
||||||
#define WTERMSIG(s) ((s) & 0x7f)
|
|
||||||
#define WSTOPSIG(s) WEXITSTATUS(s)
|
|
||||||
#define WCOREDUMP(s) ((s) & 0x80)
|
|
||||||
#define WIFEXITED(s) (!WTERMSIG(s))
|
|
||||||
#define WIFSTOPPED(s) (((s) & 0xff) == 0x7f)
|
|
||||||
#define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s))
|
|
||||||
#endif
|
|
|
@ -1,6 +0,0 @@
|
||||||
static inline struct pthread *__pthread_self()
|
|
||||||
{
|
|
||||||
struct pthread *self;
|
|
||||||
__asm__ ("movl %%gs:0,%0" : "=r" (self) );
|
|
||||||
return self;
|
|
||||||
}
|
|
|
@ -1,541 +0,0 @@
|
||||||
#ifndef _SYSCALL_H
|
|
||||||
#define _SYSCALL_H
|
|
||||||
|
|
||||||
#define SYSCALL_LL(x) \
|
|
||||||
((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
|
|
||||||
((union { long long ll; long l[2]; }){ .ll = x }).l[1]
|
|
||||||
|
|
||||||
#define SYSCALL_SIGSET_SIZE 8
|
|
||||||
|
|
||||||
#if defined(SYSCALL_NORETURN)
|
|
||||||
static inline long __syscall_ret(unsigned long r)
|
|
||||||
{
|
|
||||||
for(;;);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#elif defined(SYSCALL_RETURN_ERRNO)
|
|
||||||
static inline long __syscall_ret(unsigned long r)
|
|
||||||
{
|
|
||||||
return -r;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
extern long __syscall_ret(unsigned long);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SYSCALL0 "int $128"
|
|
||||||
|
|
||||||
#ifdef __PIC__
|
|
||||||
#define SYSCALL "xchgl %%ebx,%2\n\t" SYSCALL0 "\n\txchgl %%ebx,%2"
|
|
||||||
#define EBX "m"
|
|
||||||
#else
|
|
||||||
#define SYSCALL SYSCALL0
|
|
||||||
#define EBX "b"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline long syscall0(long n)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL0 : "=a"(ret) : "a"(n) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall1(long n, long a1)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), EBX(a1) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall2(long n, long a1, long a2)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), EBX(a1), "c"(a2) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall3(long n, long a1, long a2, long a3)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), EBX(a1), "c"(a2), "d"(a3) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall4(long n, long a1, long a2, long a3, long a4)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), EBX(a1), "c"(a2), "d"(a3), "S"(a4) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall5(long n, long a1, long a2, long a3, long a4, long a5)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), EBX(a1), "c"(a2), "d"(a3), "S"(a4), "D"(a5) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __PIC__
|
|
||||||
/* note: it's probably only safe to use this when a6 is on the stack */
|
|
||||||
static inline long syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ ("xchgl %%ebx,%2 ; pushl %1 ; pushl %%ebp ; movl %%eax,%%ebp ; movl 4(%%esp),%%eax ; int $128 ; popl %%ebp ; popl %%ecx ; xchgl %%ebx,%2"
|
|
||||||
: "=a"(ret) : "g"(n), EBX(a1), "c"(a2), "d"(a3), "S"(a4), "D"(a5), "a"(a6) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline long syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ ("pushl %%ebp ; mov %1, %%ebp ; xchg %%ebp, %7 ; int $128 ; popl %%ebp"
|
|
||||||
: "=a"(ret) : "g"(n), EBX(a1), "c"(a2), "d"(a3), "S"(a4), "D"(a5), "a"(a6) : "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define __NR_restart_syscall 0
|
|
||||||
#define __NR_exit 1
|
|
||||||
#define __NR_fork 2
|
|
||||||
#define __NR_read 3
|
|
||||||
#define __NR_write 4
|
|
||||||
#define __NR_open 5
|
|
||||||
#define __NR_close 6
|
|
||||||
#define __NR_waitpid 7
|
|
||||||
#define __NR_creat 8
|
|
||||||
#define __NR_link 9
|
|
||||||
#define __NR_unlink 10
|
|
||||||
#define __NR_execve 11
|
|
||||||
#define __NR_chdir 12
|
|
||||||
#define __NR_time 13
|
|
||||||
#define __NR_mknod 14
|
|
||||||
#define __NR_chmod 15
|
|
||||||
#define __NR_lchown 16
|
|
||||||
#define __NR_break 17
|
|
||||||
#define __NR_oldstat 18
|
|
||||||
#define __NR_lseek 19
|
|
||||||
#define __NR_getpid 20
|
|
||||||
#define __NR_mount 21
|
|
||||||
#define __NR_umount 22
|
|
||||||
#define __NR_setuid 23
|
|
||||||
#define __NR_getuid 24
|
|
||||||
#define __NR_stime 25
|
|
||||||
#define __NR_ptrace 26
|
|
||||||
#define __NR_alarm 27
|
|
||||||
#define __NR_oldfstat 28
|
|
||||||
#define __NR_pause 29
|
|
||||||
#define __NR_utime 30
|
|
||||||
#define __NR_stty 31
|
|
||||||
#define __NR_gtty 32
|
|
||||||
#define __NR_access 33
|
|
||||||
#define __NR_nice 34
|
|
||||||
#define __NR_ftime 35
|
|
||||||
#define __NR_sync 36
|
|
||||||
#define __NR_kill 37
|
|
||||||
#define __NR_rename 38
|
|
||||||
#define __NR_mkdir 39
|
|
||||||
#define __NR_rmdir 40
|
|
||||||
#define __NR_dup 41
|
|
||||||
#define __NR_pipe 42
|
|
||||||
#define __NR_times 43
|
|
||||||
#define __NR_prof 44
|
|
||||||
#define __NR_brk 45
|
|
||||||
#define __NR_setgid 46
|
|
||||||
#define __NR_getgid 47
|
|
||||||
#define __NR_signal 48
|
|
||||||
#define __NR_geteuid 49
|
|
||||||
#define __NR_getegid 50
|
|
||||||
#define __NR_acct 51
|
|
||||||
#define __NR_umount2 52
|
|
||||||
#define __NR_lock 53
|
|
||||||
#define __NR_ioctl 54
|
|
||||||
#define __NR_fcntl 55
|
|
||||||
#define __NR_mpx 56
|
|
||||||
#define __NR_setpgid 57
|
|
||||||
#define __NR_ulimit 58
|
|
||||||
#define __NR_oldolduname 59
|
|
||||||
#define __NR_umask 60
|
|
||||||
#define __NR_chroot 61
|
|
||||||
#define __NR_ustat 62
|
|
||||||
#define __NR_dup2 63
|
|
||||||
#define __NR_getppid 64
|
|
||||||
#define __NR_getpgrp 65
|
|
||||||
#define __NR_setsid 66
|
|
||||||
#define __NR_sigaction 67
|
|
||||||
#define __NR_sgetmask 68
|
|
||||||
#define __NR_ssetmask 69
|
|
||||||
#define __NR_setreuid 70
|
|
||||||
#define __NR_setregid 71
|
|
||||||
#define __NR_sigsuspend 72
|
|
||||||
#define __NR_sigpending 73
|
|
||||||
#define __NR_sethostname 74
|
|
||||||
#define __NR_setrlimit 75
|
|
||||||
#define __NR_getrlimit 76 /* Back compatible 2Gig limited rlimit */
|
|
||||||
#define __NR_getrusage 77
|
|
||||||
#define __NR_gettimeofday 78
|
|
||||||
#define __NR_settimeofday 79
|
|
||||||
#define __NR_getgroups 80
|
|
||||||
#define __NR_setgroups 81
|
|
||||||
#define __NR_select 82
|
|
||||||
#define __NR_symlink 83
|
|
||||||
#define __NR_oldlstat 84
|
|
||||||
#define __NR_readlink 85
|
|
||||||
#define __NR_uselib 86
|
|
||||||
#define __NR_swapon 87
|
|
||||||
#define __NR_reboot 88
|
|
||||||
#define __NR_readdir 89
|
|
||||||
#define __NR_mmap 90
|
|
||||||
#define __NR_munmap 91
|
|
||||||
#define __NR_truncate 92
|
|
||||||
#define __NR_ftruncate 93
|
|
||||||
#define __NR_fchmod 94
|
|
||||||
#define __NR_fchown 95
|
|
||||||
#define __NR_getpriority 96
|
|
||||||
#define __NR_setpriority 97
|
|
||||||
#define __NR_profil 98
|
|
||||||
#define __NR_statfs 99
|
|
||||||
#define __NR_fstatfs 100
|
|
||||||
#define __NR_ioperm 101
|
|
||||||
#define __NR_socketcall 102
|
|
||||||
#define __NR_syslog 103
|
|
||||||
#define __NR_setitimer 104
|
|
||||||
#define __NR_getitimer 105
|
|
||||||
#define __NR_stat 106
|
|
||||||
#define __NR_lstat 107
|
|
||||||
#define __NR_fstat 108
|
|
||||||
#define __NR_olduname 109
|
|
||||||
#define __NR_iopl 110
|
|
||||||
#define __NR_vhangup 111
|
|
||||||
#define __NR_idle 112
|
|
||||||
#define __NR_vm86old 113
|
|
||||||
#define __NR_wait4 114
|
|
||||||
#define __NR_swapoff 115
|
|
||||||
#define __NR_sysinfo 116
|
|
||||||
#define __NR_ipc 117
|
|
||||||
#define __NR_fsync 118
|
|
||||||
#define __NR_sigreturn 119
|
|
||||||
#define __NR_clone 120
|
|
||||||
#define __NR_setdomainname 121
|
|
||||||
#define __NR_uname 122
|
|
||||||
#define __NR_modify_ldt 123
|
|
||||||
#define __NR_adjtimex 124
|
|
||||||
#define __NR_mprotect 125
|
|
||||||
#define __NR_sigprocmask 126
|
|
||||||
#define __NR_create_module 127
|
|
||||||
#define __NR_init_module 128
|
|
||||||
#define __NR_delete_module 129
|
|
||||||
#define __NR_get_kernel_syms 130
|
|
||||||
#define __NR_quotactl 131
|
|
||||||
#define __NR_getpgid 132
|
|
||||||
#define __NR_fchdir 133
|
|
||||||
#define __NR_bdflush 134
|
|
||||||
#define __NR_sysfs 135
|
|
||||||
#define __NR_personality 136
|
|
||||||
#define __NR_afs_syscall 137
|
|
||||||
#define __NR_setfsuid 138
|
|
||||||
#define __NR_setfsgid 139
|
|
||||||
#define __NR__llseek 140
|
|
||||||
#define __NR_getdents 141
|
|
||||||
#define __NR__newselect 142
|
|
||||||
#define __NR_flock 143
|
|
||||||
#define __NR_msync 144
|
|
||||||
#define __NR_readv 145
|
|
||||||
#define __NR_writev 146
|
|
||||||
#define __NR_getsid 147
|
|
||||||
#define __NR_fdatasync 148
|
|
||||||
#define __NR__sysctl 149
|
|
||||||
#define __NR_mlock 150
|
|
||||||
#define __NR_munlock 151
|
|
||||||
#define __NR_mlockall 152
|
|
||||||
#define __NR_munlockall 153
|
|
||||||
#define __NR_sched_setparam 154
|
|
||||||
#define __NR_sched_getparam 155
|
|
||||||
#define __NR_sched_setscheduler 156
|
|
||||||
#define __NR_sched_getscheduler 157
|
|
||||||
#define __NR_sched_yield 158
|
|
||||||
#define __NR_sched_get_priority_max 159
|
|
||||||
#define __NR_sched_get_priority_min 160
|
|
||||||
#define __NR_sched_rr_get_interval 161
|
|
||||||
#define __NR_nanosleep 162
|
|
||||||
#define __NR_mremap 163
|
|
||||||
#define __NR_setresuid 164
|
|
||||||
#define __NR_getresuid 165
|
|
||||||
#define __NR_vm86 166
|
|
||||||
#define __NR_query_module 167
|
|
||||||
#define __NR_poll 168
|
|
||||||
#define __NR_nfsservctl 169
|
|
||||||
#define __NR_setresgid 170
|
|
||||||
#define __NR_getresgid 171
|
|
||||||
#define __NR_prctl 172
|
|
||||||
#define __NR_rt_sigreturn 173
|
|
||||||
#define __NR_rt_sigaction 174
|
|
||||||
#define __NR_rt_sigprocmask 175
|
|
||||||
#define __NR_rt_sigpending 176
|
|
||||||
#define __NR_rt_sigtimedwait 177
|
|
||||||
#define __NR_rt_sigqueueinfo 178
|
|
||||||
#define __NR_rt_sigsuspend 179
|
|
||||||
#define __NR_pread64 180
|
|
||||||
#define __NR_pwrite64 181
|
|
||||||
#define __NR_chown 182
|
|
||||||
#define __NR_getcwd 183
|
|
||||||
#define __NR_capget 184
|
|
||||||
#define __NR_capset 185
|
|
||||||
#define __NR_sigaltstack 186
|
|
||||||
#define __NR_sendfile 187
|
|
||||||
#define __NR_getpmsg 188
|
|
||||||
#define __NR_putpmsg 189
|
|
||||||
#define __NR_vfork 190
|
|
||||||
#define __NR_ugetrlimit 191
|
|
||||||
#define __NR_mmap2 192
|
|
||||||
#define __NR_truncate64 193
|
|
||||||
#define __NR_ftruncate64 194
|
|
||||||
#define __NR_stat64 195
|
|
||||||
#define __NR_lstat64 196
|
|
||||||
#define __NR_fstat64 197
|
|
||||||
#define __NR_lchown32 198
|
|
||||||
#define __NR_getuid32 199
|
|
||||||
#define __NR_getgid32 200
|
|
||||||
#define __NR_geteuid32 201
|
|
||||||
#define __NR_getegid32 202
|
|
||||||
#define __NR_setreuid32 203
|
|
||||||
#define __NR_setregid32 204
|
|
||||||
#define __NR_getgroups32 205
|
|
||||||
#define __NR_setgroups32 206
|
|
||||||
#define __NR_fchown32 207
|
|
||||||
#define __NR_setresuid32 208
|
|
||||||
#define __NR_getresuid32 209
|
|
||||||
#define __NR_setresgid32 210
|
|
||||||
#define __NR_getresgid32 211
|
|
||||||
#define __NR_chown32 212
|
|
||||||
#define __NR_setuid32 213
|
|
||||||
#define __NR_setgid32 214
|
|
||||||
#define __NR_setfsuid32 215
|
|
||||||
#define __NR_setfsgid32 216
|
|
||||||
#define __NR_pivot_root 217
|
|
||||||
#define __NR_mincore 218
|
|
||||||
#define __NR_madvise 219
|
|
||||||
#define __NR_madvise1 219
|
|
||||||
#define __NR_getdents64 220
|
|
||||||
#define __NR_fcntl64 221
|
|
||||||
/* 223 is unused */
|
|
||||||
#define __NR_gettid 224
|
|
||||||
#define __NR_readahead 225
|
|
||||||
#define __NR_setxattr 226
|
|
||||||
#define __NR_lsetxattr 227
|
|
||||||
#define __NR_fsetxattr 228
|
|
||||||
#define __NR_getxattr 229
|
|
||||||
#define __NR_lgetxattr 230
|
|
||||||
#define __NR_fgetxattr 231
|
|
||||||
#define __NR_listxattr 232
|
|
||||||
#define __NR_llistxattr 233
|
|
||||||
#define __NR_flistxattr 234
|
|
||||||
#define __NR_removexattr 235
|
|
||||||
#define __NR_lremovexattr 236
|
|
||||||
#define __NR_fremovexattr 237
|
|
||||||
#define __NR_tkill 238
|
|
||||||
#define __NR_sendfile64 239
|
|
||||||
#define __NR_futex 240
|
|
||||||
#define __NR_sched_setaffinity 241
|
|
||||||
#define __NR_sched_getaffinity 242
|
|
||||||
#define __NR_set_thread_area 243
|
|
||||||
#define __NR_get_thread_area 244
|
|
||||||
#define __NR_io_setup 245
|
|
||||||
#define __NR_io_destroy 246
|
|
||||||
#define __NR_io_getevents 247
|
|
||||||
#define __NR_io_submit 248
|
|
||||||
#define __NR_io_cancel 249
|
|
||||||
#define __NR_fadvise64 250
|
|
||||||
/* 251 is available for reuse (was briefly sys_set_zone_reclaim) */
|
|
||||||
#define __NR_exit_group 252
|
|
||||||
#define __NR_lookup_dcookie 253
|
|
||||||
#define __NR_epoll_create 254
|
|
||||||
#define __NR_epoll_ctl 255
|
|
||||||
#define __NR_epoll_wait 256
|
|
||||||
#define __NR_remap_file_pages 257
|
|
||||||
#define __NR_set_tid_address 258
|
|
||||||
#define __NR_timer_create 259
|
|
||||||
#define __NR_timer_settime (__NR_timer_create+1)
|
|
||||||
#define __NR_timer_gettime (__NR_timer_create+2)
|
|
||||||
#define __NR_timer_getoverrun (__NR_timer_create+3)
|
|
||||||
#define __NR_timer_delete (__NR_timer_create+4)
|
|
||||||
#define __NR_clock_settime (__NR_timer_create+5)
|
|
||||||
#define __NR_clock_gettime (__NR_timer_create+6)
|
|
||||||
#define __NR_clock_getres (__NR_timer_create+7)
|
|
||||||
#define __NR_clock_nanosleep (__NR_timer_create+8)
|
|
||||||
#define __NR_statfs64 268
|
|
||||||
#define __NR_fstatfs64 269
|
|
||||||
#define __NR_tgkill 270
|
|
||||||
#define __NR_utimes 271
|
|
||||||
#define __NR_fadvise64_64 272
|
|
||||||
#define __NR_vserver 273
|
|
||||||
#define __NR_mbind 274
|
|
||||||
#define __NR_get_mempolicy 275
|
|
||||||
#define __NR_set_mempolicy 276
|
|
||||||
#define __NR_mq_open 277
|
|
||||||
#define __NR_mq_unlink (__NR_mq_open+1)
|
|
||||||
#define __NR_mq_timedsend (__NR_mq_open+2)
|
|
||||||
#define __NR_mq_timedreceive (__NR_mq_open+3)
|
|
||||||
#define __NR_mq_notify (__NR_mq_open+4)
|
|
||||||
#define __NR_mq_getsetattr (__NR_mq_open+5)
|
|
||||||
#define __NR_kexec_load 283
|
|
||||||
#define __NR_waitid 284
|
|
||||||
/* #define __NR_sys_setaltroot 285 */
|
|
||||||
#define __NR_add_key 286
|
|
||||||
#define __NR_request_key 287
|
|
||||||
#define __NR_keyctl 288
|
|
||||||
#define __NR_ioprio_set 289
|
|
||||||
#define __NR_ioprio_get 290
|
|
||||||
#define __NR_inotify_init 291
|
|
||||||
#define __NR_inotify_add_watch 292
|
|
||||||
#define __NR_inotify_rm_watch 293
|
|
||||||
#define __NR_migrate_pages 294
|
|
||||||
#define __NR_openat 295
|
|
||||||
#define __NR_mkdirat 296
|
|
||||||
#define __NR_mknodat 297
|
|
||||||
#define __NR_fchownat 298
|
|
||||||
#define __NR_futimesat 299
|
|
||||||
#define __NR_fstatat64 300
|
|
||||||
#define __NR_unlinkat 301
|
|
||||||
#define __NR_renameat 302
|
|
||||||
#define __NR_linkat 303
|
|
||||||
#define __NR_symlinkat 304
|
|
||||||
#define __NR_readlinkat 305
|
|
||||||
#define __NR_fchmodat 306
|
|
||||||
#define __NR_faccessat 307
|
|
||||||
#define __NR_pselect6 308
|
|
||||||
#define __NR_ppoll 309
|
|
||||||
#define __NR_unshare 310
|
|
||||||
#define __NR_set_robust_list 311
|
|
||||||
#define __NR_get_robust_list 312
|
|
||||||
#define __NR_splice 313
|
|
||||||
#define __NR_sync_file_range 314
|
|
||||||
#define __NR_tee 315
|
|
||||||
#define __NR_vmsplice 316
|
|
||||||
#define __NR_move_pages 317
|
|
||||||
#define __NR_getcpu 318
|
|
||||||
#define __NR_epoll_pwait 319
|
|
||||||
#define __NR_utimensat 320
|
|
||||||
#define __NR_signalfd 321
|
|
||||||
#define __NR_timerfd_create 322
|
|
||||||
#define __NR_eventfd 323
|
|
||||||
#define __NR_fallocate 324
|
|
||||||
#define __NR_timerfd_settime 325
|
|
||||||
#define __NR_timerfd_gettime 326
|
|
||||||
#define __NR_signalfd4 327
|
|
||||||
#define __NR_eventfd2 328
|
|
||||||
#define __NR_epoll_create1 329
|
|
||||||
#define __NR_dup3 330
|
|
||||||
#define __NR_pipe2 331
|
|
||||||
#define __NR_inotify_init1 332
|
|
||||||
#define __NR_preadv 333
|
|
||||||
#define __NR_pwritev 334
|
|
||||||
|
|
||||||
/* fixup legacy 16-bit junk */
|
|
||||||
#undef __NR_lchown
|
|
||||||
#undef __NR_getuid
|
|
||||||
#undef __NR_getgid
|
|
||||||
#undef __NR_geteuid
|
|
||||||
#undef __NR_getegid
|
|
||||||
#undef __NR_setreuid
|
|
||||||
#undef __NR_setregid
|
|
||||||
#undef __NR_getgroups
|
|
||||||
#undef __NR_setgroups
|
|
||||||
#undef __NR_fchown
|
|
||||||
#undef __NR_setresuid
|
|
||||||
#undef __NR_getresuid
|
|
||||||
#undef __NR_setresgid
|
|
||||||
#undef __NR_getresgid
|
|
||||||
#undef __NR_chown
|
|
||||||
#undef __NR_setuid
|
|
||||||
#undef __NR_setgid
|
|
||||||
#undef __NR_setfsuid
|
|
||||||
#undef __NR_setfsgid
|
|
||||||
#define __NR_lchown __NR_lchown32
|
|
||||||
#define __NR_getuid __NR_getuid32
|
|
||||||
#define __NR_getgid __NR_getgid32
|
|
||||||
#define __NR_geteuid __NR_geteuid32
|
|
||||||
#define __NR_getegid __NR_getegid32
|
|
||||||
#define __NR_setreuid __NR_setreuid32
|
|
||||||
#define __NR_setregid __NR_setregid32
|
|
||||||
#define __NR_getgroups __NR_getgroups32
|
|
||||||
#define __NR_setgroups __NR_setgroups32
|
|
||||||
#define __NR_fchown __NR_fchown32
|
|
||||||
#define __NR_setresuid __NR_setresuid32
|
|
||||||
#define __NR_getresuid __NR_getresuid32
|
|
||||||
#define __NR_setresgid __NR_setresgid32
|
|
||||||
#define __NR_getresgid __NR_getresgid32
|
|
||||||
#define __NR_chown __NR_chown32
|
|
||||||
#define __NR_setuid __NR_setuid32
|
|
||||||
#define __NR_setgid __NR_setgid32
|
|
||||||
#define __NR_setfsuid __NR_setfsuid32
|
|
||||||
#define __NR_setfsgid __NR_setfsgid32
|
|
||||||
|
|
||||||
|
|
||||||
/* fixup legacy 32-bit-vs-lfs64 junk */
|
|
||||||
#undef __NR_getdents
|
|
||||||
#undef __NR_ftruncate
|
|
||||||
#undef __NR_truncate
|
|
||||||
#undef __NR_stat
|
|
||||||
#undef __NR_fstat
|
|
||||||
#undef __NR_lstat
|
|
||||||
#undef __NR_statfs
|
|
||||||
#undef __NR_fstatfs
|
|
||||||
#define __NR_getdents __NR_getdents64
|
|
||||||
#define __NR_ftruncate __NR_ftruncate64
|
|
||||||
#define __NR_truncate __NR_truncate64
|
|
||||||
#define __NR_stat __NR_stat64
|
|
||||||
#define __NR_fstat __NR_fstat64
|
|
||||||
#define __NR_lstat __NR_lstat64
|
|
||||||
#define __NR_statfs __NR_statfs64
|
|
||||||
#define __NR_fstatfs __NR_fstatfs64
|
|
||||||
#define __NR_fstatat __NR_fstatat64
|
|
||||||
#define __NR_pread __NR_pread64
|
|
||||||
#define __NR_pwrite __NR_pwrite64
|
|
||||||
|
|
||||||
#undef __NR_getrlimit
|
|
||||||
#define __NR_getrlimit __NR_ugetrlimit
|
|
||||||
|
|
||||||
#undef __NR_select
|
|
||||||
#define __NR_select __NR__newselect
|
|
||||||
|
|
||||||
|
|
||||||
#define __SC_socket 1
|
|
||||||
#define __SC_bind 2
|
|
||||||
#define __SC_connect 3
|
|
||||||
#define __SC_listen 4
|
|
||||||
#define __SC_accept 5
|
|
||||||
#define __SC_getsockname 6
|
|
||||||
#define __SC_getpeername 7
|
|
||||||
#define __SC_socketpair 8
|
|
||||||
#define __SC_send 9
|
|
||||||
#define __SC_recv 10
|
|
||||||
#define __SC_sendto 11
|
|
||||||
#define __SC_recvfrom 12
|
|
||||||
#define __SC_shutdown 13
|
|
||||||
#define __SC_setsockopt 14
|
|
||||||
#define __SC_getsockopt 15
|
|
||||||
#define __SC_sendmsg 16
|
|
||||||
#define __SC_recvmsg 17
|
|
||||||
|
|
||||||
|
|
||||||
#define socketcall(nm, a, b, c, d, e, f) syscall2(__NR_socketcall, __SC_##nm, \
|
|
||||||
(long)(long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f })
|
|
||||||
|
|
||||||
|
|
||||||
#undef O_LARGEFILE
|
|
||||||
#define O_LARGEFILE 0100000
|
|
||||||
|
|
||||||
/* the following are needed for iso c functions to use */
|
|
||||||
#define __syscall_open(filename, flags, mode) syscall3(__NR_open, (long)(filename), (flags)|O_LARGEFILE, (mode))
|
|
||||||
#define __syscall_read(fd, buf, len) syscall3(__NR_read, (fd), (long)(buf), (len))
|
|
||||||
#define __syscall_write(fd, buf, len) syscall3(__NR_write, (fd), (long)(buf), (len))
|
|
||||||
#define __syscall_close(fd) syscall1(__NR_close, (fd))
|
|
||||||
#define __syscall_fcntl(fd, cmd, arg) syscall3(__NR_fcntl64, (fd), (cmd), (long)(arg))
|
|
||||||
#define __syscall_dup2(old, new) syscall2(__NR_dup2, (old), (new))
|
|
||||||
#define __syscall_unlink(path) syscall1(__NR_unlink, (long)(path))
|
|
||||||
#define __syscall_getpid() syscall0(__NR_getpid)
|
|
||||||
#define __syscall_kill(pid,sig) syscall2(__NR_kill, (pid), (sig))
|
|
||||||
#define __syscall_sigaction(sig,new,old) syscall4(__NR_rt_sigaction, (sig), (long)(new), (long)(old), SYSCALL_SIGSET_SIZE)
|
|
||||||
#define __syscall_ioctl(fd,ioc,arg) syscall3(__NR_ioctl, (fd), (ioc), (long)(arg))
|
|
||||||
#define __syscall_exit(code) syscall1(__NR_exit, code)
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,109 +0,0 @@
|
||||||
#ifndef _INTERNAA_ATOMIC_H
|
|
||||||
#define _INTERNAA_ATOMIC_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
static inline int a_ctz_64(uint64_t x)
|
|
||||||
{
|
|
||||||
long r;
|
|
||||||
__asm__( "bsf %1,%0" : "=r"(r) : "r"(x) );
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; andq %1, %0"
|
|
||||||
: "=m"(*(long *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_or_64(volatile uint64_t *p, uint64_t v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; orq %1, %0"
|
|
||||||
: "=m"(*(long *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_store_l(volatile void *p, long x)
|
|
||||||
{
|
|
||||||
__asm__( "movq %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_or_l(volatile void *p, long v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; orq %1, %0"
|
|
||||||
: "=m"(*(long *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void *a_cas_p(volatile void *p, void *t, void *s)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; cmpxchg %3, %1"
|
|
||||||
: "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" );
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long a_cas_l(volatile void *p, long t, long s)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; cmpxchg %3, %1"
|
|
||||||
: "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" );
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void *a_swap_p(void *volatile *x, void *v)
|
|
||||||
{
|
|
||||||
__asm__( "xchg %0, %1" : "=r"(v), "=m"(*(void **)x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
static inline long a_swap_l(volatile void *x, long v)
|
|
||||||
{
|
|
||||||
__asm__( "xchg %0, %1" : "=r"(v), "=m"(*(long *)x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_or(volatile void *p, int v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; orl %1, %0"
|
|
||||||
: "=m"(*(int *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_and(volatile void *p, int v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; andl %1, %0"
|
|
||||||
: "=m"(*(int *)p) : "r"(v) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int a_swap(volatile int *x, int v)
|
|
||||||
{
|
|
||||||
__asm__( "xchg %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define a_xchg a_swap
|
|
||||||
|
|
||||||
static inline int a_fetch_add(volatile int *x, int v)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; xadd %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" );
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_inc(volatile int *x)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; incl %0" : "=m"(*x) : "m"(*x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_dec(volatile int *x)
|
|
||||||
{
|
|
||||||
__asm__( "lock ; decl %0" : "=m"(*x) : "m"(*x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_store(volatile int *p, int x)
|
|
||||||
{
|
|
||||||
__asm__( "movl %1, %0" : "=m"(*p) : "r"(x) : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void a_spin()
|
|
||||||
{
|
|
||||||
__asm__ __volatile__( "pause" : : : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,468 +0,0 @@
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#if defined(__NEED_size_t) && !defined(__DEFINED_size_t)
|
|
||||||
typedef unsigned long size_t;
|
|
||||||
#define __DEFINED_size_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_ssize_t) && !defined(__DEFINED_ssize_t)
|
|
||||||
typedef long ssize_t;
|
|
||||||
#define __DEFINED_ssize_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_ptrdiff_t) && !defined(__DEFINED_ptrdiff_t)
|
|
||||||
typedef long ptrdiff_t;
|
|
||||||
#define __DEFINED_ptrdiff_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
#if defined(__NEED_va_list) && !defined(__DEFINED_va_list)
|
|
||||||
typedef __builtin_va_list va_list;
|
|
||||||
#define __DEFINED_va_list
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
|
|
||||||
typedef int wchar_t;
|
|
||||||
#define __DEFINED_wchar_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_wint_t) && !defined(__DEFINED_wint_t)
|
|
||||||
typedef int wint_t;
|
|
||||||
#define __DEFINED_wint_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_wctrans_t) && !defined(__DEFINED_wctrans_t)
|
|
||||||
typedef int wctrans_t;
|
|
||||||
#define __DEFINED_wctrans_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_wctype_t) && !defined(__DEFINED_wctype_t)
|
|
||||||
typedef int wctype_t;
|
|
||||||
#define __DEFINED_wctype_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_int8_t) && !defined(__DEFINED_int8_t)
|
|
||||||
typedef char int8_t;
|
|
||||||
#define __DEFINED_int8_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int16_t) && !defined(__DEFINED_int16_t)
|
|
||||||
typedef short int16_t;
|
|
||||||
#define __DEFINED_int16_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int32_t) && !defined(__DEFINED_int32_t)
|
|
||||||
typedef int int32_t;
|
|
||||||
#define __DEFINED_int32_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int64_t) && !defined(__DEFINED_int64_t)
|
|
||||||
typedef long int64_t;
|
|
||||||
#define __DEFINED_int64_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_uint8_t) && !defined(__DEFINED_uint8_t)
|
|
||||||
typedef unsigned char uint8_t;
|
|
||||||
#define __DEFINED_uint8_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint16_t) && !defined(__DEFINED_uint16_t)
|
|
||||||
typedef unsigned short uint16_t;
|
|
||||||
#define __DEFINED_uint16_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint32_t) && !defined(__DEFINED_uint32_t)
|
|
||||||
typedef unsigned int uint32_t;
|
|
||||||
#define __DEFINED_uint32_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint64_t) && !defined(__DEFINED_uint64_t)
|
|
||||||
typedef unsigned long uint64_t;
|
|
||||||
#define __DEFINED_uint64_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED___uint8_t) && !defined(__DEFINED___uint8_t)
|
|
||||||
typedef unsigned char __uint8_t;
|
|
||||||
#define __DEFINED___uint8_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED___uint16_t) && !defined(__DEFINED___uint16_t)
|
|
||||||
typedef unsigned short __uint16_t;
|
|
||||||
#define __DEFINED___uint16_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED___uint32_t) && !defined(__DEFINED___uint32_t)
|
|
||||||
typedef unsigned int __uint32_t;
|
|
||||||
#define __DEFINED___uint32_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED___uint64_t) && !defined(__DEFINED___uint64_t)
|
|
||||||
typedef unsigned long __uint64_t;
|
|
||||||
#define __DEFINED___uint64_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_int_least8_t) && !defined(__DEFINED_int_least8_t)
|
|
||||||
typedef int8_t int_least8_t;
|
|
||||||
#define __DEFINED_int_least8_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int_least16_t) && !defined(__DEFINED_int_least16_t)
|
|
||||||
typedef int16_t int_least16_t;
|
|
||||||
#define __DEFINED_int_least16_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int_least32_t) && !defined(__DEFINED_int_least32_t)
|
|
||||||
typedef int32_t int_least32_t;
|
|
||||||
#define __DEFINED_int_least32_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int_least64_t) && !defined(__DEFINED_int_least64_t)
|
|
||||||
typedef int64_t int_least64_t;
|
|
||||||
#define __DEFINED_int_least64_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_least8_t) && !defined(__DEFINED_uint_least8_t)
|
|
||||||
typedef uint8_t uint_least8_t;
|
|
||||||
#define __DEFINED_uint_least8_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_least16_t) && !defined(__DEFINED_uint_least16_t)
|
|
||||||
typedef uint16_t uint_least16_t;
|
|
||||||
#define __DEFINED_uint_least16_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_least32_t) && !defined(__DEFINED_uint_least32_t)
|
|
||||||
typedef uint32_t uint_least32_t;
|
|
||||||
#define __DEFINED_uint_least32_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_least64_t) && !defined(__DEFINED_uint_least64_t)
|
|
||||||
typedef uint64_t uint_least64_t;
|
|
||||||
#define __DEFINED_uint_least64_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_int_fast8_t) && !defined(__DEFINED_int_fast8_t)
|
|
||||||
typedef int8_t int_fast8_t;
|
|
||||||
#define __DEFINED_int_fast8_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int_fast16_t) && !defined(__DEFINED_int_fast16_t)
|
|
||||||
typedef int int_fast16_t;
|
|
||||||
#define __DEFINED_int_fast16_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int_fast32_t) && !defined(__DEFINED_int_fast32_t)
|
|
||||||
typedef int int_fast32_t;
|
|
||||||
#define __DEFINED_int_fast32_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_int_fast64_t) && !defined(__DEFINED_int_fast64_t)
|
|
||||||
typedef int64_t int_fast64_t;
|
|
||||||
#define __DEFINED_int_fast64_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_fast8_t) && !defined(__DEFINED_uint_fast8_t)
|
|
||||||
typedef unsigned char uint_fast8_t;
|
|
||||||
#define __DEFINED_uint_fast8_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_fast16_t) && !defined(__DEFINED_uint_fast16_t)
|
|
||||||
typedef unsigned int uint_fast16_t;
|
|
||||||
#define __DEFINED_uint_fast16_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_fast32_t) && !defined(__DEFINED_uint_fast32_t)
|
|
||||||
typedef unsigned int uint_fast32_t;
|
|
||||||
#define __DEFINED_uint_fast32_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uint_fast64_t) && !defined(__DEFINED_uint_fast64_t)
|
|
||||||
typedef uint64_t uint_fast64_t;
|
|
||||||
#define __DEFINED_uint_fast64_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_intptr_t) && !defined(__DEFINED_intptr_t)
|
|
||||||
typedef long intptr_t;
|
|
||||||
#define __DEFINED_intptr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uintptr_t) && !defined(__DEFINED_uintptr_t)
|
|
||||||
typedef unsigned long uintptr_t;
|
|
||||||
#define __DEFINED_uintptr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_intmax_t) && !defined(__DEFINED_intmax_t)
|
|
||||||
typedef long long intmax_t;
|
|
||||||
#define __DEFINED_intmax_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uintmax_t) && !defined(__DEFINED_uintmax_t)
|
|
||||||
typedef unsigned long long uintmax_t;
|
|
||||||
#define __DEFINED_uintmax_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_time_t) && !defined(__DEFINED_time_t)
|
|
||||||
typedef long time_t;
|
|
||||||
#define __DEFINED_time_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_useconds_t) && !defined(__DEFINED_useconds_t)
|
|
||||||
typedef long useconds_t;
|
|
||||||
#define __DEFINED_useconds_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_suseconds_t) && !defined(__DEFINED_suseconds_t)
|
|
||||||
typedef long suseconds_t;
|
|
||||||
#define __DEFINED_suseconds_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_struct_timeval) && !defined(__DEFINED_struct_timeval)
|
|
||||||
struct timeval { time_t tv_sec; int tv_usec; };
|
|
||||||
#define __DEFINED_struct_timeval
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_struct_timespec) && !defined(__DEFINED_struct_timespec)
|
|
||||||
struct timespec { time_t tv_sec; unsigned long tv_nsec; };
|
|
||||||
#define __DEFINED_struct_timespec
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_pid_t) && !defined(__DEFINED_pid_t)
|
|
||||||
typedef int pid_t;
|
|
||||||
#define __DEFINED_pid_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_id_t) && !defined(__DEFINED_id_t)
|
|
||||||
typedef int id_t;
|
|
||||||
#define __DEFINED_id_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_uid_t) && !defined(__DEFINED_uid_t)
|
|
||||||
typedef unsigned int uid_t;
|
|
||||||
#define __DEFINED_uid_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_gid_t) && !defined(__DEFINED_gid_t)
|
|
||||||
typedef unsigned int gid_t;
|
|
||||||
#define __DEFINED_gid_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_key_t) && !defined(__DEFINED_key_t)
|
|
||||||
typedef int key_t;
|
|
||||||
#define __DEFINED_key_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_t) && !defined(__DEFINED_pthread_t)
|
|
||||||
typedef struct __pthread * pthread_t;
|
|
||||||
#define __DEFINED_pthread_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_once_t) && !defined(__DEFINED_pthread_once_t)
|
|
||||||
typedef int pthread_once_t;
|
|
||||||
#define __DEFINED_pthread_once_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_key_t) && !defined(__DEFINED_pthread_key_t)
|
|
||||||
typedef int pthread_key_t;
|
|
||||||
#define __DEFINED_pthread_key_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_spinlock_t) && !defined(__DEFINED_pthread_spinlock_t)
|
|
||||||
typedef int pthread_spinlock_t;
|
|
||||||
#define __DEFINED_pthread_spinlock_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_attr_t) && !defined(__DEFINED_pthread_attr_t)
|
|
||||||
typedef struct { union { int __i[14]; size_t __s[2]; } __u; } pthread_attr_t;
|
|
||||||
#define __DEFINED_pthread_attr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_mutexattr_t) && !defined(__DEFINED_pthread_mutexattr_t)
|
|
||||||
typedef unsigned pthread_mutexattr_t;
|
|
||||||
#define __DEFINED_pthread_mutexattr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_condattr_t) && !defined(__DEFINED_pthread_condattr_t)
|
|
||||||
typedef unsigned pthread_condattr_t;
|
|
||||||
#define __DEFINED_pthread_condattr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_barrierattr_t) && !defined(__DEFINED_pthread_barrierattr_t)
|
|
||||||
typedef unsigned pthread_barrierattr_t;
|
|
||||||
#define __DEFINED_pthread_barrierattr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_rwlockattr_t) && !defined(__DEFINED_pthread_rwlockattr_t)
|
|
||||||
typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
|
|
||||||
#define __DEFINED_pthread_rwlockattr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_mutex_t) && !defined(__DEFINED_pthread_mutex_t)
|
|
||||||
typedef struct { union { int __i[10]; void *__p[1]; } __u; } pthread_mutex_t;
|
|
||||||
#define __DEFINED_pthread_mutex_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_cond_t) && !defined(__DEFINED_pthread_cond_t)
|
|
||||||
typedef struct { union { int __i[12]; void *__p[1]; } __u; } pthread_cond_t;
|
|
||||||
#define __DEFINED_pthread_cond_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_rwlock_t) && !defined(__DEFINED_pthread_rwlock_t)
|
|
||||||
typedef struct { union { int __i[14]; void *__p[1]; } __u; } pthread_rwlock_t;
|
|
||||||
#define __DEFINED_pthread_rwlock_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_pthread_barrier_t) && !defined(__DEFINED_pthread_barrier_t)
|
|
||||||
typedef struct { union { int __i[8]; void *__p[1]; } __u; } pthread_barrier_t;
|
|
||||||
#define __DEFINED_pthread_barrier_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_off_t) && !defined(__DEFINED_off_t)
|
|
||||||
typedef long off_t;
|
|
||||||
#define __DEFINED_off_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_mode_t) && !defined(__DEFINED_mode_t)
|
|
||||||
typedef unsigned int mode_t;
|
|
||||||
#define __DEFINED_mode_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_nlink_t) && !defined(__DEFINED_nlink_t)
|
|
||||||
typedef unsigned long nlink_t;
|
|
||||||
#define __DEFINED_nlink_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_ino_t) && !defined(__DEFINED_ino_t)
|
|
||||||
typedef unsigned long long ino_t;
|
|
||||||
#define __DEFINED_ino_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_dev_t) && !defined(__DEFINED_dev_t)
|
|
||||||
typedef unsigned long dev_t;
|
|
||||||
#define __DEFINED_dev_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_blksize_t) && !defined(__DEFINED_blksize_t)
|
|
||||||
typedef long blksize_t;
|
|
||||||
#define __DEFINED_blksize_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_blkcnt_t) && !defined(__DEFINED_blkcnt_t)
|
|
||||||
typedef long long blkcnt_t;
|
|
||||||
#define __DEFINED_blkcnt_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_fsblkcnt_t) && !defined(__DEFINED_fsblkcnt_t)
|
|
||||||
typedef unsigned long long fsblkcnt_t;
|
|
||||||
#define __DEFINED_fsblkcnt_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_fsfilcnt_t) && !defined(__DEFINED_fsfilcnt_t)
|
|
||||||
typedef unsigned long long fsfilcnt_t;
|
|
||||||
#define __DEFINED_fsfilcnt_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_timer_t) && !defined(__DEFINED_timer_t)
|
|
||||||
typedef void * timer_t;
|
|
||||||
#define __DEFINED_timer_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_clockid_t) && !defined(__DEFINED_clockid_t)
|
|
||||||
typedef int clockid_t;
|
|
||||||
#define __DEFINED_clockid_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_clock_t) && !defined(__DEFINED_clock_t)
|
|
||||||
typedef long clock_t;
|
|
||||||
#define __DEFINED_clock_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_sigset_t) && !defined(__DEFINED_sigset_t)
|
|
||||||
typedef struct { unsigned long __bits[128/sizeof(long)]; } sigset_t;
|
|
||||||
#define __DEFINED_sigset_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
#if defined(__NEED_siginfo_t) && !defined(__DEFINED_siginfo_t)
|
|
||||||
typedef struct __siginfo siginfo_t;
|
|
||||||
#define __DEFINED_siginfo_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
#if defined(__NEED_siginfo_t) && !defined(__DEFINED_siginfo_t)
|
|
||||||
#define siginfo_t struct __siginfo
|
|
||||||
#define __DEFINED_siginfo_t
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_socklen_t) && !defined(__DEFINED_socklen_t)
|
|
||||||
typedef unsigned int socklen_t;
|
|
||||||
#define __DEFINED_socklen_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_sa_family_t) && !defined(__DEFINED_sa_family_t)
|
|
||||||
typedef unsigned short sa_family_t;
|
|
||||||
#define __DEFINED_sa_family_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_in_port_t) && !defined(__DEFINED_in_port_t)
|
|
||||||
typedef unsigned short in_port_t;
|
|
||||||
#define __DEFINED_in_port_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_in_addr_t) && !defined(__DEFINED_in_addr_t)
|
|
||||||
typedef unsigned int in_addr_t;
|
|
||||||
#define __DEFINED_in_addr_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__NEED_struct_in_addr) && !defined(__DEFINED_struct_in_addr)
|
|
||||||
struct in_addr { in_addr_t s_addr; };
|
|
||||||
#define __DEFINED_struct_in_addr
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_FILE) && !defined(__DEFINED_FILE)
|
|
||||||
typedef struct __FILE_s FILE;
|
|
||||||
#define __DEFINED_FILE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_nl_item) && !defined(__DEFINED_nl_item)
|
|
||||||
typedef int nl_item;
|
|
||||||
#define __DEFINED_nl_item
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_locale_t) && !defined(__DEFINED_locale_t)
|
|
||||||
typedef struct __locale * locale_t;
|
|
||||||
#define __DEFINED_locale_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__NEED_struct_iovec) && !defined(__DEFINED_struct_iovec)
|
|
||||||
struct iovec { void *iov_base; size_t iov_len; };
|
|
||||||
#define __DEFINED_struct_iovec
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -1,142 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
sed -e << EOF \
|
|
||||||
'/^TYPEDEF/s/TYPEDEF \(.*\) \([^ ]*\);$/#if defined(__NEED_\2) \&\& !defined(__DEFINED_\2)\
|
|
||||||
typedef \1 \2;\
|
|
||||||
#define __DEFINED_\2\
|
|
||||||
#endif\
|
|
||||||
/
|
|
||||||
/^STRUCT/s/STRUCT * \([^ ]*\) \(.*\);$/#if defined(__NEED_struct_\1) \&\& !defined(__DEFINED_struct_\1)\
|
|
||||||
struct \1 \2;\
|
|
||||||
#define __DEFINED_struct_\1\
|
|
||||||
#endif\
|
|
||||||
/
|
|
||||||
/^UNION/s/UNION * \([^ ]*\) \(.*\);$/#if defined(__NEED_union_\1) \&\& !defined(__DEFINED_union_\1)\
|
|
||||||
union \1 \2;\
|
|
||||||
#define __DEFINED_union_\1\
|
|
||||||
#endif\
|
|
||||||
/'
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
TYPEDEF unsigned long size_t;
|
|
||||||
TYPEDEF long ssize_t;
|
|
||||||
TYPEDEF long ptrdiff_t;
|
|
||||||
#if 0
|
|
||||||
TYPEDEF __builtin_va_list va_list;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TYPEDEF int wchar_t;
|
|
||||||
TYPEDEF int wint_t;
|
|
||||||
TYPEDEF int wctrans_t;
|
|
||||||
TYPEDEF int wctype_t;
|
|
||||||
|
|
||||||
TYPEDEF char int8_t;
|
|
||||||
TYPEDEF short int16_t;
|
|
||||||
TYPEDEF int int32_t;
|
|
||||||
TYPEDEF long int64_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned char uint8_t;
|
|
||||||
TYPEDEF unsigned short uint16_t;
|
|
||||||
TYPEDEF unsigned int uint32_t;
|
|
||||||
TYPEDEF unsigned long uint64_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned char __uint8_t;
|
|
||||||
TYPEDEF unsigned short __uint16_t;
|
|
||||||
TYPEDEF unsigned int __uint32_t;
|
|
||||||
TYPEDEF unsigned long __uint64_t;
|
|
||||||
|
|
||||||
TYPEDEF int8_t int_least8_t;
|
|
||||||
TYPEDEF int16_t int_least16_t;
|
|
||||||
TYPEDEF int32_t int_least32_t;
|
|
||||||
TYPEDEF int64_t int_least64_t;
|
|
||||||
|
|
||||||
TYPEDEF uint8_t uint_least8_t;
|
|
||||||
TYPEDEF uint16_t uint_least16_t;
|
|
||||||
TYPEDEF uint32_t uint_least32_t;
|
|
||||||
TYPEDEF uint64_t uint_least64_t;
|
|
||||||
|
|
||||||
TYPEDEF int8_t int_fast8_t;
|
|
||||||
TYPEDEF int int_fast16_t;
|
|
||||||
TYPEDEF int int_fast32_t;
|
|
||||||
TYPEDEF int64_t int_fast64_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned char uint_fast8_t;
|
|
||||||
TYPEDEF unsigned int uint_fast16_t;
|
|
||||||
TYPEDEF unsigned int uint_fast32_t;
|
|
||||||
TYPEDEF uint64_t uint_fast64_t;
|
|
||||||
|
|
||||||
TYPEDEF long intptr_t;
|
|
||||||
TYPEDEF unsigned long uintptr_t;
|
|
||||||
|
|
||||||
TYPEDEF long long intmax_t;
|
|
||||||
TYPEDEF unsigned long long uintmax_t;
|
|
||||||
|
|
||||||
TYPEDEF long time_t;
|
|
||||||
TYPEDEF long useconds_t;
|
|
||||||
TYPEDEF long suseconds_t;
|
|
||||||
STRUCT timeval { time_t tv_sec; int tv_usec; };
|
|
||||||
STRUCT timespec { time_t tv_sec; unsigned long tv_nsec; };
|
|
||||||
|
|
||||||
TYPEDEF int pid_t;
|
|
||||||
TYPEDEF int id_t;
|
|
||||||
TYPEDEF unsigned int uid_t;
|
|
||||||
TYPEDEF unsigned int gid_t;
|
|
||||||
TYPEDEF int key_t;
|
|
||||||
|
|
||||||
TYPEDEF struct __pthread * pthread_t;
|
|
||||||
TYPEDEF int pthread_once_t;
|
|
||||||
TYPEDEF int pthread_key_t;
|
|
||||||
TYPEDEF int pthread_spinlock_t;
|
|
||||||
|
|
||||||
TYPEDEF struct { union { int __i[14]; size_t __s[2]; } __u; } pthread_attr_t;
|
|
||||||
TYPEDEF unsigned pthread_mutexattr_t;
|
|
||||||
TYPEDEF unsigned pthread_condattr_t;
|
|
||||||
TYPEDEF unsigned pthread_barrierattr_t;
|
|
||||||
TYPEDEF struct { unsigned __attr[2]; } pthread_rwlockattr_t;
|
|
||||||
|
|
||||||
TYPEDEF struct { union { int __i[10]; void *__p[1]; } __u; } pthread_mutex_t;
|
|
||||||
TYPEDEF struct { union { int __i[12]; void *__p[1]; } __u; } pthread_cond_t;
|
|
||||||
TYPEDEF struct { union { int __i[14]; void *__p[1]; } __u; } pthread_rwlock_t;
|
|
||||||
TYPEDEF struct { union { int __i[8]; void *__p[1]; } __u; } pthread_barrier_t;
|
|
||||||
|
|
||||||
TYPEDEF long off_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned int mode_t;
|
|
||||||
|
|
||||||
TYPEDEF unsigned long nlink_t;
|
|
||||||
TYPEDEF unsigned long long ino_t;
|
|
||||||
TYPEDEF unsigned long dev_t;
|
|
||||||
TYPEDEF long blksize_t;
|
|
||||||
TYPEDEF long long blkcnt_t;
|
|
||||||
TYPEDEF unsigned long long fsblkcnt_t;
|
|
||||||
TYPEDEF unsigned long long fsfilcnt_t;
|
|
||||||
|
|
||||||
TYPEDEF void * timer_t;
|
|
||||||
TYPEDEF int clockid_t;
|
|
||||||
TYPEDEF long clock_t;
|
|
||||||
|
|
||||||
TYPEDEF struct { unsigned long __bits[128/sizeof(long)]; } sigset_t;
|
|
||||||
#if 1
|
|
||||||
TYPEDEF struct __siginfo siginfo_t;
|
|
||||||
#else
|
|
||||||
#if defined(__NEED_siginfo_t) && !defined(__DEFINED_siginfo_t)
|
|
||||||
#define siginfo_t struct __siginfo
|
|
||||||
#define __DEFINED_siginfo_t
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TYPEDEF unsigned int socklen_t;
|
|
||||||
TYPEDEF unsigned short sa_family_t;
|
|
||||||
TYPEDEF unsigned short in_port_t;
|
|
||||||
TYPEDEF unsigned int in_addr_t;
|
|
||||||
STRUCT in_addr { in_addr_t s_addr; };
|
|
||||||
|
|
||||||
TYPEDEF struct __FILE_s FILE;
|
|
||||||
|
|
||||||
TYPEDEF int nl_item;
|
|
||||||
|
|
||||||
TYPEDEF struct __locale * locale_t;
|
|
||||||
|
|
||||||
STRUCT iovec { void *iov_base; size_t iov_len; };
|
|
||||||
|
|
||||||
EOF
|
|
|
@ -1 +0,0 @@
|
||||||
#define __BYTE_ORDER __LITTLE_ENDIAN
|
|
|
@ -1,132 +0,0 @@
|
||||||
#define EPERM 1
|
|
||||||
#define ENOENT 2
|
|
||||||
#define ESRCH 3
|
|
||||||
#define EINTR 4
|
|
||||||
#define EIO 5
|
|
||||||
#define ENXIO 6
|
|
||||||
#define E2BIG 7
|
|
||||||
#define ENOEXEC 8
|
|
||||||
#define EBADF 9
|
|
||||||
#define ECHILD 10
|
|
||||||
#define EAGAIN 11
|
|
||||||
#define ENOMEM 12
|
|
||||||
#define EACCES 13
|
|
||||||
#define EFAULT 14
|
|
||||||
#define ENOTBLK 15
|
|
||||||
#define EBUSY 16
|
|
||||||
#define EEXIST 17
|
|
||||||
#define EXDEV 18
|
|
||||||
#define ENODEV 19
|
|
||||||
#define ENOTDIR 20
|
|
||||||
#define EISDIR 21
|
|
||||||
#define EINVAL 22
|
|
||||||
#define ENFILE 23
|
|
||||||
#define EMFILE 24
|
|
||||||
#define ENOTTY 25
|
|
||||||
#define ETXTBSY 26
|
|
||||||
#define EFBIG 27
|
|
||||||
#define ENOSPC 28
|
|
||||||
#define ESPIPE 29
|
|
||||||
#define EROFS 30
|
|
||||||
#define EMLINK 31
|
|
||||||
#define EPIPE 32
|
|
||||||
#define EDOM 33
|
|
||||||
#define ERANGE 34
|
|
||||||
#define EDEADLK 35
|
|
||||||
#define ENAMETOOLONG 36
|
|
||||||
#define ENOLCK 37
|
|
||||||
#define ENOSYS 38
|
|
||||||
#define ENOTEMPTY 39
|
|
||||||
#define ELOOP 40
|
|
||||||
#define EWOULDBLOCK EAGAIN
|
|
||||||
#define ENOMSG 42
|
|
||||||
#define EIDRM 43
|
|
||||||
#define ECHRNG 44
|
|
||||||
#define EL2NSYNC 45
|
|
||||||
#define EL3HLT 46
|
|
||||||
#define EL3RST 47
|
|
||||||
#define ELNRNG 48
|
|
||||||
#define EUNATCH 49
|
|
||||||
#define ENOCSI 50
|
|
||||||
#define EL2HLT 51
|
|
||||||
#define EBADE 52
|
|
||||||
#define EBADR 53
|
|
||||||
#define EXFULL 54
|
|
||||||
#define ENOANO 55
|
|
||||||
#define EBADRQC 56
|
|
||||||
#define EBADSLT 57
|
|
||||||
#define EDEADLOCK EDEADLK
|
|
||||||
#define EBFONT 59
|
|
||||||
#define ENOSTR 60
|
|
||||||
#define ENODATA 61
|
|
||||||
#define ETIME 62
|
|
||||||
#define ENOSR 63
|
|
||||||
#define ENONET 64
|
|
||||||
#define ENOPKG 65
|
|
||||||
#define EREMOTE 66
|
|
||||||
#define ENOLINK 67
|
|
||||||
#define EADV 68
|
|
||||||
#define ESRMNT 69
|
|
||||||
#define ECOMM 70
|
|
||||||
#define EPROTO 71
|
|
||||||
#define EMULTIHOP 72
|
|
||||||
#define EDOTDOT 73
|
|
||||||
#define EBADMSG 74
|
|
||||||
#define EOVERFLOW 75
|
|
||||||
#define ENOTUNIQ 76
|
|
||||||
#define EBADFD 77
|
|
||||||
#define EREMCHG 78
|
|
||||||
#define ELIBACC 79
|
|
||||||
#define ELIBBAD 80
|
|
||||||
#define ELIBSCN 81
|
|
||||||
#define ELIBMAX 82
|
|
||||||
#define ELIBEXEC 83
|
|
||||||
#define EILSEQ 84
|
|
||||||
#define ERESTART 85
|
|
||||||
#define ESTRPIPE 86
|
|
||||||
#define EUSERS 87
|
|
||||||
#define ENOTSOCK 88
|
|
||||||
#define EDESTADDRREQ 89
|
|
||||||
#define EMSGSIZE 90
|
|
||||||
#define EPROTOTYPE 91
|
|
||||||
#define ENOPROTOOPT 92
|
|
||||||
#define EPROTONOSUPPORT 93
|
|
||||||
#define ESOCKTNOSUPPORT 94
|
|
||||||
#define EOPNOTSUPP 95
|
|
||||||
#define EPFNOSUPPORT 96
|
|
||||||
#define EAFNOSUPPORT 97
|
|
||||||
#define EADDRINUSE 98
|
|
||||||
#define EADDRNOTAVAIL 99
|
|
||||||
#define ENETDOWN 100
|
|
||||||
#define ENETUNREACH 101
|
|
||||||
#define ENETRESET 102
|
|
||||||
#define ECONNABORTED 103
|
|
||||||
#define ECONNRESET 104
|
|
||||||
#define ENOBUFS 105
|
|
||||||
#define EISCONN 106
|
|
||||||
#define ENOTCONN 107
|
|
||||||
#define ESHUTDOWN 108
|
|
||||||
#define ETOOMANYREFS 109
|
|
||||||
#define ETIMEDOUT 110
|
|
||||||
#define ECONNREFUSED 111
|
|
||||||
#define EHOSTDOWN 112
|
|
||||||
#define EHOSTUNREACH 113
|
|
||||||
#define EALREADY 114
|
|
||||||
#define EINPROGRESS 115
|
|
||||||
#define ESTALE 116
|
|
||||||
#define EUCLEAN 117
|
|
||||||
#define ENOTNAM 118
|
|
||||||
#define ENAVAIL 119
|
|
||||||
#define EISNAM 120
|
|
||||||
#define EREMOTEIO 121
|
|
||||||
#define EDQUOT 122
|
|
||||||
#define ENOMEDIUM 123
|
|
||||||
#define EMEDIUMTYPE 124
|
|
||||||
#define ECANCELED 125
|
|
||||||
#define ENOKEY 126
|
|
||||||
#define EKEYEXPIRED 127
|
|
||||||
#define EKEYREVOKED 128
|
|
||||||
#define EKEYREJECTED 129
|
|
||||||
#define EOWNERDEAD 130
|
|
||||||
#define ENOTRECOVERABLE 131
|
|
||||||
#define ERFKILL 132
|
|
|
@ -1,60 +0,0 @@
|
||||||
#define O_ACCMODE 03
|
|
||||||
#define O_RDONLY 00
|
|
||||||
#define O_WRONLY 01
|
|
||||||
#define O_RDWR 02
|
|
||||||
|
|
||||||
#define O_CREAT 0100
|
|
||||||
#define O_EXCL 0200
|
|
||||||
#define O_NOCTTY 0400
|
|
||||||
#define O_TRUNC 01000
|
|
||||||
#define O_APPEND 02000
|
|
||||||
#define O_NONBLOCK 04000
|
|
||||||
#define O_SYNC 010000
|
|
||||||
#define O_DIRECTORY 0200000
|
|
||||||
#define O_NOFOLLOW 0400000
|
|
||||||
#define O_CLOEXEC 02000000
|
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
|
||||||
#define O_NDELAY O_NONBLOCK
|
|
||||||
#define O_ASYNC 020000
|
|
||||||
#define O_DIRECT 040000
|
|
||||||
#define O_NOATIME 01000000
|
|
||||||
#define F_DUPFD_CLOEXEC 1030
|
|
||||||
#define FAPPENT O_APPEND
|
|
||||||
#define FFSYNC O_FSYNC
|
|
||||||
#define FASYNC O_ASYNC
|
|
||||||
#define FNONBLOCK O_NONBLOCK
|
|
||||||
#define FNDELAY O_NDELAY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define F_DUPFD 0
|
|
||||||
#define F_GETFD 1
|
|
||||||
#define F_SETFD 2
|
|
||||||
#define F_GETFL 3
|
|
||||||
#define F_SETFL 4
|
|
||||||
|
|
||||||
#define F_SETOWN 8
|
|
||||||
#define F_GETOWN 9
|
|
||||||
|
|
||||||
#define F_GETLK 12
|
|
||||||
#define F_SETLK 13
|
|
||||||
#define F_SETLKW 14
|
|
||||||
|
|
||||||
#define FD_CLOEXEC 1
|
|
||||||
|
|
||||||
#define F_RDLCK 0
|
|
||||||
#define F_WRLCK 1
|
|
||||||
#define F_UNLCK 2
|
|
||||||
|
|
||||||
#define AT_FDCWD (-100)
|
|
||||||
#define AT_SYMLINK_NOFOLLOW 0x100
|
|
||||||
#define AT_REMOVEDIR 0x200
|
|
||||||
#define AT_SYMLINK_FOLLOW 0x400
|
|
||||||
#define AT_EACCESS 0x200
|
|
||||||
|
|
||||||
#define POSIX_FADV_NORMAL 0
|
|
||||||
#define POSIX_FADV_RANDOM 1
|
|
||||||
#define POSIX_FADV_SEQUENTIAL 2
|
|
||||||
#define POSIX_FADV_WILLNEED 3
|
|
||||||
#define POSIX_FADV_DONTNEED 4
|
|
||||||
#define POSIX_FADV_NOREUSE 5
|
|
|
@ -1,34 +0,0 @@
|
||||||
#define FE_INVALID 1
|
|
||||||
#define __FE_DENORM 2
|
|
||||||
#define FE_DIVBYZERO 4
|
|
||||||
#define FE_OVERFLOW 8
|
|
||||||
#define FE_UNDERFLOW 16
|
|
||||||
#define FE_INEXACT 32
|
|
||||||
|
|
||||||
#define FE_ALL_EXCEPT 63
|
|
||||||
|
|
||||||
#define FE_TONEAREST 0
|
|
||||||
#define FE_DOWNWARD 0x400
|
|
||||||
#define FE_UPWARD 0x800
|
|
||||||
#define FE_TOWARDZERO 0xc00
|
|
||||||
|
|
||||||
typedef unsigned short fexcept_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned short __control_word;
|
|
||||||
unsigned short __unused1;
|
|
||||||
unsigned short __status_word;
|
|
||||||
unsigned short __unused2;
|
|
||||||
unsigned short __tags;
|
|
||||||
unsigned short __unused3;
|
|
||||||
unsigned int __eip;
|
|
||||||
unsigned short __cs_selector;
|
|
||||||
unsigned int __opcode:11;
|
|
||||||
unsigned int __unused4:5;
|
|
||||||
unsigned int __data_offset;
|
|
||||||
unsigned short __data_selector;
|
|
||||||
unsigned short __unused5;
|
|
||||||
unsigned int __mxcsr;
|
|
||||||
} fenv_t;
|
|
||||||
|
|
||||||
#define FE_DFL_ENV ((const fenv_t *) -1)
|
|
|
@ -1,11 +0,0 @@
|
||||||
#define LDBL_MIN 3.3621031431120935063e-4932L
|
|
||||||
#define LDBL_MAX 1.1897314953572317650e+4932L
|
|
||||||
#define LDBL_EPSILON 1.0842021724855044340e-19L
|
|
||||||
|
|
||||||
#define LDBL_MANT_DIG 64
|
|
||||||
#define LDBL_MIN_EXP (-16381)
|
|
||||||
#define LDBL_MAX_EXP 16384
|
|
||||||
|
|
||||||
#define LDBL_DIG 18
|
|
||||||
#define LDBL_MIN_10_EXP (-4931)
|
|
||||||
#define LDBL_MAX_10_EXP 4932
|
|
|
@ -1,133 +0,0 @@
|
||||||
#define IP_TOS 1
|
|
||||||
#define IP_TTL 2
|
|
||||||
#define IP_HDRINCL 3
|
|
||||||
#define IP_OPTIONS 4
|
|
||||||
#define IP_ROUTER_ALERT 5
|
|
||||||
#define IP_RECVOPTS 6
|
|
||||||
#define IP_RETOPTS 7
|
|
||||||
//#define IP_PKTINFO 8
|
|
||||||
#define IP_PKTOPTIONS 9
|
|
||||||
#define IP_PMTUDISC 10
|
|
||||||
#define IP_MTU_DISCOVER 10
|
|
||||||
#define IP_RECVERR 11
|
|
||||||
#define IP_RECVTTL 12
|
|
||||||
#define IP_RECVTOS 13
|
|
||||||
#define IP_MTU 14
|
|
||||||
#define IP_FREEBIND 15
|
|
||||||
#define IP_IPSEC_POLICY 16
|
|
||||||
#define IP_XFRM_POLICY 17
|
|
||||||
#define IP_PASSSEC 18
|
|
||||||
#define IP_TRANSPARENT 19
|
|
||||||
#define IP_ORIGDSTADDR 20
|
|
||||||
#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
|
|
||||||
#define IP_MINTTL 21
|
|
||||||
#define IP_MULTICAST_IF 32
|
|
||||||
#define IP_MULTICAST_TTL 33
|
|
||||||
#define IP_MULTICAST_LOOP 34
|
|
||||||
#define IP_ADD_MEMBERSHIP 35
|
|
||||||
#define IP_DROP_MEMBERSHIP 36
|
|
||||||
#define IP_UNBLOCK_SOURCE 37
|
|
||||||
#define IP_BLOCK_SOURCE 38
|
|
||||||
#define IP_ADD_SOURCE_MEMBERSHIP 39
|
|
||||||
#define IP_DROP_SOURCE_MEMBERSHIP 40
|
|
||||||
#define IP_MSFILTER 41
|
|
||||||
|
|
||||||
#define IP_RECVRETOPTS IP_RETOPTS
|
|
||||||
|
|
||||||
#define IP_PMTUDISC_DONT 0
|
|
||||||
#define IP_PMTUDISC_WANT 1
|
|
||||||
#define IP_PMTUDISC_DO 2
|
|
||||||
#define IP_PMTUDISC_PROBE 3
|
|
||||||
|
|
||||||
#define SOL_IP 0
|
|
||||||
|
|
||||||
#define IP_DEFAULT_MULTICAST_TTL 1
|
|
||||||
#define IP_DEFAULT_MULTICAST_LOOP 1
|
|
||||||
#define IP_MAX_MEMBERSHIPS 20
|
|
||||||
|
|
||||||
struct ip_opts
|
|
||||||
{
|
|
||||||
struct in_addr ip_dst;
|
|
||||||
char ip_opts[40];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ip_mreq
|
|
||||||
{
|
|
||||||
struct in_addr imr_multiaddr;
|
|
||||||
struct in_addr imr_interface;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ip_mreqn
|
|
||||||
{
|
|
||||||
struct in_addr imr_multiaddr;
|
|
||||||
struct in_addr imr_address;
|
|
||||||
int imr_ifindex;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct in_pktinfo
|
|
||||||
{
|
|
||||||
int ipi_ifindex;
|
|
||||||
struct in_addr ipi_spec_dst;
|
|
||||||
struct in_addr ipi_addr;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define IPV6_ADDRFORM 1
|
|
||||||
#define IPV6_2292PKTINFO 2
|
|
||||||
#define IPV6_2292HOPOPTS 3
|
|
||||||
#define IPV6_2292DSTOPTS 4
|
|
||||||
#define IPV6_2292RTHDR 5
|
|
||||||
#define IPV6_2292PKTOPTIONS 6
|
|
||||||
#define IPV6_CHECKSUM 7
|
|
||||||
#define IPV6_2292HOPLIMIT 8
|
|
||||||
#define SCM_SRCRT IPV6_RXSRCRT
|
|
||||||
#define IPV6_NEXTHOP 9
|
|
||||||
#define IPV6_AUTHHDR 10
|
|
||||||
#define IPV6_UNICAST_HOPS 16
|
|
||||||
#define IPV6_MULTICAST_IF 17
|
|
||||||
#define IPV6_MULTICAST_HOPS 18
|
|
||||||
#define IPV6_MULTICAST_LOOP 19
|
|
||||||
#define IPV6_JOIN_GROUP 20
|
|
||||||
#define IPV6_LEAVE_GROUP 21
|
|
||||||
#define IPV6_ROUTER_ALERT 22
|
|
||||||
#define IPV6_MTU_DISCOVER 23
|
|
||||||
#define IPV6_MTU 24
|
|
||||||
#define IPV6_RECVERR 25
|
|
||||||
#define IPV6_V6ONLY 26
|
|
||||||
#define IPV6_JOIN_ANYCAST 27
|
|
||||||
#define IPV6_LEAVE_ANYCAST 28
|
|
||||||
#define IPV6_IPSEC_POLICY 34
|
|
||||||
#define IPV6_XFRM_POLICY 35
|
|
||||||
|
|
||||||
#define IPV6_RECVPKTINFO 49
|
|
||||||
#define IPV6_PKTINFO 50
|
|
||||||
#define IPV6_RECVHOPLIMIT 51
|
|
||||||
#define IPV6_HOPLIMIT 52
|
|
||||||
#define IPV6_RECVHOPOPTS 53
|
|
||||||
#define IPV6_HOPOPTS 54
|
|
||||||
#define IPV6_RTHDRDSTOPTS 55
|
|
||||||
#define IPV6_RECVRTHDR 56
|
|
||||||
#define IPV6_RTHDR 57
|
|
||||||
#define IPV6_RECVDSTOPTS 58
|
|
||||||
#define IPV6_DSTOPTS 59
|
|
||||||
|
|
||||||
#define IPV6_RECVTCLASS 66
|
|
||||||
#define IPV6_TCLASS 67
|
|
||||||
|
|
||||||
#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
|
|
||||||
#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
|
|
||||||
#define IPV6_RXHOPOPTS IPV6_HOPOPTS
|
|
||||||
#define IPV6_RXDSTOPTS IPV6_DSTOPTS
|
|
||||||
|
|
||||||
|
|
||||||
#define IPV6_PMTUDISC_DONT 0
|
|
||||||
#define IPV6_PMTUDISC_WANT 1
|
|
||||||
#define IPV6_PMTUDISC_DO 2
|
|
||||||
#define IPV6_PMTUDISC_PROBE 3
|
|
||||||
|
|
||||||
#define SOL_IPV6 41
|
|
||||||
#define SOL_ICMPV6 58
|
|
||||||
|
|
||||||
#define IPV6_RTHDR_LOOSE 0
|
|
||||||
#define IPV6_RTHDR_STRICT 1
|
|
||||||
|
|
||||||
#define IPV6_RTHDR_TYPE_0 0
|
|
|
@ -1,197 +0,0 @@
|
||||||
#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
|
|
||||||
#define _IOC_NONE 0U
|
|
||||||
#define _IOC_WRITE 1U
|
|
||||||
#define _IOC_READ 2U
|
|
||||||
|
|
||||||
#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
|
|
||||||
#define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c))
|
|
||||||
#define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c))
|
|
||||||
#define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c))
|
|
||||||
|
|
||||||
#define TCGETS 0x5401
|
|
||||||
#define TCSETS 0x5402
|
|
||||||
#define TCSETSW 0x5403
|
|
||||||
#define TCSETSF 0x5404
|
|
||||||
#define TCGETA 0x5405
|
|
||||||
#define TCSETA 0x5406
|
|
||||||
#define TCSETAW 0x5407
|
|
||||||
#define TCSETAF 0x5408
|
|
||||||
#define TCSBRK 0x5409
|
|
||||||
#define TCXONC 0x540A
|
|
||||||
#define TCFLSH 0x540B
|
|
||||||
#define TIOCEXCL 0x540C
|
|
||||||
#define TIOCNXCL 0x540D
|
|
||||||
#define TIOCSCTTY 0x540E
|
|
||||||
#define TIOCGPGRP 0x540F
|
|
||||||
#define TIOCSPGRP 0x5410
|
|
||||||
#define TIOCOUTQ 0x5411
|
|
||||||
#define TIOCSTI 0x5412
|
|
||||||
#define TIOCGWINSZ 0x5413
|
|
||||||
#define TIOCSWINSZ 0x5414
|
|
||||||
#define TIOCMGET 0x5415
|
|
||||||
#define TIOCMBIS 0x5416
|
|
||||||
#define TIOCMBIC 0x5417
|
|
||||||
#define TIOCMSET 0x5418
|
|
||||||
#define TIOCGSOFTCAR 0x5419
|
|
||||||
#define TIOCSSOFTCAR 0x541A
|
|
||||||
#define FIONREAD 0x541B
|
|
||||||
#define TIOCINQ FIONREAD
|
|
||||||
#define TIOCLINUX 0x541C
|
|
||||||
#define TIOCCONS 0x541D
|
|
||||||
#define TIOCGSERIAL 0x541E
|
|
||||||
#define TIOCSSERIAL 0x541F
|
|
||||||
#define TIOCPKT 0x5420
|
|
||||||
#define FIONBIO 0x5421
|
|
||||||
#define TIOCNOTTY 0x5422
|
|
||||||
#define TIOCSETD 0x5423
|
|
||||||
#define TIOCGETD 0x5424
|
|
||||||
#define TCSBRKP 0x5425
|
|
||||||
#define TIOCTTYGSTRUCT 0x5426
|
|
||||||
#define TIOCSBRK 0x5427
|
|
||||||
#define TIOCCBRK 0x5428
|
|
||||||
#define TIOCGSID 0x5429
|
|
||||||
#define TIOCGPTN 0x80045430
|
|
||||||
#define TIOCSPTLCK 0x40045431
|
|
||||||
#define TCGETX 0x5432
|
|
||||||
#define TCSETX 0x5433
|
|
||||||
#define TCSETXF 0x5434
|
|
||||||
#define TCSETXW 0x5435
|
|
||||||
|
|
||||||
#define FIONCLEX 0x5450
|
|
||||||
#define FIOCLEX 0x5451
|
|
||||||
#define FIOASYNC 0x5452
|
|
||||||
#define TIOCSERCONFIG 0x5453
|
|
||||||
#define TIOCSERGWILD 0x5454
|
|
||||||
#define TIOCSERSWILD 0x5455
|
|
||||||
#define TIOCGLCKTRMIOS 0x5456
|
|
||||||
#define TIOCSLCKTRMIOS 0x5457
|
|
||||||
#define TIOCSERGSTRUCT 0x5458
|
|
||||||
#define TIOCSERGETLSR 0x5459
|
|
||||||
#define TIOCSERGETMULTI 0x545A
|
|
||||||
#define TIOCSERSETMULTI 0x545B
|
|
||||||
|
|
||||||
#define TIOCMIWAIT 0x545C
|
|
||||||
#define TIOCGICOUNT 0x545D
|
|
||||||
#define TIOCGHAYESESP 0x545E
|
|
||||||
#define TIOCSHAYESESP 0x545F
|
|
||||||
#define FIOQSIZE 0x5460
|
|
||||||
|
|
||||||
#define TIOCPKT_DATA 0
|
|
||||||
#define TIOCPKT_FLUSHREAD 1
|
|
||||||
#define TIOCPKT_FLUSHWRITE 2
|
|
||||||
#define TIOCPKT_STOP 4
|
|
||||||
#define TIOCPKT_START 8
|
|
||||||
#define TIOCPKT_NOSTOP 16
|
|
||||||
#define TIOCPKT_DOSTOP 32
|
|
||||||
#define TIOCPKT_IOCTL 64
|
|
||||||
|
|
||||||
#define TIOCSER_TEMT 0x01
|
|
||||||
|
|
||||||
struct winsize {
|
|
||||||
unsigned short ws_row;
|
|
||||||
unsigned short ws_col;
|
|
||||||
unsigned short ws_xpixel;
|
|
||||||
unsigned short ws_ypixel;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define TIOCM_LE 0x001
|
|
||||||
#define TIOCM_DTR 0x002
|
|
||||||
#define TIOCM_RTS 0x004
|
|
||||||
#define TIOCM_ST 0x008
|
|
||||||
#define TIOCM_SR 0x010
|
|
||||||
#define TIOCM_CTS 0x020
|
|
||||||
#define TIOCM_CAR 0x040
|
|
||||||
#define TIOCM_RNG 0x080
|
|
||||||
#define TIOCM_DSR 0x100
|
|
||||||
#define TIOCM_CD TIOCM_CAR
|
|
||||||
#define TIOCM_RI TIOCM_RNG
|
|
||||||
#define TIOCM_OUT1 0x2000
|
|
||||||
#define TIOCM_OUT2 0x4000
|
|
||||||
#define TIOCM_LOOP 0x8000
|
|
||||||
#define TIOCM_MODEM_BITS TIOCM_OUT2
|
|
||||||
|
|
||||||
#define N_TTY 0
|
|
||||||
#define N_SLIP 1
|
|
||||||
#define N_MOUSE 2
|
|
||||||
#define N_PPP 3
|
|
||||||
#define N_STRIP 4
|
|
||||||
#define N_AX25 5
|
|
||||||
#define N_X25 6
|
|
||||||
#define N_6PACK 7
|
|
||||||
#define N_MASC 8
|
|
||||||
#define N_R3964 9
|
|
||||||
#define N_PROFIBUS_FDL 10
|
|
||||||
#define N_IRDA 11
|
|
||||||
#define N_SMSBLOCK 12
|
|
||||||
#define N_HDLC 13
|
|
||||||
#define N_SYNC_PPP 14
|
|
||||||
#define N_HCI 15
|
|
||||||
|
|
||||||
#define FIOSETOWN 0x8901
|
|
||||||
#define SIOCSPGRP 0x8902
|
|
||||||
#define FIOGETOWN 0x8903
|
|
||||||
#define SIOCGPGRP 0x8904
|
|
||||||
#define SIOCATMARK 0x8905
|
|
||||||
#define SIOCGSTAMP 0x8906
|
|
||||||
|
|
||||||
#define SIOCADDRT 0x890B
|
|
||||||
#define SIOCDELRT 0x890C
|
|
||||||
#define SIOCRTMSG 0x890D
|
|
||||||
|
|
||||||
#define SIOCGIFNAME 0x8910
|
|
||||||
#define SIOCSIFLINK 0x8911
|
|
||||||
#define SIOCGIFCONF 0x8912
|
|
||||||
#define SIOCGIFFLAGS 0x8913
|
|
||||||
#define SIOCSIFFLAGS 0x8914
|
|
||||||
#define SIOCGIFADDR 0x8915
|
|
||||||
#define SIOCSIFADDR 0x8916
|
|
||||||
#define SIOCGIFDSTADDR 0x8917
|
|
||||||
#define SIOCSIFDSTADDR 0x8918
|
|
||||||
#define SIOCGIFBRDADDR 0x8919
|
|
||||||
#define SIOCSIFBRDADDR 0x891a
|
|
||||||
#define SIOCGIFNETMASK 0x891b
|
|
||||||
#define SIOCSIFNETMASK 0x891c
|
|
||||||
#define SIOCGIFMETRIC 0x891d
|
|
||||||
#define SIOCSIFMETRIC 0x891e
|
|
||||||
#define SIOCGIFMEM 0x891f
|
|
||||||
#define SIOCSIFMEM 0x8920
|
|
||||||
#define SIOCGIFMTU 0x8921
|
|
||||||
#define SIOCSIFMTU 0x8922
|
|
||||||
#define SIOCSIFHWADDR 0x8924
|
|
||||||
#define SIOCGIFENCAP 0x8925
|
|
||||||
#define SIOCSIFENCAP 0x8926
|
|
||||||
#define SIOCGIFHWADDR 0x8927
|
|
||||||
#define SIOCGIFSLAVE 0x8929
|
|
||||||
#define SIOCSIFSLAVE 0x8930
|
|
||||||
#define SIOCADDMULTI 0x8931
|
|
||||||
#define SIOCDELMULTI 0x8932
|
|
||||||
#define SIOCGIFINDEX 0x8933
|
|
||||||
#define SIOGIFINDEX SIOCGIFINDEX
|
|
||||||
#define SIOCSIFPFLAGS 0x8934
|
|
||||||
#define SIOCGIFPFLAGS 0x8935
|
|
||||||
#define SIOCDIFADDR 0x8936
|
|
||||||
#define SIOCSIFHWBROADCAST 0x8937
|
|
||||||
#define SIOCGIFCOUNT 0x8938
|
|
||||||
|
|
||||||
#define SIOCGIFBR 0x8940
|
|
||||||
#define SIOCSIFBR 0x8941
|
|
||||||
|
|
||||||
#define SIOCGIFTXQLEN 0x8942
|
|
||||||
#define SIOCSIFTXQLEN 0x8943
|
|
||||||
|
|
||||||
#define SIOCDARP 0x8953
|
|
||||||
#define SIOCGARP 0x8954
|
|
||||||
#define SIOCSARP 0x8955
|
|
||||||
|
|
||||||
#define SIOCDRARP 0x8960
|
|
||||||
#define SIOCGRARP 0x8961
|
|
||||||
#define SIOCSRARP 0x8962
|
|
||||||
|
|
||||||
#define SIOCGIFMAP 0x8970
|
|
||||||
#define SIOCSIFMAP 0x8971
|
|
||||||
|
|
||||||
#define SIOCADDDLCI 0x8980
|
|
||||||
#define SIOCDELDLCI 0x8981
|
|
||||||
|
|
||||||
#define SIOCDEVPRIVATE 0x89F0
|
|
||||||
#define SIOCPROTOPRIVATE 0x89E0
|
|
|
@ -1,25 +0,0 @@
|
||||||
#define IPC_CREAT 01000
|
|
||||||
#define IPC_EXCL 02000
|
|
||||||
#define IPC_NOWAIT 04000
|
|
||||||
|
|
||||||
#define IPC_RMID 0
|
|
||||||
#define IPC_SET 1
|
|
||||||
#define IPC_STAT 2
|
|
||||||
#ifdef _GNU_SOURCE
|
|
||||||
# define IPC_INFO 3 /* See ipcs. */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define IPC_PRIVATE ((key_t) 0)
|
|
||||||
|
|
||||||
struct ipc_perm
|
|
||||||
{
|
|
||||||
key_t key;
|
|
||||||
uid_t uid;
|
|
||||||
gid_t gid;
|
|
||||||
uid_t cuid;
|
|
||||||
gid_t cgid;
|
|
||||||
mode_t mode;
|
|
||||||
int seq;
|
|
||||||
long __pad1;
|
|
||||||
long __pad2;
|
|
||||||
};
|
|
|
@ -1,34 +0,0 @@
|
||||||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
|
||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
|
||||||
#define PIPE_BUF 4096
|
|
||||||
#define PAGESIZE 4096
|
|
||||||
#define PAGE_SIZE PAGESIZE
|
|
||||||
#define FILESIZEBITS 64
|
|
||||||
#define NAME_MAX 255
|
|
||||||
#define SYMLINK_MAX 255
|
|
||||||
#define PATH_MAX 4096
|
|
||||||
#define NZERO 20
|
|
||||||
#define NGROUPS_MAX 32
|
|
||||||
#define ARG_MAX 131072
|
|
||||||
#define IOV_MAX 1024
|
|
||||||
#define SYMLOOP_MAX 40
|
|
||||||
#define WORD_BIT 64
|
|
||||||
#define LONG_BIT 64
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SHRT_MIN (-1-0x7fff)
|
|
||||||
#define SHRT_MAX 0x7fff
|
|
||||||
#define USHRT_MAX 0xffff
|
|
||||||
|
|
||||||
#define INT_MIN (-1-0x7fffffff)
|
|
||||||
#define INT_MAX 0x7fffffff
|
|
||||||
#define UINT_MAX 0xffffffffU
|
|
||||||
|
|
||||||
#define LONG_MIN (-1-0x7fffffffffffffffL)
|
|
||||||
#define LONG_MAX 0x7fffffffffffffffL
|
|
||||||
#define ULONG_MAX 0xffffffffffffffffUL
|
|
||||||
|
|
||||||
#define LLONG_MIN (-1-0x7fffffffffffffffLL)
|
|
||||||
#define LLONG_MAX 0x7fffffffffffffffLL
|
|
||||||
#define ULLONG_MAX 0xffffffffffffffffULL
|
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
#define MAP_FAILED ((void *) -1)
|
|
||||||
|
|
||||||
#define PROT_NONE 0
|
|
||||||
#define PROT_READ 1
|
|
||||||
#define PROT_WRITE 2
|
|
||||||
#define PROT_EXEC 4
|
|
||||||
#define PROT_GROWSDOWN 0x01000000
|
|
||||||
#define PROT_GROWSUP 0x02000000
|
|
||||||
|
|
||||||
#define MAP_SHARED 0x01
|
|
||||||
#define MAP_PRIVATE 0x02
|
|
||||||
#define MAP_FIXED 0x10
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define MAP_TYPE 0x0f
|
|
||||||
#define MAP_FILE 0x00
|
|
||||||
#define MAP_ANON 0x20
|
|
||||||
#define MAP_ANONYMOUS MAP_ANON
|
|
||||||
#define MAP_32BIT 0x40
|
|
||||||
|
|
||||||
#define MADV_NORMAL 0
|
|
||||||
#define MADV_RANDOM 1
|
|
||||||
#define MADV_SEQUENTIAL 2
|
|
||||||
#define MADV_WILLNEED 3
|
|
||||||
#define MADV_DONTNEED 4
|
|
||||||
#define MADV_REMOVE 9
|
|
||||||
#define MADV_DONTFORK 10
|
|
||||||
#define MADV_DOFORK 11
|
|
||||||
#define MADV_MERGEABLE 12
|
|
||||||
#define MADV_UNMERGEABLE 13
|
|
||||||
#define MADV_HUGEPAGE 14
|
|
||||||
#define MADV_NOHUGEPAGE 15
|
|
||||||
#define MADV_HWPOISON 100
|
|
||||||
|
|
||||||
#define POSIX_MADV_NORMAL 0
|
|
||||||
#define POSIX_MADV_RANDOM 1
|
|
||||||
#define POSIX_MADV_SEQUENTIAL 2
|
|
||||||
#define POSIX_MADV_WILLNEED 3
|
|
||||||
#define POSIX_MADV_DONTNEED 0
|
|
||||||
|
|
||||||
#define MS_ASYNC 1
|
|
||||||
#define MS_INVALIDATE 2
|
|
||||||
#define MS_SYNC 4
|
|
||||||
|
|
||||||
#define MCL_CURRENT 1
|
|
||||||
#define MCL_FUTURE 2
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define MREMAP_MAYMOVE 1
|
|
||||||
#define MREMAP_FIXED 2
|
|
|
@ -1,2 +0,0 @@
|
||||||
#define _POSIX_V6_LP64_OFF64 1
|
|
||||||
#define _POSIX_V6_LP64_OFF64 1
|
|
|
@ -1,6 +0,0 @@
|
||||||
struct __ptcb {
|
|
||||||
long __jb[7];
|
|
||||||
int __dummy;
|
|
||||||
struct __ptcb *__next;
|
|
||||||
void *__ptrs[3];
|
|
||||||
};
|
|
|
@ -1,29 +0,0 @@
|
||||||
#undef __WORDSIZE
|
|
||||||
#define __WORDSIZE 64
|
|
||||||
#define R15 0
|
|
||||||
#define R14 1
|
|
||||||
#define R13 2
|
|
||||||
#define R12 3
|
|
||||||
#define RBP 4
|
|
||||||
#define RBX 5
|
|
||||||
#define R11 6
|
|
||||||
#define R10 7
|
|
||||||
#define R9 8
|
|
||||||
#define R8 9
|
|
||||||
#define RAX 10
|
|
||||||
#define RCX 11
|
|
||||||
#define RDX 12
|
|
||||||
#define RSI 13
|
|
||||||
#define RDI 14
|
|
||||||
#define ORIG_RAX 15
|
|
||||||
#define RIP 16
|
|
||||||
#define CS 17
|
|
||||||
#define EFLAGS 18
|
|
||||||
#define RSP 19
|
|
||||||
#define SS 20
|
|
||||||
#define FS_BASE 21
|
|
||||||
#define GS_BASE 22
|
|
||||||
#define DS 23
|
|
||||||
#define ES 24
|
|
||||||
#define FS 25
|
|
||||||
#define GS 26
|
|
|
@ -1 +0,0 @@
|
||||||
typedef unsigned long jmp_buf [9];
|
|
|
@ -1,24 +0,0 @@
|
||||||
#define SHMLBA 4096
|
|
||||||
|
|
||||||
#define SHM_RDONLY 010000
|
|
||||||
#define SHM_RND 020000
|
|
||||||
#define SHM_REMAP 040000
|
|
||||||
#define SHM_EXEC 0100000
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define SHM_LOCK 11
|
|
||||||
#define SHM_UNLOCK 12
|
|
||||||
|
|
||||||
struct shmid_ds
|
|
||||||
{
|
|
||||||
struct ipc_perm shm_perm;
|
|
||||||
size_t shm_segsz;
|
|
||||||
time_t shm_atime;
|
|
||||||
time_t shm_dtime;
|
|
||||||
time_t shm_ctime;
|
|
||||||
pid_t shm_cpid;
|
|
||||||
pid_t shm_lpid;
|
|
||||||
unsigned long shm_nattch;
|
|
||||||
unsigned long __pad1;
|
|
||||||
unsigned long __pad2;
|
|
||||||
};
|
|
|
@ -1,115 +0,0 @@
|
||||||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
|
||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
|
||||||
|
|
||||||
struct __siginfo
|
|
||||||
{
|
|
||||||
int si_signo;
|
|
||||||
int si_errno;
|
|
||||||
int si_code;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
int __pad[(128 - 4*sizeof(int)) / sizeof(int)];
|
|
||||||
struct {
|
|
||||||
pid_t si_pid;
|
|
||||||
uid_t si_uid;
|
|
||||||
} __kill;
|
|
||||||
struct {
|
|
||||||
void *si_timerid;
|
|
||||||
int si_overrun;
|
|
||||||
char __pad[sizeof(uid_t) - sizeof(int)];
|
|
||||||
union sigval si_sigval;
|
|
||||||
int si_private;
|
|
||||||
} __timer;
|
|
||||||
struct {
|
|
||||||
pid_t si_pid;
|
|
||||||
uid_t si_uid;
|
|
||||||
union sigval si_sigval;
|
|
||||||
} __rt;
|
|
||||||
struct {
|
|
||||||
pid_t si_pid;
|
|
||||||
uid_t si_uid;
|
|
||||||
int si_status;
|
|
||||||
clock_t si_utime;
|
|
||||||
clock_t si_stime;
|
|
||||||
} __sigchld;
|
|
||||||
struct {
|
|
||||||
void *si_addr;
|
|
||||||
short addr_lsb;
|
|
||||||
} __sigfault;
|
|
||||||
struct {
|
|
||||||
long si_band;
|
|
||||||
int si_fd;
|
|
||||||
} __sigpoll;
|
|
||||||
} __si_fields;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define si_pid __si_fields.__sigchld.si_pid
|
|
||||||
#define si_uid __si_fields.__sigchld.si_uid
|
|
||||||
#define si_status __si_fields.__sigchld.si_status
|
|
||||||
#define si_utime __si_fields.__sigchld.si_utime
|
|
||||||
#define si_stime __si_fields.__sigchld.si_stime
|
|
||||||
#define si_value __si_fields.__rt.si_sigval
|
|
||||||
#define si_addr __si_fields.__sigfault.si_addr
|
|
||||||
#define si_band __si_fields.__sigpoll.si_band
|
|
||||||
|
|
||||||
#define SA_NOCLDSTOP 1
|
|
||||||
#define SA_NOCLDWAIT 2
|
|
||||||
#define SA_SIGINFO 4
|
|
||||||
#define SA_ONSTACK 0x08000000
|
|
||||||
#define SA_RESTART 0x10000000
|
|
||||||
#define SA_NODEFER 0x40000000
|
|
||||||
#define SA_RESETHAND 0x80000000
|
|
||||||
#define SA_RESTORER 0x04000000
|
|
||||||
|
|
||||||
#define SS_ONSTACK 1
|
|
||||||
#define SS_DISABLE 2
|
|
||||||
|
|
||||||
#define SIG_BLOCK 0
|
|
||||||
#define SIG_UNBLOCK 1
|
|
||||||
#define SIG_SETMASK 2
|
|
||||||
|
|
||||||
#define SIG_HOLD ((void (*)(int)) 2)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
|
||||||
#define NSIG 64
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SIG_ERR ((void (*)(int))-1)
|
|
||||||
#define SIG_DFL ((void (*)(int)) 0)
|
|
||||||
#define SIG_IGN ((void (*)(int)) 1)
|
|
||||||
|
|
||||||
#define SIGHUP 1
|
|
||||||
#define SIGINT 2
|
|
||||||
#define SIGQUIT 3
|
|
||||||
#define SIGILL 4
|
|
||||||
#define SIGTRAP 5
|
|
||||||
#define SIGABRT 6
|
|
||||||
#define SIGBUS 7
|
|
||||||
#define SIGFPE 8
|
|
||||||
#define SIGKILL 9
|
|
||||||
#define SIGUSR1 10
|
|
||||||
#define SIGSEGV 11
|
|
||||||
#define SIGUSR2 12
|
|
||||||
#define SIGPIPE 13
|
|
||||||
#define SIGALRM 14
|
|
||||||
#define SIGTERM 15
|
|
||||||
#define SIGSTKFLT 16
|
|
||||||
#define SIGCHLD 17
|
|
||||||
#define SIGCONT 18
|
|
||||||
#define SIGSTOP 19
|
|
||||||
#define SIGTSTP 20
|
|
||||||
#define SIGTTIN 21
|
|
||||||
#define SIGTTOU 22
|
|
||||||
#define SIGURG 23
|
|
||||||
#define SIGXCPU 24
|
|
||||||
#define SIGXFSZ 25
|
|
||||||
#define SIGVTALRM 26
|
|
||||||
#define SIGPROF 27
|
|
||||||
#define SIGWINCH 28
|
|
||||||
#define SIGIO 29
|
|
||||||
#define SIGPOLL 29
|
|
||||||
#define SIGPWR 30
|
|
||||||
#define SIGSYS 31
|
|
||||||
#define SIGUNUSED SIGSYS
|
|
|
@ -1,210 +0,0 @@
|
||||||
struct msghdr
|
|
||||||
{
|
|
||||||
void *msg_name;
|
|
||||||
socklen_t msg_namelen;
|
|
||||||
struct iovec *msg_iov;
|
|
||||||
int msg_iovlen;
|
|
||||||
void *msg_control;
|
|
||||||
socklen_t msg_controllen;
|
|
||||||
int msg_flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct cmsghdr
|
|
||||||
{
|
|
||||||
socklen_t cmsg_len;
|
|
||||||
int cmsg_level;
|
|
||||||
int cmsg_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ucred
|
|
||||||
{
|
|
||||||
pid_t pid;
|
|
||||||
uid_t uid;
|
|
||||||
gid_t gid;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct linger
|
|
||||||
{
|
|
||||||
int l_onoff;
|
|
||||||
int l_linger;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define SHUT_RD 0
|
|
||||||
#define SHUT_WD 1
|
|
||||||
#define SHUT_RDWR 2
|
|
||||||
|
|
||||||
#define SOCK_STREAM 1
|
|
||||||
#define SOCK_DGRAM 2
|
|
||||||
#define SOCK_RAW 3
|
|
||||||
#define SOCK_RDM 4
|
|
||||||
#define SOCK_SEQPACKET 5
|
|
||||||
#define SOCK_DCCP 6
|
|
||||||
#define SOCK_PACKET 10
|
|
||||||
|
|
||||||
/* linux extensions */
|
|
||||||
#define SOCK_CLOEXEC 02000000
|
|
||||||
#define SOCK_NONBLOCK 04000
|
|
||||||
|
|
||||||
#define PF_UNSPEC 0
|
|
||||||
#define PF_LOCAL 1
|
|
||||||
#define PF_UNIX PF_LOCAL
|
|
||||||
#define PF_FILE PF_LOCAL
|
|
||||||
#define PF_INET 2
|
|
||||||
#define PF_AX25 3
|
|
||||||
#define PF_IPX 4
|
|
||||||
#define PF_APPLETALK 5
|
|
||||||
#define PF_NETROM 6
|
|
||||||
#define PF_BRIDGE 7
|
|
||||||
#define PF_ATMPVC 8
|
|
||||||
#define PF_X25 9
|
|
||||||
#define PF_INET6 10
|
|
||||||
#define PF_ROSE 11
|
|
||||||
#define PF_DECnet 12
|
|
||||||
#define PF_NETBEUI 13
|
|
||||||
#define PF_SECURITY 14
|
|
||||||
#define PF_KEY 15
|
|
||||||
#define PF_NETLINK 16
|
|
||||||
#define PF_ROUTE PF_NETLINK
|
|
||||||
#define PF_PACKET 17
|
|
||||||
#define PF_ASH 18
|
|
||||||
#define PF_ECONET 19
|
|
||||||
#define PF_ATMSVC 20
|
|
||||||
#define PF_SNA 22
|
|
||||||
#define PF_IRDA 23
|
|
||||||
#define PF_PPPOX 24
|
|
||||||
#define PF_WANPIPE 25
|
|
||||||
#define PF_BLUETOOTH 31
|
|
||||||
#define PF_IUCV 32
|
|
||||||
#define PF_RXRPC 33
|
|
||||||
#define PF_ISDN 34
|
|
||||||
#define PF_PHONET 35
|
|
||||||
#define PF_IEEE802154 36
|
|
||||||
#define PF_CAIF 37
|
|
||||||
#define PF_ALG 38
|
|
||||||
#define PF_MAX 39
|
|
||||||
|
|
||||||
#define AF_UNSPEC PF_UNSPEC
|
|
||||||
#define AF_LOCAL PF_LOCAL
|
|
||||||
#define AF_UNIX AF_LOCAL
|
|
||||||
#define AF_FILE AF_LOCAL
|
|
||||||
#define AF_INET PF_INET
|
|
||||||
#define AF_AX25 PF_AX25
|
|
||||||
#define AF_IPX PF_IPX
|
|
||||||
#define AF_APPLETALK PF_APPLETALK
|
|
||||||
#define AF_NETROM PF_NETROM
|
|
||||||
#define AF_BRIDGE PF_BRIDGE
|
|
||||||
#define AF_ATMPVC PF_ATMPVC
|
|
||||||
#define AF_X25 PF_X25
|
|
||||||
#define AF_INET6 PF_INET6
|
|
||||||
#define AF_ROSE PF_ROSE
|
|
||||||
#define AF_DECnet PF_DECnet
|
|
||||||
#define AF_NETBEUI PF_NETBEUI
|
|
||||||
#define AF_SECURITY PF_SECURITY
|
|
||||||
#define AF_KEY PF_KEY
|
|
||||||
#define AF_NETLINK PF_NETLINK
|
|
||||||
#define AF_ROUTE AF_NETLINK
|
|
||||||
#define AF_PACKET PF_PACKET
|
|
||||||
#define AF_ASH PF_ASH
|
|
||||||
#define AF_ECONET PF_ECONET
|
|
||||||
#define AF_ATMSVC PF_ATMSVC
|
|
||||||
#define AF_SNA PF_SNA
|
|
||||||
#define AF_IRDA PF_IRDA
|
|
||||||
#define AF_PPPOX PF_PPPOX
|
|
||||||
#define AF_WANPIPE PF_WANPIPE
|
|
||||||
#define AF_BLUETOOTH PF_BLUETOOTH
|
|
||||||
#define AF_IUCV PF_IUCV
|
|
||||||
#define AF_RXRPC PF_RXRPC
|
|
||||||
#define AF_ISDN PF_ISDN
|
|
||||||
#define AF_PHONET PF_PHONET
|
|
||||||
#define AF_IEEE802154 PF_IEEE802154
|
|
||||||
#define AF_CAIF PF_CAIF
|
|
||||||
#define AF_ALG PF_ALG
|
|
||||||
#define AF_MAX PF_MAX
|
|
||||||
|
|
||||||
#define SO_DEBUG 1
|
|
||||||
#define SO_REUSEADDR 2
|
|
||||||
#define SO_TYPE 3
|
|
||||||
#define SO_ERROR 4
|
|
||||||
#define SO_DONTROUTE 5
|
|
||||||
#define SO_BROADCAST 6
|
|
||||||
#define SO_SNDBUF 7
|
|
||||||
#define SO_RCVBUF 8
|
|
||||||
#define SO_KEEPALIVE 9
|
|
||||||
#define SO_OOBINLINE 10
|
|
||||||
#define SO_NO_CHECK 11
|
|
||||||
#define SO_PRIORITY 12
|
|
||||||
#define SO_LINGER 13
|
|
||||||
#define SO_BSDCOMPAT 14
|
|
||||||
#define SO_REUSEPORT 15
|
|
||||||
#define SO_PASSCRED 16
|
|
||||||
#define SO_PEERCRED 17
|
|
||||||
#define SO_RCVLOWAT 18
|
|
||||||
#define SO_SNDLOWAT 19
|
|
||||||
#define SO_RCVTIMEO 20
|
|
||||||
#define SO_SNDTIMEO 21
|
|
||||||
|
|
||||||
#define SO_SECURITY_AUTHENTICATION 22
|
|
||||||
#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
|
||||||
#define SO_SECURITY_ENCRYPTION_NETWORK 24
|
|
||||||
|
|
||||||
#define SO_BINDTODEVICE 25
|
|
||||||
|
|
||||||
#define SO_ATTACH_FILTER 26
|
|
||||||
#define SO_DETACH_FILTER 27
|
|
||||||
|
|
||||||
#define SO_PEERNAME 28
|
|
||||||
#define SO_TIMESTAMP 29
|
|
||||||
#define SCM_TIMESTAMP SO_TIMESTAMP
|
|
||||||
|
|
||||||
#define SO_ACCEPTCONN 30
|
|
||||||
|
|
||||||
#define SOL_SOCKET 1
|
|
||||||
|
|
||||||
/* ??? */
|
|
||||||
#define SOL_RAW 255
|
|
||||||
#define SOL_DECNET 261
|
|
||||||
#define SOL_X25 262
|
|
||||||
#define SOL_PACKET 263
|
|
||||||
#define SOL_ATM 264
|
|
||||||
#define SOL_AAL 265
|
|
||||||
#define SOL_IRDA 266
|
|
||||||
|
|
||||||
#define SOMAXCONN 128
|
|
||||||
|
|
||||||
#define MSG_OOB 0x0001
|
|
||||||
#define MSG_PEEK 0x0002
|
|
||||||
#define MSG_DONTROUTE 0x0004
|
|
||||||
#define MSG_CTRUNC 0x0008
|
|
||||||
#define MSG_PROXY 0x0010
|
|
||||||
#define MSG_TRUNC 0x0020
|
|
||||||
#define MSG_DONTWAIT 0x0040
|
|
||||||
#define MSG_EOR 0x0080
|
|
||||||
#define MSG_WAITALL 0x0100
|
|
||||||
#define MSG_FIN 0x0200
|
|
||||||
#define MSD_SYN 0x0400
|
|
||||||
#define MSG_CONFIRM 0x0800
|
|
||||||
#define MSG_RST 0x1000
|
|
||||||
#define MSG_ERRQUEUE 0x2000
|
|
||||||
#define MSG_NOSIGNAL 0x4000
|
|
||||||
#define MSG_MORE 0x8000
|
|
||||||
#define MSG_WAITFORONE 0x10000
|
|
||||||
#define MSG_CMSG_CLOEXEC 0x40000000
|
|
||||||
|
|
||||||
/* Internal use only!! to make CMSG_NXTHDR definition readable by mortals */
|
|
||||||
#define __CMSG_LEN(cmsg) (((cmsg)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1))
|
|
||||||
#define __CMSG_NEXT(cmsg) ((unsigned char *)(cmsg) + __CMSG_LEN(cmsg))
|
|
||||||
#define __MHDR_END(mhdr) ((unsigned char *)(mhdr)->msg_control + (mhdr)->msg_controllen)
|
|
||||||
|
|
||||||
#define CMSG_DATA(cmsg) ((unsigned char *) (((struct cmsghdr *)(cmsg)) + 1))
|
|
||||||
#define CMSG_NXTHDR(mhdr, cmsg) ((cmsg)->cmsg_len < sizeof (struct cmsghdr) ? (struct cmsghdr *)0 : \
|
|
||||||
(__CMSG_NEXT(cmsg) + sizeof (struct cmsghdr) >= __MHDR_END(mhdr) ? (struct cmsghdr *)0 : \
|
|
||||||
((struct cmsghdr *)__CMSG_NEXT(cmsg))))
|
|
||||||
#define CMSG_FIRSTHDR(mhdr) ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
|
|
||||||
|
|
||||||
/* Are these valid? */
|
|
||||||
#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
|
|
||||||
#define CMSG_SPACE(len) (CMSG_ALIGN (len) + CMSG_ALIGN (sizeof (struct cmsghdr)))
|
|
||||||
#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
|
|
||||||
|
|
||||||
#define SCM_RIGHTS 0x01
|
|
||||||
#define SCM_CREDENTIALS 0x02
|
|
|
@ -1,42 +0,0 @@
|
||||||
/* copied from kernel definition, but with padding replaced
|
|
||||||
* by the corresponding correctly-sized userspace types. */
|
|
||||||
|
|
||||||
struct stat {
|
|
||||||
unsigned long st_dev;
|
|
||||||
ino_t st_ino;
|
|
||||||
nlink_t st_nlink;
|
|
||||||
|
|
||||||
mode_t st_mode;
|
|
||||||
uid_t st_uid;
|
|
||||||
gid_t st_gid;
|
|
||||||
unsigned int __pad0;
|
|
||||||
dev_t st_rdev;
|
|
||||||
off_t st_size;
|
|
||||||
blksize_t st_blksize;
|
|
||||||
blkcnt_t st_blocks;
|
|
||||||
|
|
||||||
struct timespec st_atim;
|
|
||||||
struct timespec st_mtim;
|
|
||||||
struct timespec st_ctim;
|
|
||||||
long __unused[3];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct stat64 {
|
|
||||||
unsigned long st_dev;
|
|
||||||
ino_t st_ino;
|
|
||||||
nlink_t st_nlink;
|
|
||||||
|
|
||||||
mode_t st_mode;
|
|
||||||
uid_t st_uid;
|
|
||||||
gid_t st_gid;
|
|
||||||
unsigned int __pad0;
|
|
||||||
dev_t st_rdev;
|
|
||||||
off_t st_size;
|
|
||||||
blksize_t st_blksize;
|
|
||||||
blkcnt_t st_blocks;
|
|
||||||
|
|
||||||
struct timespec st_atim;
|
|
||||||
struct timespec st_mtim;
|
|
||||||
struct timespec st_ctim;
|
|
||||||
long __unused[3];
|
|
||||||
};
|
|
|
@ -1,15 +0,0 @@
|
||||||
struct statvfs {
|
|
||||||
unsigned long f_type;
|
|
||||||
unsigned long f_bsize;
|
|
||||||
fsblkcnt_t f_blocks;
|
|
||||||
fsblkcnt_t f_bfree;
|
|
||||||
fsblkcnt_t f_bavail;
|
|
||||||
fsfilcnt_t f_files;
|
|
||||||
fsfilcnt_t f_ffree;
|
|
||||||
unsigned long f_fsid;
|
|
||||||
unsigned long f_namemax;
|
|
||||||
unsigned long f_frsize;
|
|
||||||
fsfilcnt_t f_favail;
|
|
||||||
unsigned long f_flag;
|
|
||||||
unsigned long __reserved[2];
|
|
||||||
};
|
|
|
@ -1,79 +0,0 @@
|
||||||
#ifndef _STDARG_H
|
|
||||||
#define _STDARG_H
|
|
||||||
|
|
||||||
#ifdef __x86_64__
|
|
||||||
#ifndef _WIN64
|
|
||||||
|
|
||||||
//This should be in sync with the declaration on our lib/libtcc1.c
|
|
||||||
/* GCC compatible definition of va_list. */
|
|
||||||
typedef struct {
|
|
||||||
unsigned int gp_offset;
|
|
||||||
unsigned int fp_offset;
|
|
||||||
union {
|
|
||||||
unsigned int overflow_offset;
|
|
||||||
char *overflow_arg_area;
|
|
||||||
};
|
|
||||||
char *reg_save_area;
|
|
||||||
} __va_list_struct;
|
|
||||||
|
|
||||||
typedef __va_list_struct va_list[1];
|
|
||||||
|
|
||||||
void __va_start(__va_list_struct *ap, void *fp);
|
|
||||||
void *__va_arg(__va_list_struct *ap, int arg_type, int size, int align);
|
|
||||||
|
|
||||||
#define va_start(ap, last) __va_start(ap, __builtin_frame_address(0))
|
|
||||||
#define va_arg(ap, type) \
|
|
||||||
(*(type *)(__va_arg(ap, __builtin_va_arg_types(type), sizeof(type), __alignof__(type))))
|
|
||||||
#define va_copy(dest, src) (*(dest) = *(src))
|
|
||||||
#define va_end(ap)
|
|
||||||
|
|
||||||
/* avoid conflicting definition for va_list on Macs. */
|
|
||||||
#define _VA_LIST_T
|
|
||||||
|
|
||||||
#else /* _WIN64 */
|
|
||||||
typedef char *va_list;
|
|
||||||
#define va_start(ap,last) __builtin_va_start(ap,last)
|
|
||||||
#define va_arg(ap, t) ((sizeof(t) > 8 || (sizeof(t) & (sizeof(t) - 1))) \
|
|
||||||
? **(t **)((ap += 8) - 8) : *(t *)((ap += 8) - 8))
|
|
||||||
#define va_copy(dest, src) ((dest) = (src))
|
|
||||||
#define va_end(ap)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif __arm__
|
|
||||||
typedef char *va_list;
|
|
||||||
#define _tcc_alignof(type) ((int)&((struct {char c;type x;} *)0)->x)
|
|
||||||
#define _tcc_align(addr,type) (((unsigned)addr + _tcc_alignof(type) - 1) \
|
|
||||||
& ~(_tcc_alignof(type) - 1))
|
|
||||||
#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3)
|
|
||||||
#define va_arg(ap,type) (ap = (void *) ((_tcc_align(ap,type)+sizeof(type)+3) \
|
|
||||||
&~3), *(type *)(ap - ((sizeof(type)+3)&~3)))
|
|
||||||
#define va_copy(dest, src) (dest) = (src)
|
|
||||||
#define va_end(ap)
|
|
||||||
|
|
||||||
#elif defined(__aarch64__)
|
|
||||||
typedef struct {
|
|
||||||
void *__stack;
|
|
||||||
void *__gr_top;
|
|
||||||
void *__vr_top;
|
|
||||||
int __gr_offs;
|
|
||||||
int __vr_offs;
|
|
||||||
} va_list;
|
|
||||||
#define va_start(ap, last) __va_start(ap, last)
|
|
||||||
#define va_arg(ap, type) __va_arg(ap, type)
|
|
||||||
#define va_end(ap)
|
|
||||||
#define va_copy(dest, src) ((dest) = (src))
|
|
||||||
|
|
||||||
#else /* __i386__ */
|
|
||||||
typedef char *va_list;
|
|
||||||
/* only correct for i386 */
|
|
||||||
#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3)
|
|
||||||
#define va_arg(ap,type) (ap += (sizeof(type)+3)&~3, *(type *)(ap - ((sizeof(type)+3)&~3)))
|
|
||||||
#define va_copy(dest, src) (dest) = (src)
|
|
||||||
#define va_end(ap)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* fix a buggy dependency on GCC in libio.h */
|
|
||||||
typedef va_list __gnuc_va_list;
|
|
||||||
#define _VA_LIST_DEFINED
|
|
||||||
|
|
||||||
#endif /* _STDARG_H */
|
|
|
@ -1,23 +0,0 @@
|
||||||
#define INT_FAST8_MIN INT8_MIN
|
|
||||||
#define INT_FAST16_MIN INT32_MIN
|
|
||||||
#define INT_FAST32_MIN INT32_MIN
|
|
||||||
#define INT_FAST64_MIN INT64_MIN
|
|
||||||
|
|
||||||
#define INT_FAST8_MAX INT8_MAX
|
|
||||||
#define INT_FAST16_MAX INT32_MAX
|
|
||||||
#define INT_FAST32_MAX INT32_MAX
|
|
||||||
#define INT_FAST64_MAX INT64_MAX
|
|
||||||
|
|
||||||
#define UINT_FAST8_MAX UINT8_MAX
|
|
||||||
#define UINT_FAST16_MAX UINT32_MAX
|
|
||||||
#define UINT_FAST32_MAX UINT32_MAX
|
|
||||||
#define UINT_FAST64_MAX UINT64_MAX
|
|
||||||
|
|
||||||
#define INTPTR_MIN INT64_MIN
|
|
||||||
#define INTPTR_MAX INT64_MAX
|
|
||||||
#define UINTPTR_MAX UINT64_MAX
|
|
||||||
#define PTRDIFF_MIN INT64_MIN
|
|
||||||
#define PTRDIFF_MAX INT64_MAX
|
|
||||||
#define SIG_ATOMIC_MIN INT64_MIN
|
|
||||||
#define SIG_ATOMIC_MAX INT64_MAX
|
|
||||||
#define SIZE_MAX UINT64_MAX
|
|
|
@ -1,7 +0,0 @@
|
||||||
#define major(x) (((x) >> 8) & 0xff)
|
|
||||||
#define minor(x) ((x) & 0xff)
|
|
||||||
#define makedev(x,y) (((x)<<8)|((y)&0xff))
|
|
||||||
|
|
||||||
//#define makedev(x,y) \
|
|
||||||
// ((x)*0x100000001ULL)&(0xfffffffffff0)
|
|
||||||
// ((y)*0x1001 & 0xffff0ff)
|
|
|
@ -1 +0,0 @@
|
||||||
#define TCP_NODELAY 1
|
|
|
@ -1,158 +0,0 @@
|
||||||
struct termios
|
|
||||||
{
|
|
||||||
tcflag_t c_iflag;
|
|
||||||
tcflag_t c_oflag;
|
|
||||||
tcflag_t c_cflag;
|
|
||||||
tcflag_t c_lflag;
|
|
||||||
cc_t c_line;
|
|
||||||
cc_t c_cc[NCCS];
|
|
||||||
speed_t __c_ispeed;
|
|
||||||
speed_t __c_ospeed;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define VINTR 0
|
|
||||||
#define VQUIT 1
|
|
||||||
#define VERASE 2
|
|
||||||
#define VKILL 3
|
|
||||||
#define VEOF 4
|
|
||||||
#define VTIME 5
|
|
||||||
#define VMIN 6
|
|
||||||
#define VSWTC 7
|
|
||||||
#define VSTART 8
|
|
||||||
#define VSTOP 9
|
|
||||||
#define VSUSP 10
|
|
||||||
#define VEOL 11
|
|
||||||
#define VREPRINT 12
|
|
||||||
#define VDISCARD 13
|
|
||||||
#define VWERASE 14
|
|
||||||
#define VLNEXT 15
|
|
||||||
#define VEOL2 16
|
|
||||||
|
|
||||||
#define IGNBRK 0000001
|
|
||||||
#define BRKINT 0000002
|
|
||||||
#define IGNPAR 0000004
|
|
||||||
#define PARMRK 0000010
|
|
||||||
#define INPCK 0000020
|
|
||||||
#define ISTRIP 0000040
|
|
||||||
#define INLCR 0000100
|
|
||||||
#define IGNCR 0000200
|
|
||||||
#define ICRNL 0000400
|
|
||||||
#define IUCLC 0001000
|
|
||||||
#define IXON 0002000
|
|
||||||
#define IXANY 0004000
|
|
||||||
#define IXOFF 0010000
|
|
||||||
#define IMAXBEL 0020000
|
|
||||||
|
|
||||||
#define OPOST 0000001
|
|
||||||
#define OLCUC 0000002
|
|
||||||
#define ONLCR 0000004
|
|
||||||
#define OCRNL 0000010
|
|
||||||
#define ONOCR 0000020
|
|
||||||
#define ONLRET 0000040
|
|
||||||
#define OFILL 0000100
|
|
||||||
#define OFDEL 0000200
|
|
||||||
#define NLDLY 0000400
|
|
||||||
#define NL0 0000000
|
|
||||||
#define NL1 0000400
|
|
||||||
#define CRDLY 0003000
|
|
||||||
#define CR0 0000000
|
|
||||||
#define CR1 0001000
|
|
||||||
#define CR2 0002000
|
|
||||||
#define CR3 0003000
|
|
||||||
#define TABDLY 0014000
|
|
||||||
#define TAB0 0000000
|
|
||||||
#define TAB1 0004000
|
|
||||||
#define TAB2 0010000
|
|
||||||
#define TAB3 0014000
|
|
||||||
#define BSDLY 0020000
|
|
||||||
#define BS0 0000000
|
|
||||||
#define BS1 0020000
|
|
||||||
#define FFDLY 0100000
|
|
||||||
#define FF0 0000000
|
|
||||||
#define FF1 0100000
|
|
||||||
|
|
||||||
#define VTDLY 0040000
|
|
||||||
#define VT0 0000000
|
|
||||||
#define VT1 0040000
|
|
||||||
|
|
||||||
/* ?? */
|
|
||||||
#define XTABS 0014000
|
|
||||||
|
|
||||||
#define B0 0000000
|
|
||||||
#define B50 0000001
|
|
||||||
#define B75 0000002
|
|
||||||
#define B110 0000003
|
|
||||||
#define B134 0000004
|
|
||||||
#define B150 0000005
|
|
||||||
#define B200 0000006
|
|
||||||
#define B300 0000007
|
|
||||||
#define B600 0000010
|
|
||||||
#define B1200 0000011
|
|
||||||
#define B1800 0000012
|
|
||||||
#define B2400 0000013
|
|
||||||
#define B4800 0000014
|
|
||||||
#define B9600 0000015
|
|
||||||
#define B19200 0000016
|
|
||||||
#define B38400 0000017
|
|
||||||
|
|
||||||
#define B57600 0010001
|
|
||||||
#define B115200 0010002
|
|
||||||
#define B230400 0010003
|
|
||||||
#define B460800 0010004
|
|
||||||
#define B500000 0010005
|
|
||||||
#define B576000 0010006
|
|
||||||
#define B921600 0010007
|
|
||||||
#define B1000000 0010010
|
|
||||||
#define B1152000 0010011
|
|
||||||
#define B1500000 0010012
|
|
||||||
#define B2000000 0010013
|
|
||||||
#define B2500000 0010014
|
|
||||||
#define B3000000 0010015
|
|
||||||
#define B3500000 0010016
|
|
||||||
#define B4000000 0010017
|
|
||||||
|
|
||||||
#define CBAUD 0010017
|
|
||||||
|
|
||||||
#define CSIZE 0000060
|
|
||||||
#define CS5 0000000
|
|
||||||
#define CS6 0000020
|
|
||||||
#define CS7 0000040
|
|
||||||
#define CS8 0000060
|
|
||||||
#define CSTOPB 0000100
|
|
||||||
#define CREAD 0000200
|
|
||||||
#define PARENB 0000400
|
|
||||||
#define PARODD 0001000
|
|
||||||
#define HUPCL 0002000
|
|
||||||
#define CLOCAL 0004000
|
|
||||||
|
|
||||||
#define CRTSCTS 020000000000
|
|
||||||
|
|
||||||
#define ISIG 0000001
|
|
||||||
#define ICANON 0000002
|
|
||||||
#define ECHO 0000010
|
|
||||||
#define ECHOE 0000020
|
|
||||||
#define ECHOK 0000040
|
|
||||||
#define ECHONL 0000100
|
|
||||||
#define NOFLSH 0000200
|
|
||||||
#define TOSTOP 0000400
|
|
||||||
#define IEXTEN 0100000
|
|
||||||
|
|
||||||
/* Extensions? */
|
|
||||||
#define ECHOCTL 0001000
|
|
||||||
#define ECHOPRT 0002000
|
|
||||||
#define ECHOKE 0004000
|
|
||||||
#define FLUSHO 0010000
|
|
||||||
#define PENDIN 0040000
|
|
||||||
|
|
||||||
#define TCOOFF 0
|
|
||||||
#define TCOON 1
|
|
||||||
#define TCIOFF 2
|
|
||||||
#define TCION 3
|
|
||||||
|
|
||||||
#define TCIFLUSH 0
|
|
||||||
#define TCOFLUSH 1
|
|
||||||
#define TCIOFLUSH 2
|
|
||||||
|
|
||||||
#define TCSANOW 0
|
|
||||||
#define TCSADRAIN 1
|
|
||||||
#define TCSAFLUSH 2
|
|
|
@ -1,77 +0,0 @@
|
||||||
#undef __WORDSIZE
|
|
||||||
#define __WORDSIZE 32
|
|
||||||
|
|
||||||
struct user_fpregs_struct
|
|
||||||
{
|
|
||||||
long int cwd;
|
|
||||||
long int swd;
|
|
||||||
long int twd;
|
|
||||||
long int fip;
|
|
||||||
long int fcs;
|
|
||||||
long int foo;
|
|
||||||
long int fos;
|
|
||||||
long int st_space[20];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct user_fpxregs_struct
|
|
||||||
{
|
|
||||||
unsigned short int cwd;
|
|
||||||
unsigned short int swd;
|
|
||||||
unsigned short int twd;
|
|
||||||
unsigned short int fop;
|
|
||||||
long int fip;
|
|
||||||
long int fcs;
|
|
||||||
long int foo;
|
|
||||||
long int fos;
|
|
||||||
long int mxcsr;
|
|
||||||
long int reserved;
|
|
||||||
long int st_space[32];
|
|
||||||
long int xmm_space[32];
|
|
||||||
long int padding[56];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct user_regs_struct
|
|
||||||
{
|
|
||||||
long int ebx;
|
|
||||||
long int ecx;
|
|
||||||
long int edx;
|
|
||||||
long int esi;
|
|
||||||
long int edi;
|
|
||||||
long int ebp;
|
|
||||||
long int eax;
|
|
||||||
long int xds;
|
|
||||||
long int xes;
|
|
||||||
long int xfs;
|
|
||||||
long int xgs;
|
|
||||||
long int orig_eax;
|
|
||||||
long int eip;
|
|
||||||
long int xcs;
|
|
||||||
long int eflags;
|
|
||||||
long int esp;
|
|
||||||
long int xss;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct user
|
|
||||||
{
|
|
||||||
struct user_regs_struct regs;
|
|
||||||
int u_fpvalid;
|
|
||||||
struct user_fpregs_struct i387;
|
|
||||||
unsigned long int u_tsize;
|
|
||||||
unsigned long int u_dsize;
|
|
||||||
unsigned long int u_ssize;
|
|
||||||
unsigned long start_code;
|
|
||||||
unsigned long start_stack;
|
|
||||||
long int signal;
|
|
||||||
int reserved;
|
|
||||||
struct user_regs_struct *u_ar0;
|
|
||||||
struct user_fpregs_struct *u_fpstate;
|
|
||||||
unsigned long int magic;
|
|
||||||
char u_comm[32];
|
|
||||||
int u_debugreg[8];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
|
||||||
#define NBPG PAGE_SIZE
|
|
||||||
#define UPAGES 1
|
|
||||||
#define HOST_TEXT_START_ADDR (u.start_code)
|
|
||||||
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
|
|
|
@ -1,13 +0,0 @@
|
||||||
#define WNOHANG 1
|
|
||||||
#define WUNTRACED 2
|
|
||||||
|
|
||||||
#define WSTOPPED 2
|
|
||||||
#define WEXITED 4
|
|
||||||
#define WCONTINUED 8
|
|
||||||
#define WNOWAIT 0x1000000
|
|
||||||
|
|
||||||
#if defined(__XOPEN_SOURCE) || defined(__GNU_SOURCE)
|
|
||||||
#define P_ALL 0
|
|
||||||
#define P_PID 1
|
|
||||||
#define P_PGID 2
|
|
||||||
#endif
|
|
|
@ -1,9 +0,0 @@
|
||||||
#ifndef WEXITSTATUS
|
|
||||||
#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
|
|
||||||
#define WTERMSIG(s) ((s) & 0x7f)
|
|
||||||
#define WSTOPSIG(s) WEXITSTATUS(s)
|
|
||||||
#define WCOREDUMP(s) ((s) & 0x80)
|
|
||||||
#define WIFEXITED(s) (!WTERMSIG(s))
|
|
||||||
#define WIFSTOPPED(s) (((s) & 0xff) == 0x7f)
|
|
||||||
#define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s))
|
|
||||||
#endif
|
|
|
@ -1,6 +0,0 @@
|
||||||
static inline struct pthread *__pthread_self()
|
|
||||||
{
|
|
||||||
struct pthread *self;
|
|
||||||
__asm__ ("movq %%fs:0,%0" : "=r" (self) );
|
|
||||||
return self;
|
|
||||||
}
|
|
|
@ -1,433 +0,0 @@
|
||||||
#ifndef _SYSCALL_H
|
|
||||||
#define _SYSCALL_H
|
|
||||||
|
|
||||||
#define SYSCALL_LL(x) x, 0
|
|
||||||
#define SYSCALL_SIGSET_SIZE 8
|
|
||||||
|
|
||||||
#if defined(SYSCALL_NORETURN)
|
|
||||||
static inline long __syscall_ret(unsigned long r)
|
|
||||||
{
|
|
||||||
for(;;);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#elif defined(SYSCALL_RETURN_ERRNO)
|
|
||||||
static inline long __syscall_ret(unsigned long r)
|
|
||||||
{
|
|
||||||
return -r;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
extern long __syscall_ret(unsigned long);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// 64: di, si, dx, r10, r8, r9
|
|
||||||
// 32: ebx, ecx, edx, esi, edi, ebp
|
|
||||||
|
|
||||||
#define SYSCALL "syscall"
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static inline long syscall0(long n)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n) : "rcx", "r11", "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall1(long n, long a1)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall2(long n, long a1, long a2)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), "D"(a1), "S"(a2)
|
|
||||||
: "rcx", "r11", "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall3(long n, long a1, long a2, long a3)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
|
|
||||||
"d"(a3) : "rcx", "r11", "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall4(long n, long a1, long a2, long a3, long a4)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
register long r10 __asm__("r10") = a4;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
|
|
||||||
"d"(a3), "r"(r10): "rcx", "r11", "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long syscall5(long n, long a1, long a2, long a3, long a4,
|
|
||||||
long a5)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
register long r10 __asm__("r10") = a4;
|
|
||||||
register long r8 __asm__("r8") = a5;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
|
|
||||||
"d"(a3), "r"(r10), "r"(r8) : "rcx", "r11", "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static inline long syscall6(long n, long a1, long a2, long a3, long a4,
|
|
||||||
long a5, long a6)
|
|
||||||
{
|
|
||||||
unsigned long ret;
|
|
||||||
register long r10 __asm__("r10") = a4;
|
|
||||||
register long r8 __asm__("r8") = a5;
|
|
||||||
register long r9 __asm__("r9") = a6;
|
|
||||||
__asm__ __volatile__ (SYSCALL : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
|
|
||||||
"d"(a3), "r"(r10), "r"(r8), "r"(r9) : "rcx", "r11", "memory");
|
|
||||||
return __syscall_ret(ret);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
extern long syscall0(long);
|
|
||||||
extern long syscall1(long, long);
|
|
||||||
extern long syscall2(long, long, long);
|
|
||||||
extern long syscall3(long, long, long, long);
|
|
||||||
extern long syscall4(long, long, long, long, long);
|
|
||||||
extern long syscall5(long, long, long, long, long, long);
|
|
||||||
extern long syscall6(long, long, long, long, long, long, long);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define __NR_read 0
|
|
||||||
#define __NR_write 1
|
|
||||||
#define __NR_open 2
|
|
||||||
#define __NR_close 3
|
|
||||||
#define __NR_stat 4
|
|
||||||
#define __NR_fstat 5
|
|
||||||
#define __NR_lstat 6
|
|
||||||
#define __NR_poll 7
|
|
||||||
#define __NR_lseek 8
|
|
||||||
#define __NR_mmap 9
|
|
||||||
#define __NR_mprotect 10
|
|
||||||
#define __NR_munmap 11
|
|
||||||
#define __NR_brk 12
|
|
||||||
#define __NR_rt_sigaction 13
|
|
||||||
#define __NR_rt_sigprocmask 14
|
|
||||||
#define __NR_rt_sigreturn 15
|
|
||||||
#define __NR_ioctl 16
|
|
||||||
#define __NR_pread64 17
|
|
||||||
#define __NR_pwrite64 18
|
|
||||||
#define __NR_readv 19
|
|
||||||
#define __NR_writev 20
|
|
||||||
#define __NR_access 21
|
|
||||||
#define __NR_pipe 22
|
|
||||||
#define __NR_select 23
|
|
||||||
#define __NR_sched_yield 24
|
|
||||||
#define __NR_mremap 25
|
|
||||||
#define __NR_msync 26
|
|
||||||
#define __NR_mincore 27
|
|
||||||
#define __NR_madvise 28
|
|
||||||
#define __NR_shmget 29
|
|
||||||
#define __NR_shmat 30
|
|
||||||
#define __NR_shmctl 31
|
|
||||||
#define __NR_dup 32
|
|
||||||
#define __NR_dup2 33
|
|
||||||
#define __NR_pause 34
|
|
||||||
#define __NR_nanosleep 35
|
|
||||||
#define __NR_getitimer 36
|
|
||||||
#define __NR_alarm 37
|
|
||||||
#define __NR_setitimer 38
|
|
||||||
#define __NR_getpid 39
|
|
||||||
#define __NR_sendfile 40
|
|
||||||
#define __NR_socket 41
|
|
||||||
#define __NR_connect 42
|
|
||||||
#define __NR_accept 43
|
|
||||||
#define __NR_sendto 44
|
|
||||||
#define __NR_recvfrom 45
|
|
||||||
#define __NR_sendmsg 46
|
|
||||||
#define __NR_recvmsg 47
|
|
||||||
#define __NR_shutdown 48
|
|
||||||
#define __NR_bind 49
|
|
||||||
#define __NR_listen 50
|
|
||||||
#define __NR_getsockname 51
|
|
||||||
#define __NR_getpeername 52
|
|
||||||
#define __NR_socketpair 53
|
|
||||||
#define __NR_setsockopt 54
|
|
||||||
#define __NR_getsockopt 55
|
|
||||||
#define __NR_clone 56
|
|
||||||
#define __NR_fork 57
|
|
||||||
#define __NR_vfork 58
|
|
||||||
#define __NR_execve 59
|
|
||||||
#define __NR_exit 60
|
|
||||||
#define __NR_wait4 61
|
|
||||||
#define __NR_kill 62
|
|
||||||
#define __NR_uname 63
|
|
||||||
#define __NR_semget 64
|
|
||||||
#define __NR_semop 65
|
|
||||||
#define __NR_semctl 66
|
|
||||||
#define __NR_shmdt 67
|
|
||||||
#define __NR_msgget 68
|
|
||||||
#define __NR_msgsnd 69
|
|
||||||
#define __NR_msgrcv 70
|
|
||||||
#define __NR_msgctl 71
|
|
||||||
#define __NR_fcntl 72
|
|
||||||
#define __NR_flock 73
|
|
||||||
#define __NR_fsync 74
|
|
||||||
#define __NR_fdatasync 75
|
|
||||||
#define __NR_truncate 76
|
|
||||||
#define __NR_ftruncate 77
|
|
||||||
#define __NR_getdents 78
|
|
||||||
#define __NR_getcwd 79
|
|
||||||
#define __NR_chdir 80
|
|
||||||
#define __NR_fchdir 81
|
|
||||||
#define __NR_rename 82
|
|
||||||
#define __NR_mkdir 83
|
|
||||||
#define __NR_rmdir 84
|
|
||||||
#define __NR_creat 85
|
|
||||||
#define __NR_link 86
|
|
||||||
#define __NR_unlink 87
|
|
||||||
#define __NR_symlink 88
|
|
||||||
#define __NR_readlink 89
|
|
||||||
#define __NR_chmod 90
|
|
||||||
#define __NR_fchmod 91
|
|
||||||
#define __NR_chown 92
|
|
||||||
#define __NR_fchown 93
|
|
||||||
#define __NR_lchown 94
|
|
||||||
#define __NR_umask 95
|
|
||||||
#define __NR_gettimeofday 96
|
|
||||||
#define __NR_getrlimit 97
|
|
||||||
#define __NR_getrusage 98
|
|
||||||
#define __NR_sysinfo 99
|
|
||||||
#define __NR_times 100
|
|
||||||
#define __NR_ptrace 101
|
|
||||||
#define __NR_getuid 102
|
|
||||||
#define __NR_syslog 103
|
|
||||||
#define __NR_getgid 104
|
|
||||||
#define __NR_setuid 105
|
|
||||||
#define __NR_setgid 106
|
|
||||||
#define __NR_geteuid 107
|
|
||||||
#define __NR_getegid 108
|
|
||||||
#define __NR_setpgid 109
|
|
||||||
#define __NR_getppid 110
|
|
||||||
#define __NR_getpgrp 111
|
|
||||||
#define __NR_setsid 112
|
|
||||||
#define __NR_setreuid 113
|
|
||||||
#define __NR_setregid 114
|
|
||||||
#define __NR_getgroups 115
|
|
||||||
#define __NR_setgroups 116
|
|
||||||
#define __NR_setresuid 117
|
|
||||||
#define __NR_getresuid 118
|
|
||||||
#define __NR_setresgid 119
|
|
||||||
#define __NR_getresgid 120
|
|
||||||
#define __NR_getpgid 121
|
|
||||||
#define __NR_setfsuid 122
|
|
||||||
#define __NR_setfsgid 123
|
|
||||||
#define __NR_getsid 124
|
|
||||||
#define __NR_capget 125
|
|
||||||
#define __NR_capset 126
|
|
||||||
#define __NR_rt_sigpending 127
|
|
||||||
#define __NR_rt_sigtimedwait 128
|
|
||||||
#define __NR_rt_sigqueueinfo 129
|
|
||||||
#define __NR_rt_sigsuspend 130
|
|
||||||
#define __NR_sigaltstack 131
|
|
||||||
#define __NR_utime 132
|
|
||||||
#define __NR_mknod 133
|
|
||||||
#define __NR_uselib 134
|
|
||||||
#define __NR_personality 135
|
|
||||||
#define __NR_ustat 136
|
|
||||||
#define __NR_statfs 137
|
|
||||||
#define __NR_fstatfs 138
|
|
||||||
#define __NR_sysfs 139
|
|
||||||
#define __NR_getpriority 140
|
|
||||||
#define __NR_setpriority 141
|
|
||||||
#define __NR_sched_setparam 142
|
|
||||||
#define __NR_sched_getparam 143
|
|
||||||
#define __NR_sched_setscheduler 144
|
|
||||||
#define __NR_sched_getscheduler 145
|
|
||||||
#define __NR_sched_get_priority_max 146
|
|
||||||
#define __NR_sched_get_priority_min 147
|
|
||||||
#define __NR_sched_rr_get_interval 148
|
|
||||||
#define __NR_mlock 149
|
|
||||||
#define __NR_munlock 150
|
|
||||||
#define __NR_mlockall 151
|
|
||||||
#define __NR_munlockall 152
|
|
||||||
#define __NR_vhangup 153
|
|
||||||
#define __NR_modify_ldt 154
|
|
||||||
#define __NR_pivot_root 155
|
|
||||||
#define __NR__sysctl 156
|
|
||||||
#define __NR_prctl 157
|
|
||||||
#define __NR_arch_prctl 158
|
|
||||||
#define __NR_adjtimex 159
|
|
||||||
#define __NR_setrlimit 160
|
|
||||||
#define __NR_chroot 161
|
|
||||||
#define __NR_sync 162
|
|
||||||
#define __NR_acct 163
|
|
||||||
#define __NR_settimeofday 164
|
|
||||||
#define __NR_mount 165
|
|
||||||
#define __NR_umount2 166
|
|
||||||
#define __NR_swapon 167
|
|
||||||
#define __NR_swapoff 168
|
|
||||||
#define __NR_reboot 169
|
|
||||||
#define __NR_sethostname 170
|
|
||||||
#define __NR_setdomainname 171
|
|
||||||
#define __NR_iopl 172
|
|
||||||
#define __NR_ioperm 173
|
|
||||||
#define __NR_create_module 174
|
|
||||||
#define __NR_init_module 175
|
|
||||||
#define __NR_delete_module 176
|
|
||||||
#define __NR_get_kernel_syms 177
|
|
||||||
#define __NR_query_module 178
|
|
||||||
#define __NR_quotactl 179
|
|
||||||
#define __NR_nfsservctl 180
|
|
||||||
#define __NR_getpmsg 181
|
|
||||||
#define __NR_putpmsg 182
|
|
||||||
#define __NR_afs_syscall 183
|
|
||||||
#define __NR_tuxcall 184
|
|
||||||
#define __NR_security 185
|
|
||||||
#define __NR_gettid 186
|
|
||||||
#define __NR_readahead 187
|
|
||||||
#define __NR_setxattr 188
|
|
||||||
#define __NR_lsetxattr 189
|
|
||||||
#define __NR_fsetxattr 190
|
|
||||||
#define __NR_getxattr 191
|
|
||||||
#define __NR_lgetxattr 192
|
|
||||||
#define __NR_fgetxattr 193
|
|
||||||
#define __NR_listxattr 194
|
|
||||||
#define __NR_llistxattr 195
|
|
||||||
#define __NR_flistxattr 196
|
|
||||||
#define __NR_removexattr 197
|
|
||||||
#define __NR_lremovexattr 198
|
|
||||||
#define __NR_fremovexattr 199
|
|
||||||
#define __NR_tkill 200
|
|
||||||
#define __NR_time 201
|
|
||||||
#define __NR_futex 202
|
|
||||||
#define __NR_sched_setaffinity 203
|
|
||||||
#define __NR_sched_getaffinity 204
|
|
||||||
#define __NR_set_thread_area 205
|
|
||||||
#define __NR_io_setup 206
|
|
||||||
#define __NR_io_destroy 207
|
|
||||||
#define __NR_io_getevents 208
|
|
||||||
#define __NR_io_submit 209
|
|
||||||
#define __NR_io_cancel 210
|
|
||||||
#define __NR_get_thread_area 211
|
|
||||||
#define __NR_lookup_dcookie 212
|
|
||||||
#define __NR_epoll_create 213
|
|
||||||
#define __NR_epoll_ctl_old 214
|
|
||||||
#define __NR_epoll_wait_old 215
|
|
||||||
#define __NR_remap_file_pages 216
|
|
||||||
#define __NR_getdents64 217
|
|
||||||
#define __NR_set_tid_address 218
|
|
||||||
#define __NR_restart_syscall 219
|
|
||||||
#define __NR_semtimedop 220
|
|
||||||
#define __NR_fadvise64 221
|
|
||||||
#define __NR_timer_create 222
|
|
||||||
#define __NR_timer_settime 223
|
|
||||||
#define __NR_timer_gettime 224
|
|
||||||
#define __NR_timer_getoverrun 225
|
|
||||||
#define __NR_timer_delete 226
|
|
||||||
#define __NR_clock_settime 227
|
|
||||||
#define __NR_clock_gettime 228
|
|
||||||
#define __NR_clock_getres 229
|
|
||||||
#define __NR_clock_nanosleep 230
|
|
||||||
#define __NR_exit_group 231
|
|
||||||
#define __NR_epoll_wait 232
|
|
||||||
#define __NR_epoll_ctl 233
|
|
||||||
#define __NR_tgkill 234
|
|
||||||
#define __NR_utimes 235
|
|
||||||
#define __NR_vserver 236
|
|
||||||
#define __NR_mbind 237
|
|
||||||
#define __NR_set_mempolicy 238
|
|
||||||
#define __NR_get_mempolicy 239
|
|
||||||
#define __NR_mq_open 240
|
|
||||||
#define __NR_mq_unlink 241
|
|
||||||
#define __NR_mq_timedsend 242
|
|
||||||
#define __NR_mq_timedreceive 243
|
|
||||||
#define __NR_mq_notify 244
|
|
||||||
#define __NR_mq_getsetattr 245
|
|
||||||
#define __NR_kexec_load 246
|
|
||||||
#define __NR_waitid 247
|
|
||||||
#define __NR_add_key 248
|
|
||||||
#define __NR_request_key 249
|
|
||||||
#define __NR_keyctl 250
|
|
||||||
#define __NR_ioprio_set 251
|
|
||||||
#define __NR_ioprio_get 252
|
|
||||||
#define __NR_inotify_init 253
|
|
||||||
#define __NR_inotify_add_watch 254
|
|
||||||
#define __NR_inotify_rm_watch 255
|
|
||||||
#define __NR_migrate_pages 256
|
|
||||||
#define __NR_openat 257
|
|
||||||
#define __NR_mkdirat 258
|
|
||||||
#define __NR_mknodat 259
|
|
||||||
#define __NR_fchownat 260
|
|
||||||
#define __NR_futimesat 261
|
|
||||||
#define __NR_newfstatat 262
|
|
||||||
#define __NR_unlinkat 263
|
|
||||||
#define __NR_renameat 264
|
|
||||||
#define __NR_linkat 265
|
|
||||||
#define __NR_symlinkat 266
|
|
||||||
#define __NR_readlinkat 267
|
|
||||||
#define __NR_fchmodat 268
|
|
||||||
#define __NR_faccessat 269
|
|
||||||
#define __NR_pselect6 270
|
|
||||||
#define __NR_ppoll 271
|
|
||||||
#define __NR_unshare 272
|
|
||||||
#define __NR_set_robust_list 273
|
|
||||||
#define __NR_get_robust_list 274
|
|
||||||
#define __NR_splice 275
|
|
||||||
#define __NR_tee 276
|
|
||||||
#define __NR_sync_file_range 277
|
|
||||||
#define __NR_vmsplice 278
|
|
||||||
#define __NR_move_pages 279
|
|
||||||
#define __NR_utimensat 280
|
|
||||||
#define __NR_epoll_pwait 281
|
|
||||||
#define __NR_signalfd 282
|
|
||||||
#define __NR_timerfd_create 283
|
|
||||||
#define __NR_eventfd 284
|
|
||||||
#define __NR_fallocate 285
|
|
||||||
#define __NR_timerfd_settime 286
|
|
||||||
#define __NR_timerfd_gettime 287
|
|
||||||
#define __NR_accept4 288
|
|
||||||
#define __NR_signalfd4 289
|
|
||||||
#define __NR_eventfd2 290
|
|
||||||
#define __NR_epoll_create1 291
|
|
||||||
#define __NR_dup3 292
|
|
||||||
#define __NR_pipe2 293
|
|
||||||
#define __NR_inotify_init1 294
|
|
||||||
#define __NR_preadv 295
|
|
||||||
#define __NR_pwritev 296
|
|
||||||
#define __NR_rt_tgsigqueueinfo 297
|
|
||||||
#define __NR_perf_event_open 298
|
|
||||||
#define __NR_recvmmsg 299
|
|
||||||
#define __NR_fanotify_init 300
|
|
||||||
#define __NR_fanotify_mark 301
|
|
||||||
#define __NR_prlimit64 302
|
|
||||||
|
|
||||||
#undef __NR_fstatat
|
|
||||||
#undef __NR_pread
|
|
||||||
#undef __NR_pwrite
|
|
||||||
#undef __NR_getdents
|
|
||||||
#define __NR_fstatat __NR_newfstatat
|
|
||||||
#define __NR_pread __NR_pread64
|
|
||||||
#define __NR_pwrite __NR_pwrite64
|
|
||||||
#define __NR_getdents __NR_getdents64
|
|
||||||
|
|
||||||
#undef O_LARGEFILE
|
|
||||||
#define O_LARGEFILE 0100000
|
|
||||||
|
|
||||||
#define socketcall(nm, a, b, c, d, e, f) syscall6(__NR_##nm, \
|
|
||||||
(long)a, (long)b, (long)c, (long)d, (long)e, (long)f)
|
|
||||||
|
|
||||||
/* the following are needed for iso c functions to use */
|
|
||||||
#define __syscall_open(filename, flags, mode) syscall3(__NR_open, (long)(filename), (flags)|O_LARGEFILE, (mode))
|
|
||||||
#define __syscall_read(fd, buf, len) syscall3(__NR_read, (fd), (long)(buf), (len))
|
|
||||||
#define __syscall_write(fd, buf, len) syscall3(__NR_write, (fd), (long)(buf), (len))
|
|
||||||
#define __syscall_close(fd) syscall1(__NR_close, (fd))
|
|
||||||
#define __syscall_fcntl(fd, cmd, arg) syscall3(__NR_fcntl, (fd), (cmd), (long)(arg))
|
|
||||||
#define __syscall_dup2(old, new) syscall2(__NR_dup2, (old), (new))
|
|
||||||
#define __syscall_unlink(path) syscall1(__NR_unlink, (long)(path))
|
|
||||||
#define __syscall_getpid() syscall0(__NR_getpid)
|
|
||||||
#define __syscall_kill(pid,sig) syscall2(__NR_kill, (pid), (sig))
|
|
||||||
#define __syscall_sigaction(sig,new,old) syscall4(__NR_rt_sigaction, (sig), (long)(new), (long)(old), SYSCALL_SIGSET_SIZE)
|
|
||||||
#define __syscall_ioctl(fd,ioc,arg) syscall3(__NR_ioctl, (fd), (ioc), (long)(arg))
|
|
||||||
#define __syscall_exit(code) syscall1(__NR_exit, code)
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,27 +0,0 @@
|
||||||
#
|
|
||||||
# musl config.mak template (original in dist/config.mak)
|
|
||||||
#
|
|
||||||
|
|
||||||
# Target CPU architecture. Supported values: i386, x86_64
|
|
||||||
ARCH = x86_64
|
|
||||||
|
|
||||||
# Installation prefix. DO NOT use /, /usr, or /usr/local !
|
|
||||||
prefix = ../musl-bootstrap-final
|
|
||||||
|
|
||||||
# Installation prefix for musl-gcc compiler wrapper.
|
|
||||||
exec_prefix = ../musl-bootstrap-final
|
|
||||||
|
|
||||||
# Uncomment if you want to build i386 musl on a 64-bit host
|
|
||||||
#CFLAGS += -m32
|
|
||||||
|
|
||||||
CFLAGS += -g
|
|
||||||
|
|
||||||
# Uncomment for smaller code size.
|
|
||||||
#CFLAGS += -fomit-frame-pointer -mno-accumulate-outgoing-args
|
|
||||||
|
|
||||||
# Uncomment for warnings (as errors). Might need tuning to your gcc version.
|
|
||||||
#CFLAGS += -Werror -Wall -Wpointer-arith -Wcast-align -Wno-parentheses -Wno-char-subscripts -Wno-uninitialized -Wno-sequence-point -Wno-missing-braces -Wno-unused-value
|
|
||||||
#CFLAGS += -Wno-pointer-sign
|
|
||||||
|
|
||||||
# Uncomment if you want to build a shared library (experimental).
|
|
||||||
#LIBC_LIBS += lib/libc.so
|
|
|
@ -1,17 +0,0 @@
|
||||||
.text
|
|
||||||
.global _start
|
|
||||||
_start:
|
|
||||||
xorl %ebp,%ebp
|
|
||||||
popl %ecx
|
|
||||||
movl %esp,%eax
|
|
||||||
andl $-16,%esp
|
|
||||||
pushl %esp
|
|
||||||
pushl %esp
|
|
||||||
pushl %edx
|
|
||||||
pushl $0
|
|
||||||
pushl $0
|
|
||||||
pushl %eax
|
|
||||||
pushl %ecx
|
|
||||||
pushl $main
|
|
||||||
call __libc_start_main
|
|
||||||
.L0: jmp .L0
|
|
|
@ -1,16 +0,0 @@
|
||||||
/* Written 2011 Nicholas J. Kain, released as Public Domain */
|
|
||||||
.text
|
|
||||||
.global _start
|
|
||||||
_start:
|
|
||||||
xor %rbp,%rbp /* rbp:undefined -> mark as zero 0 (ABI) */
|
|
||||||
mov %rdx,%r9 /* 6th arg: ptr to register with atexit() */
|
|
||||||
pop %rsi /* 2nd arg: argc */
|
|
||||||
mov %rsp,%rdx /* 3rd arg: argv */
|
|
||||||
andq $-16,%rsp /* align stack pointer */
|
|
||||||
push %rax /* 8th arg: glibc ABI compatible */
|
|
||||||
push %rsp /* 7th arg: glibc ABI compatible */
|
|
||||||
xor %r8,%r8 /* 5th arg: always 0 */
|
|
||||||
xor %rcx,%rcx /* 4th arg: always 0 */
|
|
||||||
mov $main,%rdi /* 1st arg: application entry ip */
|
|
||||||
call __libc_start_main /* musl init will run the program */
|
|
||||||
.L0: jmp .L0
|
|
25
05/musl-final/dist/config.mak
vendored
25
05/musl-final/dist/config.mak
vendored
|
@ -1,25 +0,0 @@
|
||||||
#
|
|
||||||
# musl config.mak template (original in dist/config.mak)
|
|
||||||
#
|
|
||||||
|
|
||||||
# Target CPU architecture. Supported values: i386, x86_64
|
|
||||||
ARCH = i386
|
|
||||||
|
|
||||||
# Installation prefix. DO NOT use /, /usr, or /usr/local !
|
|
||||||
prefix = /usr/local/musl
|
|
||||||
|
|
||||||
# Installation prefix for musl-gcc compiler wrapper.
|
|
||||||
exec_prefix = /usr/local
|
|
||||||
|
|
||||||
# Uncomment if you want to build i386 musl on a 64-bit host
|
|
||||||
#CFLAGS += -m32
|
|
||||||
|
|
||||||
# Uncomment for smaller code size.
|
|
||||||
#CFLAGS += -fomit-frame-pointer -mno-accumulate-outgoing-args
|
|
||||||
|
|
||||||
# Uncomment for warnings (as errors). Might need tuning to your gcc version.
|
|
||||||
#CFLAGS += -Werror -Wall -Wpointer-arith -Wcast-align -Wno-parentheses -Wno-char-subscripts -Wno-uninitialized -Wno-sequence-point -Wno-missing-braces -Wno-unused-value
|
|
||||||
#CFLAGS += -Wno-pointer-sign
|
|
||||||
|
|
||||||
# Uncomment if you want to build a shared library (experimental).
|
|
||||||
#LIBC_LIBS += lib/libc.so
|
|
|
@ -1,9 +0,0 @@
|
||||||
#ifndef _ALLOCA_H
|
|
||||||
#define _ALLOCA_H
|
|
||||||
|
|
||||||
#define __NEED_size_t
|
|
||||||
#include <bits/alltypes.h>
|
|
||||||
|
|
||||||
void *alloca(size_t);
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,33 +0,0 @@
|
||||||
#ifndef _ARPA_INET_H
|
|
||||||
#define _ARPA_INET_H
|
|
||||||
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <inttypes.h>
|
|
||||||
|
|
||||||
#define __NEED_socklen_t
|
|
||||||
#define __NEED_in_addr_t
|
|
||||||
#define __NEED_in_port_t
|
|
||||||
#define __NEED_uint16_t
|
|
||||||
#define __NEED_uint32_t
|
|
||||||
#define __NEED_struct_in_addr
|
|
||||||
|
|
||||||
#include <bits/alltypes.h>
|
|
||||||
|
|
||||||
uint32_t htonl(uint32_t);
|
|
||||||
uint16_t htons(uint16_t);
|
|
||||||
uint32_t ntohl(uint32_t);
|
|
||||||
uint16_t ntohs(uint16_t);
|
|
||||||
|
|
||||||
in_addr_t inet_addr (const char *);
|
|
||||||
char *inet_ntoa (struct in_addr);
|
|
||||||
int inet_pton (int, const char *, void *);
|
|
||||||
const char *inet_ntop (int, const void *, char *, socklen_t);
|
|
||||||
|
|
||||||
int inet_aton (const char *, struct in_addr *); /* nonstandard but widely used */
|
|
||||||
|
|
||||||
#undef INET_ADDRSTRLEN
|
|
||||||
#undef INET6_ADDRSTRLEN
|
|
||||||
#define INET_ADDRSTRLEN 16
|
|
||||||
#define INET6_ADDRSTRLEN 46
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,465 +0,0 @@
|
||||||
#ifndef _ARPA_NAMESER_H_
|
|
||||||
#define _ARPA_NAMESER_H_
|
|
||||||
|
|
||||||
#define __NAMESER 19991006
|
|
||||||
#define NS_PACKETSZ 512
|
|
||||||
#define NS_MAXDNAME 1025
|
|
||||||
#define NS_MAXMSG 65535
|
|
||||||
#define NS_MAXCDNAME 255
|
|
||||||
#define NS_MAXLABEL 63
|
|
||||||
#define NS_HFIXEDSZ 12
|
|
||||||
#define NS_QFIXEDSZ 4
|
|
||||||
#define NS_RRFIXEDSZ 10
|
|
||||||
#define NS_INT32SZ 4
|
|
||||||
#define NS_INT16SZ 2
|
|
||||||
#define NS_INT8SZ 1
|
|
||||||
#define NS_INADDRSZ 4
|
|
||||||
#define NS_IN6ADDRSZ 16
|
|
||||||
#define NS_CMPRSFLGS 0xc0
|
|
||||||
#define NS_DEFAULTPORT 53
|
|
||||||
|
|
||||||
typedef enum __ns_sect {
|
|
||||||
ns_s_qd = 0,
|
|
||||||
ns_s_zn = 0,
|
|
||||||
ns_s_an = 1,
|
|
||||||
ns_s_pr = 1,
|
|
||||||
ns_s_ns = 2,
|
|
||||||
ns_s_ud = 2,
|
|
||||||
ns_s_ar = 3,
|
|
||||||
ns_s_max = 4
|
|
||||||
} ns_sect;
|
|
||||||
|
|
||||||
typedef struct __ns_msg {
|
|
||||||
const unsigned char *_msg, *_eom;
|
|
||||||
uint16_t _id, _flags, _counts[ns_s_max];
|
|
||||||
const unsigned char *_sections[ns_s_max];
|
|
||||||
ns_sect _sect;
|
|
||||||
int _rrnum;
|
|
||||||
const unsigned char *_msg_ptr;
|
|
||||||
} ns_msg;
|
|
||||||
|
|
||||||
struct _ns_flagdata { int mask, shift; };
|
|
||||||
extern const struct _ns_flagdata _ns_flagdata[];
|
|
||||||
|
|
||||||
#define ns_msg_id(handle) ((handle)._id + 0)
|
|
||||||
#define ns_msg_base(handle) ((handle)._msg + 0)
|
|
||||||
#define ns_msg_end(handle) ((handle)._eom + 0)
|
|
||||||
#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)
|
|
||||||
#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
|
|
||||||
|
|
||||||
typedef struct __ns_rr {
|
|
||||||
char name[NS_MAXDNAME];
|
|
||||||
uint16_t type;
|
|
||||||
uint16_t rr_class;
|
|
||||||
uint32_t ttl;
|
|
||||||
uint16_t rdlength;
|
|
||||||
const unsigned char *rdata;
|
|
||||||
} ns_rr;
|
|
||||||
|
|
||||||
#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
|
|
||||||
#define ns_rr_type(rr) ((ns_type)((rr).type + 0))
|
|
||||||
#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))
|
|
||||||
#define ns_rr_ttl(rr) ((rr).ttl + 0)
|
|
||||||
#define ns_rr_rdlen(rr) ((rr).rdlength + 0)
|
|
||||||
#define ns_rr_rdata(rr) ((rr).rdata + 0)
|
|
||||||
|
|
||||||
typedef enum __ns_flag {
|
|
||||||
ns_f_qr,
|
|
||||||
ns_f_opcode,
|
|
||||||
ns_f_aa,
|
|
||||||
ns_f_tc,
|
|
||||||
ns_f_rd,
|
|
||||||
ns_f_ra,
|
|
||||||
ns_f_z,
|
|
||||||
ns_f_ad,
|
|
||||||
ns_f_cd,
|
|
||||||
ns_f_rcode,
|
|
||||||
ns_f_max
|
|
||||||
} ns_flag;
|
|
||||||
|
|
||||||
typedef enum __ns_opcode {
|
|
||||||
ns_o_query = 0,
|
|
||||||
ns_o_iquery = 1,
|
|
||||||
ns_o_status = 2,
|
|
||||||
ns_o_notify = 4,
|
|
||||||
ns_o_update = 5,
|
|
||||||
ns_o_max = 6
|
|
||||||
} ns_opcode;
|
|
||||||
|
|
||||||
typedef enum __ns_rcode {
|
|
||||||
ns_r_noerror = 0,
|
|
||||||
ns_r_formerr = 1,
|
|
||||||
ns_r_servfail = 2,
|
|
||||||
ns_r_nxdomain = 3,
|
|
||||||
ns_r_notimpl = 4,
|
|
||||||
ns_r_refused = 5,
|
|
||||||
ns_r_yxdomain = 6,
|
|
||||||
ns_r_yxrrset = 7,
|
|
||||||
ns_r_nxrrset = 8,
|
|
||||||
ns_r_notauth = 9,
|
|
||||||
ns_r_notzone = 10,
|
|
||||||
ns_r_max = 11,
|
|
||||||
ns_r_badvers = 16,
|
|
||||||
ns_r_badsig = 16,
|
|
||||||
ns_r_badkey = 17,
|
|
||||||
ns_r_badtime = 18
|
|
||||||
} ns_rcode;
|
|
||||||
|
|
||||||
typedef enum __ns_update_operation {
|
|
||||||
ns_uop_delete = 0,
|
|
||||||
ns_uop_add = 1,
|
|
||||||
ns_uop_max = 2
|
|
||||||
} ns_update_operation;
|
|
||||||
|
|
||||||
struct ns_tsig_key {
|
|
||||||
char name[NS_MAXDNAME], alg[NS_MAXDNAME];
|
|
||||||
unsigned char *data;
|
|
||||||
int len;
|
|
||||||
};
|
|
||||||
typedef struct ns_tsig_key ns_tsig_key;
|
|
||||||
|
|
||||||
struct ns_tcp_tsig_state {
|
|
||||||
int counter;
|
|
||||||
struct dst_key *key;
|
|
||||||
void *ctx;
|
|
||||||
unsigned char sig[NS_PACKETSZ];
|
|
||||||
int siglen;
|
|
||||||
};
|
|
||||||
typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;
|
|
||||||
|
|
||||||
#define NS_TSIG_FUDGE 300
|
|
||||||
#define NS_TSIG_TCP_COUNT 100
|
|
||||||
#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
|
|
||||||
|
|
||||||
#define NS_TSIG_ERROR_NO_TSIG -10
|
|
||||||
#define NS_TSIG_ERROR_NO_SPACE -11
|
|
||||||
#define NS_TSIG_ERROR_FORMERR -12
|
|
||||||
|
|
||||||
typedef enum __ns_type {
|
|
||||||
ns_t_invalid = 0,
|
|
||||||
ns_t_a = 1,
|
|
||||||
ns_t_ns = 2,
|
|
||||||
ns_t_md = 3,
|
|
||||||
ns_t_mf = 4,
|
|
||||||
ns_t_cname = 5,
|
|
||||||
ns_t_soa = 6,
|
|
||||||
ns_t_mb = 7,
|
|
||||||
ns_t_mg = 8,
|
|
||||||
ns_t_mr = 9,
|
|
||||||
ns_t_null = 10,
|
|
||||||
ns_t_wks = 11,
|
|
||||||
ns_t_ptr = 12,
|
|
||||||
ns_t_hinfo = 13,
|
|
||||||
ns_t_minfo = 14,
|
|
||||||
ns_t_mx = 15,
|
|
||||||
ns_t_txt = 16,
|
|
||||||
ns_t_rp = 17,
|
|
||||||
ns_t_afsdb = 18,
|
|
||||||
ns_t_x25 = 19,
|
|
||||||
ns_t_isdn = 20,
|
|
||||||
ns_t_rt = 21,
|
|
||||||
ns_t_nsap = 22,
|
|
||||||
ns_t_nsap_ptr = 23,
|
|
||||||
ns_t_sig = 24,
|
|
||||||
ns_t_key = 25,
|
|
||||||
ns_t_px = 26,
|
|
||||||
ns_t_gpos = 27,
|
|
||||||
ns_t_aaaa = 28,
|
|
||||||
ns_t_loc = 29,
|
|
||||||
ns_t_nxt = 30,
|
|
||||||
ns_t_eid = 31,
|
|
||||||
ns_t_nimloc = 32,
|
|
||||||
ns_t_srv = 33,
|
|
||||||
ns_t_atma = 34,
|
|
||||||
ns_t_naptr = 35,
|
|
||||||
ns_t_kx = 36,
|
|
||||||
ns_t_cert = 37,
|
|
||||||
ns_t_a6 = 38,
|
|
||||||
ns_t_dname = 39,
|
|
||||||
ns_t_sink = 40,
|
|
||||||
ns_t_opt = 41,
|
|
||||||
ns_t_apl = 42,
|
|
||||||
ns_t_tkey = 249,
|
|
||||||
ns_t_tsig = 250,
|
|
||||||
ns_t_ixfr = 251,
|
|
||||||
ns_t_axfr = 252,
|
|
||||||
ns_t_mailb = 253,
|
|
||||||
ns_t_maila = 254,
|
|
||||||
ns_t_any = 255,
|
|
||||||
ns_t_zxfr = 256,
|
|
||||||
ns_t_max = 65536
|
|
||||||
} ns_type;
|
|
||||||
|
|
||||||
#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
|
|
||||||
(t) == ns_t_mailb || (t) == ns_t_maila)
|
|
||||||
#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
|
|
||||||
#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
|
|
||||||
#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
|
|
||||||
#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
|
|
||||||
(t) == ns_t_zxfr)
|
|
||||||
|
|
||||||
typedef enum __ns_class {
|
|
||||||
ns_c_invalid = 0,
|
|
||||||
ns_c_in = 1,
|
|
||||||
ns_c_2 = 2,
|
|
||||||
ns_c_chaos = 3,
|
|
||||||
ns_c_hs = 4,
|
|
||||||
ns_c_none = 254,
|
|
||||||
ns_c_any = 255,
|
|
||||||
ns_c_max = 65536
|
|
||||||
} ns_class;
|
|
||||||
|
|
||||||
typedef enum __ns_key_types {
|
|
||||||
ns_kt_rsa = 1,
|
|
||||||
ns_kt_dh = 2,
|
|
||||||
ns_kt_dsa = 3,
|
|
||||||
ns_kt_private = 254
|
|
||||||
} ns_key_types;
|
|
||||||
|
|
||||||
typedef enum __ns_cert_types {
|
|
||||||
cert_t_pkix = 1,
|
|
||||||
cert_t_spki = 2,
|
|
||||||
cert_t_pgp = 3,
|
|
||||||
cert_t_url = 253,
|
|
||||||
cert_t_oid = 254
|
|
||||||
} ns_cert_types;
|
|
||||||
|
|
||||||
#define NS_KEY_TYPEMASK 0xC000
|
|
||||||
#define NS_KEY_TYPE_AUTH_CONF 0x0000
|
|
||||||
#define NS_KEY_TYPE_CONF_ONLY 0x8000
|
|
||||||
#define NS_KEY_TYPE_AUTH_ONLY 0x4000
|
|
||||||
#define NS_KEY_TYPE_NO_KEY 0xC000
|
|
||||||
#define NS_KEY_NO_AUTH 0x8000
|
|
||||||
#define NS_KEY_NO_CONF 0x4000
|
|
||||||
#define NS_KEY_RESERVED2 0x2000
|
|
||||||
#define NS_KEY_EXTENDED_FLAGS 0x1000
|
|
||||||
#define NS_KEY_RESERVED4 0x0800
|
|
||||||
#define NS_KEY_RESERVED5 0x0400
|
|
||||||
#define NS_KEY_NAME_TYPE 0x0300
|
|
||||||
#define NS_KEY_NAME_USER 0x0000
|
|
||||||
#define NS_KEY_NAME_ENTITY 0x0200
|
|
||||||
#define NS_KEY_NAME_ZONE 0x0100
|
|
||||||
#define NS_KEY_NAME_RESERVED 0x0300
|
|
||||||
#define NS_KEY_RESERVED8 0x0080
|
|
||||||
#define NS_KEY_RESERVED9 0x0040
|
|
||||||
#define NS_KEY_RESERVED10 0x0020
|
|
||||||
#define NS_KEY_RESERVED11 0x0010
|
|
||||||
#define NS_KEY_SIGNATORYMASK 0x000F
|
|
||||||
#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
|
|
||||||
NS_KEY_RESERVED4 | \
|
|
||||||
NS_KEY_RESERVED5 | \
|
|
||||||
NS_KEY_RESERVED8 | \
|
|
||||||
NS_KEY_RESERVED9 | \
|
|
||||||
NS_KEY_RESERVED10 | \
|
|
||||||
NS_KEY_RESERVED11 )
|
|
||||||
#define NS_KEY_RESERVED_BITMASK2 0xFFFF
|
|
||||||
#define NS_ALG_MD5RSA 1
|
|
||||||
#define NS_ALG_DH 2
|
|
||||||
#define NS_ALG_DSA 3
|
|
||||||
#define NS_ALG_DSS NS_ALG_DSA
|
|
||||||
#define NS_ALG_EXPIRE_ONLY 253
|
|
||||||
#define NS_ALG_PRIVATE_OID 254
|
|
||||||
|
|
||||||
#define NS_KEY_PROT_TLS 1
|
|
||||||
#define NS_KEY_PROT_EMAIL 2
|
|
||||||
#define NS_KEY_PROT_DNSSEC 3
|
|
||||||
#define NS_KEY_PROT_IPSEC 4
|
|
||||||
#define NS_KEY_PROT_ANY 255
|
|
||||||
|
|
||||||
#define NS_MD5RSA_MIN_BITS 512
|
|
||||||
#define NS_MD5RSA_MAX_BITS 4096
|
|
||||||
#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
|
|
||||||
#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
|
|
||||||
#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)
|
|
||||||
#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)
|
|
||||||
|
|
||||||
#define NS_DSA_SIG_SIZE 41
|
|
||||||
#define NS_DSA_MIN_SIZE 213
|
|
||||||
#define NS_DSA_MAX_BYTES 405
|
|
||||||
|
|
||||||
#define NS_SIG_TYPE 0
|
|
||||||
#define NS_SIG_ALG 2
|
|
||||||
#define NS_SIG_LABELS 3
|
|
||||||
#define NS_SIG_OTTL 4
|
|
||||||
#define NS_SIG_EXPIR 8
|
|
||||||
#define NS_SIG_SIGNED 12
|
|
||||||
#define NS_SIG_FOOT 16
|
|
||||||
#define NS_SIG_SIGNER 18
|
|
||||||
#define NS_NXT_BITS 8
|
|
||||||
#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))
|
|
||||||
#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
|
|
||||||
#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))
|
|
||||||
#define NS_NXT_MAX 127
|
|
||||||
|
|
||||||
#define NS_OPT_DNSSEC_OK 0x8000U
|
|
||||||
#define NS_OPT_NSID 3
|
|
||||||
|
|
||||||
#define NS_GET16(s, cp) do { \
|
|
||||||
register const unsigned char *t_cp = (const unsigned char *)(cp); \
|
|
||||||
(s) = ((uint16_t)t_cp[0] << 8) \
|
|
||||||
| ((uint16_t)t_cp[1]) \
|
|
||||||
; \
|
|
||||||
(cp) += NS_INT16SZ; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define NS_GET32(l, cp) do { \
|
|
||||||
register const unsigned char *t_cp = (const unsigned char *)(cp); \
|
|
||||||
(l) = ((uint32_t)t_cp[0] << 24) \
|
|
||||||
| ((uint32_t)t_cp[1] << 16) \
|
|
||||||
| ((uint32_t)t_cp[2] << 8) \
|
|
||||||
| ((uint32_t)t_cp[3]) \
|
|
||||||
; \
|
|
||||||
(cp) += NS_INT32SZ; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define NS_PUT16(s, cp) do { \
|
|
||||||
register uint16_t t_s = (uint16_t)(s); \
|
|
||||||
register unsigned char *t_cp = (unsigned char *)(cp); \
|
|
||||||
*t_cp++ = t_s >> 8; \
|
|
||||||
*t_cp = t_s; \
|
|
||||||
(cp) += NS_INT16SZ; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define NS_PUT32(l, cp) do { \
|
|
||||||
register uint32_t t_l = (uint32_t)(l); \
|
|
||||||
register unsigned char *t_cp = (unsigned char *)(cp); \
|
|
||||||
*t_cp++ = t_l >> 24; \
|
|
||||||
*t_cp++ = t_l >> 16; \
|
|
||||||
*t_cp++ = t_l >> 8; \
|
|
||||||
*t_cp = t_l; \
|
|
||||||
(cp) += NS_INT32SZ; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define __BIND 19950621
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned id :16;
|
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
|
||||||
unsigned qr: 1;
|
|
||||||
unsigned opcode: 4;
|
|
||||||
unsigned aa: 1;
|
|
||||||
unsigned tc: 1;
|
|
||||||
unsigned rd: 1;
|
|
||||||
unsigned ra: 1;
|
|
||||||
unsigned unused :1;
|
|
||||||
unsigned ad: 1;
|
|
||||||
unsigned cd: 1;
|
|
||||||
unsigned rcode :4;
|
|
||||||
#else
|
|
||||||
unsigned rd :1;
|
|
||||||
unsigned tc :1;
|
|
||||||
unsigned aa :1;
|
|
||||||
unsigned opcode :4;
|
|
||||||
unsigned qr :1;
|
|
||||||
unsigned rcode :4;
|
|
||||||
unsigned cd: 1;
|
|
||||||
unsigned ad: 1;
|
|
||||||
unsigned unused :1;
|
|
||||||
unsigned ra :1;
|
|
||||||
#endif
|
|
||||||
unsigned qdcount :16;
|
|
||||||
unsigned ancount :16;
|
|
||||||
unsigned nscount :16;
|
|
||||||
unsigned arcount :16;
|
|
||||||
} HEADER;
|
|
||||||
|
|
||||||
#define PACKETSZ NS_PACKETSZ
|
|
||||||
#define MAXDNAME NS_MAXDNAME
|
|
||||||
#define MAXCDNAME NS_MAXCDNAME
|
|
||||||
#define MAXLABEL NS_MAXLABEL
|
|
||||||
#define HFIXEDSZ NS_HFIXEDSZ
|
|
||||||
#define QFIXEDSZ NS_QFIXEDSZ
|
|
||||||
#define RRFIXEDSZ NS_RRFIXEDSZ
|
|
||||||
#define INT32SZ NS_INT32SZ
|
|
||||||
#define INT16SZ NS_INT16SZ
|
|
||||||
#define INT8SZ NS_INT8SZ
|
|
||||||
#define INADDRSZ NS_INADDRSZ
|
|
||||||
#define IN6ADDRSZ NS_IN6ADDRSZ
|
|
||||||
#define INDIR_MASK NS_CMPRSFLGS
|
|
||||||
#define NAMESERVER_PORT NS_DEFAULTPORT
|
|
||||||
|
|
||||||
#define S_ZONE ns_s_zn
|
|
||||||
#define S_PREREQ ns_s_pr
|
|
||||||
#define S_UPDATE ns_s_ud
|
|
||||||
#define S_ADDT ns_s_ar
|
|
||||||
|
|
||||||
#define QUERY ns_o_query
|
|
||||||
#define IQUERY ns_o_iquery
|
|
||||||
#define STATUS ns_o_status
|
|
||||||
#define NS_NOTIFY_OP ns_o_notify
|
|
||||||
#define NS_UPDATE_OP ns_o_update
|
|
||||||
|
|
||||||
#define NOERROR ns_r_noerror
|
|
||||||
#define FORMERR ns_r_formerr
|
|
||||||
#define SERVFAIL ns_r_servfail
|
|
||||||
#define NXDOMAIN ns_r_nxdomain
|
|
||||||
#define NOTIMP ns_r_notimpl
|
|
||||||
#define REFUSED ns_r_refused
|
|
||||||
#define YXDOMAIN ns_r_yxdomain
|
|
||||||
#define YXRRSET ns_r_yxrrset
|
|
||||||
#define NXRRSET ns_r_nxrrset
|
|
||||||
#define NOTAUTH ns_r_notauth
|
|
||||||
#define NOTZONE ns_r_notzone
|
|
||||||
|
|
||||||
#define DELETE ns_uop_delete
|
|
||||||
#define ADD ns_uop_add
|
|
||||||
|
|
||||||
#define T_A ns_t_a
|
|
||||||
#define T_NS ns_t_ns
|
|
||||||
#define T_MD ns_t_md
|
|
||||||
#define T_MF ns_t_mf
|
|
||||||
#define T_CNAME ns_t_cname
|
|
||||||
#define T_SOA ns_t_soa
|
|
||||||
#define T_MB ns_t_mb
|
|
||||||
#define T_MG ns_t_mg
|
|
||||||
#define T_MR ns_t_mr
|
|
||||||
#define T_NULL ns_t_null
|
|
||||||
#define T_WKS ns_t_wks
|
|
||||||
#define T_PTR ns_t_ptr
|
|
||||||
#define T_HINFO ns_t_hinfo
|
|
||||||
#define T_MINFO ns_t_minfo
|
|
||||||
#define T_MX ns_t_mx
|
|
||||||
#define T_TXT ns_t_txt
|
|
||||||
#define T_RP ns_t_rp
|
|
||||||
#define T_AFSDB ns_t_afsdb
|
|
||||||
#define T_X25 ns_t_x25
|
|
||||||
#define T_ISDN ns_t_isdn
|
|
||||||
#define T_RT ns_t_rt
|
|
||||||
#define T_NSAP ns_t_nsap
|
|
||||||
#define T_NSAP_PTR ns_t_nsap_ptr
|
|
||||||
#define T_SIG ns_t_sig
|
|
||||||
#define T_KEY ns_t_key
|
|
||||||
#define T_PX ns_t_px
|
|
||||||
#define T_GPOS ns_t_gpos
|
|
||||||
#define T_AAAA ns_t_aaaa
|
|
||||||
#define T_LOC ns_t_loc
|
|
||||||
#define T_NXT ns_t_nxt
|
|
||||||
#define T_EID ns_t_eid
|
|
||||||
#define T_NIMLOC ns_t_nimloc
|
|
||||||
#define T_SRV ns_t_srv
|
|
||||||
#define T_ATMA ns_t_atma
|
|
||||||
#define T_NAPTR ns_t_naptr
|
|
||||||
#define T_A6 ns_t_a6
|
|
||||||
#define T_DNAME ns_t_dname
|
|
||||||
#define T_TSIG ns_t_tsig
|
|
||||||
#define T_IXFR ns_t_ixfr
|
|
||||||
#define T_AXFR ns_t_axfr
|
|
||||||
#define T_MAILB ns_t_mailb
|
|
||||||
#define T_MAILA ns_t_maila
|
|
||||||
#define T_ANY ns_t_any
|
|
||||||
|
|
||||||
#define C_IN ns_c_in
|
|
||||||
#define C_CHAOS ns_c_chaos
|
|
||||||
#define C_HS ns_c_hs
|
|
||||||
#define C_NONE ns_c_none
|
|
||||||
#define C_ANY ns_c_any
|
|
||||||
|
|
||||||
#define GETSHORT NS_GET16
|
|
||||||
#define GETLONG NS_GET32
|
|
||||||
#define PUTSHORT NS_PUT16
|
|
||||||
#define PUTLONG NS_PUT32
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,251 +0,0 @@
|
||||||
#ifndef _ARPA_TELNET_H
|
|
||||||
#define _ARPA_TELNET_H
|
|
||||||
|
|
||||||
#define IAC 255
|
|
||||||
#define DONT 254
|
|
||||||
#define DO 253
|
|
||||||
#define WONT 252
|
|
||||||
#define WILL 251
|
|
||||||
#define SB 250
|
|
||||||
#define GA 249
|
|
||||||
#define EL 248
|
|
||||||
#define EC 247
|
|
||||||
#define AYT 246
|
|
||||||
#define AO 245
|
|
||||||
#define IP 244
|
|
||||||
#define BREAK 243
|
|
||||||
#define DM 242
|
|
||||||
#define NOP 241
|
|
||||||
#define SE 240
|
|
||||||
#define EOR 239
|
|
||||||
#define ABORT 238
|
|
||||||
#define SUSP 237
|
|
||||||
#define xEOF 236
|
|
||||||
|
|
||||||
#define SYNCH 242
|
|
||||||
|
|
||||||
#define telcmds ((char [][6]){ "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 })
|
|
||||||
|
|
||||||
#define TELCMD_FIRST xEOF
|
|
||||||
#define TELCMD_LAST IAC
|
|
||||||
#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \
|
|
||||||
(unsigned int)(x) >= TELCMD_FIRST)
|
|
||||||
#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]
|
|
||||||
|
|
||||||
#define TELOPT_BINARY 0
|
|
||||||
#define TELOPT_ECHO 1
|
|
||||||
#define TELOPT_RCP 2
|
|
||||||
#define TELOPT_SGA 3
|
|
||||||
#define TELOPT_NAMS 4
|
|
||||||
#define TELOPT_STATUS 5
|
|
||||||
#define TELOPT_TM 6
|
|
||||||
#define TELOPT_RCTE 7
|
|
||||||
#define TELOPT_NAOL 8
|
|
||||||
#define TELOPT_NAOP 9
|
|
||||||
#define TELOPT_NAOCRD 10
|
|
||||||
#define TELOPT_NAOHTS 11
|
|
||||||
#define TELOPT_NAOHTD 12
|
|
||||||
#define TELOPT_NAOFFD 13
|
|
||||||
#define TELOPT_NAOVTS 14
|
|
||||||
#define TELOPT_NAOVTD 15
|
|
||||||
#define TELOPT_NAOLFD 16
|
|
||||||
#define TELOPT_XASCII 17
|
|
||||||
#define TELOPT_LOGOUT 18
|
|
||||||
#define TELOPT_BM 19
|
|
||||||
#define TELOPT_DET 20
|
|
||||||
#define TELOPT_SUPDUP 21
|
|
||||||
#define TELOPT_SUPDUPOUTPUT 22
|
|
||||||
#define TELOPT_SNDLOC 23
|
|
||||||
#define TELOPT_TTYPE 24
|
|
||||||
#define TELOPT_EOR 25
|
|
||||||
#define TELOPT_TUID 26
|
|
||||||
#define TELOPT_OUTMRK 27
|
|
||||||
#define TELOPT_TTYLOC 28
|
|
||||||
#define TELOPT_3270REGIME 29
|
|
||||||
#define TELOPT_X3PAD 30
|
|
||||||
#define TELOPT_NAWS 31
|
|
||||||
#define TELOPT_TSPEED 32
|
|
||||||
#define TELOPT_LFLOW 33
|
|
||||||
#define TELOPT_LINEMODE 34
|
|
||||||
#define TELOPT_XDISPLOC 35
|
|
||||||
#define TELOPT_OLD_ENVIRON 36
|
|
||||||
#define TELOPT_AUTHENTICATION 37/* Authenticate */
|
|
||||||
#define TELOPT_ENCRYPT 38
|
|
||||||
#define TELOPT_NEW_ENVIRON 39
|
|
||||||
#define TELOPT_EXOPL 255
|
|
||||||
|
|
||||||
|
|
||||||
#define NTELOPTS (1+TELOPT_NEW_ENVIRON)
|
|
||||||
#ifdef TELOPTS
|
|
||||||
char *telopts[NTELOPTS+1] = {
|
|
||||||
"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
|
|
||||||
"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
|
|
||||||
"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
|
|
||||||
"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
|
|
||||||
"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
|
|
||||||
"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
|
|
||||||
"TACACS UID", "OUTPUT MARKING", "TTYLOC",
|
|
||||||
"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
|
|
||||||
"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
|
|
||||||
"ENCRYPT", "NEW-ENVIRON",
|
|
||||||
0,
|
|
||||||
};
|
|
||||||
#define TELOPT_FIRST TELOPT_BINARY
|
|
||||||
#define TELOPT_LAST TELOPT_NEW_ENVIRON
|
|
||||||
#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)
|
|
||||||
#define TELOPT(x) telopts[(x)-TELOPT_FIRST]
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define TELQUAL_IS 0
|
|
||||||
#define TELQUAL_SEND 1
|
|
||||||
#define TELQUAL_INFO 2
|
|
||||||
#define TELQUAL_REPLY 2
|
|
||||||
#define TELQUAL_NAME 3
|
|
||||||
|
|
||||||
#define LFLOW_OFF 0
|
|
||||||
#define LFLOW_ON 1
|
|
||||||
#define LFLOW_RESTART_ANY 2
|
|
||||||
#define LFLOW_RESTART_XON 3
|
|
||||||
|
|
||||||
|
|
||||||
#define LM_MODE 1
|
|
||||||
#define LM_FORWARDMASK 2
|
|
||||||
#define LM_SLC 3
|
|
||||||
|
|
||||||
#define MODE_EDIT 0x01
|
|
||||||
#define MODE_TRAPSIG 0x02
|
|
||||||
#define MODE_ACK 0x04
|
|
||||||
#define MODE_SOFT_TAB 0x08
|
|
||||||
#define MODE_LIT_ECHO 0x10
|
|
||||||
|
|
||||||
#define MODE_MASK 0x1f
|
|
||||||
|
|
||||||
#define MODE_FLOW 0x0100
|
|
||||||
#define MODE_ECHO 0x0200
|
|
||||||
#define MODE_INBIN 0x0400
|
|
||||||
#define MODE_OUTBIN 0x0800
|
|
||||||
#define MODE_FORCE 0x1000
|
|
||||||
|
|
||||||
#define SLC_SYNCH 1
|
|
||||||
#define SLC_BRK 2
|
|
||||||
#define SLC_IP 3
|
|
||||||
#define SLC_AO 4
|
|
||||||
#define SLC_AYT 5
|
|
||||||
#define SLC_EOR 6
|
|
||||||
#define SLC_ABORT 7
|
|
||||||
#define SLC_EOF 8
|
|
||||||
#define SLC_SUSP 9
|
|
||||||
#define SLC_EC 10
|
|
||||||
#define SLC_EL 11
|
|
||||||
#define SLC_EW 12
|
|
||||||
#define SLC_RP 13
|
|
||||||
#define SLC_LNEXT 14
|
|
||||||
#define SLC_XON 15
|
|
||||||
#define SLC_XOFF 16
|
|
||||||
#define SLC_FORW1 17
|
|
||||||
#define SLC_FORW2 18
|
|
||||||
|
|
||||||
#define NSLC 18
|
|
||||||
|
|
||||||
#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
|
|
||||||
"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
|
|
||||||
"LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,
|
|
||||||
#ifdef SLC_NAMES
|
|
||||||
char *slc_names[] = {
|
|
||||||
SLC_NAMELIST
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
extern char *slc_names[];
|
|
||||||
#define SLC_NAMES SLC_NAMELIST
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)
|
|
||||||
#define SLC_NAME(x) slc_names[x]
|
|
||||||
|
|
||||||
#define SLC_NOSUPPORT 0
|
|
||||||
#define SLC_CANTCHANGE 1
|
|
||||||
#define SLC_VARIABLE 2
|
|
||||||
#define SLC_DEFAULT 3
|
|
||||||
#define SLC_LEVELBITS 0x03
|
|
||||||
|
|
||||||
#define SLC_FUNC 0
|
|
||||||
#define SLC_FLAGS 1
|
|
||||||
#define SLC_VALUE 2
|
|
||||||
|
|
||||||
#define SLC_ACK 0x80
|
|
||||||
#define SLC_FLUSHIN 0x40
|
|
||||||
#define SLC_FLUSHOUT 0x20
|
|
||||||
|
|
||||||
#define OLD_ENV_VAR 1
|
|
||||||
#define OLD_ENV_VALUE 0
|
|
||||||
#define NEW_ENV_VAR 0
|
|
||||||
#define NEW_ENV_VALUE 1
|
|
||||||
#define ENV_ESC 2
|
|
||||||
#define ENV_USERVAR 3
|
|
||||||
|
|
||||||
#define AUTH_WHO_CLIENT 0
|
|
||||||
#define AUTH_WHO_SERVER 1
|
|
||||||
#define AUTH_WHO_MASK 1
|
|
||||||
|
|
||||||
#define AUTH_HOW_ONE_WAY 0
|
|
||||||
#define AUTH_HOW_MUTUAL 2
|
|
||||||
#define AUTH_HOW_MASK 2
|
|
||||||
|
|
||||||
#define AUTHTYPE_NULL 0
|
|
||||||
#define AUTHTYPE_KERBEROS_V4 1
|
|
||||||
#define AUTHTYPE_KERBEROS_V5 2
|
|
||||||
#define AUTHTYPE_SPX 3
|
|
||||||
#define AUTHTYPE_MINK 4
|
|
||||||
#define AUTHTYPE_CNT 5
|
|
||||||
|
|
||||||
#define AUTHTYPE_TEST 99
|
|
||||||
|
|
||||||
#ifdef AUTH_NAMES
|
|
||||||
char *authtype_names[] = {
|
|
||||||
"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
extern char *authtype_names[];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)
|
|
||||||
#define AUTHTYPE_NAME(x) authtype_names[x]
|
|
||||||
|
|
||||||
#define ENCRYPT_IS 0
|
|
||||||
#define ENCRYPT_SUPPORT 1
|
|
||||||
#define ENCRYPT_REPLY 2
|
|
||||||
#define ENCRYPT_START 3
|
|
||||||
#define ENCRYPT_END 4
|
|
||||||
#define ENCRYPT_REQSTART 5
|
|
||||||
#define ENCRYPT_REQEND 6
|
|
||||||
#define ENCRYPT_ENC_KEYID 7
|
|
||||||
#define ENCRYPT_DEC_KEYID 8
|
|
||||||
#define ENCRYPT_CNT 9
|
|
||||||
|
|
||||||
#define ENCTYPE_ANY 0
|
|
||||||
#define ENCTYPE_DES_CFB64 1
|
|
||||||
#define ENCTYPE_DES_OFB64 2
|
|
||||||
#define ENCTYPE_CNT 3
|
|
||||||
|
|
||||||
#ifdef ENCRYPT_NAMES
|
|
||||||
char *encrypt_names[] = {
|
|
||||||
"IS", "SUPPORT", "REPLY", "START", "END",
|
|
||||||
"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
|
|
||||||
0,
|
|
||||||
};
|
|
||||||
char *enctype_names[] = {
|
|
||||||
"ANY", "DES_CFB64", "DES_OFB64", 0,
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
extern char *encrypt_names[];
|
|
||||||
extern char *enctype_names[];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)
|
|
||||||
#define ENCRYPT_NAME(x) encrypt_names[x]
|
|
||||||
|
|
||||||
#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)
|
|
||||||
#define ENCTYPE_NAME(x) enctype_names[x]
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,17 +0,0 @@
|
||||||
#undef assert
|
|
||||||
|
|
||||||
#ifdef NDEBUG
|
|
||||||
#define assert(x) (void)0
|
|
||||||
#else
|
|
||||||
#define assert(x) ((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void __assert_fail (const char *, const char *, int, const char *);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
|
@ -1 +0,0 @@
|
||||||
../arch/x86_64/bits
|
|
|
@ -1,29 +0,0 @@
|
||||||
#ifndef _CPIO_H
|
|
||||||
#define _CPIO_H
|
|
||||||
|
|
||||||
#define MAGIC "070707"
|
|
||||||
|
|
||||||
#define C_IRUSR 000400
|
|
||||||
#define C_IWUSR 000200
|
|
||||||
#define C_IXUSR 000100
|
|
||||||
#define C_IRGRP 000040
|
|
||||||
#define C_IWGRP 000020
|
|
||||||
#define C_IXGRP 000010
|
|
||||||
#define C_IROTH 000004
|
|
||||||
#define C_IWOTH 000002
|
|
||||||
#define C_IXOTH 000001
|
|
||||||
|
|
||||||
#define C_ISUID 004000
|
|
||||||
#define C_ISGID 002000
|
|
||||||
#define C_ISVTX 001000
|
|
||||||
|
|
||||||
#define C_ISBLK 060000
|
|
||||||
#define C_ISCHR 020000
|
|
||||||
#define C_ISDIR 040000
|
|
||||||
#define C_ISFIFO 010000
|
|
||||||
#define C_ISSOCK 0140000
|
|
||||||
#define C_ISLNK 0120000
|
|
||||||
#define C_ISCTG 0110000
|
|
||||||
#define C_ISREG 0100000
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,56 +0,0 @@
|
||||||
#ifndef _CTYPE_H
|
|
||||||
#define _CTYPE_H
|
|
||||||
|
|
||||||
int isalnum(int);
|
|
||||||
int isalpha(int);
|
|
||||||
int isblank(int);
|
|
||||||
int iscntrl(int);
|
|
||||||
int isdigit(int);
|
|
||||||
int isgraph(int);
|
|
||||||
int islower(int);
|
|
||||||
int isprint(int);
|
|
||||||
int ispunct(int);
|
|
||||||
int isspace(int);
|
|
||||||
int isupper(int);
|
|
||||||
int isxdigit(int);
|
|
||||||
int tolower(int);
|
|
||||||
int toupper(int);
|
|
||||||
|
|
||||||
#define isalpha(a) ((unsigned)(((a)|32)-'a') < 26)
|
|
||||||
#define isdigit(a) ((unsigned)((a)-'0') < 10)
|
|
||||||
#define islower(a) ((unsigned)((a)-'a') < 26)
|
|
||||||
#define isupper(a) ((unsigned)((a)-'A') < 26)
|
|
||||||
#define isprint(a) ((unsigned)((a)-0x20) < 0x5f)
|
|
||||||
#define isgraph(a) ((unsigned)((a)-0x21) < 0x5e)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
|
||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
|
|
||||||
|
|
||||||
#define __NEED_locale_t
|
|
||||||
#include <bits/alltypes.h>
|
|
||||||
|
|
||||||
int isalnum_l(int, locale_t);
|
|
||||||
int isalpha_l(int, locale_t);
|
|
||||||
int isblank_l(int, locale_t);
|
|
||||||
int iscntrl_l(int, locale_t);
|
|
||||||
int isdigit_l(int, locale_t);
|
|
||||||
int isgraph_l(int, locale_t);
|
|
||||||
int islower_l(int, locale_t);
|
|
||||||
int isprint_l(int, locale_t);
|
|
||||||
int ispunct_l(int, locale_t);
|
|
||||||
int isspace_l(int, locale_t);
|
|
||||||
int isupper_l(int, locale_t);
|
|
||||||
int isxdigit_l(int, locale_t);
|
|
||||||
int tolower_l(int, locale_t);
|
|
||||||
int toupper_l(int, locale_t);
|
|
||||||
|
|
||||||
int isascii(int);
|
|
||||||
int toascii(int);
|
|
||||||
#define _tolower(a) ((a)|0x20)
|
|
||||||
#define _toupper(a) ((a)&0x5f)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,68 +0,0 @@
|
||||||
#ifndef _DIRENT_H
|
|
||||||
#define _DIRENT_H
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define __NEED_ino_t
|
|
||||||
#define __NEED_off_t
|
|
||||||
|
|
||||||
#include <bits/alltypes.h>
|
|
||||||
|
|
||||||
typedef struct __DIR_s DIR;
|
|
||||||
|
|
||||||
struct dirent
|
|
||||||
{
|
|
||||||
ino_t d_ino;
|
|
||||||
off_t d_off;
|
|
||||||
unsigned short d_reclen;
|
|
||||||
unsigned char d_type;
|
|
||||||
char d_name[1];
|
|
||||||
};
|
|
||||||
|
|
||||||
int closedir(DIR *);
|
|
||||||
DIR *fdopendir(int);
|
|
||||||
DIR *opendir(const char *);
|
|
||||||
struct dirent *readdir(DIR *);
|
|
||||||
int readdir_r(DIR *, struct dirent *, struct dirent **);
|
|
||||||
void rewinddir(DIR *);
|
|
||||||
void seekdir(DIR *, long);
|
|
||||||
long telldir(DIR *);
|
|
||||||
int dirfd(DIR *);
|
|
||||||
|
|
||||||
int alphasort(const struct dirent **, const struct dirent **);
|
|
||||||
int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **));
|
|
||||||
|
|
||||||
/* File types for `d_type'. */
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
DT_UNKNOWN = 0,
|
|
||||||
# define DT_UNKNOWN DT_UNKNOWN
|
|
||||||
DT_FIFO = 1,
|
|
||||||
# define DT_FIFO DT_FIFO
|
|
||||||
DT_CHR = 2,
|
|
||||||
# define DT_CHR DT_CHR
|
|
||||||
DT_DIR = 4,
|
|
||||||
# define DT_DIR DT_DIR
|
|
||||||
DT_BLK = 6,
|
|
||||||
# define DT_BLK DT_BLK
|
|
||||||
DT_REG = 8,
|
|
||||||
# define DT_REG DT_REG
|
|
||||||
DT_LNK = 10,
|
|
||||||
# define DT_LNK DT_LNK
|
|
||||||
DT_SOCK = 12,
|
|
||||||
# define DT_SOCK DT_SOCK
|
|
||||||
DT_WHT = 14
|
|
||||||
# define DT_WHT DT_WHT
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Convert between stat structure types and directory types. */
|
|
||||||
# define IFTODT(mode) (((mode) & 0170000) >> 12)
|
|
||||||
# define DTTOIF(dirtype) ((dirtype) << 12)
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,17 +0,0 @@
|
||||||
#ifndef _ENDIAN_H
|
|
||||||
#define _ENDIAN_H
|
|
||||||
|
|
||||||
#define __LITTLE_ENDIAN 1234
|
|
||||||
#define __BIG_ENDIAN 4321
|
|
||||||
#define __PDP_ENDIAN 3412
|
|
||||||
|
|
||||||
#include <bits/endian.h>
|
|
||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|
||||||
#define BIG_ENDIAN __BIG_ENDIAN
|
|
||||||
#define LITTLE_ENDIAN __LITTLE_ENDIAN
|
|
||||||
#define PDP_ENDIAN __PDP_ENDIAN
|
|
||||||
#define BYTE_ORDER __BYTE_ORDER
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,18 +0,0 @@
|
||||||
#ifndef _ERRNO_H
|
|
||||||
#define _ERRNO_H
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <bits/errno.h>
|
|
||||||
|
|
||||||
extern int *__errno_location(void);
|
|
||||||
#define errno (*__errno_location())
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue