17dd7cddfSDavid du Colombier #include <u.h> 27dd7cddfSDavid du Colombier #include <libc.h> 37dd7cddfSDavid du Colombier 4*a7446366SDavid du Colombier #define U32(x) (((((((x)[0]<<8)|(x)[1])<<8)|(x)[2])<<8)|(x)[3]) 53468a491SDavid du Colombier 67dd7cddfSDavid du Colombier vlong nsec(void)77dd7cddfSDavid du Colombiernsec(void) 87dd7cddfSDavid du Colombier { 9d95be1c0SDavid du Colombier uchar b[8]; 10*a7446366SDavid du Colombier int f, n; 117dd7cddfSDavid du Colombier 12*a7446366SDavid du Colombier if((f = open("/dev/bintime", OREAD)) >= 0){ 13*a7446366SDavid du Colombier n = pread(f, b, sizeof(b), 0); 143468a491SDavid du Colombier close(f); 15*a7446366SDavid du Colombier if(n == sizeof(b)) 16*a7446366SDavid du Colombier return (u64int)U32(b)<<32 | U32(b+4); 17*a7446366SDavid du Colombier } 183468a491SDavid du Colombier return 0; 193468a491SDavid du Colombier } 20