* changes for illumos in public headers
@ 2013-12-12 9:15 Igor Kozhukhov
2013-12-12 9:50 ` Ian Campbell
2013-12-12 11:02 ` Andrew Cooper
0 siblings, 2 replies; 7+ messages in thread
From: Igor Kozhukhov @ 2013-12-12 9:15 UTC (permalink / raw)
To: xen-devel
Hello All,
i'm working on port xen-4.2 to DilOS - illumos based platform.
I have a questions about changes in public headers.
for build i need changes:
diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_32.h
--- a/xen/include/public/arch-x86/xen-x86_32.h Tue Dec 10 16:21:57 2013 +0100
+++ b/xen/include/public/arch-x86/xen-x86_32.h Thu Dec 12 13:07:50 2013 +0400
@@ -36,6 +36,19 @@
* Clobbered: Argument registers (e.g., 2-arg hypercall clobbers %ebx,%ecx)
*/
+#if defined(__sun)
+/*
+ * Direct hypercall interface:
+ * As above, except the entry sequence to the hypervisor is:
+ * mov $hypercall-number*32,%eax ; int $0x82
+ */
+#if !defined(_ASM)
+#define TRAP_INSTR "int $0x82"
+#else
+#define TRAP_INSTR int $0x82
+#endif
+#endif
+
/*
* These flat segments are in the Xen-private section of every GDT. Since these
* are also present in the initial GDT, many OSes will be able to avoid
diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_64.h
--- a/xen/include/public/arch-x86/xen-x86_64.h Tue Dec 10 16:21:57 2013 +0100
+++ b/xen/include/public/arch-x86/xen-x86_64.h Thu Dec 12 13:07:50 2013 +0400
@@ -36,6 +36,20 @@
* Clobbered: argument registers (e.g., 2-arg hypercall clobbers %rdi,%rsi)
*/
+#if defined(__sun)
+/*
+ * Direct hypercall interface:
+ * As above, except the entry sequence to the hypervisor is:
+ * mov $hypercall-number*32,%eax ; syscall
+ * Clobbered: %rcx, %r11, argument registers (as above)
+ */
+#if !defined(_ASM)
+#define TRAP_INSTR "syscall"
+#else
+#define TRAP_INSTR syscall
+#endif
+#endif
+
/*
* 64-bit segment selectors
* These flat segments are in the Xen-private section of every GDT. Since these
diff -r 9640d9c4b223 xen/include/public/xen.h
--- a/xen/include/public/xen.h Tue Dec 10 16:21:57 2013 +0100
+++ b/xen/include/public/xen.h Thu Dec 12 13:07:50 2013 +0400
@@ -29,6 +29,20 @@
#include "xen-compat.h"
+#if defined(__sun)
+#if defined(__i386) && !defined(__i386__)
+#define __i386__ /* foo */
+#endif
+
+#if defined(__amd64) && !defined(__x86_64__)
+#define __x86_64__
+#endif
+
+#if defined(_ASM) && !defined(__ASSEMBLY__)
+#define __ASSEMBLY__
+#endif
+#endif
+
#if defined(__i386__) || defined(__x86_64__)
#include "arch-x86/xen.h"
#elif defined(__ia64__)
Signed-off-by: Igor Kozhukhov <ikozhukhov@gmail.com>
also in xen\include\public\trace.h
we have structure: struct t_info
it have conflict with another structure with the same name in illumos sources.
Question: can we rename structure name in xen to: struct t_info_xen
if yes - i can try to update xen code with it and send RTI.
please let me know about first changes in public headers - can integrate it to xen mainstream ?
or it is not applicable to xen ?
--
Best regards,
Igor Kozhukhov
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: changes for illumos in public headers
2013-12-12 9:15 changes for illumos in public headers Igor Kozhukhov
@ 2013-12-12 9:50 ` Ian Campbell
2013-12-12 11:02 ` Andrew Cooper
1 sibling, 0 replies; 7+ messages in thread
From: Ian Campbell @ 2013-12-12 9:50 UTC (permalink / raw)
To: Igor Kozhukhov; +Cc: xen-devel
On Thu, 2013-12-12 at 13:15 +0400, Igor Kozhukhov wrote:
> Hello All,
>
> i'm working on port xen-4.2 to DilOS - illumos based platform.
>
> I have a questions about changes in public headers.
>
> for build i need changes:
>
> diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_32.h
> --- a/xen/include/public/arch-x86/xen-x86_32.h Tue Dec 10 16:21:57 2013 +0100
> +++ b/xen/include/public/arch-x86/xen-x86_32.h Thu Dec 12 13:07:50 2013 +0400
> @@ -36,6 +36,19 @@
> * Clobbered: Argument registers (e.g., 2-arg hypercall clobbers %ebx,%ecx)
> */
>
> +#if defined(__sun)
> +/*
> + * Direct hypercall interface:
> + * As above, except the entry sequence to the hypervisor is:
> + * mov $hypercall-number*32,%eax ; int $0x82
The direct trap has been deprecated for years now (like nearly a
decade...). Illumos should really switch the hypercall page based
mechanism (which is described just above the context of this patch).
[...]
> diff -r 9640d9c4b223 xen/include/public/xen.h
> --- a/xen/include/public/xen.h Tue Dec 10 16:21:57 2013 +0100
> +++ b/xen/include/public/xen.h Thu Dec 12 13:07:50 2013 +0400
> @@ -29,6 +29,20 @@
>
> #include "xen-compat.h"
>
> +#if defined(__sun)
> +#if defined(__i386) && !defined(__i386__)
> +#define __i386__ /* foo */
> +#endif
> +
> +#if defined(__amd64) && !defined(__x86_64__)
> +#define __x86_64__
> +#endif
> +
> +#if defined(_ASM) && !defined(__ASSEMBLY__)
> +#define __ASSEMBLY__
> +#endif
> +#endif
> +
Not sure what these are for but they seem odd to me. Are these symbols
really not defined by your compiler?
> also in xen\include\public\trace.h
> we have structure: struct t_info
>
> it have conflict with another structure with the same name in illumos sources.
> Question: can we rename structure name in xen to: struct t_info_xen
>
> if yes - i can try to update xen code with it and send RTI.
For quite a while now I think we have been encouraging guest OSes to
take a copy of the Xen headers and modify them to suit their needs e..g
Linux and I think the *BSDs do this. This avoids a build dependency from
the guest OSes on Xen.
Ian.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: changes for illumos in public headers
2013-12-12 9:15 changes for illumos in public headers Igor Kozhukhov
2013-12-12 9:50 ` Ian Campbell
@ 2013-12-12 11:02 ` Andrew Cooper
2013-12-12 11:15 ` Igor Kozhukhov
1 sibling, 1 reply; 7+ messages in thread
From: Andrew Cooper @ 2013-12-12 11:02 UTC (permalink / raw)
To: Igor Kozhukhov, xen-devel
On 12/12/2013 09:15, Igor Kozhukhov wrote:
> Hello All,
>
> i'm working on port xen-4.2 to DilOS - illumos based platform.
>
> I have a questions about changes in public headers.
>
> for build i need changes:
>
> diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_32.h
> --- a/xen/include/public/arch-x86/xen-x86_32.h Tue Dec 10 16:21:57 2013 +0100
> +++ b/xen/include/public/arch-x86/xen-x86_32.h Thu Dec 12 13:07:50 2013 +0400
> @@ -36,6 +36,19 @@
> * Clobbered: Argument registers (e.g., 2-arg hypercall clobbers %ebx,%ecx)
> */
>
> +#if defined(__sun)
> +/*
> + * Direct hypercall interface:
> + * As above, except the entry sequence to the hypervisor is:
> + * mov $hypercall-number*32,%eax ; int $0x82
Have you done substantial hacking to the Xen entry points? If not, this
comment appears wrong.
Furthermore, why are you not using a hypercall page?
~Andrew
> + */
> +#if !defined(_ASM)
> +#define TRAP_INSTR "int $0x82"
> +#else
> +#define TRAP_INSTR int $0x82
> +#endif
> +#endif
> +
> /*
> * These flat segments are in the Xen-private section of every GDT. Since these
> * are also present in the initial GDT, many OSes will be able to avoid
> diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_64.h
> --- a/xen/include/public/arch-x86/xen-x86_64.h Tue Dec 10 16:21:57 2013 +0100
> +++ b/xen/include/public/arch-x86/xen-x86_64.h Thu Dec 12 13:07:50 2013 +0400
> @@ -36,6 +36,20 @@
> * Clobbered: argument registers (e.g., 2-arg hypercall clobbers %rdi,%rsi)
> */
>
> +#if defined(__sun)
> +/*
> + * Direct hypercall interface:
> + * As above, except the entry sequence to the hypervisor is:
> + * mov $hypercall-number*32,%eax ; syscall
> + * Clobbered: %rcx, %r11, argument registers (as above)
> + */
> +#if !defined(_ASM)
> +#define TRAP_INSTR "syscall"
> +#else
> +#define TRAP_INSTR syscall
> +#endif
> +#endif
> +
> /*
> * 64-bit segment selectors
> * These flat segments are in the Xen-private section of every GDT. Since these
> diff -r 9640d9c4b223 xen/include/public/xen.h
> --- a/xen/include/public/xen.h Tue Dec 10 16:21:57 2013 +0100
> +++ b/xen/include/public/xen.h Thu Dec 12 13:07:50 2013 +0400
> @@ -29,6 +29,20 @@
>
> #include "xen-compat.h"
>
> +#if defined(__sun)
> +#if defined(__i386) && !defined(__i386__)
> +#define __i386__ /* foo */
> +#endif
> +
> +#if defined(__amd64) && !defined(__x86_64__)
> +#define __x86_64__
> +#endif
> +
> +#if defined(_ASM) && !defined(__ASSEMBLY__)
> +#define __ASSEMBLY__
> +#endif
> +#endif
> +
> #if defined(__i386__) || defined(__x86_64__)
> #include "arch-x86/xen.h"
> #elif defined(__ia64__)
>
> Signed-off-by: Igor Kozhukhov <ikozhukhov@gmail.com>
>
> also in xen\include\public\trace.h
> we have structure: struct t_info
>
> it have conflict with another structure with the same name in illumos sources.
> Question: can we rename structure name in xen to: struct t_info_xen
>
> if yes - i can try to update xen code with it and send RTI.
>
> please let me know about first changes in public headers - can integrate it to xen mainstream ?
> or it is not applicable to xen ?
>
> --
> Best regards,
> Igor Kozhukhov
>
>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: changes for illumos in public headers
2013-12-12 11:02 ` Andrew Cooper
@ 2013-12-12 11:15 ` Igor Kozhukhov
2013-12-12 11:25 ` Ian Campbell
0 siblings, 1 reply; 7+ messages in thread
From: Igor Kozhukhov @ 2013-12-12 11:15 UTC (permalink / raw)
To: Andrew Cooper; +Cc: xen-devel
On Dec 12, 2013, at 3:02 PM, Andrew Cooper wrote:
> On 12/12/2013 09:15, Igor Kozhukhov wrote:
>> Hello All,
>>
>> i'm working on port xen-4.2 to DilOS - illumos based platform.
>>
>> I have a questions about changes in public headers.
>>
>> for build i need changes:
>>
>> diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_32.h
>> --- a/xen/include/public/arch-x86/xen-x86_32.h Tue Dec 10 16:21:57 2013 +0100
>> +++ b/xen/include/public/arch-x86/xen-x86_32.h Thu Dec 12 13:07:50 2013 +0400
>> @@ -36,6 +36,19 @@
>> * Clobbered: Argument registers (e.g., 2-arg hypercall clobbers %ebx,%ecx)
>> */
>>
>> +#if defined(__sun)
>> +/*
>> + * Direct hypercall interface:
>> + * As above, except the entry sequence to the hypervisor is:
>> + * mov $hypercall-number*32,%eax ; int $0x82
>
> Have you done substantial hacking to the Xen entry points? If not, this
> comment appears wrong.
>
> Furthermore, why are you not using a hypercall page?
At this moment i'm using xen-3.4 implementation in illumos based on Sun Xen ports.
I'm learning how to port xen-4.2.
-Igor
> ~Andrew
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: changes for illumos in public headers
2013-12-12 11:15 ` Igor Kozhukhov
@ 2013-12-12 11:25 ` Ian Campbell
2013-12-13 15:41 ` Igor Kozhukhov
0 siblings, 1 reply; 7+ messages in thread
From: Ian Campbell @ 2013-12-12 11:25 UTC (permalink / raw)
To: Igor Kozhukhov; +Cc: Andrew Cooper, xen-devel
On Thu, 2013-12-12 at 15:15 +0400, Igor Kozhukhov wrote:
> On Dec 12, 2013, at 3:02 PM, Andrew Cooper wrote:
>
> > On 12/12/2013 09:15, Igor Kozhukhov wrote:
> >> Hello All,
> >>
> >> i'm working on port xen-4.2 to DilOS - illumos based platform.
> >>
> >> I have a questions about changes in public headers.
> >>
> >> for build i need changes:
> >>
> >> diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_32.h
> >> --- a/xen/include/public/arch-x86/xen-x86_32.h Tue Dec 10 16:21:57 2013 +0100
> >> +++ b/xen/include/public/arch-x86/xen-x86_32.h Thu Dec 12 13:07:50 2013 +0400
> >> @@ -36,6 +36,19 @@
> >> * Clobbered: Argument registers (e.g., 2-arg hypercall clobbers %ebx,%ecx)
> >> */
> >>
> >> +#if defined(__sun)
> >> +/*
> >> + * Direct hypercall interface:
> >> + * As above, except the entry sequence to the hypervisor is:
> >> + * mov $hypercall-number*32,%eax ; int $0x82
> >
> > Have you done substantial hacking to the Xen entry points? If not, this
> > comment appears wrong.
> >
> > Furthermore, why are you not using a hypercall page?
>
> At this moment i'm using xen-3.4 implementation in illumos based on Sun Xen ports.
> I'm learning how to port xen-4.2.
The hypercall page support has been present since at least Xen 3.0.4,
actually before, but I can't be bothered to search further back than
d87addffb118.
Ian.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: changes for illumos in public headers
2013-12-12 11:25 ` Ian Campbell
@ 2013-12-13 15:41 ` Igor Kozhukhov
2013-12-16 11:26 ` Ian Campbell
0 siblings, 1 reply; 7+ messages in thread
From: Igor Kozhukhov @ 2013-12-13 15:41 UTC (permalink / raw)
To: Ian Campbell; +Cc: Andrew Cooper, xen-devel
Hi Ian,
can i use extras/mini-os/* as example for hypercalls implementations ?
--
Best regards,
Igor Kozhukhov
On Dec 12, 2013, at 3:25 PM, Ian Campbell wrote:
> On Thu, 2013-12-12 at 15:15 +0400, Igor Kozhukhov wrote:
>> On Dec 12, 2013, at 3:02 PM, Andrew Cooper wrote:
>>
>>> On 12/12/2013 09:15, Igor Kozhukhov wrote:
>>>> Hello All,
>>>>
>>>> i'm working on port xen-4.2 to DilOS - illumos based platform.
>>>>
>>>> I have a questions about changes in public headers.
>>>>
>>>> for build i need changes:
>>>>
>>>> diff -r 9640d9c4b223 xen/include/public/arch-x86/xen-x86_32.h
>>>> --- a/xen/include/public/arch-x86/xen-x86_32.h Tue Dec 10 16:21:57 2013 +0100
>>>> +++ b/xen/include/public/arch-x86/xen-x86_32.h Thu Dec 12 13:07:50 2013 +0400
>>>> @@ -36,6 +36,19 @@
>>>> * Clobbered: Argument registers (e.g., 2-arg hypercall clobbers %ebx,%ecx)
>>>> */
>>>>
>>>> +#if defined(__sun)
>>>> +/*
>>>> + * Direct hypercall interface:
>>>> + * As above, except the entry sequence to the hypervisor is:
>>>> + * mov $hypercall-number*32,%eax ; int $0x82
>>>
>>> Have you done substantial hacking to the Xen entry points? If not, this
>>> comment appears wrong.
>>>
>>> Furthermore, why are you not using a hypercall page?
>>
>> At this moment i'm using xen-3.4 implementation in illumos based on Sun Xen ports.
>> I'm learning how to port xen-4.2.
>
> The hypercall page support has been present since at least Xen 3.0.4,
> actually before, but I can't be bothered to search further back than
> d87addffb118.
>
> Ian.
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-12-16 11:26 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-12 9:15 changes for illumos in public headers Igor Kozhukhov
2013-12-12 9:50 ` Ian Campbell
2013-12-12 11:02 ` Andrew Cooper
2013-12-12 11:15 ` Igor Kozhukhov
2013-12-12 11:25 ` Ian Campbell
2013-12-13 15:41 ` Igor Kozhukhov
2013-12-16 11:26 ` Ian Campbell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.