#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
264376 |
|
12-Apr-2014 |
andreast |
MFC r260610: Described in the man page but not implemented. Here it comes, atomic_swap_32/64. The latter only for powerpc64.
|
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
222198 |
|
22-May-2011 |
attilio |
Merge r221614,221696,221737,221840 from largeSMP project branch: Rewrite atomic operations for powerpc in order to achieve the following: - Produce a type-clean implementation (in terms of functions arguments and returned values) for the primitives. - Fix errors with _long() atomics where they ended up with the wrong arguments to be accepted. - Follow the sys/type.h specifics that define the numbered types starting from standard C types. - Let _ptr() version to not auto-magically cast arguments, but leave the burden on callers, as _ptr() atomic is intended to be used relatively rarely.
Fix cfi in order to support the latest point.
In collabouration with: bde Tested by: andreast, nwhitehorn, jceel MFC after: 2 weeks
|
#
209975 |
|
13-Jul-2010 |
nwhitehorn |
MFppc64:
Kernel sources for 64-bit PowerPC, along with build-system changes to keep 32-bit kernels compiling (build system changes for 64-bit kernels are coming later). Existing 32-bit PowerPC kernel configurations must be updated after this change to specify their architecture.
|
#
185189 |
|
22-Nov-2008 |
marcel |
Unbreak previous commit.
|
#
185162 |
|
22-Nov-2008 |
kmacy |
- bump __FreeBSD version to reflect added buf_ring, memory barriers, and ifnet functions
- add memory barriers to <machine/atomic.h> - update drivers to only conditionally define their own
- add lockless producer / consumer ring buffer - remove ring buffer implementation from cxgb and update its callers
- add if_transmit(struct ifnet *ifp, struct mbuf *m) to ifnet to allow drivers to efficiently manage multiple hardware queues (i.e. not serialize all packets through one ifq) - expose if_qflush to allow drivers to flush any driver managed queues
This work was supported by Bitgravity Inc. and Chelsio Inc.
|
#
178057 |
|
10-Apr-2008 |
marcel |
Fix copy-n-paste typos in free text.
|
#
178027 |
|
08-Apr-2008 |
marcel |
Reimplement atomic_add, atomic_clear, atomic_set and atomic_subtract so that all implemented variants have proper prototypes. The 8-bit, 16-bit and 64-bit variants are not implemented.
This really fixes the current build breakages caused by type casting and struct aliasing rules.
|
#
178010 |
|
08-Apr-2008 |
marcel |
Quick fix for the kernel build breakage in netgraph and the aliasing warning in libthr. A more elaborate fix is in the works that makes sure that all variants have proper inline functions with proper types.
|
#
177276 |
|
16-Mar-2008 |
pjd |
Implement atomic_fetchadd_long() for all architectures and document it.
Reviewed by: attilio, jhb, jeff, kris (as a part of the uidinfo_waitfree.patch)
|
#
173970 |
|
27-Nov-2007 |
jasone |
Define atomic_readandclear_ptr.
|
#
173928 |
|
26-Nov-2007 |
jb |
Implement the _long functions using u_long rather than trying to cast as uint32_t which is defined as unsigned int. gcc doesn't want to consider that there might not be much difference between an int and a long on a 32 bit architecture.
|
#
173742 |
|
19-Nov-2007 |
jb |
Define atomic_cmpset_acq_long and atomic_cmpset_rel_long so that they use casts rather than just assuming that the compiler will DTRT without complaining.
|
#
171334 |
|
10-Jul-2007 |
marcel |
Cast the arguments to atomic_*_ptr() when mapping it to atomic_*_32() This is a minimal fix.
Approved by: re (kensmith)
|
#
150627 |
|
27-Sep-2005 |
jhb |
Add a new atomic_fetchadd() primitive that atomically adds a value to a variable and returns the previous value of the variable.
Tested on: i386, alpha, sparc64, arm (cognet) Reviewed by: arch@ Submitted by: cognet (arm) MFC after: 1 week
|
#
150182 |
|
15-Sep-2005 |
jhb |
Stop using the '+' constraint modifier with inline assembly. The '+' constraint is actually only allowed for register operands. Instead, use separate input and output memory constraints.
Education from: alc Reviewed by: alc Tested on: i386, alpha MFC after: 1 week
|
#
148067 |
|
15-Jul-2005 |
jhb |
Convert the atomic_ptr() operations over to operating on uintptr_t variables rather than void * variables. This makes it easier and simpler to get asm constraints and volatile keywords correct.
MFC after: 3 days Tested on: i386, alpha, sparc64 Compiled on: ia64, powerpc, amd64 Kernel toolchain busted on: arm
|
#
143063 |
|
02-Mar-2005 |
joerg |
netchild's mega-patch to isolate compiler dependencies into a central place.
This moves the dependency on GCC's and other compiler's features into the central sys/cdefs.h file, while the individual source files can then refer to #ifdef __COMPILER_FEATURE_FOO where they by now used to refer to #if __GNUC__ > 3.1415 && __BARC__ <= 42.
By now, GCC and ICC (the Intel compiler) have been actively tested on IA32 platforms by netchild. Extension to other compilers is supposed to be possible, of course.
Submitted by: netchild Reviewed by: various developers on arch@, some time ago
|
#
141106 |
|
01-Feb-2005 |
grehan |
- change all u_int_XX to uint_XX - cast param for atomic_subtract_long, since Netgraph uses it.
|
#
109479 |
|
18-Jan-2003 |
grehan |
Fix bugs with operand ordering and unnecessary sync/eieio ops. Mostly obtained from Alpha atomic.h
Approved by: Benno
|
#
103610 |
|
19-Sep-2002 |
grehan |
Fixed branch labels
Approved by: benno
|
#
91207 |
|
24-Feb-2002 |
benno |
Make atomic_cmpset_32 correctly return 0 on failure.
|
#
78878 |
|
27-Jun-2001 |
benno |
Fix the atomic_*_32 operations. These were written before I had the ability to test them properly and before I had a working knowledge of GCC asm constraints.
|
#
78823 |
|
26-Jun-2001 |
benno |
Don't initialise ret in atomic_cmpset_32. Add more synchronisation.
|
#
78693 |
|
24-Jun-2001 |
benno |
Fix asm constraints for atomic_cmpset_32. This fix may also be needed elsewhere.
|
#
78342 |
|
16-Jun-2001 |
benno |
This commit (along with one pending in sys/dev/ofw and one in sys/conf) give us our first minimal glimpse of PowerPC support.
With this code we can get to the "mountroot>" prompt on my Apple iMac. We can't get any further due to lack of clock and interrupt handling, among other things. This does however mean that pmap and VM are initialising.
We're fairly dependant on OpenFirmware at this point, but I hope to add support for other classes of firmware at a later stage.
Reviewed by: obrien, dfr
|
#
70741 |
|
07-Jan-2001 |
benno |
PowerPC atomic operation functions. Some of these are dependant on an inline function (powerpc_mb()) that is yet to come.
Reviewed by: obrien
|
#
70572 |
|
01-Jan-2001 |
obrien |
Shells for the atomic operations FreeBSD needs. This is just waiting for a budding PowerPC ASM guy to fill in the blanks.
|