- Update to 20040604

PR:		ports/67583
Submitted by:	Juergen Lock <nox@jelal.kn-bremen.de> (maintainer)
This commit is contained in:
Pav Lucistnik 2004-06-05 12:28:31 +00:00
parent c150138c72
commit 0af890b46b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=110878
8 changed files with 292 additions and 22 deletions

View file

@ -6,19 +6,20 @@
#
PORTNAME= qemu
PORTVERSION= 0.5.5.s.20040530
PORTVERSION= 0.5.5.s.20040604
CATEGORIES= emulators
MASTER_SITES= http://dad-answers.com/qemu/
DISTNAME= ${PORTNAME}-snapshot-2004-05-30_23-40
DISTNAME= ${PORTNAME}-snapshot-2004-06-04_23-40
MAINTAINER= nox@jelal.kn-bremen.de
COMMENT= QEMU CPU Emulator
BUILD_DEPENDS+= texi2html:${PORTSDIR}/textproc/texi2html
GNU_CONFIGURE= yes
HAS_CONFIGURE= yes
USE_BZIP2= yes
USE_GMAKE= yes
USE_GETOPT_LONG= yes
USE_SDL= sdl
USE_GCC= 3.3
USE_PERL5= yes

View file

@ -1,2 +1,2 @@
MD5 (qemu-snapshot-2004-05-30_23-40.tar.bz2) = 4ce3834c66e4628e33a083db5e542287
SIZE (qemu-snapshot-2004-05-30_23-40.tar.bz2) = 637024
MD5 (qemu-snapshot-2004-06-04_23-40.tar.bz2) = 1fbec49539edd996557cf6fce19416c3
SIZE (qemu-snapshot-2004-06-04_23-40.tar.bz2) = 641652

View file

