yann@402: Fixes yann@402: yann@402: In file included from include/asm/thread_info.h:16, yann@402: from include/linux/thread_info.h:21, yann@402: from include/linux/spinlock.h:12, yann@402: from include/linux/capability.h:45, yann@402: from include/linux/sched.h:7, yann@402: from arch/i386/kernel/asm-offsets.c:7: yann@402: include/asm/processor.h:87: error: array type has incomplete element type yann@402: make[1]: *** [arch/i386/kernel/asm-offsets.asm] Error 1 yann@402: yann@402: --- linux-2.6.8/include/asm-i386/processor.h.old Tue Mar 15 00:14:42 2005 yann@402: +++ linux-2.6.8/include/asm-i386/processor.h Tue Mar 15 00:18:45 2005 yann@402: @@ -79,6 +79,58 @@ yann@402: #define X86_VENDOR_UNKNOWN 0xff yann@402: yann@402: /* yann@402: + * Size of io_bitmap. yann@402: + */ yann@402: +#define IO_BITMAP_BITS 65536 yann@402: +#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8) yann@402: +#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long)) yann@402: +#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap) yann@402: +#define INVALID_IO_BITMAP_OFFSET 0x8000 yann@402: + yann@402: +struct tss_struct { yann@402: + unsigned short back_link,__blh; yann@402: + unsigned long esp0; yann@402: + unsigned short ss0,__ss0h; yann@402: + unsigned long esp1; yann@402: + unsigned short ss1,__ss1h; /* ss1 is used to cache MSR_IA32_SYSENTER_CS */ yann@402: + unsigned long esp2; yann@402: + unsigned short ss2,__ss2h; yann@402: + unsigned long __cr3; yann@402: + unsigned long eip; yann@402: + unsigned long eflags; yann@402: + unsigned long eax,ecx,edx,ebx; yann@402: + unsigned long esp; yann@402: + unsigned long ebp; yann@402: + unsigned long esi; yann@402: + unsigned long edi; yann@402: + unsigned short es, __esh; yann@402: + unsigned short cs, __csh; yann@402: + unsigned short ss, __ssh; yann@402: + unsigned short ds, __dsh; yann@402: + unsigned short fs, __fsh; yann@402: + unsigned short gs, __gsh; yann@402: + unsigned short ldt, __ldth; yann@402: + unsigned short trace, io_bitmap_base; yann@402: + /* yann@402: + * The extra 1 is there because the CPU will access an yann@402: + * additional byte beyond the end of the IO permission yann@402: + * bitmap. The extra byte must be all 1 bits, and must yann@402: + * be within the limit. yann@402: + */ yann@402: + unsigned long io_bitmap[IO_BITMAP_LONGS + 1]; yann@402: + /* yann@402: + * pads the TSS to be cacheline-aligned (size is 0x100) yann@402: + */ yann@402: + unsigned long __cacheline_filler[37]; yann@402: + /* yann@402: + * .. and then another 0x100 bytes for emergency kernel stack yann@402: + */ yann@402: + unsigned long stack[64]; yann@402: +} __attribute__((packed)); yann@402: + yann@402: +#define ARCH_MIN_TASKALIGN 16 yann@402: + yann@402: +/* yann@402: * capabilities of CPUs yann@402: */ yann@402: yann@402: @@ -296,15 +348,6 @@ yann@402: */ yann@402: #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) yann@402: yann@402: -/* yann@402: - * Size of io_bitmap. yann@402: - */ yann@402: -#define IO_BITMAP_BITS 65536 yann@402: -#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8) yann@402: -#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long)) yann@402: -#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap) yann@402: -#define INVALID_IO_BITMAP_OFFSET 0x8000 yann@402: - yann@402: struct i387_fsave_struct { yann@402: long cwd; yann@402: long swd; yann@402: @@ -356,49 +399,6 @@ yann@402: typedef struct { yann@402: unsigned long seg; yann@402: } mm_segment_t; yann@402: - yann@402: -struct tss_struct { yann@402: - unsigned short back_link,__blh; yann@402: - unsigned long esp0; yann@402: - unsigned short ss0,__ss0h; yann@402: - unsigned long esp1; yann@402: - unsigned short ss1,__ss1h; /* ss1 is used to cache MSR_IA32_SYSENTER_CS */ yann@402: - unsigned long esp2; yann@402: - unsigned short ss2,__ss2h; yann@402: - unsigned long __cr3; yann@402: - unsigned long eip; yann@402: - unsigned long eflags; yann@402: - unsigned long eax,ecx,edx,ebx; yann@402: - unsigned long esp; yann@402: - unsigned long ebp; yann@402: - unsigned long esi; yann@402: - unsigned long edi; yann@402: - unsigned short es, __esh; yann@402: - unsigned short cs, __csh; yann@402: - unsigned short ss, __ssh; yann@402: - unsigned short ds, __dsh; yann@402: - unsigned short fs, __fsh; yann@402: - unsigned short gs, __gsh; yann@402: - unsigned short ldt, __ldth; yann@402: - unsigned short trace, io_bitmap_base; yann@402: - /* yann@402: - * The extra 1 is there because the CPU will access an yann@402: - * additional byte beyond the end of the IO permission yann@402: - * bitmap. The extra byte must be all 1 bits, and must yann@402: - * be within the limit. yann@402: - */ yann@402: - unsigned long io_bitmap[IO_BITMAP_LONGS + 1]; yann@402: - /* yann@402: - * pads the TSS to be cacheline-aligned (size is 0x100) yann@402: - */ yann@402: - unsigned long __cacheline_filler[37]; yann@402: - /* yann@402: - * .. and then another 0x100 bytes for emergency kernel stack yann@402: - */ yann@402: - unsigned long stack[64]; yann@402: -} __attribute__((packed)); yann@402: - yann@402: -#define ARCH_MIN_TASKALIGN 16 yann@402: yann@402: struct thread_struct { yann@402: /* cached TLS descriptors. */