22 lines
		
	
	
		
			428 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			428 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "taia.h"
 | |
| 
 | |
| /* XXX: breaks tai encapsulation */
 | |
| 
 | |
| void taia_sub(struct taia *t, struct taia *u, struct taia *v)
 | |
| {
 | |
|   unsigned long unano = u->nano;
 | |
|   unsigned long uatto = u->atto;
 | |
| 
 | |
|   t->sec.x = u->sec.x - v->sec.x;
 | |
|   t->nano = unano - v->nano;
 | |
|   t->atto = uatto - v->atto;
 | |
|   if (t->atto > uatto) {
 | |
|     t->atto += 1000000000UL;
 | |
|     --t->nano;
 | |
|   }
 | |
|   if (t->nano > unano) {
 | |
|     t->nano += 1000000000UL;
 | |
|     --t->sec.x;
 | |
|   }
 | |
| }
 |