runit/*: get rid of tai[a] time abstraction, it's too bloaty.

text    data     bss     dec     hex filename
 772537    1058   11092  784687   bf92f busybox.t0/busybox
 772459    1058   11060  784577   bf8c1 busybox.t1/busybox
 772326    1058   11028  784412   bf81c busybox.t2/busybox
 772158    1058   10980  784196   bf744 busybox.t3/busybox
 771490    1055   10988  783533   bf4ad busybox.t4/busybox
This commit is contained in:
Denis Vlasenko
2007-08-20 17:27:40 +00:00
parent 63db27f9f4
commit 45946f8b51
7 changed files with 393 additions and 510 deletions

View File

@@ -25,107 +25,75 @@ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*** byte.h ***/
extern unsigned byte_chr(char *s,unsigned n,int c);
/*** coe.h ***/
extern int coe(int);
/*** direntry.h ***/
#define direntry struct dirent
/*** tai.h ***/
struct tai {
uint64_t x;
};
#define tai_unix(t,u) ((void) ((t)->x = 4611686018427387914ULL + (uint64_t) (u)))
#define TAI_PACK 8
//extern void tai_pack(char *,const struct tai *);
extern void tai_unpack(const char *,struct tai *);
extern void tai_uint(struct tai *,unsigned);
/*** taia.h ***/
struct taia {
struct tai sec;
unsigned long nano; /* 0...999999999 */
unsigned long atto; /* 0...999999999 */
};
//extern void taia_tai(const struct taia *,struct tai *);
extern void taia_now(struct taia *);
extern void taia_add(struct taia *,const struct taia *,const struct taia *);
extern void taia_addsec(struct taia *,const struct taia *,int);
extern void taia_sub(struct taia *,const struct taia *,const struct taia *);
extern void taia_half(struct taia *,const struct taia *);
extern int taia_less(const struct taia *,const struct taia *);
#define TAIA_PACK 16
extern void taia_pack(char *,const struct taia *);
//extern void taia_unpack(const char *,struct taia *);
//#define TAIA_FMTFRAC 19
//extern unsigned taia_fmtfrac(char *,const struct taia *);
extern void taia_uint(struct taia *,unsigned);
/*** fmt_ptime.h ***/
#define FMT_PTIME 30
/* NUL terminated */
extern void fmt_ptime30nul(char *, struct taia *);
/* NOT terminated! */
extern unsigned fmt_taia25(char *, struct taia *);
/*** iopause.h ***/
typedef struct pollfd iopause_fd;
#define IOPAUSE_READ POLLIN
#define IOPAUSE_WRITE POLLOUT
extern void iopause(iopause_fd *,unsigned,struct taia *,struct taia *);
/*** lock.h ***/
//struct tai {
// uint64_t x;
//};
//
//#define tai_unix(t,u) ((void) ((t)->x = 0x400000000000000aULL + (uint64_t) (u)))
//
//#define TAI_PACK 8
//extern void tai_unpack(const char *,struct tai *);
//
//extern void tai_uint(struct tai *,unsigned);
//
//struct taia {
// struct tai sec;
// unsigned long nano; /* 0...999999999 */
// unsigned long atto; /* 0...999999999 */
//};
//
//extern void taia_now(struct taia *);
//
//extern void taia_add(struct taia *,const struct taia *,const struct taia *);
//extern void taia_addsec(struct taia *,const struct taia *,int);
//extern void taia_sub(struct taia *,const struct taia *,const struct taia *);
//extern void taia_half(struct taia *,const struct taia *);
//extern int taia_less(const struct taia *,const struct taia *);
//
//#define TAIA_PACK 16
//extern void taia_pack(char *,const struct taia *);
//
//extern void taia_uint(struct taia *,unsigned);
//
//typedef struct pollfd iopause_fd;
//#define IOPAUSE_READ POLLIN
//#define IOPAUSE_WRITE POLLOUT
//
//extern void iopause(iopause_fd *,unsigned,struct taia *,struct taia *);
extern int lock_ex(int);
extern int lock_un(int);
extern int lock_exnb(int);
/*** open.h ***/
extern int open_read(const char *);
extern int open_excl(const char *);
extern int open_append(const char *);
extern int open_trunc(const char *);
extern int open_write(const char *);
/*** pmatch.h ***/
extern unsigned pmatch(const char *, const char *, unsigned);
/*** str.h ***/
//extern unsigned str_chr(const char *,int); /* never returns NULL */
#define str_diff(s,t) strcmp((s), (t))
#define str_equal(s,t) (!strcmp((s), (t)))
/*
* runsv / supervise / sv stuff
*/
typedef struct svstatus_t {
uint64_t time_be64;
uint32_t time_nsec_be32;
uint32_t pid_le32;
uint8_t paused;
uint8_t want;
uint8_t got_term;
uint8_t run_or_finish;
} svstatus_t;
struct ERR_svstatus_must_be_20_bytes {
char ERR_svstatus_must_be_20_bytes[sizeof(svstatus_t) == 20 ? 1 : -1];
};