#ifndef TAIA_H #define TAIA_H #include #include #include #include #include "rnd.h" struct tai { uint64_t x; }; struct taia { struct tai sec; uint32_t nano; uint32_t atto; }; static inline void tai_pack(unsigned char *s, struct tai *t) { uint64_t x; x = t->x; s[7] = x & 255; x >>= 8; s[6] = x & 255; x >>= 8; s[5] = x & 255; x >>= 8; s[4] = x & 255; x >>= 8; s[3] = x & 255; x >>= 8; s[2] = x & 255; x >>= 8; s[1] = x & 255; x >>= 8; s[0] = x; } static inline void tai_unpack(unsigned char *s, struct tai *t) { uint64_t x; x = (unsigned char) s[0]; x <<= 8; x += (unsigned char) s[1]; x <<= 8; x += (unsigned char) s[2]; x <<= 8; x += (unsigned char) s[3]; x <<= 8; x += (unsigned char) s[4]; x <<= 8; x += (unsigned char) s[5]; x <<= 8; x += (unsigned char) s[6]; x <<= 8; x += (unsigned char) s[7]; t->x = x; } static inline void taia_pack(unsigned char *s, struct taia *t) { unsigned long x; tai_pack(s, &t->sec); s += 8; x = t->atto; s[7] = x & 255; x >>= 8; s[6] = x & 255; x >>= 8; s[5] = x & 255; x >>= 8; s[4] = x; x = t->nano; s[3] = x & 255; x >>= 8; s[2] = x & 255; x >>= 8; s[1] = x & 255; x >>= 8; s[0] = x; } static inline void taia_unpack(unsigned char *s, struct taia *t) { unsigned long x; tai_unpack(s, &t->sec); s += 8; x = (unsigned char) s[4]; x <<= 8; x += (unsigned char) s[5]; x <<= 8; x += (unsigned char) s[6]; x <<= 8; x += (unsigned char) s[7]; t->atto = x; x = (unsigned char) s[0]; x <<= 8; x += (unsigned char) s[1]; x <<= 8; x += (unsigned char) s[2]; x <<= 8; x += (unsigned char) s[3]; t->nano = x; } #define tai_unix(t, u) \ ((void) ((t)->x = 4611686018427387914ULL + \ (uint64_t) (u))) static inline void taia_now(struct taia *t) { struct timeval now; gettimeofday(&now, NULL); tai_unix(&t->sec, now.tv_sec); t->nano = 1000 * now.tv_usec + 500; /* We don't really have it, but bring some noise in. */ t->atto = secrand(); } static inline void taia_sub(struct taia *res, const struct taia *u, const struct taia *v) { unsigned long unano = u->nano; unsigned long uatto = u->atto; res->sec.x = u->sec.x - v->sec.x; res->nano = unano - v->nano; res->atto = uatto - v->atto; if (res->atto > uatto) { res->atto += 1000000000UL; --res->nano; } if (res->nano > unano) { res->nano += 1000000000UL; --res->sec.x; } } static inline void taia_add(struct taia *res, const struct taia *u, const struct taia *v) { res->sec.x = u->sec.x + v->sec.x; res->nano = u->nano + v->nano; res->atto = u->atto + v->atto; if (res->atto > 999999999UL) { res->atto -= 1000000000UL; ++res->nano; } if (res->nano > 999999999UL) { res->nano -= 1000000000UL; ++res->sec.x; } } static inline int taia_less(const struct taia *t, const struct taia *u) { if (t->sec.x < u->sec.x) return 1; if (t->sec.x > u->sec.x) return 0; if (t->nano < u->nano) return 1; if (t->nano > u->nano) return 0; return t->atto < u->atto; } extern bool taia_looks_good(struct taia *arr_taia, struct taia *pkt_taia); #endif /* TAIA_H */ 1e9b902c25c868024260d24bb0b1dac1433d'>include/dt-bindings/clock
ModeNameSize
-rw-r--r--alphascale,asm9260.h2695logplain
-rw-r--r--at91.h751logplain
-rw-r--r--ath79-clk.h479logplain
-rw-r--r--axis,artpec6-clkctrl.h1112logplain
-rw-r--r--bcm-cygnus.h3135logplain
-rw-r--r--bcm-ns2.h2915logplain
-rw-r--r--bcm-nsp.h2148logplain
-rw-r--r--bcm21664.h1984logplain
-rw-r--r--bcm281xx.h2456logplain
-rw-r--r--bcm2835-aux.h635logplain
-rw-r--r--bcm2835.h1962logplain
-rw-r--r--berlin2.h1034logplain
-rw-r--r--berlin2q.h695logplain
-rw-r--r--clps711x-clock.h718logplain
-rw-r--r--efm32-cmu.h1112logplain
-rw-r--r--exynos-audss-clk.h597logplain
-rw-r--r--exynos3250.h9083logplain
-rw-r--r--exynos4.h8284logplain
-rw-r--r--exynos4415.h9828logplain
-rw-r--r--exynos5250.h4616logplain
-rw-r--r--exynos5260-clk.h14876logplain
-rw-r--r--exynos5410.h1689logplain
-rw-r--r--exynos5420.h6857logplain
-rw-r--r--exynos5433.h45372logplain
-rw-r--r--exynos5440.h1141logplain
-rw-r--r--exynos7-clk.h5281logplain
-rw-r--r--gxbb-aoclkc.h2866logplain
-rw-r--r--gxbb-clkc.h592logplain
-rw-r--r--hi3516cv300-clock.h1668logplain
-rw-r--r--hi3519-clock.h1328logplain
-rw-r--r--hi3620-clock.h4496logplain
-rw-r--r--hi6220-clock.h4508logplain
-rw-r--r--hip04-clock.h1137logplain
-rw-r--r--histb-clock.h2012logplain
-rw-r--r--hix5hd2-clock.h2415logplain
-rw-r--r--imx1-clock.h1055logplain
-rw-r--r--imx21-clock.h2461logplain
-rw-r--r--imx27-clock.h3494logplain
-rw-r--r--imx5-clock.h7212logplain
-rw-r--r--imx6qdl-clock.h9593logplain
-rw-r--r--imx6sl-clock.h5849logplain
-rw-r--r--imx6sx-clock.h9099logplain
-rw-r--r--imx6ul-clock.h8203logplain
-rw-r--r--imx7d-clock.h15974logplain
-rw-r--r--jz4740-cgu.h1028logplain
-rw-r--r--jz4780-cgu.h2470logplain
-rw-r--r--lpc18xx-ccu.h2134logplain
-rw-r--r--lpc18xx-cgu.h1142logplain
-rw-r--r--lpc32xx-clock.h1633logplain
-rw-r--r--lsi,axm5516-clks.h974logplain
-rw-r--r--marvell,mmp2.h2022logplain
-rw-r--r--marvell,pxa168.h1654logplain
-rw-r--r--marvell,pxa1928.h1535logplain
-rw-r--r--marvell,pxa910.h1598logplain
-rw-r--r--maxim,max77620.h632logplain
-rw-r--r--maxim,max77686.h648logplain
-rw-r--r--maxim,max77802.h630logplain
-rw-r--r--meson8b-clkc.h523logplain
-rw-r--r--microchip,pic32-clock.h1150logplain
-rw-r--r--mpc512x-clock.h2236logplain
-rw-r--r--mt2701-clk.h13832logplain
-rw-r--r--mt8135-clk.h5641logplain
-rw-r--r--mt8173-clk.h9293logplain
-rw-r--r--oxsemi,ox810se.h1002logplain
-rw-r--r--oxsemi,ox820.h1203logplain
-rw-r--r--pistachio-clk.h4863logplain
-rw-r--r--pxa-clock.h1715logplain
-rw-r--r--qcom,gcc-apq8084.h12872logplain
-rw-r--r--qcom,gcc-ipq4019.h5423logplain
-rw-r--r--qcom,gcc-ipq806x.h8574logplain
-rw-r--r--qcom,gcc-mdm9615.h9497logplain
-rw-r--r--qcom,gcc-msm8660.h7932logplain
-rw-r--r--qcom,gcc-msm8916.h6190logplain
-rw-r--r--qcom,gcc-msm8960.h9342logplain
-rw-r--r--qcom,gcc-msm8974.h12340logplain
-rw-r--r--qcom,gcc-msm8994.h4858logplain
-rw-r--r--qcom,gcc-msm8996.h12575logplain
-rw-r--r--qcom,lcc-ipq806x.h899logplain
-rw-r--r--qcom,lcc-mdm9615.h1701logplain
-rw-r--r--qcom,lcc-msm8960.h1616logplain
-rw-r--r--qcom,mmcc-apq8084.h5722logplain
-rw-r--r--qcom,mmcc-msm8960.h4109logplain
-rw-r--r--qcom,mmcc-msm8974.h5223logplain
-rw-r--r--qcom,mmcc-msm8996.h9403logplain
-rw-r--r--qcom,rpmcc.h2101logplain
-rw-r--r--r7s72100-clock.h1218logplain
-rw-r--r--r8a73a4-clock.h1596logplain
-rw-r--r--r8a7740-clock.h1992logplain
-rw-r--r--r8a7743-cpg-mssr.h1269logplain
-rw-r--r--r8a7745-cpg-mssr.h1298logplain
-rw-r--r--r8a7778-clock.h1855logplain
-rw-r--r--r8a7779-clock.h1647logplain
-rw-r--r--r8a7790-clock.h4367logplain
-rw-r--r--r8a7791-clock.h4388logplain
-rw-r--r--r8a7792-clock.h2562logplain
-rw-r--r--r8a7793-clock.h4561logplain
-rw-r--r--r8a7794-clock.h3679logplain
-rw-r--r--r8a7795-cpg-mssr.h1890logplain
-rw-r--r--r8a7796-cpg-mssr.h2066logplain
-rw-r--r--renesas-cpg-mssr.h542logplain
-rw-r--r--rk1108-cru.h6605logplain
-rw-r--r--rk3036-cru.h4584logplain
-rw-r--r--rk3066a-cru.h1068logplain
-rw-r--r--rk3188-cru-common.h6105logplain
-rw-r--r--rk3188-cru.h1435logplain