search for: pnp_cs16

Displaying 14 results from an estimated 14 matches for "pnp_cs16".

2007 Apr 18
1
[PATCH 2/3] Pnp bios gdt fix
...9-28 14:23:57.000000000 -0700 @@ -528,17 +528,24 @@ static int pnp_bios_write_escd(char *dat void pnpbios_calls_init(union pnp_bios_install_struct *header) { - int i; spin_lock_init(&pnp_bios_lock); pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; set_base(bad_bios_desc, __va((unsigned long)0x40 << 4)); _set_limit((char *)&bad_bios_desc, 4095 - (0x40 << 4)); - for(i=0; i < NR_CPUS; i++) - { - Q2_SET_SEL(i, PNP_CS32, &pnp_bios_callfunc, 64 * 1024); - Q_SET_SEL(i, PNP_CS16, header->fields.pm16cseg, 64 * 1024)...
2007 Apr 18
1
[PATCH 2/3] Pnp bios gdt fix
...9-28 14:23:57.000000000 -0700 @@ -528,17 +528,24 @@ static int pnp_bios_write_escd(char *dat void pnpbios_calls_init(union pnp_bios_install_struct *header) { - int i; spin_lock_init(&pnp_bios_lock); pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; set_base(bad_bios_desc, __va((unsigned long)0x40 << 4)); _set_limit((char *)&bad_bios_desc, 4095 - (0x40 << 4)); - for(i=0; i < NR_CPUS; i++) - { - Q2_SET_SEL(i, PNP_CS32, &pnp_bios_callfunc, 64 * 1024); - Q_SET_SEL(i, PNP_CS16, header->fields.pm16cseg, 64 * 1024)...
2007 Apr 18
0
[PATCH 1/21] i386 Pnp segments in segment h
...#define GDT_ENTRY_PNPBIOS_DS (GDT_ENTRY_PNPBIOS_BASE + 2) +#define GDT_ENTRY_PNPBIOS_TS1 (GDT_ENTRY_PNPBIOS_BASE + 3) +#define GDT_ENTRY_PNPBIOS_TS2 (GDT_ENTRY_PNPBIOS_BASE + 4) + +/* The PnP BIOS selectors */ +#define PNP_CS32 (GDT_ENTRY_PNPBIOS_CS32 * 8) /* segment for calling fn */ +#define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16 * 8) /* code segment for BIOS */ +#define PNP_DS (GDT_ENTRY_PNPBIOS_DS * 8) /* data segment for BIOS */ +#define PNP_TS1 (GDT_ENTRY_PNPBIOS_TS1 * 8) /* transfer data segment */ +#define PNP_TS2 (GDT_ENTRY_PNPBIOS_TS2 * 8) /* another data segment */ + /* * The...
2007 Apr 18
0
[PATCH 6/21] i386 Fixed pnp bios limits
...le(0) - #define Q2_SET_SEL(cpu, selname, address, size) \ do { \ set_base(per_cpu(cpu_gdt_table,cpu)[(selname) >> 3], (u32)(address)); \ @@ -523,10 +517,10 @@ void pnpbios_calls_init(union pnp_bios_i pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; - for(i=0; i < NR_CPUS; i++) - { - Q2_SET_SEL(i, PNP_CS32, &pnp_bios_callfunc, 64 * 1024); - Q_SET_SEL(i, PNP_CS16, header->fields.pm16cseg, 64 * 1024); - Q_SET_SEL(i, PNP_DS, header->fields.pm16dseg, 64 * 1024); + for(i=0; i < NR_CPUS; i++) { + struct desc_struct *gdt = get_...
2007 Apr 18
0
[PATCH 1/21] i386 Pnp segments in segment h
...#define GDT_ENTRY_PNPBIOS_DS (GDT_ENTRY_PNPBIOS_BASE + 2) +#define GDT_ENTRY_PNPBIOS_TS1 (GDT_ENTRY_PNPBIOS_BASE + 3) +#define GDT_ENTRY_PNPBIOS_TS2 (GDT_ENTRY_PNPBIOS_BASE + 4) + +/* The PnP BIOS selectors */ +#define PNP_CS32 (GDT_ENTRY_PNPBIOS_CS32 * 8) /* segment for calling fn */ +#define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16 * 8) /* code segment for BIOS */ +#define PNP_DS (GDT_ENTRY_PNPBIOS_DS * 8) /* data segment for BIOS */ +#define PNP_TS1 (GDT_ENTRY_PNPBIOS_TS1 * 8) /* transfer data segment */ +#define PNP_TS2 (GDT_ENTRY_PNPBIOS_TS2 * 8) /* another data segment */ + /* * The...
2007 Apr 18
0
[PATCH 6/21] i386 Fixed pnp bios limits
...le(0) - #define Q2_SET_SEL(cpu, selname, address, size) \ do { \ set_base(per_cpu(cpu_gdt_table,cpu)[(selname) >> 3], (u32)(address)); \ @@ -523,10 +517,10 @@ void pnpbios_calls_init(union pnp_bios_i pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; - for(i=0; i < NR_CPUS; i++) - { - Q2_SET_SEL(i, PNP_CS32, &pnp_bios_callfunc, 64 * 1024); - Q_SET_SEL(i, PNP_CS16, header->fields.pm16cseg, 64 * 1024); - Q_SET_SEL(i, PNP_DS, header->fields.pm16dseg, 64 * 1024); + for(i=0; i < NR_CPUS; i++) { + struct desc_struct *gdt = get_...
2007 Apr 18
2
[patch 3/8] Allow a kernel to not be in ring 0.
...asm-i386/segment.h +++ 2.6.18-rc3-32/include/asm-i386/segment.h @@ -83,6 +83,11 @@ #define GDT_SIZE (GDT_ENTRIES * 8) +/* Matches __KERNEL_CS and __USER_CS (they must be 2 entries apart) */ +#define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8) +/* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */ +#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == GDT_ENTRY_PNPBIOS_BASE * 8) + /* Simple and small GDT entries for booting only */ #define GDT_ENTRY_BOOT_CS 2 @@ -112,4 +117,11 @@ */ #define IDT_ENTRIES 256 +/* Bottom three bits of xcs give the ring pri...
2007 Apr 18
2
[patch 3/8] Allow a kernel to not be in ring 0.
...asm-i386/segment.h +++ 2.6.18-rc3-32/include/asm-i386/segment.h @@ -83,6 +83,11 @@ #define GDT_SIZE (GDT_ENTRIES * 8) +/* Matches __KERNEL_CS and __USER_CS (they must be 2 entries apart) */ +#define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8) +/* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */ +#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == GDT_ENTRY_PNPBIOS_BASE * 8) + /* Simple and small GDT entries for booting only */ #define GDT_ENTRY_BOOT_CS 2 @@ -112,4 +117,11 @@ */ #define IDT_ENTRIES 256 +/* Bottom three bits of xcs give the ring pri...
2007 Apr 18
0
[PATCH 13/21] i386 Gdt page isolation
...ios/bioscalls.c 2005-11-04 17:45:52.000000000 -0800 +++ linux-2.6.14-zach-work/drivers/pnp/pnpbios/bioscalls.c 2005-11-04 17:56:10.000000000 -0800 @@ -508,8 +508,10 @@ void pnpbios_calls_init(union pnp_bios_i pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; - for(i=0; i < NR_CPUS; i++) { + for (i = 0; i < NR_CPUS; i++) { struct desc_struct *gdt = get_cpu_gdt_table(i); + if (!gdt) + continue; set_base(&gdt[GDT_ENTRY_PNPBIOS_CS32], &pnp_bios_callfunc); set_base(&gdt[GDT_ENTRY_PNPBIOS_CS16], __va(header->fields.pm16c...
2007 Apr 18
0
[PATCH 13/21] i386 Gdt page isolation
...ios/bioscalls.c 2005-11-04 17:45:52.000000000 -0800 +++ linux-2.6.14-zach-work/drivers/pnp/pnpbios/bioscalls.c 2005-11-04 17:56:10.000000000 -0800 @@ -508,8 +508,10 @@ void pnpbios_calls_init(union pnp_bios_i pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; - for(i=0; i < NR_CPUS; i++) { + for (i = 0; i < NR_CPUS; i++) { struct desc_struct *gdt = get_cpu_gdt_table(i); + if (!gdt) + continue; set_base(&gdt[GDT_ENTRY_PNPBIOS_CS32], &pnp_bios_callfunc); set_base(&gdt[GDT_ENTRY_PNPBIOS_CS16], __va(header->fields.pm16c...
2007 Apr 18
1
[PATCH] Slight cleanups for x86 ring macros (against rc3-mm2)
...83,10 +83,9 @@ #define GDT_SIZE (GDT_ENTRIES * 8) -/* - * Some tricky tests to match code segments after a fault - */ +/* Matches __KERNEL_CS and __USER_CS (they must be 2 entries apart) */ #define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8) +/* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */ #define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == GDT_ENTRY_PNPBIOS_BASE * 8) /* Simple and small GDT entries for booting only */ @@ -118,8 +117,16 @@ */ #define IDT_ENTRIES 256 -/* Bottom three bits of xcs give the ring privilege level */ -#define SEGMENT...
2007 Apr 18
1
[PATCH] Slight cleanups for x86 ring macros (against rc3-mm2)
...83,10 +83,9 @@ #define GDT_SIZE (GDT_ENTRIES * 8) -/* - * Some tricky tests to match code segments after a fault - */ +/* Matches __KERNEL_CS and __USER_CS (they must be 2 entries apart) */ #define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8) +/* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */ #define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == GDT_ENTRY_PNPBIOS_BASE * 8) /* Simple and small GDT entries for booting only */ @@ -118,8 +117,16 @@ */ #define IDT_ENTRIES 256 -/* Bottom three bits of xcs give the ring privilege level */ -#define SEGMENT...
2007 Apr 18
2
[PATCH 4/21] i386 Broken bios common
...pu)[GDT_ENTRY_BAD_BIOS_CACHE]; /* On some boxes IRQ's during PnP BIOS calls are deadly. */ spin_lock_irqsave(&pnp_bios_lock, flags); @@ -524,8 +523,6 @@ void pnpbios_calls_init(union pnp_bios_i pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; - set_base(bad_bios_desc, __va((unsigned long)0x40 << 4)); - _set_limit((char *)&bad_bios_desc, 4095 - (0x40 << 4)); for(i=0; i < NR_CPUS; i++) { Q2_SET_SEL(i, PNP_CS32, &pnp_bios_callfunc, 64 * 1024);
2007 Apr 18
2
[PATCH 4/21] i386 Broken bios common
...pu)[GDT_ENTRY_BAD_BIOS_CACHE]; /* On some boxes IRQ's during PnP BIOS calls are deadly. */ spin_lock_irqsave(&pnp_bios_lock, flags); @@ -524,8 +523,6 @@ void pnpbios_calls_init(union pnp_bios_i pnp_bios_callpoint.offset = header->fields.pm16offset; pnp_bios_callpoint.segment = PNP_CS16; - set_base(bad_bios_desc, __va((unsigned long)0x40 << 4)); - _set_limit((char *)&bad_bios_desc, 4095 - (0x40 << 4)); for(i=0; i < NR_CPUS; i++) { Q2_SET_SEL(i, PNP_CS32, &pnp_bios_callfunc, 64 * 1024);