History

locking/atomic: add arch_atomic_long*()

Now that all architectures provide arch_{atomic,atomic64}_*(), we can build arch_atomic_long_*() atop these, which can be safely used in noinstr code. The regular atomic_long_*() wrappers are built atop these, as we do for {atomic,atomic64}_*() atop arch_{atomic,atomic64}_*(). We don't provide arch_* versions of the cond_read*() variants, as we don't have arch_* versions of the underlying atomic/atomic64 functions (nor the smp_cond_load*() helpers these are typically based on). Note that the headers in this patch under include/linux/atomic/ are generated by the scripts in scripts/atomic/.

Mark Rutland committed 5 years ago

Commit 67d1b0d1 parent e3d18ce5 files · +916 −333Browse files

Unified · Split

5 files
  1. include/linux/atomic.h +1 −1
  2. include/linux/atomic/atomic-instrumented.h +579 −1
  3. include/linux/atomic/atomic-long.h +329 −329
  4. scripts/atomic/gen-atomic-instrumented.sh +5 −0
  5. scripts/atomic/gen-atomic-long.sh +2 −2
include/linux/atomic.h+1−1
@@ -78,7 +78,7 @@ · 77 unmodified lines
7878 })
7979
8080 #include <linux/atomic/atomic-arch-fallback.h>
81−#include <linux/atomic/atomic-instrumented.h>
8281 #include <linux/atomic/atomic-long.h>
82+#include <linux/atomic/atomic-instrumented.h>
8383
8484 #endif /* _LINUX_ATOMIC_H */
include/linux/atomic/atomic-instrumented.h+579−1
@@ -1177,6 +1177,584 @@ atomic64_dec_if_positive(atomic64_t *v) · 1176 unmodified lines
11771177 return arch_atomic64_dec_if_positive(v);
11781178 }
11791179
1180+static __always_inline long
1181+atomic_long_read(const atomic_long_t *v)
1182+{
1183+ instrument_atomic_read(v, sizeof(*v));
1184+ return arch_atomic_long_read(v);
1185+}
1186+
1187+static __always_inline long
1188+atomic_long_read_acquire(const atomic_long_t *v)
1189+{
1190+ instrument_atomic_read(v, sizeof(*v));
1191+ return arch_atomic_long_read_acquire(v);
1192+}
1193+
1194+static __always_inline void
1195+atomic_long_set(atomic_long_t *v, long i)
1196+{
1197+ instrument_atomic_write(v, sizeof(*v));
1198+ arch_atomic_long_set(v, i);
1199+}
1200+
1201+static __always_inline void
1202+atomic_long_set_release(atomic_long_t *v, long i)
1203+{
1204+ instrument_atomic_write(v, sizeof(*v));
1205+ arch_atomic_long_set_release(v, i);
1206+}
1207+
1208+static __always_inline void
1209+atomic_long_add(long i, atomic_long_t *v)
1210+{
1211+ instrument_atomic_read_write(v, sizeof(*v));
1212+ arch_atomic_long_add(i, v);
1213+}
1214+
1215+static __always_inline long
1216+atomic_long_add_return(long i, atomic_long_t *v)
1217+{
1218+ instrument_atomic_read_write(v, sizeof(*v));
1219+ return arch_atomic_long_add_return(i, v);
1220+}
1221+
1222+static __always_inline long
1223+atomic_long_add_return_acquire(long i, atomic_long_t *v)
1224+{
1225+ instrument_atomic_read_write(v, sizeof(*v));
1226+ return arch_atomic_long_add_return_acquire(i, v);
1227+}
1228+
1229+static __always_inline long
1230+atomic_long_add_return_release(long i, atomic_long_t *v)
1231+{
1232+ instrument_atomic_read_write(v, sizeof(*v));
1233+ return arch_atomic_long_add_return_release(i, v);
1234+}
1235+
1236+static __always_inline long
1237+atomic_long_add_return_relaxed(long i, atomic_long_t *v)
1238+{
1239+ instrument_atomic_read_write(v, sizeof(*v));
1240+ return arch_atomic_long_add_return_relaxed(i, v);
1241+}
1242+
1243+static __always_inline long
1244+atomic_long_fetch_add(long i, atomic_long_t *v)
1245+{
1246+ instrument_atomic_read_write(v, sizeof(*v));
1247+ return arch_atomic_long_fetch_add(i, v);
1248+}
1249+
1250+static __always_inline long
1251+atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
1252+{
1253+ instrument_atomic_read_write(v, sizeof(*v));
1254+ return arch_atomic_long_fetch_add_acquire(i, v);
1255+}
1256+
1257+static __always_inline long
1258+atomic_long_fetch_add_release(long i, atomic_long_t *v)
1259+{
1260+ instrument_atomic_read_write(v, sizeof(*v));
1261+ return arch_atomic_long_fetch_add_release(i, v);
1262+}
1263+
1264+static __always_inline long
1265+atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
1266+{
1267+ instrument_atomic_read_write(v, sizeof(*v));
1268+ return arch_atomic_long_fetch_add_relaxed(i, v);
1269+}
1270+
1271+static __always_inline void
1272+atomic_long_sub(long i, atomic_long_t *v)
1273+{
1274+ instrument_atomic_read_write(v, sizeof(*v));
1275+ arch_atomic_long_sub(i, v);
1276+}
1277+
1278+static __always_inline long
1279+atomic_long_sub_return(long i, atomic_long_t *v)
1280+{
1281+ instrument_atomic_read_write(v, sizeof(*v));
1282+ return arch_atomic_long_sub_return(i, v);
1283+}
1284+
1285+static __always_inline long
1286+atomic_long_sub_return_acquire(long i, atomic_long_t *v)
1287+{
1288+ instrument_atomic_read_write(v, sizeof(*v));
1289+ return arch_atomic_long_sub_return_acquire(i, v);
1290+}
1291+
1292+static __always_inline long
1293+atomic_long_sub_return_release(long i, atomic_long_t *v)
1294+{
1295+ instrument_atomic_read_write(v, sizeof(*v));
1296+ return arch_atomic_long_sub_return_release(i, v);
1297+}
1298+
1299+static __always_inline long
1300+atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
1301+{
1302+ instrument_atomic_read_write(v, sizeof(*v));
1303+ return arch_atomic_long_sub_return_relaxed(i, v);
1304+}
1305+
1306+static __always_inline long
1307+atomic_long_fetch_sub(long i, atomic_long_t *v)
1308+{
1309+ instrument_atomic_read_write(v, sizeof(*v));
1310+ return arch_atomic_long_fetch_sub(i, v);
1311+}
1312+
1313+static __always_inline long
1314+atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
1315+{
1316+ instrument_atomic_read_write(v, sizeof(*v));
1317+ return arch_atomic_long_fetch_sub_acquire(i, v);
1318+}
1319+
1320+static __always_inline long
1321+atomic_long_fetch_sub_release(long i, atomic_long_t *v)
1322+{
1323+ instrument_atomic_read_write(v, sizeof(*v));
1324+ return arch_atomic_long_fetch_sub_release(i, v);
1325+}
1326+
1327+static __always_inline long
1328+atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
1329+{
1330+ instrument_atomic_read_write(v, sizeof(*v));
1331+ return arch_atomic_long_fetch_sub_relaxed(i, v);
1332+}
1333+
1334+static __always_inline void
1335+atomic_long_inc(atomic_long_t *v)
1336+{
1337+ instrument_atomic_read_write(v, sizeof(*v));
1338+ arch_atomic_long_inc(v);
1339+}
1340+
1341+static __always_inline long
1342+atomic_long_inc_return(atomic_long_t *v)
1343+{
1344+ instrument_atomic_read_write(v, sizeof(*v));
1345+ return arch_atomic_long_inc_return(v);
1346+}
1347+
1348+static __always_inline long
1349+atomic_long_inc_return_acquire(atomic_long_t *v)
1350+{
1351+ instrument_atomic_read_write(v, sizeof(*v));
1352+ return arch_atomic_long_inc_return_acquire(v);
1353+}
1354+
1355+static __always_inline long
1356+atomic_long_inc_return_release(atomic_long_t *v)
1357+{
1358+ instrument_atomic_read_write(v, sizeof(*v));
1359+ return arch_atomic_long_inc_return_release(v);
1360+}
1361+
1362+static __always_inline long
1363+atomic_long_inc_return_relaxed(atomic_long_t *v)
1364+{
1365+ instrument_atomic_read_write(v, sizeof(*v));
1366+ return arch_atomic_long_inc_return_relaxed(v);
1367+}
1368+
1369+static __always_inline long
1370+atomic_long_fetch_inc(atomic_long_t *v)
1371+{
1372+ instrument_atomic_read_write(v, sizeof(*v));
1373+ return arch_atomic_long_fetch_inc(v);
1374+}
1375+
1376+static __always_inline long
1377+atomic_long_fetch_inc_acquire(atomic_long_t *v)
1378+{
1379+ instrument_atomic_read_write(v, sizeof(*v));
1380+ return arch_atomic_long_fetch_inc_acquire(v);
1381+}
1382+
1383+static __always_inline long
1384+atomic_long_fetch_inc_release(atomic_long_t *v)
1385+{
1386+ instrument_atomic_read_write(v, sizeof(*v));
1387+ return arch_atomic_long_fetch_inc_release(v);
1388+}
1389+
1390+static __always_inline long
1391+atomic_long_fetch_inc_relaxed(atomic_long_t *v)
1392+{
1393+ instrument_atomic_read_write(v, sizeof(*v));
1394+ return arch_atomic_long_fetch_inc_relaxed(v);
1395+}
1396+
1397+static __always_inline void
1398+atomic_long_dec(atomic_long_t *v)
1399+{
1400+ instrument_atomic_read_write(v, sizeof(*v));
1401+ arch_atomic_long_dec(v);
1402+}
1403+
1404+static __always_inline long
1405+atomic_long_dec_return(atomic_long_t *v)
1406+{
1407+ instrument_atomic_read_write(v, sizeof(*v));
1408+ return arch_atomic_long_dec_return(v);
1409+}
1410+
1411+static __always_inline long
1412+atomic_long_dec_return_acquire(atomic_long_t *v)
1413+{
1414+ instrument_atomic_read_write(v, sizeof(*v));
1415+ return arch_atomic_long_dec_return_acquire(v);
1416+}
1417+
1418+static __always_inline long
1419+atomic_long_dec_return_release(atomic_long_t *v)
1420+{
1421+ instrument_atomic_read_write(v, sizeof(*v));
1422+ return arch_atomic_long_dec_return_release(v);
1423+}
1424+
1425+static __always_inline long
1426+atomic_long_dec_return_relaxed(atomic_long_t *v)
1427+{
1428+ instrument_atomic_read_write(v, sizeof(*v));
1429+ return arch_atomic_long_dec_return_relaxed(v);
1430+}
1431+
1432+static __always_inline long
1433+atomic_long_fetch_dec(atomic_long_t *v)
1434+{
1435+ instrument_atomic_read_write(v, sizeof(*v));
1436+ return arch_atomic_long_fetch_dec(v);
1437+}
1438+
1439+static __always_inline long
1440+atomic_long_fetch_dec_acquire(atomic_long_t *v)
1441+{
1442+ instrument_atomic_read_write(v, sizeof(*v));
1443+ return arch_atomic_long_fetch_dec_acquire(v);
1444+}
1445+
1446+static __always_inline long
1447+atomic_long_fetch_dec_release(atomic_long_t *v)
1448+{
1449+ instrument_atomic_read_write(v, sizeof(*v));
1450+ return arch_atomic_long_fetch_dec_release(v);
1451+}
1452+
1453+static __always_inline long
1454+atomic_long_fetch_dec_relaxed(atomic_long_t *v)
1455+{
1456+ instrument_atomic_read_write(v, sizeof(*v));
1457+ return arch_atomic_long_fetch_dec_relaxed(v);
1458+}
1459+
1460+static __always_inline void
1461+atomic_long_and(long i, atomic_long_t *v)
1462+{
1463+ instrument_atomic_read_write(v, sizeof(*v));
1464+ arch_atomic_long_and(i, v);
1465+}
1466+
1467+static __always_inline long
1468+atomic_long_fetch_and(long i, atomic_long_t *v)
1469+{
1470+ instrument_atomic_read_write(v, sizeof(*v));
1471+ return arch_atomic_long_fetch_and(i, v);
1472+}
1473+
1474+static __always_inline long
1475+atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
1476+{
1477+ instrument_atomic_read_write(v, sizeof(*v));
1478+ return arch_atomic_long_fetch_and_acquire(i, v);
1479+}
1480+
1481+static __always_inline long
1482+atomic_long_fetch_and_release(long i, atomic_long_t *v)
1483+{
1484+ instrument_atomic_read_write(v, sizeof(*v));
1485+ return arch_atomic_long_fetch_and_release(i, v);
1486+}
1487+
1488+static __always_inline long
1489+atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
1490+{
1491+ instrument_atomic_read_write(v, sizeof(*v));
1492+ return arch_atomic_long_fetch_and_relaxed(i, v);
1493+}
1494+
1495+static __always_inline void
1496+atomic_long_andnot(long i, atomic_long_t *v)
1497+{
1498+ instrument_atomic_read_write(v, sizeof(*v));
1499+ arch_atomic_long_andnot(i, v);
1500+}
1501+
1502+static __always_inline long
1503+atomic_long_fetch_andnot(long i, atomic_long_t *v)
1504+{
1505+ instrument_atomic_read_write(v, sizeof(*v));
1506+ return arch_atomic_long_fetch_andnot(i, v);
1507+}
1508+
1509+static __always_inline long
1510+atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
1511+{
1512+ instrument_atomic_read_write(v, sizeof(*v));
1513+ return arch_atomic_long_fetch_andnot_acquire(i, v);
1514+}
1515+
1516+static __always_inline long
1517+atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
1518+{
1519+ instrument_atomic_read_write(v, sizeof(*v));
1520+ return arch_atomic_long_fetch_andnot_release(i, v);
1521+}
1522+
1523+static __always_inline long
1524+atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
1525+{
1526+ instrument_atomic_read_write(v, sizeof(*v));
1527+ return arch_atomic_long_fetch_andnot_relaxed(i, v);
1528+}
1529+
1530+static __always_inline void
1531+atomic_long_or(long i, atomic_long_t *v)
1532+{
1533+ instrument_atomic_read_write(v, sizeof(*v));
1534+ arch_atomic_long_or(i, v);
1535+}
1536+
1537+static __always_inline long
1538+atomic_long_fetch_or(long i, atomic_long_t *v)
1539+{
1540+ instrument_atomic_read_write(v, sizeof(*v));
1541+ return arch_atomic_long_fetch_or(i, v);
1542+}
1543+
1544+static __always_inline long
1545+atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
1546+{
1547+ instrument_atomic_read_write(v, sizeof(*v));
1548+ return arch_atomic_long_fetch_or_acquire(i, v);
1549+}
1550+
1551+static __always_inline long
1552+atomic_long_fetch_or_release(long i, atomic_long_t *v)
1553+{
1554+ instrument_atomic_read_write(v, sizeof(*v));
1555+ return arch_atomic_long_fetch_or_release(i, v);
1556+}
1557+
1558+static __always_inline long
1559+atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
1560+{
1561+ instrument_atomic_read_write(v, sizeof(*v));
1562+ return arch_atomic_long_fetch_or_relaxed(i, v);
1563+}
1564+
1565+static __always_inline void
1566+atomic_long_xor(long i, atomic_long_t *v)
1567+{
1568+ instrument_atomic_read_write(v, sizeof(*v));
1569+ arch_atomic_long_xor(i, v);
1570+}
1571+
1572+static __always_inline long
1573+atomic_long_fetch_xor(long i, atomic_long_t *v)
1574+{
1575+ instrument_atomic_read_write(v, sizeof(*v));
1576+ return arch_atomic_long_fetch_xor(i, v);
1577+}
1578+
1579+static __always_inline long
1580+atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
1581+{
1582+ instrument_atomic_read_write(v, sizeof(*v));
1583+ return arch_atomic_long_fetch_xor_acquire(i, v);
1584+}
1585+
1586+static __always_inline long
1587+atomic_long_fetch_xor_release(long i, atomic_long_t *v)
1588+{
1589+ instrument_atomic_read_write(v, sizeof(*v));
1590+ return arch_atomic_long_fetch_xor_release(i, v);
1591+}
1592+
1593+static __always_inline long
1594+atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
1595+{
1596+ instrument_atomic_read_write(v, sizeof(*v));
1597+ return arch_atomic_long_fetch_xor_relaxed(i, v);
1598+}
1599+
1600+static __always_inline long
1601+atomic_long_xchg(atomic_long_t *v, long i)
1602+{
1603+ instrument_atomic_read_write(v, sizeof(*v));
1604+ return arch_atomic_long_xchg(v, i);
1605+}
1606+
1607+static __always_inline long
1608+atomic_long_xchg_acquire(atomic_long_t *v, long i)
1609+{
1610+ instrument_atomic_read_write(v, sizeof(*v));
1611+ return arch_atomic_long_xchg_acquire(v, i);
1612+}
1613+
1614+static __always_inline long
1615+atomic_long_xchg_release(atomic_long_t *v, long i)
1616+{
1617+ instrument_atomic_read_write(v, sizeof(*v));
1618+ return arch_atomic_long_xchg_release(v, i);
1619+}
1620+
1621+static __always_inline long
1622+atomic_long_xchg_relaxed(atomic_long_t *v, long i)
1623+{
1624+ instrument_atomic_read_write(v, sizeof(*v));
1625+ return arch_atomic_long_xchg_relaxed(v, i);
1626+}
1627+
1628+static __always_inline long
1629+atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
1630+{
1631+ instrument_atomic_read_write(v, sizeof(*v));
1632+ return arch_atomic_long_cmpxchg(v, old, new);
1633+}
1634+
1635+static __always_inline long
1636+atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
1637+{
1638+ instrument_atomic_read_write(v, sizeof(*v));
1639+ return arch_atomic_long_cmpxchg_acquire(v, old, new);
1640+}
1641+
1642+static __always_inline long
1643+atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
1644+{
1645+ instrument_atomic_read_write(v, sizeof(*v));
1646+ return arch_atomic_long_cmpxchg_release(v, old, new);
1647+}
1648+
1649+static __always_inline long
1650+atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
1651+{
1652+ instrument_atomic_read_write(v, sizeof(*v));
1653+ return arch_atomic_long_cmpxchg_relaxed(v, old, new);
1654+}
1655+
1656+static __always_inline bool
1657+atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
1658+{
1659+ instrument_atomic_read_write(v, sizeof(*v));
1660+ instrument_atomic_read_write(old, sizeof(*old));
1661+ return arch_atomic_long_try_cmpxchg(v, old, new);
1662+}
1663+
1664+static __always_inline bool
1665+atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
1666+{
1667+ instrument_atomic_read_write(v, sizeof(*v));
1668+ instrument_atomic_read_write(old, sizeof(*old));
1669+ return arch_atomic_long_try_cmpxchg_acquire(v, old, new);
1670+}
1671+
1672+static __always_inline bool
1673+atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
1674+{
1675+ instrument_atomic_read_write(v, sizeof(*v));
1676+ instrument_atomic_read_write(old, sizeof(*old));
1677+ return arch_atomic_long_try_cmpxchg_release(v, old, new);
1678+}
1679+
1680+static __always_inline bool
1681+atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
1682+{
1683+ instrument_atomic_read_write(v, sizeof(*v));
1684+ instrument_atomic_read_write(old, sizeof(*old));
1685+ return arch_atomic_long_try_cmpxchg_relaxed(v, old, new);
1686+}
1687+
1688+static __always_inline bool
1689+atomic_long_sub_and_test(long i, atomic_long_t *v)
1690+{
1691+ instrument_atomic_read_write(v, sizeof(*v));
1692+ return arch_atomic_long_sub_and_test(i, v);
1693+}
1694+
1695+static __always_inline bool
1696+atomic_long_dec_and_test(atomic_long_t *v)
1697+{
1698+ instrument_atomic_read_write(v, sizeof(*v));
1699+ return arch_atomic_long_dec_and_test(v);
1700+}
1701+
1702+static __always_inline bool
1703+atomic_long_inc_and_test(atomic_long_t *v)
1704+{
1705+ instrument_atomic_read_write(v, sizeof(*v));
1706+ return arch_atomic_long_inc_and_test(v);
1707+}
1708+
1709+static __always_inline bool
1710+atomic_long_add_negative(long i, atomic_long_t *v)
1711+{
1712+ instrument_atomic_read_write(v, sizeof(*v));
1713+ return arch_atomic_long_add_negative(i, v);
1714+}
1715+
1716+static __always_inline long
1717+atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
1718+{
1719+ instrument_atomic_read_write(v, sizeof(*v));
1720+ return arch_atomic_long_fetch_add_unless(v, a, u);
1721+}
1722+
1723+static __always_inline bool
1724+atomic_long_add_unless(atomic_long_t *v, long a, long u)
1725+{
1726+ instrument_atomic_read_write(v, sizeof(*v));
1727+ return arch_atomic_long_add_unless(v, a, u);
1728+}
1729+
1730+static __always_inline bool
1731+atomic_long_inc_not_zero(atomic_long_t *v)
1732+{
1733+ instrument_atomic_read_write(v, sizeof(*v));
1734+ return arch_atomic_long_inc_not_zero(v);
1735+}
1736+
1737+static __always_inline bool
1738+atomic_long_inc_unless_negative(atomic_long_t *v)
1739+{
1740+ instrument_atomic_read_write(v, sizeof(*v));
1741+ return arch_atomic_long_inc_unless_negative(v);
1742+}
1743+
1744+static __always_inline bool
1745+atomic_long_dec_unless_positive(atomic_long_t *v)
1746+{
1747+ instrument_atomic_read_write(v, sizeof(*v));
1748+ return arch_atomic_long_dec_unless_positive(v);
1749+}
1750+
1751+static __always_inline long
1752+atomic_long_dec_if_positive(atomic_long_t *v)
1753+{
1754+ instrument_atomic_read_write(v, sizeof(*v));
1755+ return arch_atomic_long_dec_if_positive(v);
1756+}
1757+
11801758 #define xchg(ptr, ...) \
11811759 ({ \
11821760 typeof(ptr) __ai_ptr = (ptr); \
@@ -1334,4 +1912,4 @@ atomic64_dec_if_positive(atomic64_t *v) · 151 unmodified lines
13341912 })
13351913
13361914 #endif /* _LINUX_ATOMIC_INSTRUMENTED_H */
1337−// 5edd72f105b6f54b7e9492d794abee88e6912d29
1915+// 2a9553f0a9d5619f19151092df5cabbbf16ce835
include/linux/atomic/atomic-long.h+329−329
@@ -24,991 +24,991 @@ typedef atomic_t atomic_long_t; · 23 unmodified lines
2424 #ifdef CONFIG_64BIT
2525
2626 static __always_inline long
27−atomic_long_read(const atomic_long_t *v)
27+arch_atomic_long_read(const atomic_long_t *v)
2828 {
29− return atomic64_read(v);
29+ return arch_atomic64_read(v);
3030 }
3131
3232 static __always_inline long
33−atomic_long_read_acquire(const atomic_long_t *v)
33+arch_atomic_long_read_acquire(const atomic_long_t *v)
3434 {
35− return atomic64_read_acquire(v);
35+ return arch_atomic64_read_acquire(v);
3636 }
3737
3838 static __always_inline void
39−atomic_long_set(atomic_long_t *v, long i)
39+arch_atomic_long_set(atomic_long_t *v, long i)
4040 {
41− atomic64_set(v, i);
41+ arch_atomic64_set(v, i);
4242 }
4343
4444 static __always_inline void
45−atomic_long_set_release(atomic_long_t *v, long i)
45+arch_atomic_long_set_release(atomic_long_t *v, long i)
4646 {
47− atomic64_set_release(v, i);
47+ arch_atomic64_set_release(v, i);
4848 }
4949
5050 static __always_inline void
51−atomic_long_add(long i, atomic_long_t *v)
51+arch_atomic_long_add(long i, atomic_long_t *v)
5252 {
53− atomic64_add(i, v);
53+ arch_atomic64_add(i, v);
5454 }
5555
5656 static __always_inline long
57−atomic_long_add_return(long i, atomic_long_t *v)
57+arch_atomic_long_add_return(long i, atomic_long_t *v)
5858 {
59− return atomic64_add_return(i, v);
59+ return arch_atomic64_add_return(i, v);
6060 }
6161
6262 static __always_inline long
63−atomic_long_add_return_acquire(long i, atomic_long_t *v)
63+arch_atomic_long_add_return_acquire(long i, atomic_long_t *v)
6464 {
65− return atomic64_add_return_acquire(i, v);
65+ return arch_atomic64_add_return_acquire(i, v);
6666 }
6767
6868 static __always_inline long
69−atomic_long_add_return_release(long i, atomic_long_t *v)
69+arch_atomic_long_add_return_release(long i, atomic_long_t *v)
7070 {
71− return atomic64_add_return_release(i, v);
71+ return arch_atomic64_add_return_release(i, v);
7272 }
7373
7474 static __always_inline long
75−atomic_long_add_return_relaxed(long i, atomic_long_t *v)
75+arch_atomic_long_add_return_relaxed(long i, atomic_long_t *v)
7676 {
77− return atomic64_add_return_relaxed(i, v);
77+ return arch_atomic64_add_return_relaxed(i, v);
7878 }
7979
8080 static __always_inline long
81−atomic_long_fetch_add(long i, atomic_long_t *v)
81+arch_atomic_long_fetch_add(long i, atomic_long_t *v)
8282 {
83− return atomic64_fetch_add(i, v);
83+ return arch_atomic64_fetch_add(i, v);
8484 }
8585
8686 static __always_inline long
87−atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
87+arch_atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
8888 {
89− return atomic64_fetch_add_acquire(i, v);
89+ return arch_atomic64_fetch_add_acquire(i, v);
9090 }
9191
9292 static __always_inline long
93−atomic_long_fetch_add_release(long i, atomic_long_t *v)
93+arch_atomic_long_fetch_add_release(long i, atomic_long_t *v)
9494 {
95− return atomic64_fetch_add_release(i, v);
95+ return arch_atomic64_fetch_add_release(i, v);
9696 }
9797
9898 static __always_inline long
99−atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
99+arch_atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
100100 {
101− return atomic64_fetch_add_relaxed(i, v);
101+ return arch_atomic64_fetch_add_relaxed(i, v);
102102 }
103103
104104 static __always_inline void
105−atomic_long_sub(long i, atomic_long_t *v)
105+arch_atomic_long_sub(long i, atomic_long_t *v)
106106 {
107− atomic64_sub(i, v);
107+ arch_atomic64_sub(i, v);
108108 }
109109
110110 static __always_inline long
111−atomic_long_sub_return(long i, atomic_long_t *v)
111+arch_atomic_long_sub_return(long i, atomic_long_t *v)
112112 {
113− return atomic64_sub_return(i, v);
113+ return arch_atomic64_sub_return(i, v);
114114 }
115115
116116 static __always_inline long
117−atomic_long_sub_return_acquire(long i, atomic_long_t *v)
117+arch_atomic_long_sub_return_acquire(long i, atomic_long_t *v)
118118 {
119− return atomic64_sub_return_acquire(i, v);
119+ return arch_atomic64_sub_return_acquire(i, v);
120120 }
121121
122122 static __always_inline long
123−atomic_long_sub_return_release(long i, atomic_long_t *v)
123+arch_atomic_long_sub_return_release(long i, atomic_long_t *v)
124124 {
125− return atomic64_sub_return_release(i, v);
125+ return arch_atomic64_sub_return_release(i, v);
126126 }
127127
128128 static __always_inline long
129−atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
129+arch_atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
130130 {
131− return atomic64_sub_return_relaxed(i, v);
131+ return arch_atomic64_sub_return_relaxed(i, v);
132132 }
133133
134134 static __always_inline long
135−atomic_long_fetch_sub(long i, atomic_long_t *v)
135+arch_atomic_long_fetch_sub(long i, atomic_long_t *v)
136136 {
137− return atomic64_fetch_sub(i, v);
137+ return arch_atomic64_fetch_sub(i, v);
138138 }
139139
140140 static __always_inline long
141−atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
141+arch_atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
142142 {
143− return atomic64_fetch_sub_acquire(i, v);
143+ return arch_atomic64_fetch_sub_acquire(i, v);
144144 }
145145
146146 static __always_inline long
147−atomic_long_fetch_sub_release(long i, atomic_long_t *v)
147+arch_atomic_long_fetch_sub_release(long i, atomic_long_t *v)
148148 {
149− return atomic64_fetch_sub_release(i, v);
149+ return arch_atomic64_fetch_sub_release(i, v);
150150 }
151151
152152 static __always_inline long
153−atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
153+arch_atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
154154 {
155− return atomic64_fetch_sub_relaxed(i, v);
155+ return arch_atomic64_fetch_sub_relaxed(i, v);
156156 }
157157
158158 static __always_inline void
159−atomic_long_inc(atomic_long_t *v)
159+arch_atomic_long_inc(atomic_long_t *v)
160160 {
161− atomic64_inc(v);
161+ arch_atomic64_inc(v);
162162 }
163163
164164 static __always_inline long
165−atomic_long_inc_return(atomic_long_t *v)
165+arch_atomic_long_inc_return(atomic_long_t *v)
166166 {
167− return atomic64_inc_return(v);
167+ return arch_atomic64_inc_return(v);
168168 }
169169
170170 static __always_inline long
171−atomic_long_inc_return_acquire(atomic_long_t *v)
171+arch_atomic_long_inc_return_acquire(atomic_long_t *v)
172172 {
173− return atomic64_inc_return_acquire(v);
173+ return arch_atomic64_inc_return_acquire(v);
174174 }
175175
176176 static __always_inline long
177−atomic_long_inc_return_release(atomic_long_t *v)
177+arch_atomic_long_inc_return_release(atomic_long_t *v)
178178 {
179− return atomic64_inc_return_release(v);
179+ return arch_atomic64_inc_return_release(v);
180180 }
181181
182182 static __always_inline long
183−atomic_long_inc_return_relaxed(atomic_long_t *v)
183+arch_atomic_long_inc_return_relaxed(atomic_long_t *v)
184184 {
185− return atomic64_inc_return_relaxed(v);
185+ return arch_atomic64_inc_return_relaxed(v);
186186 }
187187
188188 static __always_inline long
189−atomic_long_fetch_inc(atomic_long_t *v)
189+arch_atomic_long_fetch_inc(atomic_long_t *v)
190190 {
191− return atomic64_fetch_inc(v);
191+ return arch_atomic64_fetch_inc(v);
192192 }
193193
194194 static __always_inline long
195−atomic_long_fetch_inc_acquire(atomic_long_t *v)
195+arch_atomic_long_fetch_inc_acquire(atomic_long_t *v)
196196 {
197− return atomic64_fetch_inc_acquire(v);
197+ return arch_atomic64_fetch_inc_acquire(v);
198198 }
199199
200200 static __always_inline long
201−atomic_long_fetch_inc_release(atomic_long_t *v)
201+arch_atomic_long_fetch_inc_release(atomic_long_t *v)
202202 {
203− return atomic64_fetch_inc_release(v);
203+ return arch_atomic64_fetch_inc_release(v);
204204 }
205205
206206 static __always_inline long
207−atomic_long_fetch_inc_relaxed(atomic_long_t *v)
207+arch_atomic_long_fetch_inc_relaxed(atomic_long_t *v)
208208 {
209− return atomic64_fetch_inc_relaxed(v);
209+ return arch_atomic64_fetch_inc_relaxed(v);
210210 }
211211
212212 static __always_inline void
213−atomic_long_dec(atomic_long_t *v)
213+arch_atomic_long_dec(atomic_long_t *v)
214214 {
215− atomic64_dec(v);
215+ arch_atomic64_dec(v);
216216 }
217217
218218 static __always_inline long
219−atomic_long_dec_return(atomic_long_t *v)
219+arch_atomic_long_dec_return(atomic_long_t *v)
220220 {
221− return atomic64_dec_return(v);
221+ return arch_atomic64_dec_return(v);
222222 }
223223
224224 static __always_inline long
225−atomic_long_dec_return_acquire(atomic_long_t *v)
225+arch_atomic_long_dec_return_acquire(atomic_long_t *v)
226226 {
227− return atomic64_dec_return_acquire(v);
227+ return arch_atomic64_dec_return_acquire(v);
228228 }
229229
230230 static __always_inline long
231−atomic_long_dec_return_release(atomic_long_t *v)
231+arch_atomic_long_dec_return_release(atomic_long_t *v)
232232 {
233− return atomic64_dec_return_release(v);
233+ return arch_atomic64_dec_return_release(v);
234234 }
235235
236236 static __always_inline long
237−atomic_long_dec_return_relaxed(atomic_long_t *v)
237+arch_atomic_long_dec_return_relaxed(atomic_long_t *v)
238238 {
239− return atomic64_dec_return_relaxed(v);
239+ return arch_atomic64_dec_return_relaxed(v);
240240 }
241241
242242 static __always_inline long
243−atomic_long_fetch_dec(atomic_long_t *v)
243+arch_atomic_long_fetch_dec(atomic_long_t *v)
244244 {
245− return atomic64_fetch_dec(v);
245+ return arch_atomic64_fetch_dec(v);
246246 }
247247
248248 static __always_inline long
249−atomic_long_fetch_dec_acquire(atomic_long_t *v)
249+arch_atomic_long_fetch_dec_acquire(atomic_long_t *v)
250250 {
251− return atomic64_fetch_dec_acquire(v);
251+ return arch_atomic64_fetch_dec_acquire(v);
252252 }
253253
254254 static __always_inline long
255−atomic_long_fetch_dec_release(atomic_long_t *v)
255+arch_atomic_long_fetch_dec_release(atomic_long_t *v)
256256 {
257− return atomic64_fetch_dec_release(v);
257+ return arch_atomic64_fetch_dec_release(v);
258258 }
259259
260260 static __always_inline long
261−atomic_long_fetch_dec_relaxed(atomic_long_t *v)
261+arch_atomic_long_fetch_dec_relaxed(atomic_long_t *v)
262262 {
263− return atomic64_fetch_dec_relaxed(v);
263+ return arch_atomic64_fetch_dec_relaxed(v);
264264 }
265265
266266 static __always_inline void
267−atomic_long_and(long i, atomic_long_t *v)
267+arch_atomic_long_and(long i, atomic_long_t *v)
268268 {
269− atomic64_and(i, v);
269+ arch_atomic64_and(i, v);
270270 }
271271
272272 static __always_inline long
273−atomic_long_fetch_and(long i, atomic_long_t *v)
273+arch_atomic_long_fetch_and(long i, atomic_long_t *v)
274274 {
275− return atomic64_fetch_and(i, v);
275+ return arch_atomic64_fetch_and(i, v);
276276 }
277277
278278 static __always_inline long
279−atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
279+arch_atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
280280 {
281− return atomic64_fetch_and_acquire(i, v);
281+ return arch_atomic64_fetch_and_acquire(i, v);
282282 }
283283
284284 static __always_inline long
285−atomic_long_fetch_and_release(long i, atomic_long_t *v)
285+arch_atomic_long_fetch_and_release(long i, atomic_long_t *v)
286286 {
287− return atomic64_fetch_and_release(i, v);
287+ return arch_atomic64_fetch_and_release(i, v);
288288 }
289289
290290 static __always_inline long
291−atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
291+arch_atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
292292 {
293− return atomic64_fetch_and_relaxed(i, v);
293+ return arch_atomic64_fetch_and_relaxed(i, v);
294294 }
295295
296296 static __always_inline void
297−atomic_long_andnot(long i, atomic_long_t *v)
297+arch_atomic_long_andnot(long i, atomic_long_t *v)
298298 {
299− atomic64_andnot(i, v);
299+ arch_atomic64_andnot(i, v);
300300 }
301301
302302 static __always_inline long
303−atomic_long_fetch_andnot(long i, atomic_long_t *v)
303+arch_atomic_long_fetch_andnot(long i, atomic_long_t *v)
304304 {
305− return atomic64_fetch_andnot(i, v);
305+ return arch_atomic64_fetch_andnot(i, v);
306306 }
307307
308308 static __always_inline long
309−atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
309+arch_atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
310310 {
311− return atomic64_fetch_andnot_acquire(i, v);
311+ return arch_atomic64_fetch_andnot_acquire(i, v);
312312 }
313313
314314 static __always_inline long
315−atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
315+arch_atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
316316 {
317− return atomic64_fetch_andnot_release(i, v);
317+ return arch_atomic64_fetch_andnot_release(i, v);
318318 }
319319
320320 static __always_inline long
321−atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
321+arch_atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
322322 {
323− return atomic64_fetch_andnot_relaxed(i, v);
323+ return arch_atomic64_fetch_andnot_relaxed(i, v);
324324 }
325325
326326 static __always_inline void
327−atomic_long_or(long i, atomic_long_t *v)
327+arch_atomic_long_or(long i, atomic_long_t *v)
328328 {
329− atomic64_or(i, v);
329+ arch_atomic64_or(i, v);
330330 }
331331
332332 static __always_inline long
333−atomic_long_fetch_or(long i, atomic_long_t *v)
333+arch_atomic_long_fetch_or(long i, atomic_long_t *v)
334334 {
335− return atomic64_fetch_or(i, v);
335+ return arch_atomic64_fetch_or(i, v);
336336 }
337337
338338 static __always_inline long
339−atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
339+arch_atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
340340 {
341− return atomic64_fetch_or_acquire(i, v);
341+ return arch_atomic64_fetch_or_acquire(i, v);
342342 }
343343
344344 static __always_inline long
345−atomic_long_fetch_or_release(long i, atomic_long_t *v)
345+arch_atomic_long_fetch_or_release(long i, atomic_long_t *v)
346346 {
347− return atomic64_fetch_or_release(i, v);
347+ return arch_atomic64_fetch_or_release(i, v);
348348 }
349349
350350 static __always_inline long
351−atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
351+arch_atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
352352 {
353− return atomic64_fetch_or_relaxed(i, v);
353+ return arch_atomic64_fetch_or_relaxed(i, v);
354354 }
355355
356356 static __always_inline void
357−atomic_long_xor(long i, atomic_long_t *v)
357+arch_atomic_long_xor(long i, atomic_long_t *v)
358358 {
359− atomic64_xor(i, v);
359+ arch_atomic64_xor(i, v);
360360 }
361361
362362 static __always_inline long
363−atomic_long_fetch_xor(long i, atomic_long_t *v)
363+arch_atomic_long_fetch_xor(long i, atomic_long_t *v)
364364 {
365− return atomic64_fetch_xor(i, v);
365+ return arch_atomic64_fetch_xor(i, v);
366366 }
367367
368368 static __always_inline long
369−atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
369+arch_atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
370370 {
371− return atomic64_fetch_xor_acquire(i, v);
371+ return arch_atomic64_fetch_xor_acquire(i, v);
372372 }
373373
374374 static __always_inline long
375−atomic_long_fetch_xor_release(long i, atomic_long_t *v)
375+arch_atomic_long_fetch_xor_release(long i, atomic_long_t *v)
376376 {
377− return atomic64_fetch_xor_release(i, v);
377+ return arch_atomic64_fetch_xor_release(i, v);
378378 }
379379
380380 static __always_inline long
381−atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
381+arch_atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
382382 {
383− return atomic64_fetch_xor_relaxed(i, v);
383+ return arch_atomic64_fetch_xor_relaxed(i, v);
384384 }
385385
386386 static __always_inline long
387−atomic_long_xchg(atomic_long_t *v, long i)
387+arch_atomic_long_xchg(atomic_long_t *v, long i)
388388 {
389− return atomic64_xchg(v, i);
389+ return arch_atomic64_xchg(v, i);
390390 }
391391
392392 static __always_inline long
393−atomic_long_xchg_acquire(atomic_long_t *v, long i)
393+arch_atomic_long_xchg_acquire(atomic_long_t *v, long i)
394394 {
395− return atomic64_xchg_acquire(v, i);
395+ return arch_atomic64_xchg_acquire(v, i);
396396 }
397397
398398 static __always_inline long
399−atomic_long_xchg_release(atomic_long_t *v, long i)
399+arch_atomic_long_xchg_release(atomic_long_t *v, long i)
400400 {
401− return atomic64_xchg_release(v, i);
401+ return arch_atomic64_xchg_release(v, i);
402402 }
403403
404404 static __always_inline long
405−atomic_long_xchg_relaxed(atomic_long_t *v, long i)
405+arch_atomic_long_xchg_relaxed(atomic_long_t *v, long i)
406406 {
407− return atomic64_xchg_relaxed(v, i);
407+ return arch_atomic64_xchg_relaxed(v, i);
408408 }
409409
410410 static __always_inline long
411−atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
411+arch_atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
412412 {
413− return atomic64_cmpxchg(v, old, new);
413+ return arch_atomic64_cmpxchg(v, old, new);
414414 }
415415
416416 static __always_inline long
417−atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
417+arch_atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
418418 {
419− return atomic64_cmpxchg_acquire(v, old, new);
419+ return arch_atomic64_cmpxchg_acquire(v, old, new);
420420 }
421421
422422 static __always_inline long
423−atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
423+arch_atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
424424 {
425− return atomic64_cmpxchg_release(v, old, new);
425+ return arch_atomic64_cmpxchg_release(v, old, new);
426426 }
427427
428428 static __always_inline long
429−atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
429+arch_atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
430430 {
431− return atomic64_cmpxchg_relaxed(v, old, new);
431+ return arch_atomic64_cmpxchg_relaxed(v, old, new);
432432 }
433433
434434 static __always_inline bool
435−atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
435+arch_atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
436436 {
437− return atomic64_try_cmpxchg(v, (s64 *)old, new);
437+ return arch_atomic64_try_cmpxchg(v, (s64 *)old, new);
438438 }
439439
440440 static __always_inline bool
441−atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
441+arch_atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
442442 {
443− return atomic64_try_cmpxchg_acquire(v, (s64 *)old, new);
443+ return arch_atomic64_try_cmpxchg_acquire(v, (s64 *)old, new);
444444 }
445445
446446 static __always_inline bool
447−atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
447+arch_atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
448448 {
449− return atomic64_try_cmpxchg_release(v, (s64 *)old, new);
449+ return arch_atomic64_try_cmpxchg_release(v, (s64 *)old, new);
450450 }
451451
452452 static __always_inline bool
453−atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
453+arch_atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
454454 {
455− return atomic64_try_cmpxchg_relaxed(v, (s64 *)old, new);
455+ return arch_atomic64_try_cmpxchg_relaxed(v, (s64 *)old, new);
456456 }
457457
458458 static __always_inline bool
459−atomic_long_sub_and_test(long i, atomic_long_t *v)
459+arch_atomic_long_sub_and_test(long i, atomic_long_t *v)
460460 {
461− return atomic64_sub_and_test(i, v);
461+ return arch_atomic64_sub_and_test(i, v);
462462 }
463463
464464 static __always_inline bool
465−atomic_long_dec_and_test(atomic_long_t *v)
465+arch_atomic_long_dec_and_test(atomic_long_t *v)
466466 {
467− return atomic64_dec_and_test(v);
467+ return arch_atomic64_dec_and_test(v);
468468 }
469469
470470 static __always_inline bool
471−atomic_long_inc_and_test(atomic_long_t *v)
471+arch_atomic_long_inc_and_test(atomic_long_t *v)
472472 {
473− return atomic64_inc_and_test(v);
473+ return arch_atomic64_inc_and_test(v);
474474 }
475475
476476 static __always_inline bool
477−atomic_long_add_negative(long i, atomic_long_t *v)
477+arch_atomic_long_add_negative(long i, atomic_long_t *v)
478478 {
479− return atomic64_add_negative(i, v);
479+ return arch_atomic64_add_negative(i, v);
480480 }
481481
482482 static __always_inline long
483−atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
483+arch_atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
484484 {
485− return atomic64_fetch_add_unless(v, a, u);
485+ return arch_atomic64_fetch_add_unless(v, a, u);
486486 }
487487
488488 static __always_inline bool
489−atomic_long_add_unless(atomic_long_t *v, long a, long u)
489+arch_atomic_long_add_unless(atomic_long_t *v, long a, long u)
490490 {
491− return atomic64_add_unless(v, a, u);
491+ return arch_atomic64_add_unless(v, a, u);
492492 }
493493
494494 static __always_inline bool
495−atomic_long_inc_not_zero(atomic_long_t *v)
495+arch_atomic_long_inc_not_zero(atomic_long_t *v)
496496 {
497− return atomic64_inc_not_zero(v);
497+ return arch_atomic64_inc_not_zero(v);
498498 }
499499
500500 static __always_inline bool
501−atomic_long_inc_unless_negative(atomic_long_t *v)
501+arch_atomic_long_inc_unless_negative(atomic_long_t *v)
502502 {
503− return atomic64_inc_unless_negative(v);
503+ return arch_atomic64_inc_unless_negative(v);
504504 }
505505
506506 static __always_inline bool
507−atomic_long_dec_unless_positive(atomic_long_t *v)
507+arch_atomic_long_dec_unless_positive(atomic_long_t *v)
508508 {
509− return atomic64_dec_unless_positive(v);
509+ return arch_atomic64_dec_unless_positive(v);
510510 }
511511
512512 static __always_inline long
513−atomic_long_dec_if_positive(atomic_long_t *v)
513+arch_atomic_long_dec_if_positive(atomic_long_t *v)
514514 {
515− return atomic64_dec_if_positive(v);
515+ return arch_atomic64_dec_if_positive(v);
516516 }
517517
518518 #else /* CONFIG_64BIT */
519519
520520 static __always_inline long
521−atomic_long_read(const atomic_long_t *v)
521+arch_atomic_long_read(const atomic_long_t *v)
522522 {
523− return atomic_read(v);
523+ return arch_atomic_read(v);
524524 }
525525
526526 static __always_inline long
527−atomic_long_read_acquire(const atomic_long_t *v)
527+arch_atomic_long_read_acquire(const atomic_long_t *v)
528528 {
529− return atomic_read_acquire(v);
529+ return arch_atomic_read_acquire(v);
530530 }
531531
532532 static __always_inline void
533−atomic_long_set(atomic_long_t *v, long i)
533+arch_atomic_long_set(atomic_long_t *v, long i)
534534 {
535− atomic_set(v, i);
535+ arch_atomic_set(v, i);
536536 }
537537
538538 static __always_inline void
539−atomic_long_set_release(atomic_long_t *v, long i)
539+arch_atomic_long_set_release(atomic_long_t *v, long i)
540540 {
541− atomic_set_release(v, i);
541+ arch_atomic_set_release(v, i);
542542 }
543543
544544 static __always_inline void
545−atomic_long_add(long i, atomic_long_t *v)
545+arch_atomic_long_add(long i, atomic_long_t *v)
546546 {
547− atomic_add(i, v);
547+ arch_atomic_add(i, v);
548548 }
549549
550550 static __always_inline long
551−atomic_long_add_return(long i, atomic_long_t *v)
551+arch_atomic_long_add_return(long i, atomic_long_t *v)
552552 {
553− return atomic_add_return(i, v);
553+ return arch_atomic_add_return(i, v);
554554 }
555555
556556 static __always_inline long
557−atomic_long_add_return_acquire(long i, atomic_long_t *v)
557+arch_atomic_long_add_return_acquire(long i, atomic_long_t *v)
558558 {
559− return atomic_add_return_acquire(i, v);
559+ return arch_atomic_add_return_acquire(i, v);
560560 }
561561
562562 static __always_inline long
563−atomic_long_add_return_release(long i, atomic_long_t *v)
563+arch_atomic_long_add_return_release(long i, atomic_long_t *v)
564564 {
565− return atomic_add_return_release(i, v);
565+ return arch_atomic_add_return_release(i, v);
566566 }
567567
568568 static __always_inline long
569−atomic_long_add_return_relaxed(long i, atomic_long_t *v)
569+arch_atomic_long_add_return_relaxed(long i, atomic_long_t *v)
570570 {
571− return atomic_add_return_relaxed(i, v);
571+ return arch_atomic_add_return_relaxed(i, v);
572572 }
573573
574574 static __always_inline long
575−atomic_long_fetch_add(long i, atomic_long_t *v)
575+arch_atomic_long_fetch_add(long i, atomic_long_t *v)
576576 {
577− return atomic_fetch_add(i, v);
577+ return arch_atomic_fetch_add(i, v);
578578 }
579579
580580 static __always_inline long
581−atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
581+arch_atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
582582 {
583− return atomic_fetch_add_acquire(i, v);
583+ return arch_atomic_fetch_add_acquire(i, v);
584584 }
585585
586586 static __always_inline long
587−atomic_long_fetch_add_release(long i, atomic_long_t *v)
587+arch_atomic_long_fetch_add_release(long i, atomic_long_t *v)
588588 {
589− return atomic_fetch_add_release(i, v);
589+ return arch_atomic_fetch_add_release(i, v);
590590 }
591591
592592 static __always_inline long
593−atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
593+arch_atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
594594 {
595− return atomic_fetch_add_relaxed(i, v);
595+ return arch_atomic_fetch_add_relaxed(i, v);
596596 }
597597
598598 static __always_inline void
599−atomic_long_sub(long i, atomic_long_t *v)
599+arch_atomic_long_sub(long i, atomic_long_t *v)
600600 {
601− atomic_sub(i, v);
601+ arch_atomic_sub(i, v);
602602 }
603603
604604 static __always_inline long
605−atomic_long_sub_return(long i, atomic_long_t *v)
605+arch_atomic_long_sub_return(long i, atomic_long_t *v)
606606 {
607− return atomic_sub_return(i, v);
607+ return arch_atomic_sub_return(i, v);
608608 }
609609
610610 static __always_inline long
611−atomic_long_sub_return_acquire(long i, atomic_long_t *v)
611+arch_atomic_long_sub_return_acquire(long i, atomic_long_t *v)
612612 {
613− return atomic_sub_return_acquire(i, v);
613+ return arch_atomic_sub_return_acquire(i, v);
614614 }
615615
616616 static __always_inline long
617−atomic_long_sub_return_release(long i, atomic_long_t *v)
617+arch_atomic_long_sub_return_release(long i, atomic_long_t *v)
618618 {
619− return atomic_sub_return_release(i, v);
619+ return arch_atomic_sub_return_release(i, v);
620620 }
621621
622622 static __always_inline long
623−atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
623+arch_atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
624624 {
625− return atomic_sub_return_relaxed(i, v);
625+ return arch_atomic_sub_return_relaxed(i, v);
626626 }
627627
628628 static __always_inline long
629−atomic_long_fetch_sub(long i, atomic_long_t *v)
629+arch_atomic_long_fetch_sub(long i, atomic_long_t *v)
630630 {
631− return atomic_fetch_sub(i, v);
631+ return arch_atomic_fetch_sub(i, v);
632632 }
633633
634634 static __always_inline long
635−atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
635+arch_atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
636636 {
637− return atomic_fetch_sub_acquire(i, v);
637+ return arch_atomic_fetch_sub_acquire(i, v);
638638 }
639639
640640 static __always_inline long
641−atomic_long_fetch_sub_release(long i, atomic_long_t *v)
641+arch_atomic_long_fetch_sub_release(long i, atomic_long_t *v)
642642 {
643− return atomic_fetch_sub_release(i, v);
643+ return arch_atomic_fetch_sub_release(i, v);
644644 }
645645
646646 static __always_inline long
647−atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
647+arch_atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
648648 {
649− return atomic_fetch_sub_relaxed(i, v);
649+ return arch_atomic_fetch_sub_relaxed(i, v);
650650 }
651651
652652 static __always_inline void
653−atomic_long_inc(atomic_long_t *v)
653+arch_atomic_long_inc(atomic_long_t *v)
654654 {
655− atomic_inc(v);
655+ arch_atomic_inc(v);
656656 }
657657
658658 static __always_inline long
659−atomic_long_inc_return(atomic_long_t *v)
659+arch_atomic_long_inc_return(atomic_long_t *v)
660660 {
661− return atomic_inc_return(v);
661+ return arch_atomic_inc_return(v);
662662 }
663663
664664 static __always_inline long
665−atomic_long_inc_return_acquire(atomic_long_t *v)
665+arch_atomic_long_inc_return_acquire(atomic_long_t *v)
666666 {
667− return atomic_inc_return_acquire(v);
667+ return arch_atomic_inc_return_acquire(v);
668668 }
669669
670670 static __always_inline long
671−atomic_long_inc_return_release(atomic_long_t *v)
671+arch_atomic_long_inc_return_release(atomic_long_t *v)
672672 {
673− return atomic_inc_return_release(v);
673+ return arch_atomic_inc_return_release(v);
674674 }
675675
676676 static __always_inline long
677−atomic_long_inc_return_relaxed(atomic_long_t *v)
677+arch_atomic_long_inc_return_relaxed(atomic_long_t *v)
678678 {
679− return atomic_inc_return_relaxed(v);
679+ return arch_atomic_inc_return_relaxed(v);
680680 }
681681
682682 static __always_inline long
683−atomic_long_fetch_inc(atomic_long_t *v)
683+arch_atomic_long_fetch_inc(atomic_long_t *v)
684684 {
685− return atomic_fetch_inc(v);
685+ return arch_atomic_fetch_inc(v);
686686 }
687687
688688 static __always_inline long
689−atomic_long_fetch_inc_acquire(atomic_long_t *v)
689+arch_atomic_long_fetch_inc_acquire(atomic_long_t *v)
690690 {
691− return atomic_fetch_inc_acquire(v);
691+ return arch_atomic_fetch_inc_acquire(v);
692692 }
693693
694694 static __always_inline long
695−atomic_long_fetch_inc_release(atomic_long_t *v)
695+arch_atomic_long_fetch_inc_release(atomic_long_t *v)
696696 {
697− return atomic_fetch_inc_release(v);
697+ return arch_atomic_fetch_inc_release(v);
698698 }
699699
700700 static __always_inline long
701−atomic_long_fetch_inc_relaxed(atomic_long_t *v)
701+arch_atomic_long_fetch_inc_relaxed(atomic_long_t *v)
702702 {
703− return atomic_fetch_inc_relaxed(v);
703+ return arch_atomic_fetch_inc_relaxed(v);
704704 }
705705
706706 static __always_inline void
707−atomic_long_dec(atomic_long_t *v)
707+arch_atomic_long_dec(atomic_long_t *v)
708708 {
709− atomic_dec(v);
709+ arch_atomic_dec(v);
710710 }
711711
712712 static __always_inline long
713−atomic_long_dec_return(atomic_long_t *v)
713+arch_atomic_long_dec_return(atomic_long_t *v)
714714 {
715− return atomic_dec_return(v);
715+ return arch_atomic_dec_return(v);
716716 }
717717
718718 static __always_inline long
719−atomic_long_dec_return_acquire(atomic_long_t *v)
719+arch_atomic_long_dec_return_acquire(atomic_long_t *v)
720720 {
721− return atomic_dec_return_acquire(v);
721+ return arch_atomic_dec_return_acquire(v);
722722 }
723723
724724 static __always_inline long
725−atomic_long_dec_return_release(atomic_long_t *v)
725+arch_atomic_long_dec_return_release(atomic_long_t *v)
726726 {
727− return atomic_dec_return_release(v);
727+ return arch_atomic_dec_return_release(v);
728728 }
729729
730730 static __always_inline long
731−atomic_long_dec_return_relaxed(atomic_long_t *v)
731+arch_atomic_long_dec_return_relaxed(atomic_long_t *v)
732732 {
733− return atomic_dec_return_relaxed(v);
733+ return arch_atomic_dec_return_relaxed(v);
734734 }
735735
736736 static __always_inline long
737−atomic_long_fetch_dec(atomic_long_t *v)
737+arch_atomic_long_fetch_dec(atomic_long_t *v)
738738 {
739− return atomic_fetch_dec(v);
739+ return arch_atomic_fetch_dec(v);
740740 }
741741
742742 static __always_inline long
743−atomic_long_fetch_dec_acquire(atomic_long_t *v)
743+arch_atomic_long_fetch_dec_acquire(atomic_long_t *v)
744744 {
745− return atomic_fetch_dec_acquire(v);
745+ return arch_atomic_fetch_dec_acquire(v);
746746 }
747747
748748 static __always_inline long
749−atomic_long_fetch_dec_release(atomic_long_t *v)
749+arch_atomic_long_fetch_dec_release(atomic_long_t *v)
750750 {
751− return atomic_fetch_dec_release(v);
751+ return arch_atomic_fetch_dec_release(v);
752752 }
753753
754754 static __always_inline long
755−atomic_long_fetch_dec_relaxed(atomic_long_t *v)
755+arch_atomic_long_fetch_dec_relaxed(atomic_long_t *v)
756756 {
757− return atomic_fetch_dec_relaxed(v);
757+ return arch_atomic_fetch_dec_relaxed(v);
758758 }
759759
760760 static __always_inline void
761−atomic_long_and(long i, atomic_long_t *v)
761+arch_atomic_long_and(long i, atomic_long_t *v)
762762 {
763− atomic_and(i, v);
763+ arch_atomic_and(i, v);
764764 }
765765
766766 static __always_inline long
767−atomic_long_fetch_and(long i, atomic_long_t *v)
767+arch_atomic_long_fetch_and(long i, atomic_long_t *v)
768768 {
769− return atomic_fetch_and(i, v);
769+ return arch_atomic_fetch_and(i, v);
770770 }
771771
772772 static __always_inline long
773−atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
773+arch_atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
774774 {
775− return atomic_fetch_and_acquire(i, v);
775+ return arch_atomic_fetch_and_acquire(i, v);
776776 }
777777
778778 static __always_inline long
779−atomic_long_fetch_and_release(long i, atomic_long_t *v)
779+arch_atomic_long_fetch_and_release(long i, atomic_long_t *v)
780780 {
781− return atomic_fetch_and_release(i, v);
781+ return arch_atomic_fetch_and_release(i, v);
782782 }
783783
784784 static __always_inline long
785−atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
785+arch_atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
786786 {
787− return atomic_fetch_and_relaxed(i, v);
787+ return arch_atomic_fetch_and_relaxed(i, v);
788788 }
789789
790790 static __always_inline void
791−atomic_long_andnot(long i, atomic_long_t *v)
791+arch_atomic_long_andnot(long i, atomic_long_t *v)
792792 {
793− atomic_andnot(i, v);
793+ arch_atomic_andnot(i, v);
794794 }
795795
796796 static __always_inline long
797−atomic_long_fetch_andnot(long i, atomic_long_t *v)
797+arch_atomic_long_fetch_andnot(long i, atomic_long_t *v)
798798 {
799− return atomic_fetch_andnot(i, v);
799+ return arch_atomic_fetch_andnot(i, v);
800800 }
801801
802802 static __always_inline long
803−atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
803+arch_atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
804804 {
805− return atomic_fetch_andnot_acquire(i, v);
805+ return arch_atomic_fetch_andnot_acquire(i, v);
806806 }
807807
808808 static __always_inline long
809−atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
809+arch_atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
810810 {
811− return atomic_fetch_andnot_release(i, v);
811+ return arch_atomic_fetch_andnot_release(i, v);
812812 }
813813
814814 static __always_inline long
815−atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
815+arch_atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
816816 {
817− return atomic_fetch_andnot_relaxed(i, v);
817+ return arch_atomic_fetch_andnot_relaxed(i, v);
818818 }
819819
820820 static __always_inline void
821−atomic_long_or(long i, atomic_long_t *v)
821+arch_atomic_long_or(long i, atomic_long_t *v)
822822 {
823− atomic_or(i, v);
823+ arch_atomic_or(i, v);
824824 }
825825
826826 static __always_inline long
827−atomic_long_fetch_or(long i, atomic_long_t *v)
827+arch_atomic_long_fetch_or(long i, atomic_long_t *v)
828828 {
829− return atomic_fetch_or(i, v);
829+ return arch_atomic_fetch_or(i, v);
830830 }
831831
832832 static __always_inline long
833−atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
833+arch_atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
834834 {
835− return atomic_fetch_or_acquire(i, v);
835+ return arch_atomic_fetch_or_acquire(i, v);
836836 }
837837
838838 static __always_inline long
839−atomic_long_fetch_or_release(long i, atomic_long_t *v)
839+arch_atomic_long_fetch_or_release(long i, atomic_long_t *v)
840840 {
841− return atomic_fetch_or_release(i, v);
841+ return arch_atomic_fetch_or_release(i, v);
842842 }
843843
844844 static __always_inline long
845−atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
845+arch_atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
846846 {
847− return atomic_fetch_or_relaxed(i, v);
847+ return arch_atomic_fetch_or_relaxed(i, v);
848848 }
849849
850850 static __always_inline void
851−atomic_long_xor(long i, atomic_long_t *v)
851+arch_atomic_long_xor(long i, atomic_long_t *v)
852852 {
853− atomic_xor(i, v);
853+ arch_atomic_xor(i, v);
854854 }
855855
856856 static __always_inline long
857−atomic_long_fetch_xor(long i, atomic_long_t *v)
857+arch_atomic_long_fetch_xor(long i, atomic_long_t *v)
858858 {
859− return atomic_fetch_xor(i, v);
859+ return arch_atomic_fetch_xor(i, v);
860860 }
861861
862862 static __always_inline long
863−atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
863+arch_atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
864864 {
865− return atomic_fetch_xor_acquire(i, v);
865+ return arch_atomic_fetch_xor_acquire(i, v);
866866 }
867867
868868 static __always_inline long
869−atomic_long_fetch_xor_release(long i, atomic_long_t *v)
869+arch_atomic_long_fetch_xor_release(long i, atomic_long_t *v)
870870 {
871− return atomic_fetch_xor_release(i, v);
871+ return arch_atomic_fetch_xor_release(i, v);
872872 }
873873
874874 static __always_inline long
875−atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
875+arch_atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
876876 {
877− return atomic_fetch_xor_relaxed(i, v);
877+ return arch_atomic_fetch_xor_relaxed(i, v);
878878 }
879879
880880 static __always_inline long
881−atomic_long_xchg(atomic_long_t *v, long i)
881+arch_atomic_long_xchg(atomic_long_t *v, long i)
882882 {
883− return atomic_xchg(v, i);
883+ return arch_atomic_xchg(v, i);
884884 }
885885
886886 static __always_inline long
887−atomic_long_xchg_acquire(atomic_long_t *v, long i)
887+arch_atomic_long_xchg_acquire(atomic_long_t *v, long i)
888888 {
889− return atomic_xchg_acquire(v, i);
889+ return arch_atomic_xchg_acquire(v, i);
890890 }
891891
892892 static __always_inline long
893−atomic_long_xchg_release(atomic_long_t *v, long i)
893+arch_atomic_long_xchg_release(atomic_long_t *v, long i)
894894 {
895− return atomic_xchg_release(v, i);
895+ return arch_atomic_xchg_release(v, i);
896896 }
897897
898898 static __always_inline long
899−atomic_long_xchg_relaxed(atomic_long_t *v, long i)
899+arch_atomic_long_xchg_relaxed(atomic_long_t *v, long i)
900900 {
901− return atomic_xchg_relaxed(v, i);
901+ return arch_atomic_xchg_relaxed(v, i);
902902 }
903903
904904 static __always_inline long
905−atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
905+arch_atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
906906 {
907− return atomic_cmpxchg(v, old, new);
907+ return arch_atomic_cmpxchg(v, old, new);
908908 }
909909
910910 static __always_inline long
911−atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
911+arch_atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
912912 {
913− return atomic_cmpxchg_acquire(v, old, new);
913+ return arch_atomic_cmpxchg_acquire(v, old, new);
914914 }
915915
916916 static __always_inline long
917−atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
917+arch_atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
918918 {
919− return atomic_cmpxchg_release(v, old, new);
919+ return arch_atomic_cmpxchg_release(v, old, new);
920920 }
921921
922922 static __always_inline long
923−atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
923+arch_atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
924924 {
925− return atomic_cmpxchg_relaxed(v, old, new);
925+ return arch_atomic_cmpxchg_relaxed(v, old, new);
926926 }
927927
928928 static __always_inline bool
929−atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
929+arch_atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
930930 {
931− return atomic_try_cmpxchg(v, (int *)old, new);
931+ return arch_atomic_try_cmpxchg(v, (int *)old, new);
932932 }
933933
934934 static __always_inline bool
935−atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
935+arch_atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
936936 {
937− return atomic_try_cmpxchg_acquire(v, (int *)old, new);
937+ return arch_atomic_try_cmpxchg_acquire(v, (int *)old, new);
938938 }
939939
940940 static __always_inline bool
941−atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
941+arch_atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
942942 {
943− return atomic_try_cmpxchg_release(v, (int *)old, new);
943+ return arch_atomic_try_cmpxchg_release(v, (int *)old, new);
944944 }
945945
946946 static __always_inline bool
947−atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
947+arch_atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
948948 {
949− return atomic_try_cmpxchg_relaxed(v, (int *)old, new);
949+ return arch_atomic_try_cmpxchg_relaxed(v, (int *)old, new);
950950 }
951951
952952 static __always_inline bool
953−atomic_long_sub_and_test(long i, atomic_long_t *v)
953+arch_atomic_long_sub_and_test(long i, atomic_long_t *v)
954954 {
955− return atomic_sub_and_test(i, v);
955+ return arch_atomic_sub_and_test(i, v);
956956 }
957957
958958 static __always_inline bool
959−atomic_long_dec_and_test(atomic_long_t *v)
959+arch_atomic_long_dec_and_test(atomic_long_t *v)
960960 {
961− return atomic_dec_and_test(v);
961+ return arch_atomic_dec_and_test(v);
962962 }
963963
964964 static __always_inline bool
965−atomic_long_inc_and_test(atomic_long_t *v)
965+arch_atomic_long_inc_and_test(atomic_long_t *v)
966966 {
967− return atomic_inc_and_test(v);
967+ return arch_atomic_inc_and_test(v);
968968 }
969969
970970 static __always_inline bool
971−atomic_long_add_negative(long i, atomic_long_t *v)
971+arch_atomic_long_add_negative(long i, atomic_long_t *v)
972972 {
973− return atomic_add_negative(i, v);
973+ return arch_atomic_add_negative(i, v);
974974 }
975975
976976 static __always_inline long
977−atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
977+arch_atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
978978 {
979− return atomic_fetch_add_unless(v, a, u);
979+ return arch_atomic_fetch_add_unless(v, a, u);
980980 }
981981
982982 static __always_inline bool
983−atomic_long_add_unless(atomic_long_t *v, long a, long u)
983+arch_atomic_long_add_unless(atomic_long_t *v, long a, long u)
984984 {
985− return atomic_add_unless(v, a, u);
985+ return arch_atomic_add_unless(v, a, u);
986986 }
987987
988988 static __always_inline bool
989−atomic_long_inc_not_zero(atomic_long_t *v)
989+arch_atomic_long_inc_not_zero(atomic_long_t *v)
990990 {
991− return atomic_inc_not_zero(v);
991+ return arch_atomic_inc_not_zero(v);
992992 }
993993
994994 static __always_inline bool
995−atomic_long_inc_unless_negative(atomic_long_t *v)
995+arch_atomic_long_inc_unless_negative(atomic_long_t *v)
996996 {
997− return atomic_inc_unless_negative(v);
997+ return arch_atomic_inc_unless_negative(v);
998998 }
999999
10001000 static __always_inline bool
1001−atomic_long_dec_unless_positive(atomic_long_t *v)
1001+arch_atomic_long_dec_unless_positive(atomic_long_t *v)
10021002 {
1003− return atomic_dec_unless_positive(v);
1003+ return arch_atomic_dec_unless_positive(v);
10041004 }
10051005
10061006 static __always_inline long
1007−atomic_long_dec_if_positive(atomic_long_t *v)
1007+arch_atomic_long_dec_if_positive(atomic_long_t *v)
10081008 {
1009− return atomic_dec_if_positive(v);
1009+ return arch_atomic_dec_if_positive(v);
10101010 }
10111011
10121012 #endif /* CONFIG_64BIT */
10131013 #endif /* _LINUX_ATOMIC_LONG_H */
1014−// c5552b5d78a0c7584dfd03cba985e78a1a86bbed
1014+// e8f0e08ff072b74d180eabe2ad001282b38c2c88
scripts/atomic/gen-atomic-instrumented.sh+5−0
@@ -138,6 +138,11 @@ grep '^[a-z]' "$1" | while read name meta args; do · 137 unmodified lines
138138 gen_proto "${meta}" "${name}" "atomic64" "s64" ${args}
139139 done
140140
141+grep '^[a-z]' "$1" | while read name meta args; do
142+ gen_proto "${meta}" "${name}" "atomic_long" "long" ${args}
143+done
144+
145+
141146 for xchg in "xchg" "cmpxchg" "cmpxchg64" "try_cmpxchg"; do
142147 for order in "" "_acquire" "_release" "_relaxed"; do
143148 gen_xchg "${xchg}${order}" ""
scripts/atomic/gen-atomic-long.sh+2−2
@@ -47,9 +47,9 @@ gen_proto_order_variant() · 46 unmodified lines
4747
4848 cat <<EOF
4949 static __always_inline ${ret}
50−atomic_long_${name}(${params})
50+arch_atomic_long_${name}(${params})
5151 {
52− ${retstmt}${atomic}_${name}(${argscast});
52+ ${retstmt}arch_${atomic}_${name}(${argscast});
5353 }
5454
5555 EOF

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t