summaryrefslogtreecommitdiffstats
path: root/sys/pc98/i386
Commit message (Collapse)AuthorAgeFilesLines
* Change a directory layout for pc98.nyan2005-05-103-4834/+0
| | | | | | | | | - Move MD files into <arch>/<arch>. - Move bus dependent files into <arch>/<bus>. Rename some files to more suitable names. Repo-copied by: peter Discussed with: imp
* MFi386: revision 1.612.nyan2005-04-141-50/+88
|
* - Remove ifdef PC98.nyan2005-04-131-193/+4
| | | | - Reduce diffs from i386.
* Divorce critical sections from spinlocks. Critical sections as denoted byjhb2005-04-041-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* MFi386: revisions 1.609 and 1.610.nyan2005-03-061-41/+9
|
* Don't use the ptoa() to set the 'realmem' variable. Because F/pc98's policynyan2005-03-041-3/+1
| | | | is to keep the same as F/i386.
* Attempt to doff the pointy hat: implement 'hw.realmem' on remainingwes2005-03-011-0/+4
| | | | | | architectures. Pointed out by O'Brien, ScottL via email. Reviewed by: obrien (various)
* Fix to support Buffalo HYPERMEMORY.nyan2005-02-241-12/+17
| | | | | Submitted by: Chiharu Shibata MFC after: 3 days
* Sort includes and remove duplicate include.nyan2005-02-061-9/+8
|
* MFi386: revision 1.606.nyan2005-02-061-2/+10
|
* Finish the job of sorting all includes and fix the build by includingnjl2005-02-061-12/+11
| | | | | | malloc.h before proc.h on sparc64. Noticed by das@ Compiled on: alpha, amd64, i386, pc98, sparc64
* MFi386: revision 1.605.nyan2005-02-041-9/+51
|
* /* -> /*- for license, minor formatting changesimp2005-01-072-2/+2
|
* Don't include sys/user.h merely for its side-effect of recursivelydas2004-11-271-2/+2
| | | | including other headers.
* U areas are going away, so don't allocate one for process 0.das2004-11-201-2/+0
| | | | Reviewed by: arch@
* Initiate deorbit burn sequence for 80386 support in FreeBSD: Removejhb2004-11-161-4/+1
| | | | 80386 (I386_CPU) support from the kernel.
* - Change the ddb paging "support" to use a variable (db_lines_per_page) tojhb2004-11-011-1/+1
| | | | | | | | | | | | | | | | | control the number of lines per page rather than a constant. The variable can be examined and changed in ddb as '$lines'. Setting the variable to 0 will effectively turn off paging. - Change db_putchar() to force out pending whitespace before outputting newlines and carriage returns so that one can rub out content on the current line via '\r \r' type strings. - Change the simple pager to rub out the --More-- prompt explicitly when the routine exits. - Add some aliases to the simple pager to make it more compatible with more(1): 'e' and 'j' do a single line. 'd' does half a page, and 'f' does a full page. MFC after: 1 month Inspired by: kris
* MFi386: revision 1.599 (Preserve dcons(4) buffer passed by loader(8).)nyan2004-10-301-1/+17
|
* Refactor a bunch of scheduler code to give basically the same behaviourjulian2004-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | but with slightly cleaned up interfaces. The KSE structure has become the same as the "per thread scheduler private data" structure. In order to not make the diffs too great one is #defined as the other at this time. The KSE (or td_sched) structure is now allocated per thread and has no allocation code of its own. Concurrency for a KSEGRP is now kept track of via a simple pair of counters rather than using KSE structures as tokens. Since the KSE structure is different in each scheduler, kern_switch.c is now included at the end of each scheduler. Nothing outside the scheduler knows the contents of the KSE (aka td_sched) structure. The fields in the ksegrp structure that are to do with the scheduler's queueing mechanisms are now moved to the kg_sched structure. (per ksegrp scheduler private data structure). In other words how the scheduler queues and keeps track of threads is no-one's business except the scheduler's. This should allow people to write experimental schedulers with completely different internal structuring. A scheduler call sched_set_concurrency(kg, N) has been added that notifies teh scheduler that no more than N threads from that ksegrp should be allowed to be on concurrently scheduled. This is also used to enforce 'fainess' at this time so that a ksegrp with 10000 threads can not swamp a the run queue and force out a process with 1 thread, since the current code will not set the concurrency above NCPU, and both schedulers will not allow more than that many onto the system run queue at a time. Each scheduler should eventualy develop their own methods to do this now that they are effectively separated. Rejig libthr's kernel interface to follow the same code paths as linkse for scope system threads. This has slightly hurt libthr's performance but I will work to recover as much of it as I can. Thread exit code has been cleaned up greatly. exit and exec code now transitions a process back to 'standard non-threaded mode' before taking the next step. Reviewed by: scottl, peter MFC after: 1 week
* MFi386: revision 1.597.nyan2004-08-051-0/+3
|
* MFi386: revision 1.596.nyan2004-07-191-0/+3
|
* Add ptrace_clear_single_step(), alpha already has it for years, the functiondavidxu2004-07-131-0/+7
| | | | will be used by ptrace to clear a thread's single step state.
* MFi386: Update for the KDB framework:marcel2004-07-101-12/+34
| | | | | | o Implement makectx(). o Call kdb_enter() instead of Debugger(). o Remove implementation of Debugger().
* MFi386: revision 1.592.nyan2004-06-221-25/+7
|
* Do the dreaded s/dev_t/struct cdev */phk2004-06-161-2/+2
| | | | Bump __FreeBSD_version accordingly.
* Deorbit COMPAT_SUNOS.phk2004-06-111-6/+6
| | | | | We inherited this from the sparc32 port of BSD4.4-Lite1. We have neither a sparc32 port nor a SunOS4.x compatibility desire these days.
* Remove atdevbase and replace it's remaining uses with direct references tojhb2004-06-101-2/+1
| | | | KERNBASE instead.
* MFi386: revision 1.586.nyan2004-03-281-0/+1
|
* MFi386: revision 1.583.nyan2004-01-111-0/+3
|
* Make sigaltstack as per-threaded, because per-process sigaltstack statedavidxu2004-01-031-22/+22
| | | | | | | | | | | | | is useless for threaded programs, multiple threads can not share same stack. The alternative signal stack is private for thread, no lock is needed, the orignal P_ALTSTACK is now moved into td_pflags and renamed to TDP_ALTSTACK. For single thread or Linux clone() based threaded program, there is no semantic changed, because those programs only have one kernel thread in every process. Reviewed by: deischen, dfr
* opt_apic.h is not needed.nyan2003-11-151-1/+0
|
* Change the clear_ret argument of get_mcontext() to be a flags argument.marcel2003-11-091-2/+2
| | | | | | | | | | Since all callers either passed 0 or 1 for clear_ret, define bit 0 in the flags for use as clear_ret. Reserve bits 1, 2 and 3 for use by MI code for possible (but unlikely) future use. The remaining bits are for use by MD code. This change is triggered by a need on ia64 to have another knob for get_mcontext().
* Include machine/asmacros.h instead of machine/asm.h.nyan2003-11-051-1/+1
| | | | Submitted by: bde
* MFi386: revision 1.580nyan2003-11-041-12/+39
|
* MFi386: revision 1.579.nyan2003-10-311-14/+10
|
* MFi386: revision 1.578.nyan2003-10-311-8/+1
|
* MFi386: revision 1.577.nyan2003-10-191-9/+17
|
* MFi386: revision 1.576.nyan2003-10-111-6/+0
|
* MFi386: revisions 1.572, 1.573 and 1.574.nyan2003-10-051-2/+8
|
* Implement the bus_space_map() function to allocate resources and initializenyan2003-09-231-0/+8
| | | | a bus_handle, but currently it does only initializing a bus_handle.
* MFi386 revisions 1.570 and 1.571.nyan2003-09-111-26/+23
|
* Cosmetic: fix disorder of opt_kstack_pages.h include.peter2003-07-311-1/+1
|
* Rename thread_siginfo to cpu_thread_siginfo.davidxu2003-07-151-1/+1
| | | | Suggested by: jhb
* MFi386: revision 1.566.nyan2003-06-281-38/+0
|
* Add a machine depended function thread_siginfo, SA signal codedavidxu2003-06-281-0/+20
| | | | | | | will use the function to construct a siginfo structure and use the result to export to userland. Reviewed by: julian
* Fix a typo that broke the pc98 kernel build.jhb2003-05-141-1/+1
| | | | | | Reported by: des@'s tinderbox Pointy hat to: jhb Approved by: re (blanket/scottl)
* - Merge struct procsig with struct sigacts.jhb2003-05-131-9/+12
| | | | | | | | | | | | | | | | | - Move struct sigacts out of the u-area and malloc() it using the M_SUBPROC malloc bucket. - Add a small sigacts_*() API for managing sigacts structures: sigacts_alloc(), sigacts_free(), sigacts_copy(), sigacts_share(), and sigacts_shared(). - Remove the p_sigignore, p_sigacts, and p_sigcatch macros. - Add a mutex to struct sigacts that protects all the members of the struct. - Add sigacts locking. - Remove Giant from nosys(), kill(), killpg(), and kern_sigaction() now that sigacts is locked. - Several in-kernel functions such as psignal(), tdsignal(), trapsignal(), and thread_stopped() are now MP safe. Reviewed by: arch@ Approved by: re (rwatson)
* Add an argument to get_mcontext() which specified whether thedeischen2003-04-251-3/+8
| | | | | | | | | | | | | | | | | | | | syscall return values should be cleared. The system calls getcontext() and swapcontext() want to return 0 on success but these contexts can be switched to at a later time so the return values need to be cleared in the saved register sets. Other callers of get_mcontext() would normally want the context without clearing the return values. Remove the i386-specific context saving from the KSE code. get_mcontext() is not i386-specific any more. Fix a bad pointer in the alpha get_mcontext() code. The context was being bcopy()'d from &td->tf_frame, but tf_frame is itself a pointer, so the thread was being copied instead. Spotted by jake. Glanced at by: jake Reviewed by: bde (months ago)
* Hold the proc lock for curproc around sigonstack().jhb2003-04-181-0/+2
|
* MFi386: revision 1.561nyan2003-04-031-3/+33
|
OpenPOWER on IntegriCloud