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] Re: [patch] Add kexec_ops & function pointers

On Tue, 2006-12-12 at 17:13 +0100, Gerd Hoffmann wrote:
> Ian Campbell wrote:
> >>> Hiding the indirections through the function table in the header via
> >>> defines or inline functions would make things a lot cleaner in my
> >>> opinion and as a bonus avoid this addition to the sparse tree.
> >> No.  As machine_kexec() continues to exist (and is the default for
> >> kexec_ops.kexec) you can't just turn that into a macro.  You have to
> >> either fix the two callers (as done by the patch) or rename the function
> >> to something different in arch/*/kernel/machine_kexec.c in order to be
> >> able to reuse the name for the macro.
> > 
> > Yes you may need to rename some bits. I was thinking of a solution where
> > you have foo_native, foo_xen0 and foo_xenU functions (or whatever) with
> > an inline foo() which calls through the function table to the correct
> > version.
> 
> Sure.  But renaming machine_kexec() to machine_kexec_native() or simliar
> means touching a big bunch of files, namely
> arch/{lots-of-directories-here}/kernel/machine_kexec.c.  I'd prefer to
> touch only one (kernel/sys.c) to keep the number of changes in the xen
> tree small.

You mean the versions for arch's other than i386 and x86_64? 
arch/{x86_64,i386}/kernel/machine_kexec.c are both in the sparse tree
already.

If you are adding the function table to all architectures then you are
right, changing kernel/sys.c is much simpler. I thought the function
table was an implementation detail on i386 and x86_64 only.

Ian.


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