Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
cat <<EOF
${ret} ret = arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args});
__atomic_acquire_fence();
return ret;
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
return raw_${atomic}_add_return${order}(i, v) < 0;
EOF
+3
View File
@@ -0,0 +1,3 @@
cat << EOF
return raw_${atomic}_fetch_add_unless(v, a, u) != u;
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
${retstmt}raw_${atomic}_${pfx}and${sfx}${order}(~i, v);
EOF
@@ -0,0 +1,3 @@
cat <<EOF
return raw_cmpxchg${order}(&v->counter, old, new);
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
${retstmt}raw_${atomic}_${pfx}sub${sfx}${order}(1, v);
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
return raw_${atomic}_dec_return(v) == 0;
EOF
+11
View File
@@ -0,0 +1,11 @@
cat <<EOF
${int} dec, c = raw_${atomic}_read(v);
do {
dec = c - 1;
if (unlikely(dec < 0))
break;
} while (!raw_${atomic}_try_cmpxchg(v, &c, dec));
return dec;
EOF
+10
View File
@@ -0,0 +1,10 @@
cat <<EOF
${int} c = raw_${atomic}_read(v);
do {
if (unlikely(c > 0))
return false;
} while (!raw_${atomic}_try_cmpxchg(v, &c, c - 1));
return true;
EOF
+7
View File
@@ -0,0 +1,7 @@
cat <<EOF
${ret} ret;
__atomic_pre_full_fence();
ret = arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args});
__atomic_post_full_fence();
return ret;
EOF
+10
View File
@@ -0,0 +1,10 @@
cat << EOF
${int} c = raw_${atomic}_read(v);
do {
if (unlikely(c == u))
break;
} while (!raw_${atomic}_try_cmpxchg(v, &c, c + a));
return c;
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
${retstmt}raw_${atomic}_${pfx}add${sfx}${order}(1, v);
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
return raw_${atomic}_inc_return(v) == 0;
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
return raw_${atomic}_add_unless(v, 1, 0);
EOF
+10
View File
@@ -0,0 +1,10 @@
cat <<EOF
${int} c = raw_${atomic}_read(v);
do {
if (unlikely(c < 0))
return false;
} while (!raw_${atomic}_try_cmpxchg(v, &c, c + 1));
return true;
EOF
+12
View File
@@ -0,0 +1,12 @@
cat <<EOF
${int} ret;
if (__native_word(${atomic}_t)) {
ret = smp_load_acquire(&(v)->counter);
} else {
ret = raw_${atomic}_read(v);
__atomic_acquire_fence();
}
return ret;
EOF
+4
View File
@@ -0,0 +1,4 @@
cat <<EOF
__atomic_release_fence();
${retstmt}arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args});
EOF
+8
View File
@@ -0,0 +1,8 @@
cat <<EOF
if (__native_word(${atomic}_t)) {
smp_store_release(&(v)->counter, i);
} else {
__atomic_release_fence();
raw_${atomic}_set(v, i);
}
EOF
+3
View File
@@ -0,0 +1,3 @@
cat <<EOF
return raw_${atomic}_sub_return(i, v) == 0;
EOF
+7
View File
@@ -0,0 +1,7 @@
cat <<EOF
${int} r, o = *old;
r = raw_${atomic}_cmpxchg${order}(v, o, new);
if (unlikely(r != o))
*old = r;
return likely(r == o);
EOF
@@ -0,0 +1,3 @@
cat <<EOF
return raw_xchg${order}(&v->counter, new);
EOF