On Tuesday 28 March 2006 11:30, Dag-Erling Smørgrav wrote: > John Baldwin <[EMAIL PROTECTED]> writes: > > On Tuesday 28 March 2006 09:34, Dag-Erling Smorgrav wrote: > > > Log: > > > Use wrapper macros for atomic pointer operations in order to perform the > > > correct casts. This should probably be merged to other architectures. > > It should really be uintptr_t rather than u_int. > > I realize that, but I wasn't sure I could safely assume that uintptr_t > is defined - and by definition, at this point in the code, we know > that u_int is compatible with a pointer.
Hmm, I think you can assume that because sparc64's atomic.h uses uintptr_t. I'd prefer it as it would reduce diff's with other archs as well (I tend to do diff's between files in sys/i386 and sys/amd64). One reason for not having the casts, btw, is that you lose type checking. Requiring the caller to add the casts in places that aren't operating on uintptr_t's (note that the mutex and rwlock code both do operate on uintptr_t's) should force them to have to think (somewhat) and make sure they are really operating on a pointer and not an int, etc. Maybe that level of typechecking isn't needed and perhaps I'm being overly paranoid due to all the (older) code that assumes sizeof(int) == sizeof(ptr). -- John Baldwin <[EMAIL PROTECTED]> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"
