[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.