|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH, updated] i386 linux: eliminate hard coded items
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
|
|
|
|
|