Displaying 8 results from an estimated 8 matches for "limit0".
Did you mean:
limit
2007 Apr 18
3
[PATCH 12/21] i386 Deprecate descriptor asm
...t" \
- "movb %4,5(%2)\n\t" \
- "movb $0,6(%2)\n\t" \
- "movb %h1,7(%2)\n\t" \
- "rorl $16,%1" \
- : "=m"(*(n)) : "q" (addr), "r"(n), "ir"(limit), "i"(type))
+struct desc_internal_struct {
+ unsigned short limit0;
+ unsigned short base0;
+ unsigned char base1;
+ unsigned char type;
+ unsigned int limit1 : 4;
+ unsigned int flags : 4;
+ unsigned char base2;
+} __attribute__((packed));
+
+static inline struct desc_internal_struct *desc_internal(struct desc_struct *d)
+{
+ return (struct desc_internal_struct *...
2007 Apr 18
3
[PATCH 12/21] i386 Deprecate descriptor asm
...t" \
- "movb %4,5(%2)\n\t" \
- "movb $0,6(%2)\n\t" \
- "movb %h1,7(%2)\n\t" \
- "rorl $16,%1" \
- : "=m"(*(n)) : "q" (addr), "r"(n), "ir"(limit), "i"(type))
+struct desc_internal_struct {
+ unsigned short limit0;
+ unsigned short base0;
+ unsigned char base1;
+ unsigned char type;
+ unsigned int limit1 : 4;
+ unsigned int flags : 4;
+ unsigned char base2;
+} __attribute__((packed));
+
+static inline struct desc_internal_struct *desc_internal(struct desc_struct *d)
+{
+ return (struct desc_internal_struct *...
2007 Dec 13
2
[PATCH] avoid ifdefs in desc.h, getting rid of pack_ldt and pack_tss
...125,6 @@ static inline void native_write_gdt_entry(struct desc_struct *gdt, int entry,
memcpy(&gdt[entry], desc, size);
}
-static inline void set_tssldt_descriptor(struct ldttss_desc64 *d,
- unsigned long tss, unsigned type,
- unsigned size)
-{
- memset(d, 0, sizeof(*d));
- d->limit0 = size & 0xFFFF;
- d->base0 = PTR_LOW(tss);
- d->base1 = PTR_MIDDLE(tss) & 0xFF;
- d->type = type;
- d->p = 1;
- d->limit1 = (size >> 16) & 0xF;
- d->base2 = (PTR_MIDDLE(tss) >> 8) & 0xFF;
- d->base3 = PTR_HIGH(tss);
-}
-
static inline void pack_des...
2007 Dec 13
2
[PATCH] avoid ifdefs in desc.h, getting rid of pack_ldt and pack_tss
...125,6 @@ static inline void native_write_gdt_entry(struct desc_struct *gdt, int entry,
memcpy(&gdt[entry], desc, size);
}
-static inline void set_tssldt_descriptor(struct ldttss_desc64 *d,
- unsigned long tss, unsigned type,
- unsigned size)
-{
- memset(d, 0, sizeof(*d));
- d->limit0 = size & 0xFFFF;
- d->base0 = PTR_LOW(tss);
- d->base1 = PTR_MIDDLE(tss) & 0xFF;
- d->type = type;
- d->p = 1;
- d->limit1 = (size >> 16) & 0xF;
- d->base2 = (PTR_MIDDLE(tss) >> 8) & 0xFF;
- d->base3 = PTR_HIGH(tss);
-}
-
static inline void pack_des...
2007 Dec 06
51
[PATCH 0/19] desc_struct integration
Hi,
this is a series of patches that unify the struct desc_struct and friends
across x86_64 and i386. As usual, it provides paravirt capabilities as a
side-effect for x86_64.
I consider the main goal, namely, of unifying the desc_struct, an ongoing
effort, being this the beginning. A lot of old code has to be touched to
accomplish that.
I don't consider this patch ready for inclusion.
2007 Dec 06
51
[PATCH 0/19] desc_struct integration
Hi,
this is a series of patches that unify the struct desc_struct and friends
across x86_64 and i386. As usual, it provides paravirt capabilities as a
side-effect for x86_64.
I consider the main goal, namely, of unifying the desc_struct, an ongoing
effort, being this the beginning. A lot of old code has to be touched to
accomplish that.
I don't consider this patch ready for inclusion.
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...est_free_guest_pages(linfo);
+}
+
+#if 0
+static void print_tss(struct ldttss_desc *tss)
+{
+ u64 base;
+ u64 limit;
+ int i;
+ u16 iobp = 0x64;
+
+ base = (tss->base0) + ((u64)tss->base1 << 16) +
+ ((u64)tss->base2 << 24) + ((u64)tss->base3 << 32);
+ limit = (tss->limit0) + ((u64)tss->limit1 << 16);
+ if (tss->g)
+ limit <<= 12;
+ printk(" base: %016llx\n", base);
+ printk(" limit: %llx\n", limit);
+ printk(" type: %x\n", tss->type);
+ printk(" dpl: %d\n", tss->dpl);
+ printk("...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...est_free_guest_pages(linfo);
+}
+
+#if 0
+static void print_tss(struct ldttss_desc *tss)
+{
+ u64 base;
+ u64 limit;
+ int i;
+ u16 iobp = 0x64;
+
+ base = (tss->base0) + ((u64)tss->base1 << 16) +
+ ((u64)tss->base2 << 24) + ((u64)tss->base3 << 32);
+ limit = (tss->limit0) + ((u64)tss->limit1 << 16);
+ if (tss->g)
+ limit <<= 12;
+ printk(" base: %016llx\n", base);
+ printk(" limit: %llx\n", limit);
+ printk(" type: %x\n", tss->type);
+ printk(" dpl: %d\n", tss->dpl);
+ printk("...