From c71344185cc93d9322513a1d9506cb14b1c308a2 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 9 Oct 2026 00:59:02 +0000 Subject: But this day is not today, so screw it. We gotta keep em separated --- src/include/s6-rc/repo.h | 2 ++ src/include/s6-rc/s6rc-utils.h | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'src/include') diff --git a/src/include/s6-rc/repo.h b/src/include/s6-rc/repo.h index 0607977..6ecec15 100644 --- a/src/include/s6-rc/repo.h +++ b/src/include/s6-rc/repo.h @@ -25,6 +25,8 @@ extern int s6rc_repo_ls (char const *, stralloc *, genalloc *) ; extern char const s6rc_repo_rxnames[4][7] ; +extern uint32_t s6rc_repo_read_major (char const *) ; /* the major a db was compiled with */ + extern int s6rc_repo_makestores (char const *, char const *const *, uint16_t, char *) ; extern int s6rc_repo_fillset (char const *, char const *, char const *const *, uint32_t) ; diff --git a/src/include/s6-rc/s6rc-utils.h b/src/include/s6-rc/s6rc-utils.h index e453ade..1058dd1 100644 --- a/src/include/s6-rc/s6rc-utils.h +++ b/src/include/s6-rc/s6rc-utils.h @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -24,7 +25,18 @@ extern int s6rc_livedir_canon (char const **) ; extern int s6rc_live_state_size (char const *, uint32_t *, uint32_t *) ; extern int s6rc_live_state_read (char const *, unsigned char *, uint32_t) ; -extern uint32_t s6rc_get_major (char const *) ; /* always pass S6RC_VERSION */ -extern uint32_t s6rc_read_major (char const *) ; /* the major a db was compiled with */ +static inline uint32_t s6rc_get_major (char const *s) +{ + size_t len = 0, l ; + uint32_t acc = 0 ; + uint16_t u ; + l = uint16_scan(s + len, &u) ; + if (!l || s[len + l++] != '.') return 0 ; + len += l ; acc = acc << 16 | u ; + l = uint16_scan(s + len, &u) ; + if (!l || s[len + l++] != '.') return 0 ; + len += l ; acc = acc << 16 | u ; + return acc ; +} #endif -- cgit v1.3.1