summaryrefslogtreecommitdiff
path: root/atomic
Commit message (Collapse)AuthorAgeFilesLines
* Address some warnings raised by MSVC-32/64.ylavic2019-04-031-39/+11
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1856873 13f79535-47bb-0310-9956-ffa450edef68
* atomics: follow up to r1841078: provide specific initializer for generic 64bitylavic2019-01-179-12/+37
| | | | | | | | | | The can't be two apr_atomic_init(), atomic/mutex64.c shouldn't implement one since generic/mutex implementation may be used by several platforms. So introduce private apr__atomic_generic64_init() and use it where needed. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1851541 13f79535-47bb-0310-9956-ffa450edef68
* Add in Atomics for 64bit intsjim2018-09-173-0/+335
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1841078 13f79535-47bb-0310-9956-ffa450edef68
* atomic: fix API of atomic_{cas,xchg}ptr() for APR-2.ylavic2016-10-069-20/+20
| | | | | | | | The pointer ought to be declared volatile, not void. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1763666 13f79535-47bb-0310-9956-ffa450edef68
* Fix errors when building on Visual Studio 2013 whilegsmith2015-04-241-49/+8
| | | | | | | | | | maintaining the ability to build on Visual Studio 6 with Windows Server 2003 R2 SDK. PR: 57191 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1675751 13f79535-47bb-0310-9956-ffa450edef68
* Fix amd64 assembler version of apr_atomic_xchgptr()sf2013-04-211-1/+1
| | | | | | | | PR: 51851 Submitted by: Mattias Engdegård <mattiase acm org> git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1470348 13f79535-47bb-0310-9956-ffa450edef68
* Fix PPC atomics to work with gcc 4.0sf2013-04-201-24/+24
| | | | | | | | PR: 54840 Submitted by: Mattias Engdegård <mattiase acm org> git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1470186 13f79535-47bb-0310-9956-ffa450edef68
* Added blocking for MSVC pragma.fuankg2011-03-251-0/+2
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1085462 13f79535-47bb-0310-9956-ffa450edef68
* Some folks are ignoring the Tab prohibitionswrowe2010-03-222-84/+84
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@925965 13f79535-47bb-0310-9956-ffa450edef68
* * Fix some gcc compiler warnings on Solarisrpluem2008-06-041-1/+1
| | | | | | | Patch to atomic/unix/solaris.c submitted by: Henry Jen <henryjen ztune.net> git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@663342 13f79535-47bb-0310-9956-ffa450edef68
* Apparently I'm too wordy, even the compiler agrees.wrowe2007-10-241-1/+1
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@588081 13f79535-47bb-0310-9956-ffa450edef68
* Match win32's volatility declaration (except for mingw)wrowe2007-10-231-1/+3
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@587593 13f79535-47bb-0310-9956-ffa450edef68
* implement apr_atomic_xchgptr() for z/OStrawick2007-10-221-0/+17
| | | | | | | | Submitted by: David Jones <oscaremma gmail.com> reviewed by: trawick git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@587057 13f79535-47bb-0310-9956-ffa450edef68
* Implement apr_atomic_casptr() for z/OS.trawick2007-10-181-0/+24
| | | | | | | | Submitted by: David Jones <oscaremma gmail.com> Reviewed by: trawick git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@585935 13f79535-47bb-0310-9956-ffa450edef68
* * Fix compiler warning.rpluem2007-10-141-1/+1
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@584523 13f79535-47bb-0310-9956-ffa450edef68
* * Dereference mem as it is a double pointer.rpluem2007-10-141-1/+1
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@584522 13f79535-47bb-0310-9956-ffa450edef68
* Cleanup asm constraints (+ operand is both read and written by the instruction)davi2007-08-041-12/+9
| | | | | | | and clobbers. The xchg instruction always asserts the lock signal. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@562765 13f79535-47bb-0310-9956-ffa450edef68
* Prefer solaris builtins even on x86, and fix a compiler warning.davi2007-08-041-1/+1
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@562764 13f79535-47bb-0310-9956-ffa450edef68
* Fix win32 stub for apr_atomic_xchgptr.davi2007-07-121-1/+1
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@555695 13f79535-47bb-0310-9956-ffa450edef68
* Fix a mis-merge of PPC memory barriers.davi2007-07-111-4/+2
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@555258 13f79535-47bb-0310-9956-ffa450edef68
* Introduce apr_atomic_xchgptr, which atomically exchanges a pair of pointerdavi2007-07-108-0/+116
| | | | | | | values. Missing OS/390 implementation. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@554995 13f79535-47bb-0310-9956-ffa450edef68
* New apr_atomic implementation for S/390 native atomic operations.davi2007-07-071-0/+132
| | | | | | | Tested on: RHEL AS 4 (Nahant Update 4), IBM/S390, running under VM (64 bit mode), gcc 3.4.6 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@554095 13f79535-47bb-0310-9956-ffa450edef68
* New apr_atomic implementation for PowerPC native atomic operations.davi2007-07-041-0/+178
| | | | | | | PR: 42806 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553293 13f79535-47bb-0310-9956-ffa450edef68
* New apr_atomic implementation for Solaris 10 native atomic operations.davi2007-07-041-0/+74
| | | | | | | PR: 42806 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553292 13f79535-47bb-0310-9956-ffa450edef68
* New apr_atomic implementation for ia32 (x86 and x86_64) native atomic ↵davi2007-07-041-0/+111
| | | | | | | | | | | | operations, plus apr_atomic_casptr. PR: 42806 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553291 13f79535-47bb-0310-9956-ffa450edef68
* Given a modern compiler, this patch provides fast atomic operations on variousdavi2007-07-041-0/+74
| | | | | | | | | | | | | | platforms (alpha, ia32, ia64, powerpc, etc). Tested on: 2x Pentium D, Ubuntu 7.04, gcc 4.1.2 16x Itanium II, RHEL 5, gcc 4.1.1 PR: 42806 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553290 13f79535-47bb-0310-9956-ffa450edef68
* This patch tries to address some of the apr_atomic problems by reorganizingdavi2007-07-042-464/+192
| | | | | | | | | | the various backends. The generic implementation is used when no specialized implementation fits the defined criterias, or when the user forces the choice. PR: 42806 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553289 13f79535-47bb-0310-9956-ffa450edef68
* Avoid overwriting the hash_mutex table for applications that incorrectly callsdavi2007-06-301-0/+16
| | | | | | | | | | apr_atomic_init(). Noticied by: Tim Jones PR: 42760 git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@552161 13f79535-47bb-0310-9956-ffa450edef68
* Fix up integer type on Solaris 10 (gcc) compiles.jerenkrantz2006-08-311-1/+1
| | | | | | | | | * atomic/unix/apr_atomic.c (apr_atomic_dec32): Match declaration in apr_atomic.h for Solaris 10 implementation. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@438796 13f79535-47bb-0310-9956-ffa450edef68
* Fix the typo.jorton2006-08-034-4/+4
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@428317 13f79535-47bb-0310-9956-ffa450edef68
* Update license header.jorton2006-08-034-24/+24
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@428313 13f79535-47bb-0310-9956-ffa450edef68
* Add __MINGW32__ versions of the Win32 Atomic functions, that all do their ↵pquerna2006-07-151-1/+15
| | | | | | own evil casting -- but it allows 100% of the testatomic cases to pass, when previously, it aborted if you tried to call any of the atomic functions. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@422168 13f79535-47bb-0310-9956-ffa450edef68
* Implement apr_atomics using Solaris' native atomic API.colm2006-06-131-0/+55
| | | | | | | | | | | | | | | | | | * Use each of the atomic_ functions that we can. * atomic_add is NOT implemented, as Solaris' implementation can handle only signed deltas. * each function is conditionalised on its corresponding APR_OVERRIDE_* macro to avoid double-implementation. On Solaris x86/x64 with gcc we implement atomics using our inline assembly. Thank to: Mads Toftum for pointing out atomic_cas git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@413786 13f79535-47bb-0310-9956-ffa450edef68
* These args can't be volatile in MSVC 14.wrowe2006-01-131-1/+1
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@368549 13f79535-47bb-0310-9956-ffa450edef68
* These operations are NOT necessarily function-based on 64 bitwrowe2005-05-161-0/+20
| | | | | | | | | architectures. Performed with inline code, these function cast wrappers broke our API. These original flavors should be present for all 64 bit compiler headers. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@170467 13f79535-47bb-0310-9956-ffa450edef68
* Update copyright year to 2005 and standardize on current copyright owner line.jerenkrantz2005-02-044-4/+8
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@151412 13f79535-47bb-0310-9956-ffa450edef68
* Remove .cvsignore files.jorton2004-11-182-8/+0
| | | | | | | Tipped-of-by: Uwe Zeisberger git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@76269 13f79535-47bb-0310-9956-ffa450edef68
* WIN64: avoid unresolved external error with 64 bit buildake2004-09-201-0/+8
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65336 13f79535-47bb-0310-9956-ffa450edef68
* * atomic/unix/apr_atomic.c: Force use of generic atomics if gccjorton2004-09-131-0/+6
| | | | | | | | defines __STRICT_ANSI__ (e.g. with -std=c89), since inline asm is not supported in that case. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65328 13f79535-47bb-0310-9956-ffa450edef68
* Fixed apr_atomic_dec on NetWare to be thread safeclar2004-09-021-2/+1
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65325 13f79535-47bb-0310-9956-ffa450edef68
* Quiet build breakage on VC6 with the originally shipped includeswrowe2004-04-161-5/+16
| | | | | | | | | | (InterlockedCompareExchangePointer available in later SDK headers.) Few should be compiling on 64 bit cpu's under VC6 anymore, so ignore that edge case. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65063 13f79535-47bb-0310-9956-ffa450edef68
* Relicense.jorton2004-02-281-49/+10
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64930 13f79535-47bb-0310-9956-ffa450edef68
* Relicense APR under Apache License, Version 2.0jerenkrantz2004-02-133-147/+30
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64904 13f79535-47bb-0310-9956-ffa450edef68
* First whack at switching to a single top-level make. This adds a dependencygstein2004-02-052-27/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | upon Python at packaging time, but not at end-user config/build time. As far as I can tell, the build continues to function properly. (out-of-dir config/make not tested, and apr-iconv prolly needs some work) The buildconf scripts now generate a build-outputs.mk file which is included by the root's Makefile (via the build/gen-build.py script). bulid-outputs.mk specifies all of the various files present in the distribution. The top-level Makefiles were simplified to use an $(OBJECTS) symbol rather than 'find'ing them. Similarly, a $(HEADERS) symbol is used for the exports. The corresponding delete-* targets were eliminated since we have a precise set of inputs. The subdirs' Makefiles were removed since they are no longer called/used. The apr-util/uri Makefile was responsible for compiling a C program to generate the uri_delims.h file. That process was replaced by a Python script to generate the header (called by buildconf). The .c and .dsp were left for the Windows build to continue, but that should be revamped. build/apr_rules.mk was revamped somewhat to avoid recursion, but a lot of cleanup is still needed. Much of the recursive/local/x- logic is no longer needed and can be elimianated. rules.mk was created for inclusion by N makefiles, but that isn't really true any more, so it could probably be tossed (caveat: test/Makefile). Saved for a phase 2. Some additional work was added to properly clean up files in */build/, rather than relying on a makefile in there. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64891 13f79535-47bb-0310-9956-ffa450edef68
* Clean up configure logic for enabling "nonportable" atomics: don'tjorton2004-01-061-2/+6
| | | | | | | | | | | | | | | | export the result via apr.h, and enable use of inline asm by default on ppc64 and x86_64. * configure.in: Define USE_GENERIC_ATOMICS on i[456]86 unless --enable-nonportable-atomics was used. * include/apr.h.in: Remove APR_FORCE_GENERIC_ATOMICS. * atomic/unix/apr_atomic.c: Check for !defined(USE_GENERIC_ATOMICS) rather than defined(APR_FORCE_GENERIC_ATOMICS). git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64861 13f79535-47bb-0310-9956-ffa450edef68
* * atomic/unix/apr_atomic.c: Enable x86 asm on AMD64.jorton2004-01-061-1/+2
| | | | git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64859 13f79535-47bb-0310-9956-ffa450edef68
* * atomic/solaris_sparc: Remove now-unused leftovers ofjorton2003-12-313-33/+0
| | | | | | | Solaris/SPARC-specific atomics. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64854 13f79535-47bb-0310-9956-ffa450edef68
* * apr_atomic.c: Remove use of atomic_* from FreeBSD'sjorton2003-12-311-30/+0
| | | | | | | | machine/atomic.h, these don't return values and aren't usable from userspace on more arches than just i386. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64853 13f79535-47bb-0310-9956-ffa450edef68
* Review of x86 asm, fixing intel_atomic_add32 with gcc 2.7.2.1 whichjorton2003-12-161-13/+10
| | | | | | | | | | | | | | | | doesn't allow the '+' constraint on an output operand. * apr_atomic.c (apr_atomic_cas32, apr_atomic_sub32): Condition code register is clobbered. (intel_atomic_add32): Use separate input operands rather than read/write output operands; clobber cc. (apr_atomic_dec32): Simplify by two instructions to output an 8-bit value; clobber cc. Submitted by: David Howells <dhowells@redhat.com> git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64839 13f79535-47bb-0310-9956-ffa450edef68
* enable i386 atomics for gcc on any platform...trawick2003-12-151-2/+1
| | | | | | | | | it is expected that there are relatively few (or zero) platforms where it would be used where it won't work git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64837 13f79535-47bb-0310-9956-ffa450edef68