summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Direct call exit if thread was never created. This makes it safe to calldavidxu2003-08-182-0/+4
| | | | | | pthread_exit in main() without creating any thread. Tessted by: deischen
* Treat initial thread as scope system thread when KSE mode is not activateddavidxu2003-08-1824-162/+94
| | | | | | | | | yet, so we can protect some locking code from being interrupted by signal handling. When KSE mode is turned on, reset the thread flag to scope process except we are running in 1:1 mode which we needn't turn it off. Also remove some unused member variables in structure kse. Tested by: deischen
* It is not an error to have no devices.phk2003-08-171-1/+1
|
* Stage 3 of dynamic root support. Make all the libraries needed to rungordon2003-08-1720-10/+30
| | | | | | binaries in /bin and /sbin installed in /lib. Only the versioned files reside in /lib, the .so symlink continues to live /usr/lib so the toolchain doesn't need to be modified.
* Imply NOLIBC_R for PowerPC.obrien2003-08-161-1/+1
|
* Fix wrong identifier on .end directive. The SYSCALL macro does namemarcel2003-08-164-4/+4
| | | | mangling and creates an .ent directive with the mangled name.
* If threaded mode is not turned on yet, direct call __sys_sched_yield.davidxu2003-08-162-4/+6
|
* Replace some syscalls with libc version, this makes abort work better withdavidxu2003-08-161-10/+7
| | | | | | libkse. Tested under libc_r, libkse, libthr. Reviewed by: deischen
* Keep initial kse and kse group just like we keep initial thread,davidxu2003-08-162-18/+22
| | | | | | Don't free them, so some code can still reference them. Reviewed by: deischen
* Access user provided pointer out of lock, and also check the case whendavidxu2003-08-162-16/+20
| | | | a key is less than 0.
* Don't run verify directly as that would require the perl script tomarcel2003-08-132-6/+8
| | | | | | have execute permissions. Run "perl verify" instead. Replace all occurences of the hardcoding of ./verify with $(VERIFY) to allow it to be overridden as well.
* Always set tcb for bound thread, and switch tcb for M:N thread at correctdavidxu2003-08-132-14/+36
| | | | time.
* Don't forget to set kcb_self.davidxu2003-08-122-0/+2
|
* Correctly set current tcb. This fixes some IA64/KSE problems.davidxu2003-08-122-34/+22
| | | | Reviewed by: deischen, julian
* Make the documentation of PT_STEP match its implementation: theiedowse2003-08-111-2/+3
| | | | | | | `data' parameter is not ignored; if non-zero, it specifies a signal number to be delivered to the traced process. MFC after: 1 day
* Add the mlockall()/munlockall() system call manual page from NetBSD.bms2003-08-111-0/+140
| | | | | | | | PR: kern/42426, standards/54223 Obtained from: NetBSD Reviewed by: jake, alc Approved by: jake (mentor) MFC after: 2 weeks
* Add the mlockall() and munlockall() system calls.bms2003-08-117-8/+9
| | | | | | | | | | | | | | | | | | | | | | | - All those diffs to syscalls.master for each architecture *are* necessary. This needed clarification; the stub code generation for mlockall() was disabled, which would prevent applications from linking to this API (suggested by mux) - Giant has been quoshed. It is no longer held by the code, as the required locking has been pushed down within vm_map.c. - Callers must specify VM_MAP_WIRE_HOLESOK or VM_MAP_WIRE_NOHOLES to express their intention explicitly. - Inspected at the vmstat, top and vm pager sysctl stats level. Paging-in activity is occurring correctly, using a test harness. - The RES size for a process may appear to be greater than its SIZE. This is believed to be due to mappings of the same shared library page being wired twice. Further exploration is needed. - Believed to back out of allocations and locks correctly (tested with WITNESS, MUTEX_PROFILING, INVARIANTS and DIAGNOSTIC). PR: kern/43426, standards/54223 Reviewed by: jake, alc Approved by: jake (mentor) MFC after: 2 weeks
* Add some quick pathes to exit process when signal action is default anddavidxu2003-08-102-0/+42
| | | | | | signal can causes process to exit. Reviewed by: deischen
* Initialize rtld lock just before turning on thread mode anddavidxu2003-08-106-70/+74
| | | | uninitialize rtld lock after thread mode shutdown.
* If thread mode is not activated yet, just call __sys_fork() directly,davidxu2003-08-102-2/+44
| | | | | | | | otherwise masks all signals until fork() returns, in child process, we reset library state before restoring signal masks until we reach a safe to point. Reviewed by: deischen
* Tweak rtld lock to allow recursive on reader lock and detect recursivedavidxu2003-08-102-20/+134
| | | | | | on writer lock. This is first cut at rwlock for rtld. Submitted by: desichen
* If thread mode is not activated yet, don't do extra work.davidxu2003-08-102-0/+8
| | | | Reviewed by: deischen
* For type 0 rng lower initial drop to 50, it is enough to hide linearityache2003-08-101-1/+5
| | | | Reorganize historic #ifdef section
* Fix the case of the encoding name in the ENCODING line. Names aretjr2003-08-101-1/+1
| | | | case-sensitive, and MSKANJI does not work.
* Cross-reference gbk(5).tjr2003-08-101-0/+1
|
* Cross-reference gbk(5) now that it exists. Fix a copy & paste error:tjr2003-08-101-1/+2
| | | | one occurrence of GB 18030 should have been 11383.
* Add a fairly minimal manual page for the GBK encoding.tjr2003-08-102-1/+63
|
* Add a cross reference to Unicode 3.0.tjr2003-08-101-1/+6
|
* Add cross references to the new character encoding manual pages,tjr2003-08-101-1/+5
| | | | and to mbsinit(3) while I'm at it.
* Add manual pages for the BIG5, GB18030 and MSKanji encodings. These maytjr2003-08-104-1/+189
| | | | need to be fleshed out a little, especially big5(5).
* o There are 6 trap disable bits in ar.fpsr, not five. Even though wemarcel2003-08-092-4/+4
| | | | | | | | | | | | | didn't provide a constant for one of them (non-IEEE denormal trap), in an attempt to not support it probably, it's not we are left with the lower 5 bits. o Properly mask the passed or returned fp_except_t. Not doing so causes instant core dumps by trying to write an invalid value to ar.fpsr. Now that we're masking, stop using exclusive-or to invert bits. This fixes the illegal instruction fault encountered when building mozilla.
* Add libpthread to the alpha build.deischen2003-08-091-9/+3
| | | | | | Requested by ru: Since the majority of archs can now support the build of libpthread, rearrange the Makefile to treat libpthread as an exception.
* Add alpha support to libpthread. It compiles but hasn't been tested;deischen2003-08-096-1/+761
| | | | | | there is still some missing kernel support. Reviewed by: marcel
* Add signalcontext() which will be needed by libpthread.deischen2003-08-092-1/+104
| | | | Reviewed by: marcel
* Add the POSIX 1003.1-2001 posix_madvise() interface.bms2003-08-094-4/+29
| | | | | | PR: standards/54634 Reviewed by: das Approved by: jake (mentor)
* o Add code to GC freed KSEs and KSE groupsdavidxu2003-08-082-50/+232
| | | | | | | o Fix a bug in kse_free_unlocked(), kcb_dtor shouldn't be called because the KSE is cached and will be resued in _kse_alloc(). Reviewed by: deischen
* Since it builds and seems to work OK, add libpthread to the amd64 build.deischen2003-08-081-0/+3
|
* Remove stale DCE 1.1 pointers to the IBM site. The URLs aren't validmarcel2003-08-088-8/+0
| | | | anymore. This also fixes long line bugs caused by the lengthy URLs :-)
* Fix markup for uuid_equal()marcel2003-08-081-1/+2
|
* Fix two (2) bugs in one (1) statement:marcel2003-08-081-1/+4
| | | | | | | | | | | | | o fix the len argument of memcmp(3) to be the size of the node field of the uuid structure, not the size of the uuid structure itself. We're comparing the node fields... o uuid_compare(3) is specified to return -1, 0 or 1, depending on the outcome of the comparison. memcmp(3) returns the difference between the first differing bytes. Hence, we cannot ever return the return value of memcmp(3) as-is. PR: standards/55370 Submitted by: Konstantin Oznobihin <bork@rsu.ru>
* Implement signalcontext.jake2003-08-082-2/+78
|
* Allow gcc driver to process -r option iself, do not use -Wl,-r tokan2003-08-082-2/+2
| | | | | | | bypass it. Doing otherwise did not allow compiler to detect and disable conflicting options generated from specs. Reported by: jake
* Implement mblen(s, n) as mbtowc(NULL, s, n) to avoid calling sgetrune()tjr2003-08-071-26/+9
| | | | | and to simplify things. This is only valid until we start supporting state-dependent encodings.
* Implement mbstowcs() as a wrapper around mbsrtowcs(), and wcstombs()tjr2003-08-072-115/+24
| | | | as a wrapper around wcsrtombs().
* Grok async contexts. When a thread is interrupted and an upcallmarcel2003-08-074-18/+82
| | | | | | | | | | | | | | | | | | | | | happens, the context of the interrupted thread is exported to userland. Unlike most contexts, it will be an async context and we cannot easily use our existing functions to set such a context. To avoid a lot of complexity that may possibly interfere with the common case, we simply let the kernel deal with it. However, we don't use the EPC based syscall path to invoke setcontext(2). No, we use the break-based syscall path. That way the trapframe will be compatible with the context we're trying to restore and we save the kernel a lot of trouble. The kind of trouble we did not want to go though ourselves... However, we also need to set the threads mailbox and there's no syscall to help us out. To avoid creating a new syscall, we use the context itself to pass the information to the kernel so that the kernel can update the mailbox. This involves setting a flag (_MC_FLAGS_KSE_SET_MBOX) and setting ifa (the address) and isr (the value).
* Implement mbtowc() in terms of mbrtowc(), and wctomb() in terms of wcrtomb().tjr2003-08-072-53/+42
|
* Implement btowc() in terms of mbrtowc() instead of sgetrune(), andtjr2003-08-072-10/+27
| | | | | | | | | wctob() in terms of wcrtomb() instead of sputrune(). There should be no functional differences, but there may be a small performance hit because we make an extra function call. The aim here is to have as few functions as possible calling s{get,put}rune() to make it easier to remove them in the future.
* Document that connect(2) can return EINTR, and that ityar2003-08-061-3/+6
| | | | can return EALREADY for a socket in blocking mode as well.
* Fix a typo. s/Line/Like/deischen2003-08-062-2/+2
|
* Avoid a level of indirection to get from the thread pointer to themarcel2003-08-064-78/+54
| | | | | | | | | | | TCB. We know that the thread pointer points to &tcb->tcb_tp, so all we have to do is subtract offsetof(struct tcb, tcb_tp) from the thread pointer to get to the TCB. Any reasonably smart compiler will translate accesses to fields in the TCB as negative offsets from TP. In _tcb_set() make sure the fake TCB gets a pointer to the current KCB, just like any other TCB. This fixes a NULL-pointer dereference in _thr_ref_add() when it tried to get the current KSE.
OpenPOWER on IntegriCloud