@ -0,0 +1,127 @@
Revert this, breaks the right alt key (which is important if you use a
german keymap, seems to send scroll-lock instead...)
Index: qemu/sdl.c
@@ -63,24 +63,25 @@
ds->depth = screen->format->BitsPerPixel;
}
-static const uint8_t x_keycode_to_pc_keycode[61] = {
- 0xc7, /* 97 Home */
- 0xc8, /* 98 Up */
- 0xc9, /* 99 PgUp */
- 0xcb, /* 100 Left */
+static const uint32_t x_keycode_to_pc_keycode[61] = {
+ 0x47e0, /* 97 Home */
+ 0x48e0, /* 98 Up */
+ 0x49e0, /* 99 PgUp */
+ 0x4be0, /* 100 Left */
0x4c, /* 101 KP-5 */
- 0xcd, /* 102 Right */
- 0xcf, /* 103 End */
- 0xd0, /* 104 Down */
- 0xd1, /* 105 PgDn */
- 0xd2, /* 106 Ins */
- 0xd3, /* 107 Del */
- 0x9c, /* 108 Enter */
- 0x9d, /* 109 Ctrl-R */
- 0xb7, /* 111 Print */
- 0xb5, /* 112 Divide */
- 0xb8, /* 113 Alt-R */
- 0xc6, /* 114 Break */
+ 0x4de0, /* 102 Right */
+ 0x4fe0, /* 103 End */
+ 0x50e0, /* 104 Down */
+ 0x51e0, /* 105 PgDn */
+ 0x52e0, /* 106 Ins */
+ 0x53e0, /* 107 Del */
+ 0x1ce0, /* 108 Enter */
+ 0x1de0, /* 109 Ctrl-R */
+ 0x451de1, /* 110 Pause */
+ 0x37e0, /* 111 Print */
+ 0x35e0, /* 112 Divide */
+ 0x38e0, /* 113 Alt-R */
+ 0x46e0, /* 114 Break */
0x0, /* 115 */
0x0, /* 116 */
0x0, /* 117 */
@@ -128,25 +129,11 @@
static void sdl_process_key(SDL_KeyboardEvent *ev)
{
- int keycode, v, i;
- static uint8_t modifiers_state[256];
-
- if (ev->keysym.sym == SDLK_PAUSE) {
- /* specific case */
- v = 0;
- if (ev->type == SDL_KEYUP)
- v |= 0x80;
- kbd_put_keycode(0xe1);
- kbd_put_keycode(0x1d | v);
- kbd_put_keycode(0x45 | v);
- return;
- }
-
+ int keycode, v;
+
/* XXX: not portable, but avoids complicated mappings */
keycode = ev->keysym.scancode;
- /* XXX: windows version may not work: 0xe0/0xe1 should be trapped
- ? */
#ifndef _WIN32
if (keycode < 9) {
keycode = 0;
@@ -159,44 +146,15 @@
keycode = 0;
}
#endif
-
- switch(keycode) {
- case 0x00:
- /* sent when leaving window: reset the modifiers state */
- for(i = 0; i < 256; i++) {
- if (modifiers_state[i]) {
- if (i & 0x80)
- kbd_put_keycode(0xe0);
- kbd_put_keycode(i | 0x80);
- }
- }
- return;
- case 0x2a: /* Left Shift */
- case 0x36: /* Right Shift */
- case 0x1d: /* Left CTRL */
- case 0x9d: /* Right CTRL */
- case 0x38: /* Left ALT */
- case 0xb8: /* Right ALT */
+
+ /* now send the key code */
+ while (keycode != 0) {
+ v = keycode & 0xff;
if (ev->type == SDL_KEYUP)
- modifiers_state[keycode] = 0;
- else
- modifiers_state[keycode] = 1;
- break;
- case 0x45: /* num lock */
- case 0x3a: /* caps lock */
- /* SDL does not send the key up event, so we generate it */
- kbd_put_keycode(keycode);
- kbd_put_keycode(keycode | 0x80);
- return;
+ v |= 0x80;
+ kbd_put_keycode(v);
+ keycode >>= 8;
}
-
- /* now send the key code */
- if (keycode & 0x80)
- kbd_put_keycode(0xe0);
- if (ev->type == SDL_KEYUP)
- kbd_put_keycode(keycode | 0x80);
- else
- kbd_put_keycode(keycode & 0x7f);
}
static void sdl_update_caption(void)

View file

@ -1,13 +1,20 @@
====
FreeBSD host notes:
- needs to run as root in order to use /dev/tap* networking (why?)
- slirp (usermode networking) compiles but doesn't seem to work for
me - seems to have a timer problem (time sleep 1 takes 49 seconds
- slirp (usermode networking) still has a dhcp problem at least for
FreeSBIE guests even with the fix now in cvs, to use it you have to
manually do:
ifconfig ed0 10.0.2.15
route add default 10.0.2.2
echo nameserver 10.0.2.3 >/etc/resolv.conf
(traffic to address 10.0.2.2 is routed to 127.1 on the host)
- seems to have a timer problem (time sleep 1 takes 49 seconds
and booting sleeps for minutes at the acd0 probe), but only on
_some_ guest systems (FreeSBIE, knoppix.) An installed 5.2.1 guest
system works ok (this also doesn't happen with linux as host.) And
enabling /dev/rtc doesn't help either... (not included since it
needs a patch to emulators/rtc.)
_some_ guest systems (FreeSBIE, knoppix 3.4 with 2.6 kernel.)
knoppix 3.4 with the 2.4 kernel and an installed 5.2.1 guest system
work ok (this also doesn't happen with linux as host.) And enabling
/dev/rtc doesn't help either... (not included since it needs a
patch to emulators/rtc.)
- using physical media doesn't work on 4.x hosts (missing DIOCGMEDIASIZE
ioctl)
====

View file

@ -6,19 +6,20 @@
#
PORTNAME= qemu
PORTVERSION= 0.5.5.s.20040530
PORTVERSION= 0.5.5.s.20040604
CATEGORIES= emulators
MASTER_SITES= http://dad-answers.com/qemu/
DISTNAME= ${PORTNAME}-snapshot-2004-05-30_23-40
DISTNAME= ${PORTNAME}-snapshot-2004-06-04_23-40
MAINTAINER= nox@jelal.kn-bremen.de
COMMENT= QEMU CPU Emulator
BUILD_DEPENDS+= texi2html:${PORTSDIR}/textproc/texi2html
GNU_CONFIGURE= yes
HAS_CONFIGURE= yes
USE_BZIP2= yes
USE_GMAKE= yes
USE_GETOPT_LONG= yes
USE_SDL= sdl
USE_GCC= 3.3
USE_PERL5= yes

View file

@ -1,2 +1,2 @@
MD5 (qemu-snapshot-2004-05-30_23-40.tar.bz2) = 4ce3834c66e4628e33a083db5e542287
SIZE (qemu-snapshot-2004-05-30_23-40.tar.bz2) = 637024
MD5 (qemu-snapshot-2004-06-04_23-40.tar.bz2) = 1fbec49539edd996557cf6fce19416c3
SIZE (qemu-snapshot-2004-06-04_23-40.tar.bz2) = 641652

View file

@ -0,0 +1,127 @@
Revert this, breaks the right alt key (which is important if you use a
german keymap, seems to send scroll-lock instead...)
Index: qemu/sdl.c
@@ -63,24 +63,25 @@
ds->depth = screen->format->BitsPerPixel;
}
-static const uint8_t x_keycode_to_pc_keycode[61] = {
- 0xc7, /* 97 Home */
- 0xc8, /* 98 Up */
- 0xc9, /* 99 PgUp */
- 0xcb, /* 100 Left */
+static const uint32_t x_keycode_to_pc_keycode[61] = {
+ 0x47e0, /* 97 Home */
+ 0x48e0, /* 98 Up */
+ 0x49e0, /* 99 PgUp */
+ 0x4be0, /* 100 Left */
0x4c, /* 101 KP-5 */
- 0xcd, /* 102 Right */
- 0xcf, /* 103 End */
- 0xd0, /* 104 Down */
- 0xd1, /* 105 PgDn */
- 0xd2, /* 106 Ins */
- 0xd3, /* 107 Del */
- 0x9c, /* 108 Enter */
- 0x9d, /* 109 Ctrl-R */
- 0xb7, /* 111 Print */
- 0xb5, /* 112 Divide */
- 0xb8, /* 113 Alt-R */
- 0xc6, /* 114 Break */
+ 0x4de0, /* 102 Right */
+ 0x4fe0, /* 103 End */
+ 0x50e0, /* 104 Down */
+ 0x51e0, /* 105 PgDn */
+ 0x52e0, /* 106 Ins */
+ 0x53e0, /* 107 Del */
+ 0x1ce0, /* 108 Enter */
+ 0x1de0, /* 109 Ctrl-R */
+ 0x451de1, /* 110 Pause */
+ 0x37e0, /* 111 Print */
+ 0x35e0, /* 112 Divide */
+ 0x38e0, /* 113 Alt-R */
+ 0x46e0, /* 114 Break */
0x0, /* 115 */
0x0, /* 116 */
0x0, /* 117 */
@@ -128,25 +129,11 @@
static void sdl_process_key(SDL_KeyboardEvent *ev)
{
- int keycode, v, i;
- static uint8_t modifiers_state[256];
-
- if (ev->keysym.sym == SDLK_PAUSE) {
- /* specific case */
- v = 0;
- if (ev->type == SDL_KEYUP)
- v |= 0x80;
- kbd_put_keycode(0xe1);
- kbd_put_keycode(0x1d | v);
- kbd_put_keycode(0x45 | v);
- return;
- }
-
+ int keycode, v;
+
/* XXX: not portable, but avoids complicated mappings */
keycode = ev->keysym.scancode;
- /* XXX: windows version may not work: 0xe0/0xe1 should be trapped
- ? */
#ifndef _WIN32
if (keycode < 9) {
keycode = 0;
@@ -159,44 +146,15 @@
keycode = 0;
}
#endif
-
- switch(keycode) {
- case 0x00:
- /* sent when leaving window: reset the modifiers state */
- for(i = 0; i < 256; i++) {
- if (modifiers_state[i]) {
- if (i & 0x80)
- kbd_put_keycode(0xe0);
- kbd_put_keycode(i | 0x80);
- }
- }
- return;
- case 0x2a: /* Left Shift */
- case 0x36: /* Right Shift */
- case 0x1d: /* Left CTRL */
- case 0x9d: /* Right CTRL */
- case 0x38: /* Left ALT */
- case 0xb8: /* Right ALT */
+
+ /* now send the key code */
+ while (keycode != 0) {
+ v = keycode & 0xff;
if (ev->type == SDL_KEYUP)
- modifiers_state[keycode] = 0;
- else
- modifiers_state[keycode] = 1;
- break;
- case 0x45: /* num lock */
- case 0x3a: /* caps lock */
- /* SDL does not send the key up event, so we generate it */
- kbd_put_keycode(keycode);
- kbd_put_keycode(keycode | 0x80);
- return;
+ v |= 0x80;
+ kbd_put_keycode(v);
+ keycode >>= 8;
}
-
- /* now send the key code */
- if (keycode & 0x80)
- kbd_put_keycode(0xe0);
- if (ev->type == SDL_KEYUP)
- kbd_put_keycode(keycode | 0x80);
- else
- kbd_put_keycode(keycode & 0x7f);
}
static void sdl_update_caption(void)

View file

@ -1,13 +1,20 @@
====
FreeBSD host notes:
- needs to run as root in order to use /dev/tap* networking (why?)
- slirp (usermode networking) compiles but doesn't seem to work for
me - seems to have a timer problem (time sleep 1 takes 49 seconds
- slirp (usermode networking) still has a dhcp problem at least for
FreeSBIE guests even with the fix now in cvs, to use it you have to
manually do:
ifconfig ed0 10.0.2.15
route add default 10.0.2.2
echo nameserver 10.0.2.3 >/etc/resolv.conf
(traffic to address 10.0.2.2 is routed to 127.1 on the host)
- seems to have a timer problem (time sleep 1 takes 49 seconds
and booting sleeps for minutes at the acd0 probe), but only on
_some_ guest systems (FreeSBIE, knoppix.) An installed 5.2.1 guest
system works ok (this also doesn't happen with linux as host.) And
enabling /dev/rtc doesn't help either... (not included since it
needs a patch to emulators/rtc.)
_some_ guest systems (FreeSBIE, knoppix 3.4 with 2.6 kernel.)
knoppix 3.4 with the 2.4 kernel and an installed 5.2.1 guest system
work ok (this also doesn't happen with linux as host.) And enabling
/dev/rtc doesn't help either... (not included since it needs a
patch to emulators/rtc.)
- using physical media doesn't work on 4.x hosts (missing DIOCGMEDIASIZE
ioctl)
====