|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Printing a helloworld message on the screen
Hi,
I would write a simple program for Xen which print I simple
message
on the screen. I wrote an assembler procedure to print an
helloworld message:
.text
.globl _start
_start:
cld
#
from include/asm-xeno/hypervisor.h
movl $2,%eax
#__HYPERVISOR_console_write (include/asm-xeno/hypervisor-
ifs/hypervisor-
if.h)
movl $hello_message,%ebx # arg1 = buffer
virtual address
movl $hello_message_len,%ecx # arg2 = buffer length
int $0x82
# from include/asm-xeno/hypervisor.h
movl $8,%eax #
__HYPERVISOR_sched_op
movl $1,%ebx # SCHEDOP_exit
int $0x82
hang:
jmp hang # shouldn't get here
hello_message: .ascii "This is
the hello world program\n"
hello_message_len = . - hello_message
The Xen loader also wants a 12-byte header on the image file. So I
wrote a little assembler module (xenoguestheader.s) to handle that:
.text
.globl _start
_start:
.ascii "XenoGues" #
read_kernel_header (tools/xc/lib/xc_linux_build.c)
.long _start # -
the kernel's load address
The final image has to consist of the 12-
bytes object code from xenoguestheader.s followed the object code from
helloworld.s. Here is my makefile to accomplish that:
helloworld.gz:
helloworld.s xenoguestheader.raw
as -o helloworld.o -a=helloworld.l
helloworld.s
ld -Ttext 0x100000 -o helloworld.elf helloworld.o
objcopy -O binary -S -g helloworld.elf helloworld.raw
cat
xenoguestheader.raw helloworld.raw | gzip > helloworld.gz
xenoguestheader.raw: xenoguestheader.s
as -o xenoguestheader.o
xenoguestheader.s
ld -Ttext 0x100000 -o xenoguestheader
xenoguestheader.o
objcopy -O binary -S -g xenoguestheader
xenoguestheader.raw
This makefile produce a helloworld.elf file. The
problem is to write a config
file which run this program. I would call
th command:
xm create -c <config_file>
and to see the message on the
screen. I wrote this option in the config file:
kernel = "helloworld.
elf"
memory = 32
name = "HelloWorld"
on_crash = 'destroy'
but when I
run this command, I read this message on the screen;
Error: (22,
'Invalid argument')
HELP ME, PLEASE!
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] Printing a helloworld message on the screen,
frittitta1@xxxxxxxxxxx <=
|
|
|
|
|