#
29363fb4 |
|
23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags. Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script. Sponsored by: Netflix
|
#
2ff63af9 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .h pattern Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
|
#
d86c1f0d |
|
13-Apr-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
i386 4/4G split. The change makes the user and kernel address spaces on i386 independent, giving each almost the full 4G of usable virtual addresses except for one PDE at top used for trampoline and per-CPU trampoline stacks, and system structures that must be always mapped, namely IDT, GDT, common TSS and LDT, and process-private TSS and LDT if allocated. By using 1:1 mapping for the kernel text and data, it appeared possible to eliminate assembler part of the locore.S which bootstraps initial page table and KPTmap. The code is rewritten in C and moved into the pmap_cold(). The comment in vmparam.h explains the KVA layout. There is no PCID mechanism available in protected mode, so each kernel/user switch forth and back completely flushes the TLB, except for the trampoline PTD region. The TLB invalidations for userspace becomes trivial, because IPI handlers switch page tables. On the other hand, context switches no longer need to reload %cr3. copyout(9) was rewritten to use vm_fault_quick_hold(). An issue for new copyout(9) is compatibility with wiring user buffers around sysctl handlers. This explains two kind of locks for copyout ptes and accounting of the vslock() calls. The vm_fault_quick_hold() AKA slow path, is only tried after the 'fast path' failed, which temporary changes mapping to the userspace and copies the data to/from small per-cpu buffer in the trampoline. If a page fault occurs during the copy, it is short-circuit by exception.s to not even reach C code. The change was motivated by the need to implement the Meltdown mitigation, but instead of KPTI the full split is done. The i386 architecture already shows the sizing problems, in particular, it is impossible to link clang and lld with debugging. I expect that the issues due to the virtual address space limits would only exaggerate and the split gives more liveness to the platform. Tested by: pho Discussed with: bde Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D14633
|
#
51369649 |
|
20-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point.
|
#
fbbd9655 |
|
28-Feb-2017 |
Warner Losh <imp@FreeBSD.org> |
Renumber copyright clause 4 Renumber cluase 4 to 3, per what everybody else did when BSD granted them permission to remove clause 3. My insistance on keeping the same numbering for legal reasons is too pedantic, so give up on that point. Submitted by: Jan Schaumann <jschauma@stevens.edu> Pull Request: https://github.com/freebsd/freebsd/pull/96
|
#
ed95805e |
|
30-Apr-2015 |
John Baldwin <jhb@FreeBSD.org> |
Remove support for Xen PV domU kernels. Support for HVM domU kernels remains. Xen is planning to phase out support for PV upstream since it is harder to maintain and has more overhead. Modern x86 CPUs include virtualization extensions that support HVM guests instead of PV guests. In addition, the PV code was i386 only and not as well maintained recently as the HVM code. - Remove the i386-only NATIVE option that was used to disable certain components for PV kernels. These components are now standard as they are on amd64. - Remove !XENHVM bits from PV drivers. - Remove various shims required for XEN (e.g. PT_UPDATES_FLUSH, LOAD_CR3, etc.) - Remove duplicate copy of <xen/features.h>. - Remove unused, i386-only xenstored.h. Differential Revision: https://reviews.freebsd.org/D2362 Reviewed by: royger Tested by: royger (i386/amd64 HVM domU and amd64 PVH dom0) Relnotes: yes
|
#
bcde3b9f |
|
19-Mar-2012 |
Tijl Coosemans <tijl@FreeBSD.org> |
Move userland bits (and some common kernel bits) from amd64 and i386 segments.h to a new x86 segments.h. Add __packed attribute to some structs (just to be sure). Also make it clear that i386 GDT and LDT entries are used in ia64 code.
|
#
c7e8722c |
|
27-Feb-2012 |
John Baldwin <jhb@FreeBSD.org> |
Resort the IDT_DTRACE_RET constant after it was changed to be less than IDT_SYSCALL.
|
#
166808c6 |
|
06-Nov-2011 |
Ryan Stone <rstone@FreeBSD.org> |
Fix the DTrace pid return trap interrupt vector. Previously we were using 31, but that vector is reserved. Without this fix, running dtrace -p <pid> would either cause the target process to crash or the kernel to page fault. Obtained from: rpaulo MFC after: 3days
|
#
aaaf6071 |
|
31-Dec-2010 |
Colin Percival <cperciva@FreeBSD.org> |
Make i386_set_ldt work on i386/XEN, step 5/5. When cleaning up a thread, reset its LDT to the default LDT. Note: Casting the LDT pointer to an int and storing it in pc_currentldt is wildly bogus, but is harmless since pc_currentldt is a write-only variable. MFC after: 3 days
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
cba32694 |
|
28-Aug-2010 |
Rui Paulo <rpaulo@FreeBSD.org> |
Register an interrupt vector for DTrace return probes. There is some code missing in lapic to make sure that we don't overwrite this entry, but this will be done on a sequent commit. Sponsored by: The FreeBSD Foundation
|
#
2b956728 |
|
21-Jul-2010 |
Rui Paulo <rpaulo@FreeBSD.org> |
MFamd64: Add USD_GETBASE(), USD_SETBASE(), USD_GETLIMIT() and USD_SETLIMIT().
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
93ee134a |
|
15-Aug-2008 |
Kip Macy <kmacy@FreeBSD.org> |
Integrate support for xen in to i386 common code. MFC after: 1 month
|
#
e0ab2c6d |
|
13-Apr-2005 |
Peter Wemm <peter@FreeBSD.org> |
Change the segment limits to 4GB, we set the user accessible bit on all of the kernel address space already. Intel recommend this anyway, because using a non-4GB limit adds an additional clock cycle to address generation. We were able to install 4GB segments into the LDT, so any limits we imposed on %cs and %ds were academic anyway. More importantly, this allows us to make a page in the kernel readable to user applications, for holding things like the signal trampoline and other fun things. Move the user %cs/%ds segments from the LDT to the GDT. There was no good reason for them to be there anyway. The old LDT entries are still there but we can now relax the restriction that prevented users from emptying the default LDT entries. Putting user and kernel %cs and %ds together allows us to access the fast sysenter/sysexit/syscall/sysret instructions. syscall/sysret in particular require that the user/kernel segments be laid out this way. Reserve a slot specifically for NDIS while here. Create two user controllable slots in the GDT that are context switched with the (kernel) thread. This allows user applications to set two user privilige selectors to arbitary values. Create i386_set_fsbase(void *base) and friends. (get/set, fs/gs). For i386, %gs is used by tls and the thread libraries and this means that user processes no longer have to have the cost of having a custom LDT, and we will no longer to do a ldt switch when activating a kthread/ithread in the usual case any more. In other words, we can now set the base address for %fs and %gs to arbitary addresses without the pain of messing with ldt segments.
|
#
f36cfd49 |
|
07-Apr-2004 |
Warner Losh <imp@FreeBSD.org> |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson. Approved by: core, peter, alc, rwatson
|
#
5b02e685 |
|
03-Nov-2003 |
John Baldwin <jhb@FreeBSD.org> |
- Always use 256 IDT entries since it is now a runtime decison as to how many entries we use. - Add a constant IDT_IO_INTS for the first IDT entry used for device interrupts.
|
#
63239aa5 |
|
30-Oct-2003 |
John Baldwin <jhb@FreeBSD.org> |
Always export r_gdt and r_idt and give them extern declarations in machine/segments.h.
|
#
0e85b19b |
|
09-Sep-2003 |
John Baldwin <jhb@FreeBSD.org> |
Add constants for entries in the IDT and use those instead of magic numbers.
|
#
aff81a81 |
|
28-Jan-2003 |
Jake Burkholder <jake@FreeBSD.org> |
Remove BDE_DEBUGGER. Discussed with: bde
|
#
bbe04fe2 |
|
25-Sep-2002 |
Peter Wemm <peter@FreeBSD.org> |
ISMEMSDP(), IS286GDP(), IS386GDP(), ISGDP(), ISSDP() and ISSYSSDP() are not used anywhere anymore.
|
#
691cb905 |
|
23-Sep-2002 |
Peter Wemm <peter@FreeBSD.org> |
use __packed, rather than __attribute__((packed)).
|
#
eb1443c8 |
|
21-Sep-2002 |
Peter Wemm <peter@FreeBSD.org> |
Create inlines for ltr(sel), lldt(sel), lidt(addr) rather than functions that have one instruction.
|
#
809dbbc9 |
|
23-Mar-2002 |
Bruce Evans <bde@FreeBSD.org> |
Fixed some style bugs in the removal of __P(()). The main ones were not removing tabs before "__P((", and not outdenting continuation lines to preserve non-KNF lining up of code with parentheses. Switch to KNF formatting and/or rewrap the whole prototype in some cases.
|
#
b63dc6ad |
|
19-Mar-2002 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove __P.
|
#
9b37da13 |
|
03-Dec-2001 |
John Baldwin <jhb@FreeBSD.org> |
Add a missing open paren to a macro that's been broken (and apparently unused) since rev 1.1 so it is at least correct. Submitted by: Maxime Henrion <mux@qualys.com>
|
#
4a3bb599 |
|
27-Oct-2000 |
Bruce Evans <bde@FreeBSD.org> |
Declare or #define per-cpu globals in <machine/globals.h> in all cases. The i386 UP case was messily different.
|
#
a384bdbf |
|
05-Oct-2000 |
John Baldwin <jhb@FreeBSD.org> |
currentldt is now a "special" global-data variable, and as such, there is no actual currentldt integer variable directly. Thus, don't claim that there is.
|
#
664a31e4 |
|
28-Dec-1999 |
Peter Wemm <peter@FreeBSD.org> |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
#
c3aac50f |
|
27-Aug-1999 |
Peter Wemm <peter@FreeBSD.org> |
$Id$ -> $FreeBSD$
|
#
7880e8b2 |
|
17-Aug-1999 |
Mike Smith <msmith@FreeBSD.org> |
Mindbogglingly, many BIOS vendors expect to be able to load %ds with 0x40 and then access data stored in real-mode segment 0x40, even when called in protected mode. Microsoft unfortunately coddle these individuals, and so must we if we want to run their code. This change works around GPFs in some APM and PnP BIOS implementations. Obtained from: Linux
|
#
496027bf |
|
28-Jul-1999 |
Mike Smith <msmith@FreeBSD.org> |
Major update to the kernel's BIOS-calling ability. - Add support for calling 32-bit code in other segments - Add support for calling 16-bit protected mode code Update APM to use this facility. Submitted by: jlemon
|
#
50045fbc |
|
18-Jun-1999 |
Bruce Evans <bde@FreeBSD.org> |
Changed the global `idt' from an array to a pointer so that npx.c automatically hacks on the active copy of the IDT if f00f_hack() has changed it. This also allows simplifications in setidt(). This fixes breakage of FP exception handling by rev.1.55 of sys/kernel.h. FP exceptions were sent to npx.c's probe handlers because npx.c "restored" the old handlers to the wrong copy of the IDT. The SYSINIT for f00f_hack() was purposely run quite late to avoid problems like this, but it is bogusly associated with the SYSINIT for proc0 so it was moved with the latter. Problem reported and fix tested by: Martin Cracauer <cracauer@cons.org>
|
#
5206bca1 |
|
27-Apr-1999 |
Luoqi Chen <luoqi@FreeBSD.org> |
Enable vmspace sharing on SMP. Major changes are, - %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com>
|
#
27286ca9 |
|
28-Jan-1999 |
Mark Newton <newton@FreeBSD.org> |
Sun Bug ID 1251858 (on http://sunsolve1.sun.com) discusses the way that Sun implemented iBCS2 compatibility on Solaris >= 2.6: The emulator runs in user-mode, patching the LDT so that client programs making syscalls through the old iBCS2 call gate get handled by the emulator process. Unemulated syscalls therefore need their own call-gate that bypasses the emulator. Sun chose LDT entry 4 to implement this, which is what we've been using as LUDATA_SEL, so we need to change LUDATA_SEL if we want to run Solaris executables. Discussed with: Mike Smith
|
#
40d50994 |
|
21-Aug-1997 |
Philippe Charnier <charnier@FreeBSD.org> |
Revert my previous commit about using CS_SECURE macro. Requested by: Bruce.
|
#
15f35491 |
|
18-Aug-1997 |
Philippe Charnier <charnier@FreeBSD.org> |
Use CS_SECURE macro. Reviewed by: John Dyson
|
#
e743fb99 |
|
18-Jul-1997 |
Steve Passe <fsmp@FreeBSD.org> |
Increased NIDT to 256 for case of SMP or APIC_IO.
|
#
477a642c |
|
26-Apr-1997 |
Peter Wemm <peter@FreeBSD.org> |
Man the liferafts! Here comes the long awaited SMP -> -current merge! There are various options documented in i386/conf/LINT, there is more to come over the next few days. The kernel should run pretty much "as before" without the options to activate SMP mode. There are a handful of known "loose ends" that need to be fixed, but have been put off since the SMP kernel is in a moderately good condition at the moment. This commit is the result of the tinkering and testing over the last 14 months by many people. A special thanks to Steve Passe for implementing the APIC code!
|
#
6875d254 |
|
22-Feb-1997 |
Peter Wemm <peter@FreeBSD.org> |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
1130b656 |
|
14-Jan-1997 |
Jordan K. Hubbard <jkh@FreeBSD.org> |
Make the long-awaited change from $Id$ to $FreeBSD$ This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
90af01be |
|
27-Sep-1996 |
Peter Wemm <peter@FreeBSD.org> |
Apparently, BSDI have a new system call gate. I was experimenting with this quite a while ago when somebody reported a BSD/OS 2.1 binary that wouldn't run. I'm pretty sure they tried it and I'm pretty sure they mentioned to me that the patch worked.
|
#
6c5e9bbd |
|
30-Jan-1996 |
Mike Pritchard <mpp@FreeBSD.org> |
Fix a bunch of spelling errors in the comment fields of a bunch of system include files.
|
#
9b2e5354 |
|
30-May-1995 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Remove trailing whitespace.
|
#
1e1e0b44 |
|
14-Feb-1995 |
Søren Schmidt <sos@FreeBSD.org> |
First attempt to run linux binaries. This is only the changes needed to the generic kernel. The actual emulator is a separate LKM. (not finished yet, sorry). Submitted by: sos@freebsd.org & sef@kithrup.com
|
#
b0d1e6de |
|
15-Nov-1994 |
Bruce Evans <bde@FreeBSD.org> |
Make gdt_segs[] public again for APM. Make ldt[] public again and restore currentldt and _default_ldt for USER_LDT.
|
#
040f1000 |
|
14-Nov-1994 |
Bruce Evans <bde@FreeBSD.org> |
Remove 1.5+K of bloat for unused idt entries. Partly support BDE_DEBUGGER. Still broken by conflict with APM. Does nothing if BDE_DEBUGGER is not defined. Clean up prototypes and data declarations. Declare most of the segment functions that are implemented in support.s. Make data private in machdep.c if possible. Parenthesize expressions in macros properly! ${Uniformize idempotency ifdef}.
|
#
22414e53 |
|
30-Sep-1994 |
David Greenman <dg@FreeBSD.org> |
Laptop Advanced Power Management support by HOSOKAWA Tatsumi. Submitted by: HOSOKAWA Tatsumi
|
#
da59a31c |
|
31-Jan-1994 |
David Greenman <dg@FreeBSD.org> |
WINE/user LDT support from John Brezak, ported to FreeBSD by Jeffrey Hsu <hsu@soda.berkeley.edu>.
|
#
6e393973 |
|
07-Nov-1993 |
Garrett Wollman <wollman@FreeBSD.org> |
Made all header files idempotent and moved incorrect common data from headers into a related source file. Added cons.h as first step towards moving i386/i386/cons.h to machine/cons.h where it belongs.
|
#
34a8ed1b |
|
16-Oct-1993 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some minor cleanup. Added $Id$ to files that did not have any version info, etc
|
#
5b81b6b3 |
|
12-Jun-1993 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Initial import, 0.1 + pk 0.2.4-B1
|