Rama Krishna wrote:

Hi,

I have found cas32() atomic function in </usr/include/sys/atomic.h> (and also there is another atomic.h header file in </usr/include/atomic.h> but this header file does not have any cas32() function declarations) the declaration of cas32 in <sys/atomic.h> is as follows
extern uint32_t cas32(uint32_t *target, uint32_t cmp, uint32_t newval);
extern ulong_t caslong(ulong_t *target, ulong_t cmp, ulong_t newval);
extern uint64_t cas64(uint64_t *target, uint64_t cmp, uint64_t newval);
extern void *casptr(void *target, void *cmp, void *newval);
extern uint8_t cas8(uint8_t *target, uint8_t cmp, uint8_t newval);
  The header documents those functions as Legacy Kernel interfaces that
  will go away. So those are only for the Kernel and are deprecated.

  You should be be able to use the atomic_* functions. Like atomic_cas_32
  in your case. For more details:   man  atomic_cas_32

Regards,
Moinak.

But the problem is when iam using these functions in c programs and compiling using gcc it is showing the following error.
-------------------------------------------------------------------------------
Undefined                       first referenced
symbol                             in file
cas32                               /var/tmp//ccQcsnev.o
--------------------------------------------------------------------------------
And if i use the function other than cas32 group of instruction such as atomic_or_uint()
whose declaration is extern void atomic_or_uint(uint_t *target, uint_t bits);
in <sys/atomic.h> it is giving no error where as for CAS32 it  showing as 
undefined symbol.Why it is giving like that we are not able to know.Is it the case 
that CAS32 instruction only available in Kernel mode and not available to user 
mode.Please inform us if anyone knows how to use cas32() instruction in the user C 
programs.As this is usefull for writing Nonblocking versions of stacks and Queues.Is 
there any way to write
our own atomic functions?


Rama
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
[email protected]

_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to