search for: _set_limit

Displaying 20 results from an estimated 32 matches for "_set_limit".

2007 Apr 18
0
[PATCH 8/12] base-limit-cleanup
...\ - "rorl $16,%%edx\n\t" \ - "movb %%dl,%2\n\t" \ - "movb %%dh,%3" \ - :"=&d" (__pr) \ - :"m" (*((addr)+2)), \ - "m" (*((addr)+4)), \ - "m" (*((addr)+7)), \ - "0" (base) \ - ); } while(0) - -#define _set_limit(addr,limit) do { unsigned long __lr; \ -__asm__ __volatile__ ("movw %%dx,%1\n\t" \ - "rorl $16,%%edx\n\t" \ - "movb %2,%%dh\n\t" \ - "andb $0xf0,%%dh\n\t" \ - "orb %%dh,%%dl\n\t" \ - "movb %%dl,%2" \ - :"=&d" (__lr) \ - :&quo...
2007 Apr 18
0
[PATCH 8/12] base-limit-cleanup
...\ - "rorl $16,%%edx\n\t" \ - "movb %%dl,%2\n\t" \ - "movb %%dh,%3" \ - :"=&d" (__pr) \ - :"m" (*((addr)+2)), \ - "m" (*((addr)+4)), \ - "m" (*((addr)+7)), \ - "0" (base) \ - ); } while(0) - -#define _set_limit(addr,limit) do { unsigned long __lr; \ -__asm__ __volatile__ ("movw %%dx,%1\n\t" \ - "rorl $16,%%edx\n\t" \ - "movb %2,%%dh\n\t" \ - "andb $0xf0,%%dh\n\t" \ - "orb %%dh,%%dl\n\t" \ - "movb %%dl,%2" \ - :"=&d" (__lr) \ - :&quo...
2007 Apr 18
0
[PATCH 9/14] i386 / Typecheck and optimize base and limit accessors
...\ - "rorl $16,%%edx\n\t" \ - "movb %%dl,%2\n\t" \ - "movb %%dh,%3" \ - :"=&d" (__pr) \ - :"m" (*((addr)+2)), \ - "m" (*((addr)+4)), \ - "m" (*((addr)+7)), \ - "0" (base) \ - ); } while(0) - -#define _set_limit(addr,limit) do { unsigned long __lr; \ -__asm__ __volatile__ ("movw %%dx,%1\n\t" \ - "rorl $16,%%edx\n\t" \ - "movb %2,%%dh\n\t" \ - "andb $0xf0,%%dh\n\t" \ - "orb %%dh,%%dl\n\t" \ - "movb %%dl,%2" \ - :"=&d" (__lr) \ - :&quo...
2007 Apr 18
0
[PATCH 9/14] i386 / Typecheck and optimize base and limit accessors
...\ - "rorl $16,%%edx\n\t" \ - "movb %%dl,%2\n\t" \ - "movb %%dh,%3" \ - :"=&d" (__pr) \ - :"m" (*((addr)+2)), \ - "m" (*((addr)+4)), \ - "m" (*((addr)+7)), \ - "0" (base) \ - ); } while(0) - -#define _set_limit(addr,limit) do { unsigned long __lr; \ -__asm__ __volatile__ ("movw %%dx,%1\n\t" \ - "rorl $16,%%edx\n\t" \ - "movb %2,%%dh\n\t" \ - "andb $0xf0,%%dh\n\t" \ - "orb %%dh,%%dl\n\t" \ - "movb %%dl,%2" \ - :"=&d" (__lr) \ - :&quo...
2007 Apr 18
0
[PATCH 7/12] gdt-accessor
...- set_base(per_cpu(cpu_gdt_table, i)[APM_DS >> 3], + set_base(gdt[desc_number(APM_DS)], __va((unsigned long)apm_info.bios.dseg << 4)); #ifndef APM_RELAX_SEGMENTS if (apm_info.bios.version == 0x100) { #endif /* For ASUS motherboard, Award BIOS rev 110 (and others?) */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS >> 3], 64 * 1024 - 1); + _set_limit((char *)&gdt[desc_number(APM_CS)], 64 * 1024 - 1); /* For some unknown machine. */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS_16 >> 3], 64 * 1024 - 1); + _set_limit((char *)&a...
2007 Apr 18
0
[PATCH 7/12] gdt-accessor
...- set_base(per_cpu(cpu_gdt_table, i)[APM_DS >> 3], + set_base(gdt[desc_number(APM_DS)], __va((unsigned long)apm_info.bios.dseg << 4)); #ifndef APM_RELAX_SEGMENTS if (apm_info.bios.version == 0x100) { #endif /* For ASUS motherboard, Award BIOS rev 110 (and others?) */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS >> 3], 64 * 1024 - 1); + _set_limit((char *)&gdt[desc_number(APM_CS)], 64 * 1024 - 1); /* For some unknown machine. */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS_16 >> 3], 64 * 1024 - 1); + _set_limit((char *)&a...
2007 Apr 18
0
[PATCH 2/21] i386 Always relax segments
...===== --- linux-2.6.14-zach-work.orig/arch/i386/kernel/apm.c 2005-11-04 15:46:12.000000000 -0800 +++ linux-2.6.14-zach-work/arch/i386/kernel/apm.c 2005-11-05 00:28:14.000000000 -0800 @@ -302,17 +302,6 @@ extern int (*console_blank_hook)(int); #include "apm.h" /* - * Define to make all _set_limit calls use 64k limits. The APM 1.1 BIOS is - * supposed to provide limit information that it recognizes. Many machines - * do this correctly, but many others do not restrict themselves to their - * claimed limit. When this happens, they will cause a segmentation - * violation in the kernel at boo...
2007 Apr 18
0
[PATCH 2/21] i386 Always relax segments
...===== --- linux-2.6.14-zach-work.orig/arch/i386/kernel/apm.c 2005-11-04 15:46:12.000000000 -0800 +++ linux-2.6.14-zach-work/arch/i386/kernel/apm.c 2005-11-05 00:28:14.000000000 -0800 @@ -302,17 +302,6 @@ extern int (*console_blank_hook)(int); #include "apm.h" /* - * Define to make all _set_limit calls use 64k limits. The APM 1.1 BIOS is - * supposed to provide limit information that it recognizes. Many machines - * do this correctly, but many others do not restrict themselves to their - * claimed limit. When this happens, they will cause a segmentation - * violation in the kernel at boo...
2007 Apr 18
1
[PATCH 2/3] Gdt_accessor
...; - set_base(per_cpu(cpu_gdt_table, i)[APM_DS >> 3], + set_base(gdt[APM_DS >> 3], __va((unsigned long)apm_info.bios.dseg << 4)); #ifndef APM_RELAX_SEGMENTS if (apm_info.bios.version == 0x100) { #endif /* For ASUS motherboard, Award BIOS rev 110 (and others?) */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS >> 3], 64 * 1024 - 1); + _set_limit((char *)&gdt[APM_CS >> 3], 64 * 1024 - 1); /* For some unknown machine. */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS_16 >> 3], 64 * 1024 - 1); + _set_limit((char *)&amp...
2007 Apr 18
1
[PATCH 2/3] Gdt_accessor
...; - set_base(per_cpu(cpu_gdt_table, i)[APM_DS >> 3], + set_base(gdt[APM_DS >> 3], __va((unsigned long)apm_info.bios.dseg << 4)); #ifndef APM_RELAX_SEGMENTS if (apm_info.bios.version == 0x100) { #endif /* For ASUS motherboard, Award BIOS rev 110 (and others?) */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS >> 3], 64 * 1024 - 1); + _set_limit((char *)&gdt[APM_CS >> 3], 64 * 1024 - 1); /* For some unknown machine. */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS_16 >> 3], 64 * 1024 - 1); + _set_limit((char *)&amp...
2007 Apr 18
2
[PATCH 8/14] i386 / Add a per cpu gdt accessor
...set_base(per_cpu(cpu_gdt_table, i)[APM_DS >> 3], + set_base(gdt[segment_index(APM_DS)], __va((unsigned long)apm_info.bios.dseg << 4)); #ifndef APM_RELAX_SEGMENTS if (apm_info.bios.version == 0x100) { #endif /* For ASUS motherboard, Award BIOS rev 110 (and others?) */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS >> 3], 64 * 1024 - 1); + _set_limit((char *)&gdt[segment_index(APM_CS)], 64 * 1024 - 1); /* For some unknown machine. */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS_16 >> 3], 64 * 1024 - 1); + _set_limit((char *)...
2007 Apr 18
2
[PATCH 8/14] i386 / Add a per cpu gdt accessor
...set_base(per_cpu(cpu_gdt_table, i)[APM_DS >> 3], + set_base(gdt[segment_index(APM_DS)], __va((unsigned long)apm_info.bios.dseg << 4)); #ifndef APM_RELAX_SEGMENTS if (apm_info.bios.version == 0x100) { #endif /* For ASUS motherboard, Award BIOS rev 110 (and others?) */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS >> 3], 64 * 1024 - 1); + _set_limit((char *)&gdt[segment_index(APM_CS)], 64 * 1024 - 1); /* For some unknown machine. */ - _set_limit((char *)&per_cpu(cpu_gdt_table, i)[APM_CS_16 >> 3], 64 * 1024 - 1); + _set_limit((char *)...
2007 Apr 18
0
[PATCH 3/21] i386 Apm seg in gdt
Since APM BIOS segment limits are now fixed, set them in head.S GDT and don't use the complicated _set_limit() macro expansion. Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.14-zach-work/arch/i386/kernel/head.S =================================================================== --- linux-2.6.14-zach-work.orig/arch/i386/kernel/head.S 2005-11-04 15:46:11.000000000 -0800 +++ linux-2...
2007 Apr 18
0
[PATCH 9/12] base-into-desc
...\ - :"=m"(*(desc)), \ - "=&q" (__tmp) \ - :"m" (*((char *)(desc)+2)), \ - "m" (*((char *)(desc)+4)), \ - "m" (*((char *)(desc)+7)), \ - "1" (base)); \ -} while(0) - -#define _set_limit(desc,limit) do { \ - unsigned long __tmp; \ - typecheck(struct desc_struct *, desc); \ - asm volatile("movw %w4,%2\n\t" \ - "rorl $16,%4\n\t" \ - "movb %3,%h4\n\t" \ - "andb $0xf0,%h4\n\t" \ - "orb %h4,%...
2007 Apr 18
0
[PATCH 9/12] base-into-desc
...\ - :"=m"(*(desc)), \ - "=&q" (__tmp) \ - :"m" (*((char *)(desc)+2)), \ - "m" (*((char *)(desc)+4)), \ - "m" (*((char *)(desc)+7)), \ - "1" (base)); \ -} while(0) - -#define _set_limit(desc,limit) do { \ - unsigned long __tmp; \ - typecheck(struct desc_struct *, desc); \ - asm volatile("movw %w4,%2\n\t" \ - "rorl $16,%4\n\t" \ - "movb %3,%h4\n\t" \ - "andb $0xf0,%h4\n\t" \ - "orb %h4,%...
2007 Apr 18
0
[PATCH 10/14] i386 / Move descriptor accessors into desc h
...\ - :"=m"(*(desc)), \ - "=&q" (__tmp) \ - :"m" (*((char *)(desc)+2)), \ - "m" (*((char *)(desc)+4)), \ - "m" (*((char *)(desc)+7)), \ - "1" (base)); \ -} while(0) - -#define _set_limit(desc,limit) do { \ - unsigned long __tmp; \ - typecheck(struct desc_struct *, desc); \ - asm volatile("movw %w4,%2\n\t" \ - "rorl $16,%4\n\t" \ - "movb %3,%h4\n\t" \ - "andb $0xf0,%h4\n\t" \ - "orb %h4,%...
2007 Apr 18
0
[PATCH 3/21] i386 Apm seg in gdt
Since APM BIOS segment limits are now fixed, set them in head.S GDT and don't use the complicated _set_limit() macro expansion. Signed-off-by: Zachary Amsden <zach@vmware.com> Index: linux-2.6.14-zach-work/arch/i386/kernel/head.S =================================================================== --- linux-2.6.14-zach-work.orig/arch/i386/kernel/head.S 2005-11-04 15:46:11.000000000 -0800 +++ linux-2...
2007 Apr 18
0
[PATCH 10/14] i386 / Move descriptor accessors into desc h
...\ - :"=m"(*(desc)), \ - "=&q" (__tmp) \ - :"m" (*((char *)(desc)+2)), \ - "m" (*((char *)(desc)+4)), \ - "m" (*((char *)(desc)+7)), \ - "1" (base)); \ -} while(0) - -#define _set_limit(desc,limit) do { \ - unsigned long __tmp; \ - typecheck(struct desc_struct *, desc); \ - asm volatile("movw %w4,%2\n\t" \ - "rorl $16,%4\n\t" \ - "movb %3,%h4\n\t" \ - "andb $0xf0,%h4\n\t" \ - "orb %h4,%...
2007 Apr 18
0
[PATCH 5/21] i386 Pnp byte granularity
...000000000 -0800 +++ linux-2.6.14-zach-work/include/asm-i386/system.h 2005-11-05 00:28:10.000000000 -0800 @@ -54,7 +54,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" ); } while(0) #define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) ) -#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1)>>12 ) +#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1) ) static inline unsigned long _get_base(char * addr) {
2007 Apr 18
0
[PATCH 8/21] i386 Segment protect properly
...000000000 -0800 +++ linux-2.6.14-zach-work/include/asm-i386/system.h 2005-11-05 00:28:10.000000000 -0800 @@ -54,7 +54,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" ); } while(0) #define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) ) -#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1) ) +#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , (limit) ) static inline unsigned long _get_base(char * addr) { Index: linux-2.6.14-zach-work/drivers/pnp/pnpbios/bioscalls.c ===================================================================...