tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: dtrace and ZFS update
More of my unprofessional opinion since we'll need all the help we can
get...
+void *
+dtrace_casptr(volatile void *target, volatile void *cmp, volatile void *new)
+*/
+EENTRY(dtrace_casptr)
+ENTRY(dtrace_cas32)
+#if __ARM_ARCH >= 6
+
+1: ldrex r3, [r0] /* Load target */
+ cmp r3, r1 /* Check if *target == cmp */
+ bne 2f /* No, return */
+ strex ip, r2, [r0] /* Store new to target */
+ cmp ip, #0 /* Did the store succeed? */
+ bne 1b /* No, try again */
+2: mov r0, r3 /* Return the value loaded from target */
+ RET
+
..
Surely we have a function like this already, does dtrace really
need its own asm implementation>?
+static int
+log2(int size)
+{
+ switch (size) {
+ case 1: return (0);
+ case 2: return (1);
+ case 4: return (2);
+ case 8: return (3);
+ }
+ return (0);
+}
Using the name of a standard C function differently sounds dangerous
Home |
Main Index |
Thread Index |
Old Index