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