<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/amd64/include/proc.h, branch release/8.2.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F8.2.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F8.2.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2010-11-03T21:21:12Z</updated>
<entry>
<title>MFC r208453:</title>
<updated>2010-11-03T21:21:12Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2010-11-03T21:21:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e974cac769ba6803e6d1a39345cb27e3b5e836be'/>
<id>urn:sha1:e974cac769ba6803e6d1a39345cb27e3b5e836be</id>
<content type='text'>
Reorganize syscall entry and leave handling.
Implement ptrace_lwpinfo pl_flags PL_FLAG_SCE, PL_FLAG_SCX and
PL_FLAG_EXEC.

The i386, amd64, sparc64, sun4v, powerpc and ia64 syscall()s are
changed to use syscallenter()/syscallret(). MIPS and arm are not
converted and use the mostly unchanged syscall() implementation.

MFC r208514:
Change ia64' struct syscall_args definition so that args is a pointer to
the arguments array instead of array itself.

MFC r208566:
Allow to use syscallname(9) outside subr_trap.c.

MFC r209258 (by rpaulo):
Make DTrace syscall provider work again by including opt_kdtrace.h here.

MFC r209313:
Only enable kdtrace hook in the LINT on the architectures that implement it.

MFC r209697:
Obey sv_syscallnames bounds in syscallname().

NOTE: The KBI of the struct sysentvec is changed, new required members
sv_set_syscall_retval, sv_fetch_syscall_args and sv_syscallnames are
added. The sv_prepsyscall field is now ignored. Third-party modules
using the struct sysentvec must be modified and recompiled, we believe
that only ABI emulators are affected. No such out-of-tree modules are
known. In-tree modules that are affected by the change were converted
to depend on exact version of the kernel, see r214421.
</content>
</entry>
<entry>
<title>MFC r204051 (by imp):</title>
<updated>2010-05-08T18:54:47Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2010-05-08T18:54:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=19effccdeea938d8fcc2410c23898c6ce64f5840'/>
<id>urn:sha1:19effccdeea938d8fcc2410c23898c6ce64f5840</id>
<content type='text'>
n64 has a different size for KINFO_PROC_SIZE.

Approved by:	imp

MFC r207152:
Move the constants specifying the size of struct kinfo_proc into
machine-specific header files. Add KINFO_PROC32_SIZE for struct
kinfo_proc32 for architectures providing COMPAT_FREEBSD32. Add
CTASSERT for the size of struct kinfo_proc32.

MFC r207269:
Style: use #define&lt;TAB&gt; instead of #define&lt;SPACE&gt;.
</content>
</entry>
<entry>
<title>Save and restore segment registers on amd64 when entering and leaving</title>
<updated>2009-04-01T13:09:26Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2009-04-01T13:09:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2c66cccab7ceceb3eed086da3b2dedfc77ce72de'/>
<id>urn:sha1:2c66cccab7ceceb3eed086da3b2dedfc77ce72de</id>
<content type='text'>
the kernel on amd64. Fill and read segment registers for mcontext and
signals. Handle traps caused by restoration of the
invalidated selectors.

Implement user-mode creation and manipulation of the process-specific
LDT descriptors for amd64, see sysarch(2).

Implement support for TSS i/o port access permission bitmap for amd64.

Context-switch LDT and TSS. Do not save and restore segment registers on
the context switch, that is handled by kernel enter/leave trampolines
now. Remove segment restore code from the signal trampolines for
freebsd/amd64, freebsd/ia32 and linux/i386 for the same reason.

Implement amd64-specific compat shims for sysarch.

Linuxolator (temporary ?) switched to use gsbase for thread_area pointer.

TODO:
Currently, gdb is not adapted to show segment registers from struct reg.
Also, no machine-depended ptrace command is added to set segment
registers for debugged process.

In collaboration with:	pho
Discussed with:	peter
Reviewed by:	jhb
Linuxolator tested by:	dchagin
</content>
</entry>
<entry>
<title>Move GET_STACK_USAGE from MI header to i386/amd64 MD ones.</title>
<updated>2008-01-31T08:24:27Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2008-01-31T08:24:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2a57ca33c742c600a5837ba32f9325b79e669f45'/>
<id>urn:sha1:2a57ca33c742c600a5837ba32f9325b79e669f45</id>
<content type='text'>
Somebody who can, please feel free to implement it for other archs
or copy this one if it suits.
</content>
</entry>
<entry>
<title>Divorce critical sections from spinlocks.  Critical sections as denoted by</title>
<updated>2005-04-04T21:53:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-04-04T21:53:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c6a37e84139a1c73d4ef46ce4fdf8598a0ebbf45'/>
<id>urn:sha1:c6a37e84139a1c73d4ef46ce4fdf8598a0ebbf45</id>
<content type='text'>
critical_enter() and critical_exit() are now solely a mechanism for
deferring kernel preemptions.  They no longer have any affect on
interrupts.  This means that standalone critical sections are now very
cheap as they are simply unlocked integer increments and decrements for the
common case.

