WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH, updated] i386 linux: eliminate hard coded items

Hmm, I would assume your assembler then only does 32-bit calculations. In that 
case (if such assemblers still exist),
I'd rather want to use the same macro as on 64-bits, where a similar problem 
needed to be worked around. Jan

>>> christian.limpach@xxxxxxxxx 20.02.06 17:04:35 >>>
On 2/17/06, Jan Beulich <JBeulich@xxxxxxxxxx> wrote:
> To allow the new VMSPLIT_* Kconfig options to work, and to avoid problems 
> when the position of the hypercall page
> changes, this patch eliminates the hard-coded entries in the __xen_guest 
> section in head.S.
> Unfortunately the original version didn't work with gas newer than beginning 
> of August 2005, where in an attempt to
fix
> another problem a regression was introduced.

The calculation doesn't seem to work on 32-bit for PAGE_OFFSET >=
2^31, at least not with:
cl349@firebug:~/ls/xen-unstable-clean.hg$ as --version
GNU assembler 2.15.92.0.2 20040927

I'll checkin the following:
.macro bigutoa value
    utoa (\value) >> 12
    .ascii "000"
.endm
.macro utoa value
 .if (\value) >= 16
        utoa (\value) >> 4
 .endif
 .if (\value) % 16 < 10
  .byte '0' + (\value) % 16
 .else
  .byte 'A' + (\value) % 16 - 10
 .endif
.endm

.section __xen_guest
        .ascii  "GUEST_OS=linux,GUEST_VER=2.6"
        .ascii  ",XEN_VER=xen-3.0"
        .ascii  ",VIRT_BASE=0x"; bigutoa __PAGE_OFFSET
        .ascii  ",HYPERCALL_PAGE=0x"; utoa
((__PHYSICAL_START+HYPERCALL_PAGE_OFFSET)>>PAGE_SHIFT)

It's a bit gross, maybe there's a neater solution.

     christian

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel