runit

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

taia_sub.c (462B)


      1 /* Public domain. */
      2 
      3 #include "taia.h"
      4 
      5 /* XXX: breaks tai encapsulation */
      6 
      7 void taia_sub(struct taia *t,const struct taia *u,const struct taia *v)
      8 {
      9   unsigned long unano = u->nano;
     10   unsigned long uatto = u->atto;
     11   
     12   t->sec.x = u->sec.x - v->sec.x;
     13   t->nano = unano - v->nano;
     14   t->atto = uatto - v->atto;
     15   if (t->atto > uatto) {
     16     t->atto += 1000000000UL;
     17     --t->nano;
     18   }
     19   if (t->nano > unano) {
     20     t->nano += 1000000000UL;
     21     --t->sec.x;
     22   }
     23 }