Spin mutexes now use a separate KPI implemented in MD code: spinlock_enter()
and spinlock_exit().  This KPI is responsible for providing whatever MD
guarantees are needed to ensure that a thread holding a spin lock won't
be preempted by any other code that will try to lock the same lock.  For
now all archs continue to block interrupts in a "spinlock section" as they
did formerly in all critical sections.  Note that I've also taken this
opportunity to push a few things into MD code rather than MI.  For example,
critical_fork_exit() no longer exists.  Instead, MD code ensures that new
threads have the correct state when they are created.  Also, we no longer
try to fixup the idlethreads for APs in MI code.  Instead, each arch sets
the initial curthread and adjusts the state of the idle thread it borrows
in order to perform the initial context switch.

This change is largely a big NOP, but the cleaner separation it provides
will allow for more efficient alternative locking schemes in other parts
of the kernel (bare critical sections rather than per-CPU spin mutexes
for per-CPU data for example).

Reviewed by:	grehan, cognet, arch@, others
Tested on:	i386, alpha, sparc64, powerpc, arm, possibly more
</content>
</entry>
<entry>
<title>Begin all license/copyright comments with /*-</title>
<updated>2005-01-05T20:17:21Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2005-01-05T20:17:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=46280ae71938465be665fb19cf8f7d1ca48a379a'/>
<id>urn:sha1:46280ae71938465be665fb19cf8f7d1ca48a379a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove advertising clause from University of California Regent's license,</title>
<updated>2004-04-05T21:29:41Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2004-04-05T21:29:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=29ae923f442cca68a051d4d299dae535758b44d4'/>
<id>urn:sha1:29ae923f442cca68a051d4d299dae535758b44d4</id>
<content type='text'>
per letter dated July 22, 1999.

Approved by: core
</content>
</entry>
<entry>
<title>Cosmetic and/or trivial sync up with i386.</title>
<updated>2003-11-21T03:02:00Z</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2003-11-21T03:02:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cda078658e6fb14d86529be6ca93ff465fc858a0'/>
<id>urn:sha1:cda078658e6fb14d86529be6ca93ff465fc858a0</id>
<content type='text'>
Approved by:  re (rwatson)
</content>
</entry>
<entry>
<title>Commit MD parts of a loosely functional AMD64 port.  This is based on</title>
<updated>2003-05-01T01:05:25Z</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2003-05-01T01:05:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=afa8862328041298fe0c059d65cea406f92bad4b'/>
<id>urn:sha1:afa8862328041298fe0c059d65cea406f92bad4b</id>
<content type='text'>
a heavily stripped down FreeBSD/i386 (brutally stripped down actually) to
attempt to get a stable base to start from.  There is a lot missing still.
Worth noting:
- The kernel runs at 1GB in order to cheat with the pmap code.  pmap uses
  a variation of the PAE code in order to avoid having to worry about 4
  levels of page tables yet.
- It boots in 64 bit "long mode" with a tiny trampoline embedded in the
  i386 loader.  This simplifies locore.s greatly.
- There are still quite a few fragments of i386-specific code that have
  not been translated yet, and some that I cheated and wrote dumb C
  versions of (bcopy etc).
- It has both int 0x80 for syscalls (but using registers for argument
  passing, as is native on the amd64 ABI), and the 'syscall' instruction
  for syscalls.  int 0x80 preserves all registers, 'syscall' does not.
- I have tried to minimize looking at the NetBSD code, except in a couple
  of places (eg: to find which register they use to replace the trashed
  %rcx register in the syscall instruction).  As a result, there is not a
  lot of similarity.  I did look at NetBSD a few times while debugging to
  get some ideas about what I might have done wrong in my first attempt.
</content>
</entry>
<entry>
<title>Note that the sched_lock protects md_ldt of struct mdproc.</title>
<updated>2002-10-25T20:06:16Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2002-10-25T20:06:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ab79480392094740fa1ba0cc245a5996634e92ac'/>
<id>urn:sha1:ab79480392094740fa1ba0cc245a5996634e92ac</id>
<content type='text'>
</content>
</entry>
</feed>
