Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-devel

[Xen-devel] Printing a helloworld message on the screen

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Printing a helloworld message on the screen
From: "frittitta1@xxxxxxxxxxx" <frittitta1@xxxxxxxxxxx>
Date: Sat, 2 Sep 2006 11:00:49 +0100 (GMT+01:00)
Delivery-date: Sat, 02 Sep 2006 03:01:29 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Reply-to: "frittitta1@xxxxxxxxxxx" <frittitta1@xxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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 <=