Revision 3ef693a0
b/COPYING | ||
---|---|---|
1 |
GNU GENERAL PUBLIC LICENSE |
|
2 |
Version 2, June 1991 |
|
3 |
|
|
4 |
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
|
5 |
675 Mass Ave, Cambridge, MA 02139, USA |
|
6 |
Everyone is permitted to copy and distribute verbatim copies |
|
7 |
of this license document, but changing it is not allowed. |
|
8 |
|
|
9 |
Preamble |
|
10 |
|
|
11 |
The licenses for most software are designed to take away your |
|
12 |
freedom to share and change it. By contrast, the GNU General Public |
|
13 |
License is intended to guarantee your freedom to share and change free |
|
14 |
software--to make sure the software is free for all its users. This |
|
15 |
General Public License applies to most of the Free Software |
|
16 |
Foundation's software and to any other program whose authors commit to |
|
17 |
using it. (Some other Free Software Foundation software is covered by |
|
18 |
the GNU Library General Public License instead.) You can apply it to |
|
19 |
your programs, too. |
|
20 |
|
|
21 |
When we speak of free software, we are referring to freedom, not |
|
22 |
price. Our General Public Licenses are designed to make sure that you |
|
23 |
have the freedom to distribute copies of free software (and charge for |
|
24 |
this service if you wish), that you receive source code or can get it |
|
25 |
if you want it, that you can change the software or use pieces of it |
|
26 |
in new free programs; and that you know you can do these things. |
|
27 |
|
|
28 |
To protect your rights, we need to make restrictions that forbid |
|
29 |
anyone to deny you these rights or to ask you to surrender the rights. |
|
30 |
These restrictions translate to certain responsibilities for you if you |
|
31 |
distribute copies of the software, or if you modify it. |
|
32 |
|
|
33 |
For example, if you distribute copies of such a program, whether |
|
34 |
gratis or for a fee, you must give the recipients all the rights that |
|
35 |
you have. You must make sure that they, too, receive or can get the |
|
36 |
source code. And you must show them these terms so they know their |
|
37 |
rights. |
|
38 |
|
|
39 |
We protect your rights with two steps: (1) copyright the software, and |
|
40 |
(2) offer you this license which gives you legal permission to copy, |
|
41 |
distribute and/or modify the software. |
|
42 |
|
|
43 |
Also, for each author's protection and ours, we want to make certain |
|
44 |
that everyone understands that there is no warranty for this free |
|
45 |
software. If the software is modified by someone else and passed on, we |
|
46 |
want its recipients to know that what they have is not the original, so |
|
47 |
that any problems introduced by others will not reflect on the original |
|
48 |
authors' reputations. |
|
49 |
|
|
50 |
Finally, any free program is threatened constantly by software |
|
51 |
patents. We wish to avoid the danger that redistributors of a free |
|
52 |
program will individually obtain patent licenses, in effect making the |
|
53 |
program proprietary. To prevent this, we have made it clear that any |
|
54 |
patent must be licensed for everyone's free use or not licensed at all. |
|
55 |
|
|
56 |
The precise terms and conditions for copying, distribution and |
|
57 |
modification follow. |
|
58 |
|
|
59 |
GNU GENERAL PUBLIC LICENSE |
|
60 |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|
61 |
|
|
62 |
0. This License applies to any program or other work which contains |
|
63 |
a notice placed by the copyright holder saying it may be distributed |
|
64 |
under the terms of this General Public License. The "Program", below, |
|
65 |
refers to any such program or work, and a "work based on the Program" |
|
66 |
means either the Program or any derivative work under copyright law: |
|
67 |
that is to say, a work containing the Program or a portion of it, |
|
68 |
either verbatim or with modifications and/or translated into another |
|
69 |
language. (Hereinafter, translation is included without limitation in |
|
70 |
the term "modification".) Each licensee is addressed as "you". |
|
71 |
|
|
72 |
Activities other than copying, distribution and modification are not |
|
73 |
covered by this License; they are outside its scope. The act of |
|
74 |
running the Program is not restricted, and the output from the Program |
|
75 |
is covered only if its contents constitute a work based on the |
|
76 |
Program (independent of having been made by running the Program). |
|
77 |
Whether that is true depends on what the Program does. |
|
78 |
|
|
79 |
1. You may copy and distribute verbatim copies of the Program's |
|
80 |
source code as you receive it, in any medium, provided that you |
|
81 |
conspicuously and appropriately publish on each copy an appropriate |
|
82 |
copyright notice and disclaimer of warranty; keep intact all the |
|
83 |
notices that refer to this License and to the absence of any warranty; |
|
84 |
and give any other recipients of the Program a copy of this License |
|
85 |
along with the Program. |
|
86 |
|
|
87 |
You may charge a fee for the physical act of transferring a copy, and |
|
88 |
you may at your option offer warranty protection in exchange for a fee. |
|
89 |
|
|
90 |
2. You may modify your copy or copies of the Program or any portion |
|
91 |
of it, thus forming a work based on the Program, and copy and |
|
92 |
distribute such modifications or work under the terms of Section 1 |
|
93 |
above, provided that you also meet all of these conditions: |
|
94 |
|
|
95 |
a) You must cause the modified files to carry prominent notices |
|
96 |
stating that you changed the files and the date of any change. |
|
97 |
|
|
98 |
b) You must cause any work that you distribute or publish, that in |
|
99 |
whole or in part contains or is derived from the Program or any |
|
100 |
part thereof, to be licensed as a whole at no charge to all third |
|
101 |
parties under the terms of this License. |
|
102 |
|
|
103 |
c) If the modified program normally reads commands interactively |
|
104 |
when run, you must cause it, when started running for such |
|
105 |
interactive use in the most ordinary way, to print or display an |
|
106 |
announcement including an appropriate copyright notice and a |
|
107 |
notice that there is no warranty (or else, saying that you provide |
|
108 |
a warranty) and that users may redistribute the program under |
|
109 |
these conditions, and telling the user how to view a copy of this |
|
110 |
License. (Exception: if the Program itself is interactive but |
|
111 |
does not normally print such an announcement, your work based on |
|
112 |
the Program is not required to print an announcement.) |
|
113 |
|
|
114 |
These requirements apply to the modified work as a whole. If |
|
115 |
identifiable sections of that work are not derived from the Program, |
|
116 |
and can be reasonably considered independent and separate works in |
|
117 |
themselves, then this License, and its terms, do not apply to those |
|
118 |
sections when you distribute them as separate works. But when you |
|
119 |
distribute the same sections as part of a whole which is a work based |
|
120 |
on the Program, the distribution of the whole must be on the terms of |
|
121 |
this License, whose permissions for other licensees extend to the |
|
122 |
entire whole, and thus to each and every part regardless of who wrote it. |
|
123 |
|
|
124 |
Thus, it is not the intent of this section to claim rights or contest |
|
125 |
your rights to work written entirely by you; rather, the intent is to |
|
126 |
exercise the right to control the distribution of derivative or |
|
127 |
collective works based on the Program. |
|
128 |
|
|
129 |
In addition, mere aggregation of another work not based on the Program |
|
130 |
with the Program (or with a work based on the Program) on a volume of |
|
131 |
a storage or distribution medium does not bring the other work under |
|
132 |
the scope of this License. |
|
133 |
|
|
134 |
3. You may copy and distribute the Program (or a work based on it, |
|
135 |
under Section 2) in object code or executable form under the terms of |
|
136 |
Sections 1 and 2 above provided that you also do one of the following: |
|
137 |
|
|
138 |
a) Accompany it with the complete corresponding machine-readable |
|
139 |
source code, which must be distributed under the terms of Sections |
|
140 |
1 and 2 above on a medium customarily used for software interchange; or, |
|
141 |
|
|
142 |
b) Accompany it with a written offer, valid for at least three |
|
143 |
years, to give any third party, for a charge no more than your |
|
144 |
cost of physically performing source distribution, a complete |
|
145 |
machine-readable copy of the corresponding source code, to be |
|
146 |
distributed under the terms of Sections 1 and 2 above on a medium |
|
147 |
customarily used for software interchange; or, |
|
148 |
|
|
149 |
c) Accompany it with the information you received as to the offer |
|
150 |
to distribute corresponding source code. (This alternative is |
|
151 |
allowed only for noncommercial distribution and only if you |
|
152 |
received the program in object code or executable form with such |
|
153 |
an offer, in accord with Subsection b above.) |
|
154 |
|
|
155 |
The source code for a work means the preferred form of the work for |
|
156 |
making modifications to it. For an executable work, complete source |
|
157 |
code means all the source code for all modules it contains, plus any |
|
158 |
associated interface definition files, plus the scripts used to |
|
159 |
control compilation and installation of the executable. However, as a |
|
160 |
special exception, the source code distributed need not include |
|
161 |
anything that is normally distributed (in either source or binary |
|
162 |
form) with the major components (compiler, kernel, and so on) of the |
|
163 |
operating system on which the executable runs, unless that component |
|
164 |
itself accompanies the executable. |
|
165 |
|
|
166 |
If distribution of executable or object code is made by offering |
|
167 |
access to copy from a designated place, then offering equivalent |
|
168 |
access to copy the source code from the same place counts as |
|
169 |
distribution of the source code, even though third parties are not |
|
170 |
compelled to copy the source along with the object code. |
|
171 |
|
|
172 |
4. You may not copy, modify, sublicense, or distribute the Program |
|
173 |
except as expressly provided under this License. Any attempt |
|
174 |
otherwise to copy, modify, sublicense or distribute the Program is |
|
175 |
void, and will automatically terminate your rights under this License. |
|
176 |
However, parties who have received copies, or rights, from you under |
|
177 |
this License will not have their licenses terminated so long as such |
|
178 |
parties remain in full compliance. |
|
179 |
|
|
180 |
5. You are not required to accept this License, since you have not |
|
181 |
signed it. However, nothing else grants you permission to modify or |
|
182 |
distribute the Program or its derivative works. These actions are |
|
183 |
prohibited by law if you do not accept this License. Therefore, by |
|
184 |
modifying or distributing the Program (or any work based on the |
|
185 |
Program), you indicate your acceptance of this License to do so, and |
|
186 |
all its terms and conditions for copying, distributing or modifying |
|
187 |
the Program or works based on it. |
|
188 |
|
|
189 |
6. Each time you redistribute the Program (or any work based on the |
|
190 |
Program), the recipient automatically receives a license from the |
|
191 |
original licensor to copy, distribute or modify the Program subject to |
|
192 |
these terms and conditions. You may not impose any further |
|
193 |
restrictions on the recipients' exercise of the rights granted herein. |
|
194 |
You are not responsible for enforcing compliance by third parties to |
|
195 |
this License. |
|
196 |
|
|
197 |
7. If, as a consequence of a court judgment or allegation of patent |
|
198 |
infringement or for any other reason (not limited to patent issues), |
|
199 |
conditions are imposed on you (whether by court order, agreement or |
|
200 |
otherwise) that contradict the conditions of this License, they do not |
|
201 |
excuse you from the conditions of this License. If you cannot |
|
202 |
distribute so as to satisfy simultaneously your obligations under this |
|
203 |
License and any other pertinent obligations, then as a consequence you |
|
204 |
may not distribute the Program at all. For example, if a patent |
|
205 |
license would not permit royalty-free redistribution of the Program by |
|
206 |
all those who receive copies directly or indirectly through you, then |
|
207 |
the only way you could satisfy both it and this License would be to |
|
208 |
refrain entirely from distribution of the Program. |
|
209 |
|
|
210 |
If any portion of this section is held invalid or unenforceable under |
|
211 |
any particular circumstance, the balance of the section is intended to |
|
212 |
apply and the section as a whole is intended to apply in other |
|
213 |
circumstances. |
|
214 |
|
|
215 |
It is not the purpose of this section to induce you to infringe any |
|
216 |
patents or other property right claims or to contest validity of any |
|
217 |
such claims; this section has the sole purpose of protecting the |
|
218 |
integrity of the free software distribution system, which is |
|
219 |
implemented by public license practices. Many people have made |
|
220 |
generous contributions to the wide range of software distributed |
|
221 |
through that system in reliance on consistent application of that |
|
222 |
system; it is up to the author/donor to decide if he or she is willing |
|
223 |
to distribute software through any other system and a licensee cannot |
|
224 |
impose that choice. |
|
225 |
|
|
226 |
This section is intended to make thoroughly clear what is believed to |
|
227 |
be a consequence of the rest of this License. |
|
228 |
|
|
229 |
8. If the distribution and/or use of the Program is restricted in |
|
230 |
certain countries either by patents or by copyrighted interfaces, the |
|
231 |
original copyright holder who places the Program under this License |
|
232 |
may add an explicit geographical distribution limitation excluding |
|
233 |
those countries, so that distribution is permitted only in or among |
|
234 |
countries not thus excluded. In such case, this License incorporates |
|
235 |
the limitation as if written in the body of this License. |
|
236 |
|
|
237 |
9. The Free Software Foundation may publish revised and/or new versions |
|
238 |
of the General Public License from time to time. Such new versions will |
|
239 |
be similar in spirit to the present version, but may differ in detail to |
|
240 |
address new problems or concerns. |
|
241 |
|
|
242 |
Each version is given a distinguishing version number. If the Program |
|
243 |
specifies a version number of this License which applies to it and "any |
|
244 |
later version", you have the option of following the terms and conditions |
|
245 |
either of that version or of any later version published by the Free |
|
246 |
Software Foundation. If the Program does not specify a version number of |
|
247 |
this License, you may choose any version ever published by the Free Software |
|
248 |
Foundation. |
|
249 |
|
|
250 |
10. If you wish to incorporate parts of the Program into other free |
|
251 |
programs whose distribution conditions are different, write to the author |
|
252 |
to ask for permission. For software which is copyrighted by the Free |
|
253 |
Software Foundation, write to the Free Software Foundation; we sometimes |
|
254 |
make exceptions for this. Our decision will be guided by the two goals |
|
255 |
of preserving the free status of all derivatives of our free software and |
|
256 |
of promoting the sharing and reuse of software generally. |
|
257 |
|
|
258 |
NO WARRANTY |
|
259 |
|
|
260 |
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
|
261 |
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
|
262 |
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
|
263 |
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
|
264 |
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
265 |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
|
266 |
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
|
267 |
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
|
268 |
REPAIR OR CORRECTION. |
|
269 |
|
|
270 |
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|
271 |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
|
272 |
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
|
273 |
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
|
274 |
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
|
275 |
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
|
276 |
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
|
277 |
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
|
278 |
POSSIBILITY OF SUCH DAMAGES. |
|
279 |
|
|
280 |
END OF TERMS AND CONDITIONS |
|
281 |
|
|
282 |
How to Apply These Terms to Your New Programs |
|
283 |
|
|
284 |
If you develop a new program, and you want it to be of the greatest |
|
285 |
possible use to the public, the best way to achieve this is to make it |
|
286 |
free software which everyone can redistribute and change under these terms. |
|
287 |
|
|
288 |
To do so, attach the following notices to the program. It is safest |
|
289 |
to attach them to the start of each source file to most effectively |
|
290 |
convey the exclusion of warranty; and each file should have at least |
|
291 |
the "copyright" line and a pointer to where the full notice is found. |
|
292 |
|
|
293 |
<one line to give the program's name and a brief idea of what it does.> |
|
294 |
Copyright (C) 19yy <name of author> |
|
295 |
|
|
296 |
This program is free software; you can redistribute it and/or modify |
|
297 |
it under the terms of the GNU General Public License as published by |
|
298 |
the Free Software Foundation; either version 2 of the License, or |
|
299 |
(at your option) any later version. |
|
300 |
|
|
301 |
This program is distributed in the hope that it will be useful, |
|
302 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
303 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
304 |
GNU General Public License for more details. |
|
305 |
|
|
306 |
You should have received a copy of the GNU General Public License |
|
307 |
along with this program; if not, write to the Free Software |
|
308 |
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
309 |
|
|
310 |
Also add information on how to contact you by electronic and paper mail. |
|
311 |
|
|
312 |
If the program is interactive, make it output a short notice like this |
|
313 |
when it starts in an interactive mode: |
|
314 |
|
|
315 |
Gnomovision version 69, Copyright (C) 19yy name of author |
|
316 |
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|
317 |
This is free software, and you are welcome to redistribute it |
|
318 |
under certain conditions; type `show c' for details. |
|
319 |
|
|
320 |
The hypothetical commands `show w' and `show c' should show the appropriate |
|
321 |
parts of the General Public License. Of course, the commands you use may |
|
322 |
be called something other than `show w' and `show c'; they could even be |
|
323 |
mouse-clicks or menu items--whatever suits your program. |
|
324 |
|
|
325 |
You should also get your employer (if you work as a programmer) or your |
|
326 |
school, if any, to sign a "copyright disclaimer" for the program, if |
|
327 |
necessary. Here is a sample; alter the names: |
|
328 |
|
|
329 |
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
|
330 |
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
|
331 |
|
|
332 |
<signature of Ty Coon>, 1 April 1989 |
|
333 |
Ty Coon, President of Vice |
|
334 |
|
|
335 |
This General Public License does not permit incorporating your program into |
|
336 |
proprietary programs. If your program is a subroutine library, you may |
|
337 |
consider it more useful to permit linking proprietary applications with the |
|
338 |
library. If this is what you want to do, use the GNU Library General |
|
339 |
Public License instead of this License. |
b/Changelog | ||
---|---|---|
1 |
version 0.1: |
|
2 |
|
|
3 |
- initial public release. |
b/Makefile | ||
---|---|---|
28 | 28 |
|
29 | 29 |
DEFINES+=-D_GNU_SOURCE |
30 | 30 |
LDSCRIPT=$(ARCH).ld |
31 |
LIBS+=-ldl -lm
|
|
31 |
LIBS+=-lm |
|
32 | 32 |
|
33 | 33 |
# profiling code |
34 | 34 |
ifdef TARGET_GPROF |
... | ... | |
36 | 36 |
main.o: CFLAGS+=-p |
37 | 37 |
endif |
38 | 38 |
|
39 |
OBJS= elfload.o main.o thunk.o syscall.o signal.o libgemu.a |
|
39 |
OBJS= elfload.o main.o syscall.o signal.o |
|
40 |
SRCS:= $(OBJS:.o=.c) |
|
41 |
OBJS+= libqemu.a |
|
40 | 42 |
|
41 |
LIBOBJS+=translate-i386.o op-i386.o exec-i386.o |
|
43 |
LIBOBJS+=thunk.o translate-i386.o op-i386.o exec-i386.o
|
|
42 | 44 |
# NOTE: the disassembler code is only needed for debugging |
43 | 45 |
LIBOBJS+=i386-dis.o dis-buf.o |
44 |
SRCS = $(OBJS:.o=.c) |
|
45 | 46 |
|
46 |
all: gemu
|
|
47 |
all: qemu qemu-doc.html
|
|
47 | 48 |
|
48 |
gemu: $(OBJS)
|
|
49 |
qemu: $(OBJS)
|
|
49 | 50 |
$(CC) -Wl,-T,$(LDSCRIPT) $(LDFLAGS) -o $@ $^ $(LIBS) |
50 | 51 |
|
51 | 52 |
depend: $(SRCS) |
52 | 53 |
$(CC) -MM $(CFLAGS) $^ 1>.depend |
53 | 54 |
|
54 |
# libgemu
|
|
55 |
# libqemu
|
|
55 | 56 |
|
56 |
libgemu.a: $(LIBOBJS)
|
|
57 |
libqemu.a: $(LIBOBJS)
|
|
57 | 58 |
rm -f $@ |
58 | 59 |
$(AR) rcs $@ $(LIBOBJS) |
59 | 60 |
|
... | ... | |
73 | 74 |
|
74 | 75 |
clean: |
75 | 76 |
$(MAKE) -C tests clean |
76 |
rm -f *.o *.a *~ gemu dyngen TAGS
|
|
77 |
rm -f *.o *.a *~ qemu dyngen TAGS
|
|
77 | 78 |
|
78 | 79 |
distclean: clean |
79 | 80 |
rm -f config.mak config.h |
80 | 81 |
|
81 |
install: gemu
|
|
82 |
install -m755 -s gemu $(prefix)/bin
|
|
82 |
install: qemu
|
|
83 |
install -m 755 -s qemu $(prefix)/bin
|
|
83 | 84 |
|
84 | 85 |
# various test targets |
85 |
test speed: gemu
|
|
86 |
test speed: qemu
|
|
86 | 87 |
make -C tests $@ |
87 | 88 |
|
88 | 89 |
TAGS: |
89 | 90 |
etags *.[ch] i386/*.[ch] |
90 | 91 |
|
92 |
# documentation |
|
93 |
qemu-doc.html: qemu-doc.texi |
|
94 |
texi2html -monolithic -number $< |
|
95 |
|
|
91 | 96 |
FILES= \ |
92 |
COPYING.LIB dyngen.c ioctls.h ops_template.h syscall_types.h\ |
|
97 |
README COPYING COPYING.LIB TODO Changelog VERSION \ |
|
98 |
dyngen.c ioctls.h ops_template.h syscall_types.h\ |
|
93 | 99 |
Makefile elf.h linux_bin.h segment.h thunk.c\ |
94 |
TODO elfload.c main.c signal.c thunk.h\
|
|
95 |
cpu-i386.h gemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\
|
|
100 |
elfload.c main.c signal.c thunk.h\ |
|
101 |
cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\
|
|
96 | 102 |
dis-asm.h gen-i386.h op-i386.h syscall.c\ |
97 | 103 |
dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\ |
98 |
i386.ld ppc.ld exec-i386.h exec-i386.c configure VERSION \
|
|
104 |
i386.ld ppc.ld exec-i386.h exec-i386.c configure \ |
|
99 | 105 |
tests/Makefile\ |
100 | 106 |
tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ |
101 | 107 |
tests/test-i386-muldiv.h tests/test-i386-code16.S\ |
102 | 108 |
tests/hello.c tests/hello tests/sha1.c \ |
103 |
tests/testsig.c tests/testclone.c tests/testthread.c |
|
109 |
tests/testsig.c tests/testclone.c tests/testthread.c \ |
|
110 |
qemu-doc.texi qemu-doc.html |
|
104 | 111 |
|
105 |
FILE=gemu-$(VERSION)
|
|
112 |
FILE=qemu-$(VERSION)
|
|
106 | 113 |
|
107 | 114 |
tar: |
108 | 115 |
rm -rf /tmp/$(FILE) |
b/README | ||
---|---|---|
1 |
The QEMU x86 emulator |
|
2 |
--------------------- |
|
3 |
|
|
4 |
INSTALLATION |
|
5 |
------------ |
|
6 |
|
|
7 |
Type |
|
8 |
|
|
9 |
./configure |
|
10 |
make |
|
11 |
|
|
12 |
to build qemu and libqemu.a. |
|
13 |
|
|
14 |
Type |
|
15 |
|
|
16 |
make install |
|
17 |
|
|
18 |
to install qemu in /usr/local/bin |
|
19 |
|
|
20 |
|
|
21 |
Documentation |
|
22 |
------------- |
|
23 |
|
|
24 |
Read the documentation in qemu-doc.html. |
|
25 |
|
|
26 |
|
|
27 |
Fabrice Bellard. |
b/VERSION | ||
---|---|---|
1 |
0.1 |
b/configure | ||
---|---|---|
1 | 1 |
#!/bin/sh |
2 | 2 |
# |
3 |
# gemu configure script (c) 2003 Fabrice Bellard
|
|
3 |
# qemu configure script (c) 2003 Fabrice Bellard
|
|
4 | 4 |
# |
5 | 5 |
# set temporary file name |
6 | 6 |
if test ! -z "$TMPDIR" ; then |
... | ... | |
11 | 11 |
TMPDIR1="/tmp" |
12 | 12 |
fi |
13 | 13 |
|
14 |
TMPC="${TMPDIR1}/gemu-conf-${RANDOM}-$$-${RANDOM}.c"
|
|
15 |
TMPO="${TMPDIR1}/gemu-conf-${RANDOM}-$$-${RANDOM}.o"
|
|
16 |
TMPE="${TMPDIR1}/gemu-conf-${RANDOM}-$$-${RANDOM}"
|
|
17 |
TMPS="${TMPDIR1}/gemu-conf-${RANDOM}-$$-${RANDOM}.S"
|
|
18 |
TMPH="${TMPDIR1}/gemu-conf-${RANDOM}-$$-${RANDOM}.h"
|
|
14 |
TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
|
|
15 |
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
|
|
16 |
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
|
|
17 |
TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
|
|
18 |
TMPH="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.h"
|
|
19 | 19 |
|
20 | 20 |
# default parameters |
21 | 21 |
prefix="/usr/local" |
... | ... | |
195 | 195 |
echo "/* Automatically generated by configure - do not modify */" > $TMPH |
196 | 196 |
|
197 | 197 |
echo "prefix=$prefix" >> config.mak |
198 |
echo "#define CONFIG_GEMU_PREFIX \"$prefix\"" >> $TMPH
|
|
198 |
echo "#define CONFIG_QEMU_PREFIX \"$prefix\"" >> $TMPH
|
|
199 | 199 |
echo "MAKE=$make" >> config.mak |
200 | 200 |
echo "CC=$cc" >> config.mak |
201 | 201 |
echo "GCC_MAJOR=$gcc_major" >> config.mak |
... | ... | |
227 | 227 |
echo -n "VERSION=" >>config.mak |
228 | 228 |
head $source_path/VERSION >>config.mak |
229 | 229 |
echo "" >>config.mak |
230 |
echo -n "#define GEMU_VERSION \"" >> $TMPH
|
|
230 |
echo -n "#define QEMU_VERSION \"" >> $TMPH
|
|
231 | 231 |
head $source_path/VERSION >> $TMPH |
232 | 232 |
echo "\"" >> $TMPH |
233 | 233 |
if test "$network" = "yes" ; then |
b/cpu-i386.h | ||
---|---|---|
1 |
/* NOTE: this header is included in op-i386.c where global register |
|
2 |
variable are used. Care must be used when including glibc headers. |
|
1 |
/* |
|
2 |
* i386 virtual CPU header |
|
3 |
* |
|
4 |
* Copyright (c) 2003 Fabrice Bellard |
|
5 |
* |
|
6 |
* This library is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU Lesser General Public |
|
8 |
* License as published by the Free Software Foundation; either |
|
9 |
* version 2 of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This library is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
* Lesser General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU Lesser General Public |
|
17 |
* License along with this library; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
3 | 19 |
*/ |
4 | 20 |
#ifndef CPU_I386_H |
5 | 21 |
#define CPU_I386_H |
b/exec-i386.c | ||
---|---|---|
3 | 3 |
* |
4 | 4 |
* Copyright (c) 2003 Fabrice Bellard |
5 | 5 |
* |
6 |
* This program is free software; you can redistribute it and/or modify
|
|
7 |
* it under the terms of the GNU General Public License as published by
|
|
8 |
* the Free Software Foundation; either version 2 of the License, or
|
|
9 |
* (at your option) any later version. |
|
6 |
* This library is free software; you can redistribute it and/or
|
|
7 |
* modify it under the terms of the GNU Lesser General Public
|
|
8 |
* License as published by the Free Software Foundation; either
|
|
9 |
* version 2 of the License, or (at your option) any later version.
|
|
10 | 10 |
* |
11 |
* This program is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 |
* GNU General Public License for more details.
|
|
11 |
* This library is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14 |
* Lesser General Public License for more details.
|
|
15 | 15 |
* |
16 |
* You should have received a copy of the GNU General Public License
|
|
17 |
* along with this program; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
16 |
* You should have received a copy of the GNU Lesser General Public
|
|
17 |
* License along with this library; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
19 | 19 |
*/ |
20 | 20 |
#include "exec-i386.h" |
21 | 21 |
|
b/exec-i386.h | ||
---|---|---|
1 |
/* i386 execution defines */ |
|
2 |
|
|
1 |
/* |
|
2 |
* i386 execution defines |
|
3 |
* |
|
4 |
* Copyright (c) 2003 Fabrice Bellard |
|
5 |
* |
|
6 |
* This library is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU Lesser General Public |
|
8 |
* License as published by the Free Software Foundation; either |
|
9 |
* version 2 of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This library is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
* Lesser General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU Lesser General Public |
|
17 |
* License along with this library; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
19 |
*/ |
|
3 | 20 |
typedef unsigned char uint8_t; |
4 | 21 |
typedef unsigned short uint16_t; |
5 | 22 |
typedef unsigned int uint32_t; |
b/linux-user/elfload.c | ||
---|---|---|
10 | 10 |
#include <stdlib.h> |
11 | 11 |
#include <string.h> |
12 | 12 |
|
13 |
#include "gemu.h"
|
|
13 |
#include "qemu.h"
|
|
14 | 14 |
|
15 | 15 |
#include "linux_bin.h" |
16 | 16 |
#include "elf.h" |
b/linux-user/main.c | ||
---|---|---|
1 | 1 |
/* |
2 |
* gemu main
|
|
2 |
* qemu main
|
|
3 | 3 |
* |
4 | 4 |
* Copyright (c) 2003 Fabrice Bellard |
5 | 5 |
* |
... | ... | |
24 | 24 |
#include <errno.h> |
25 | 25 |
#include <unistd.h> |
26 | 26 |
|
27 |
#include "gemu.h"
|
|
27 |
#include "qemu.h"
|
|
28 | 28 |
|
29 | 29 |
#include "cpu-i386.h" |
30 | 30 |
|
31 |
#define DEBUG_LOGFILE "/tmp/gemu.log"
|
|
31 |
#define DEBUG_LOGFILE "/tmp/qemu.log"
|
|
32 | 32 |
|
33 | 33 |
FILE *logfile = NULL; |
34 | 34 |
int loglevel; |
... | ... | |
171 | 171 |
|
172 | 172 |
void usage(void) |
173 | 173 |
{ |
174 |
printf("gemu version " GEMU_VERSION ", Copyright (c) 2003 Fabrice Bellard\n"
|
|
175 |
"usage: gemu [-d] program [arguments...]\n"
|
|
174 |
printf("qemu version " QEMU_VERSION ", Copyright (c) 2003 Fabrice Bellard\n"
|
|
175 |
"usage: qemu [-d] program [arguments...]\n"
|
|
176 | 176 |
"Linux x86 emulator\n" |
177 | 177 |
); |
178 | 178 |
exit(1); |
b/linux-user/signal.c | ||
---|---|---|
25 | 25 |
#include <errno.h> |
26 | 26 |
#include <sys/ucontext.h> |
27 | 27 |
|
28 |
#include "gemu.h" |
|
29 |
|
|
30 |
/* signal handling inspired from em86. */ |
|
28 |
#include "qemu.h" |
|
31 | 29 |
|
32 | 30 |
//#define DEBUG_SIGNAL |
33 | 31 |
|
b/linux-user/syscall.c | ||
---|---|---|
56 | 56 |
#include <linux/soundcard.h> |
57 | 57 |
#include <linux/dirent.h> |
58 | 58 |
|
59 |
#include "gemu.h"
|
|
59 |
#include "qemu.h"
|
|
60 | 60 |
|
61 | 61 |
//#define DEBUG |
62 | 62 |
|
b/op-i386.c | ||
---|---|---|
3 | 3 |
* |
4 | 4 |
* Copyright (c) 2003 Fabrice Bellard |
5 | 5 |
* |
6 |
* This program is free software; you can redistribute it and/or modify
|
|
7 |
* it under the terms of the GNU General Public License as published by
|
|
8 |
* the Free Software Foundation; either version 2 of the License, or
|
|
9 |
* (at your option) any later version. |
|
6 |
* This library is free software; you can redistribute it and/or
|
|
7 |
* modify it under the terms of the GNU Lesser General Public
|
|
8 |
* License as published by the Free Software Foundation; either
|
|
9 |
* version 2 of the License, or (at your option) any later version.
|
|
10 | 10 |
* |
11 |
* This program is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 |
* GNU General Public License for more details.
|
|
11 |
* This library is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14 |
* Lesser General Public License for more details.
|
|
15 | 15 |
* |
16 |
* You should have received a copy of the GNU General Public License
|
|
17 |
* along with this program; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
16 |
* You should have received a copy of the GNU Lesser General Public
|
|
17 |
* License along with this library; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
19 | 19 |
*/ |
20 | 20 |
#include "exec-i386.h" |
21 | 21 |
|
b/tests/Makefile | ||
---|---|---|
8 | 8 |
endif |
9 | 9 |
TESTS+=sha1 |
10 | 10 |
|
11 |
GEMU=../gemu
|
|
11 |
QEMU=../qemu
|
|
12 | 12 |
|
13 | 13 |
all: $(TESTS) |
14 | 14 |
|
... | ... | |
34 | 34 |
ifeq ($(ARCH),i386) |
35 | 35 |
./test-i386 > test-i386.ref |
36 | 36 |
endif |
37 |
$(GEMU) test-i386 > test-i386.out
|
|
37 |
$(QEMU) test-i386 > test-i386.out
|
|
38 | 38 |
@if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK"; fi |
39 | 39 |
|
40 | 40 |
# speed test |
... | ... | |
46 | 46 |
|
47 | 47 |
speed: sha1 sha1-i386 |
48 | 48 |
time ./sha1 |
49 |
time $(GEMU) ./sha1-i386
|
|
49 |
time $(QEMU) ./sha1-i386
|
|
50 | 50 |
|
51 | 51 |
clean: |
52 | 52 |
rm -f *~ *.o $(TESTS) |
b/thunk.c | ||
---|---|---|
3 | 3 |
* |
4 | 4 |
* Copyright (c) 2003 Fabrice Bellard |
5 | 5 |
* |
6 |
* This program is free software; you can redistribute it and/or modify
|
|
7 |
* it under the terms of the GNU General Public License as published by
|
|
8 |
* the Free Software Foundation; either version 2 of the License, or
|
|
9 |
* (at your option) any later version. |
|
6 |
* This library is free software; you can redistribute it and/or
|
|
7 |
* modify it under the terms of the GNU Lesser General Public
|
|
8 |
* License as published by the Free Software Foundation; either
|
|
9 |
* version 2 of the License, or (at your option) any later version.
|
|
10 | 10 |
* |
11 |
* This program is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 |
* GNU General Public License for more details.
|
|
11 |
* This library is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14 |
* Lesser General Public License for more details.
|
|
15 | 15 |
* |
16 |
* You should have received a copy of the GNU General Public License
|
|
17 |
* along with this program; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
16 |
* You should have received a copy of the GNU Lesser General Public
|
|
17 |
* License along with this library; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
19 | 19 |
*/ |
20 | 20 |
#include <stdlib.h> |
21 | 21 |
#include <stdio.h> |
22 | 22 |
#include <stdarg.h> |
23 | 23 |
|
24 |
#include "gemu.h"
|
|
24 |
#include "qemu.h"
|
|
25 | 25 |
#include "thunk.h" |
26 | 26 |
|
27 | 27 |
//#define DEBUG |
b/thunk.h | ||
---|---|---|
1 |
/* |
|
2 |
* Generic thunking code to convert data between host and target CPU |
|
3 |
* |
|
4 |
* Copyright (c) 2003 Fabrice Bellard |
|
5 |
* |
|
6 |
* This library is free software; you can redistribute it and/or |
|
7 |
* modify it under the terms of the GNU Lesser General Public |
|
8 |
* License as published by the Free Software Foundation; either |
|
9 |
* version 2 of the License, or (at your option) any later version. |
|
10 |
* |
|
11 |
* This library is distributed in the hope that it will be useful, |
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
14 |
* Lesser General Public License for more details. |
|
15 |
* |
|
16 |
* You should have received a copy of the GNU Lesser General Public |
|
17 |
* License along with this library; if not, write to the Free Software |
|
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
19 |
*/ |
|
1 | 20 |
#ifndef THUNK_H |
2 | 21 |
#define THUNK_H |
3 | 22 |
|
b/translate-i386.c | ||
---|---|---|
3 | 3 |
* |
4 | 4 |
* Copyright (c) 2003 Fabrice Bellard |
5 | 5 |
* |
6 |
* This program is free software; you can redistribute it and/or modify
|
|
7 |
* it under the terms of the GNU General Public License as published by
|
|
8 |
* the Free Software Foundation; either version 2 of the License, or
|
|
9 |
* (at your option) any later version. |
|
6 |
* This library is free software; you can redistribute it and/or
|
|
7 |
* modify it under the terms of the GNU Lesser General Public
|
|
8 |
* License as published by the Free Software Foundation; either
|
|
9 |
* version 2 of the License, or (at your option) any later version.
|
|
10 | 10 |
* |
11 |
* This program is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 |
* GNU General Public License for more details.
|
|
11 |
* This library is distributed in the hope that it will be useful,
|
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14 |
* Lesser General Public License for more details.
|
|
15 | 15 |
* |
16 |
* You should have received a copy of the GNU General Public License
|
|
17 |
* along with this program; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
16 |
* You should have received a copy of the GNU Lesser General Public
|
|
17 |
* License along with this library; if not, write to the Free Software
|
|
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
19 | 19 |
*/ |
20 | 20 |
#include <stdarg.h> |
21 | 21 |
#include <stdlib.h> |
Also available in: Unified diff