History of the file that is called src/OFAtomic.h at check-in 4f9e27d416c5bccb
|
2024-04-03
| ||
| 02:16 | [98096c2476] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 3854) [annotate] [blame] [check-ins using] [diff] | |
|
2024-01-02
| ||
| 17:17 | [44218ac496] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 3646) [annotate] [blame] [check-ins using] [diff] | |
|
2023-04-22
| ||
| 20:22 |
[7b3ed1a98e]
part of check-in [b7a4e61b88]
Rename x86_64 to AMD64
It's just a less awkward name and also what the BSDs use. (check-in: [b7a4e61b88] user: js, branch: trunk, size: 3646) [annotate] [blame] [check-ins using] [diff] | |
|
2023-01-06
| ||
| 09:04 | [bcb517e893] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 3647) [annotate] [blame] [check-ins using] [diff] | |
|
2022-02-12
| ||
| 07:46 | [25c89d25b5] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 3647) [annotate] [blame] [check-ins using] [diff] | |
|
2021-05-01
| ||
| 03:21 | [cd35260cdb] part of check-in [1aedad1588] Move OFAtomic.h variants to src/platform (check-in: [1aedad1588] user: js, branch: trunk, size: 3647) [annotate] [blame] [check-ins using] [diff] | |
|
2021-04-18
| ||
| 20:51 | Renamed src/atomic.h → src/OFAtomic.h. [113d14691a] part of check-in [35de667566] Rename everything in several smaller files (check-in: [35de667566] user: js, branch: new-naming-convention, size: 1184) [annotate] [blame] [check-ins using] [diff] | |
|
2021-01-02
| ||
| 22:04 | [7f44045855] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 1172) [annotate] [blame] [check-ins using] [diff] | |
|
2020-12-12
| ||
| 22:31 |
[6778d083ff]
part of check-in [c859e2230c]
Remove OF_*_ASM defines
Duplicating defines for every CPU architecture is not very useful. (check-in: [c859e2230c] user: js, branch: trunk, size: 1261) [annotate] [blame] [check-ins using] [diff] | |
|
2020-01-02
| ||
| 01:51 | [7db74776cf] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 1223) [annotate] [blame] [check-ins using] [diff] | |
|
2019-01-27
| ||
| 16:13 |
[e53591a99c]
part of check-in [4a6d9cd210]
atomic.h: Don't use assembly implementation on AIX
The assembler on AIX is too limited. (check-in: [4a6d9cd210] user: js, branch: trunk, size: 1220) [annotate] [blame] [check-ins using] [diff] | |
|
2019-01-03
| ||
| 19:13 | [eb0ca3c5ef] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 1200) [annotate] [blame] [check-ins using] [diff] | |
|
2018-01-03
| ||
| 19:49 | [40e749ef18] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 1194) [annotate] [blame] [check-ins using] [diff] | |
|
2017-05-13
| ||
| 19:38 |
[72942f053d]
part of check-in [636533772e]
Do not use atomic_powerpc.h with Apple GCC
Apple GCC uses register 0 for "r" and there seems to be no way to avoid | |
|
2017-01-09
| ||
| 17:36 |
[c91cb23822]
part of check-in [44f45c2e35]
Update copyright
Forgot to add 2017, even though I already did quite some changes in | |
|
2016-07-31
| ||
| 23:41 | [f4bb0c606a] part of check-in [64edae4128] atomic.h: Add support for __atomic_* builtins (check-in: [64edae4128] user: js, branch: trunk, size: 1139) [annotate] [blame] [check-ins using] [diff] | |
| 23:04 |
[f5eb774718]
part of check-in [7115c55ef0]
Split atomic.h into multiple files
Having one file per implementation reduces the #ifdef hell and makes it | |
| 21:54 |
[0145f59683]
part of check-in [24796a2dc1]
Add of_memory_barrier_{producer,consumer}()
Also changes the naming slightly (leave -> exit). This is more similar | |
|
2016-07-30
| ||
| 23:29 |
[50acc02363]
part of check-in [0c3e3da576]
atomic.h: Use the OSAtomic variant without barrier
This matches what the assembly versions does. However, the __sync_* | |
| 21:46 |
[23c4a049f4]
part of check-in [9feaa90358]
of_memory_barrier(): Only use mfence on x86_64
This is only available on x86 with SSE2, while it's always available on | |
| 21:18 |
[c6a5af4a20]
part of check-in [96a128f954]
atomic.h: Improve memory barrier
Replace of_memory_read_barrier() and of_memory_write_barrier() - which Also add an assembly implementation for ARM and ARM64. (check-in: [96a128f954] user: js, branch: trunk, size: 20222) [annotate] [blame] [check-ins using] [diff] | |
|
2016-01-03
| ||
| 00:43 |
[4b9a633048]
part of check-in [cec0f072f8]
Update copyright
While at it, also update the mail address. (check-in: [cec0f072f8] user: js, branch: 0.8, size: 20345) [annotate] [blame] [check-ins using] [diff] | |
| 00:41 |
[17afd94567]
part of check-in [2a27cf3000]
Update copyright
While at it, also update the mail address. (check-in: [2a27cf3000] user: js, branch: trunk, size: 20353) [annotate] [blame] [check-ins using] [diff] | |
|
2015-11-21
| ||
| 18:35 |
[5acf14775c]
part of check-in [d526d938d7]
Remove OF_NULLABLE / OF_NONNULL
Now that Clang switched to use _Nullable and _Nonnull instead of This also defines _Null_unspecified to nothing if unavailable. (check-in: [d526d938d7] user: js, branch: trunk, size: 20349) [annotate] [blame] [check-ins using] [diff] | |
|
2015-10-19
| ||
| 22:15 | [6e95bb1842] part of check-in [1ba08eebc5] Add platform.h & make platform defines consistent (check-in: [1ba08eebc5] user: js, branch: trunk, size: 20397) [annotate] [blame] [check-ins using] [diff] | |
|
2015-06-14
| ||
| 10:45 |
[cc8d24b757]
part of check-in [b7097a67b6]
Add OF_NONNULL / OF_NULLABLE and use that instead
Using __nonnull directly doesn't work on systems using glibc, as glibc | |
|
2015-06-13
| ||
| 22:26 | [907e2f3914] part of check-in [9e76144ef8] Add support for and use the new nullability (check-in: [9e76144ef8] user: js, branch: trunk, size: 20317) [annotate] [blame] [check-ins using] [diff] | |
|
2015-01-03
| ||
| 20:57 | [4c89aaf0ff] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 20020) [annotate] [blame] [check-ins using] [diff] | |
|
2014-05-07
| ||
| 03:19 | [e98a87dd4f] part of check-in [93e23b476c] Add atomic ops assembly implementation for PowerPC (check-in: [93e23b476c] user: js, branch: trunk, size: 20014) [annotate] [blame] [check-ins using] [diff] | |
| 02:46 | [1f71674619] part of check-in [461e70403e] atomic.h: Minor style improvements (check-in: [461e70403e] user: js, branch: trunk, size: 15379) [annotate] [blame] [check-ins using] [diff] | |
|
2014-05-05
| ||
| 01:42 |
[53694a578a]
part of check-in [a199313c53]
atomic.h: Prefer GCC builtins over ASM
The compiler can optimize the builtins better. For example, if the | |
| 01:08 | [838c97203e] part of check-in [a92844520a] Improve atomics API (check-in: [a92844520a] user: js, branch: trunk, size: 15396) [annotate] [blame] [check-ins using] [diff] | |
|
2014-02-22
| ||
| 01:14 | [9f476a30f6] part of check-in [05f4b0a4f0] Rename AMD64 to x86_64 (check-in: [05f4b0a4f0] user: js, branch: trunk, size: 15348) [annotate] [blame] [check-ins using] [diff] | |
|
2014-02-21
| ||
| 17:16 | [a649199f5c] part of check-in [2b00b3cec8] atomic.h: Fix OSAtomic on PPC64 (check-in: [2b00b3cec8] user: js, branch: trunk, size: 15319) [annotate] [blame] [check-ins using] [diff] | |
|
2014-01-31
| ||
| 13:33 | [5741f77007] part of check-in [0a8dca300b] Make sure there's always an #else in abstractions (check-in: [0a8dca300b] user: js, branch: trunk, size: 16475) [annotate] [blame] [check-ins using] [diff] | |
|
2014-01-04
| ||
| 00:24 | [b04aa21809] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 16413) [annotate] [blame] [check-ins using] [diff] | |
|
2013-06-03
| ||
| 15:20 |
[309e66c1ae]
part of check-in [6b15bb229e]
atomic.h: Fix several issues.
* of_atomic_cmpswap_*: Clobber eax by adding it as an (unused) output, Thanks to Florian Zeitz for pointing out most of these issues! (check-in: [6b15bb229e] user: js, branch: trunk, size: 16407) [annotate] [blame] [check-ins using] [diff] | |
|
2013-06-02
| ||
| 21:18 | [a51ca829b8] part of check-in [1c7175697e] atomic.h: Remove a useless xor. (check-in: [1c7175697e] user: js, branch: trunk, size: 16022) [annotate] [blame] [check-ins using] [diff] | |
|
2013-03-14
| ||
| 19:25 | [d4ea46f231] part of check-in [27138ee85b] Add a few memory barriers. (check-in: [27138ee85b] user: js, branch: trunk, size: 16091) [annotate] [blame] [check-ins using] [diff] | |
|
2013-03-04
| ||
| 17:20 |
[a4f95ba0da]
part of check-in [c5ef582958]
Replace BOOL with bool.
The only places where BOOL is left are those where they are required by | |
|
2013-01-15
| ||
| 02:06 | [e354f89407] part of check-in [a7c16ea8b3] Prevent importing atomic.h without atomic ops. (check-in: [a7c16ea8b3] user: js, branch: trunk, size: 15310) [annotate] [blame] [check-ins using] [diff] | |
|
2013-01-12
| ||
| 20:53 | [368de22827] part of check-in [b8ce2359f3] Clean up the feature #ifdef mess. (check-in: [b8ce2359f3] user: js, branch: trunk, size: 15211) [annotate] [blame] [check-ins using] [diff] | |
|
2013-01-09
| ||
| 22:24 | [7c0142eaf1] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 15116) [annotate] [blame] [check-ins using] [diff] | |
|
2012-08-11
| ||
| 13:37 | [ca437e8011] part of check-in [abd6fadbdb] atomic.h: Add cc to clobber list where necessary. (check-in: [abd6fadbdb] user: js, branch: trunk, size: 15110) [annotate] [blame] [check-ins using] [diff] | |
|
2012-07-21
| ||
| 11:42 | [fe64838cdd] part of check-in [196aa3f6fe] Error out if an atomic operation is missing. (check-in: [196aa3f6fe] user: js, branch: trunk, size: 15024) [annotate] [blame] [check-ins using] [diff] | |
|
2012-07-10
| ||
| 22:39 | [cfff404a91] part of check-in [932bc09a31] atomic.h: Work around a bug in GCC's inline asm. (check-in: [932bc09a31] user: js, branch: trunk, size: 14353) [annotate] [blame] [check-ins using] [diff] | |
|
2012-07-07
| ||
| 11:12 | [fe9035342d] part of check-in [61d0a2e987] atomic.h: Add missing cast. (check-in: [61d0a2e987] user: js, branch: trunk, size: 14233) [annotate] [blame] [check-ins using] [diff] | |
|
2012-05-30
| ||
| 22:03 | [874337cdfb] part of check-in [22aea96b79] atomic.h: Use sete instead of the ugly jne. (check-in: [22aea96b79] user: js, branch: trunk, size: 14219) [annotate] [blame] [check-ins using] [diff] | |
|
2012-03-21
| ||
| 09:46 | [0e0a7c1a99] part of check-in [448d8b46f9] Make atomic ops work on an ILP64 AMD64 system. (check-in: [448d8b46f9] user: js, branch: trunk, size: 14225) [annotate] [blame] [check-ins using] [diff] | |
| 09:22 | [6e23ade0bb] part of check-in [19421c0b6b] Fix of_atomic_{add,sub}_ptr on AMD64. (check-in: [19421c0b6b] user: js, branch: trunk, size: 12254) [annotate] [blame] [check-ins using] [diff] | |
|
2012-01-05
| ||
| 00:56 | [1848f8ec6b] part of check-in [ce70e17b38] Update copyright. (check-in: [ce70e17b38] user: js, branch: trunk, size: 11965) [annotate] [blame] [check-ins using] [diff] | |
|
2011-03-11
| ||
| 13:16 | [2048e9e8f7] part of check-in [80b8456b4b] Don't test OFHTTPRequest if we have no threads. (check-in: [80b8456b4b] user: js, branch: trunk, size: 11959) [annotate] [blame] [check-ins using] [diff] | |
|
2011-01-01
| ||
| 20:19 | [672922eb8c] part of check-in [da6b3d26cb] Change license. (check-in: [da6b3d26cb] user: js, branch: trunk, size: 11925) [annotate] [blame] [check-ins using] [diff] | |
|
2010-12-08
| ||
| 23:18 | [d7c1fc83e5] part of check-in [c10cc0f9e2] Fix local labels in inline assembly. (check-in: [c10cc0f9e2] user: js, branch: trunk, size: 11669) [annotate] [blame] [check-ins using] [diff] | |
|
2010-12-05
| ||
| 21:32 |
[c57a56dcf7]
part of check-in [0272a8686f]
Don't use the lahf instruction. Some early AMD64 CPUs don't support it. (check-in: [0272a8686f] user: js, branch: trunk, size: 11675) [annotate] [blame] [check-ins using] [diff] | |
|
2010-11-08
| ||
| 19:24 | [9f0732f9a3] part of check-in [8ae37b5b5f] Fix type of the new *_ptr atomic ops. (check-in: [8ae37b5b5f] user: js, branch: trunk, size: 11754) [annotate] [blame] [check-ins using] [diff] | |
|
2010-10-31
| ||
| 22:18 | [0a81676089] part of check-in [9626d917a6] Check if 64 bit version of OSAtomic* functions is available. (check-in: [9626d917a6] user: js, branch: trunk, size: 11754) [annotate] [blame] [check-ins using] [diff] | |
| 21:59 | [ccf7d7d55b] part of check-in [dd061ee65e] More atomic operations. (check-in: [dd061ee65e] user: js, branch: trunk, size: 11551) [annotate] [blame] [check-ins using] [diff] | |
|
2010-10-06
| ||
| 09:21 |
[4d9142af8f]
part of check-in [7334aa1c81]
Fix x86(_64) asm for of_atomic_{or,and,xor}_32. Improve x86(_64) asm for of_atomic_cmpswap_{32,ptr}. (check-in: [7334aa1c81] user: js, branch: trunk, size: 5432) [annotate] [blame] [check-ins using] [diff] | |
|
2010-10-05
| ||
| 19:31 |
[842f2e4fa9]
part of check-in [6ea2424dad]
Fix x86(_64) asm for of_atomic_{add,sub,inc,dec}_32. of_atomic_{or,and,xor}_32 to follow. (check-in: [6ea2424dad] user: js, branch: trunk, size: 5151) [annotate] [blame] [check-ins using] [diff] | |
|
2010-08-25
| ||
| 21:35 | [527e2eb067] part of check-in [bd2eef5fe1] Assembly implementation for atomic operations (x86 and AMD64). (check-in: [bd2eef5fe1] user: js, branch: trunk, size: 5062) [annotate] [blame] [check-ins using] [diff] | |
|
2010-03-05
| ||
| 11:52 |
[3969906906]
part of check-in [b91a8283fe]
Merge a few changesets from the default branch into the 0.2 branch.
Changesets: | |
|
2010-02-19
| ||
| 16:36 | [dece28bae9] part of check-in [42886185fd] Update copyright. (check-in: [42886185fd] user: js, branch: trunk, size: 3200) [annotate] [blame] [check-ins using] [diff] | |
|
2010-02-05
| ||
| 14:03 | [9d7b0c4eb9] part of check-in [4e1ab53403] Rename of_atomic_*32 to of_atomic_*_32 and add of_atomic_cmpswap_ptr. (check-in: [4e1ab53403] user: js, branch: trunk, size: 3200) [annotate] [blame] [check-ins using] [diff] | |
|
2010-02-02
| ||
| 18:58 | [9244f42746] part of check-in [832188d759] Rename OFMacros.h to macros.h, as it's not a class. (check-in: [832188d759] user: js, branch: trunk, size: 2840) [annotate] [blame] [check-ins using] [diff] | |
|
2010-01-30
| ||
| 12:33 | [465cd0b0aa] part of check-in [8acda3b3fd] Convert more macros to OF_INLINE functions. (check-in: [8acda3b3fd] user: js, branch: trunk, size: 2842) [annotate] [blame] [check-ins using] [diff] | |
| 02:09 |
[243643e5ed]
part of check-in [839f45a293]
Replace some macros with OF_INLINE functions. This way, there won't be a warning about unused results. (check-in: [839f45a293] user: js, branch: trunk, size: 1861) [annotate] [blame] [check-ins using] [diff] | |
| 01:17 | [a1c4c931ea] part of check-in [921b158d17] Change spinlock implementation, add fallbacks and move to threading.h. (check-in: [921b158d17] user: js, branch: trunk, size: 1799) [annotate] [blame] [check-ins using] [diff] | |
|
2010-01-29
| ||
| 15:22 | [a774b233fa] part of check-in [78537d6ff3] Add more atomic ops. (check-in: [78537d6ff3] user: js, branch: trunk, size: 2028) [annotate] [blame] [check-ins using] [diff] | |
|
2010-01-25
| ||
| 22:39 | [ac71df6e7f] part of check-in [212482d8c6] Add of_atomic_cmpswap32 and spinlocks to atomic.h. (check-in: [212482d8c6] user: js, branch: trunk, size: 1294) [annotate] [blame] [check-ins using] [diff] | |
| 22:14 | [10a1c95236] part of check-in [c2af363418] Check for atomic ops in configure.ac. (check-in: [c2af363418] user: js, branch: trunk, size: 824) [annotate] [blame] [check-ins using] [diff] | |
|
2010-01-24
| ||
| 18:54 | Added: [34bfd081ab] part of check-in [b4a9924066] Make retain/release atomic. (check-in: [b4a9924066] user: js, branch: trunk, size: 803) [annotate] [blame] [check-ins using] | |