xref: /plan9-contrib/sys/src/libc/9sys/nsec.c (revision a7446366afa55530a840c4858951c70e89522591)
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 Colombier nsec(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