예제 #1
0
파일: devcons.c 프로젝트: vrthra/9front-tmp
/*
 *  set any of the following
 *	- time in nsec
 *	- nsec trim applied over some seconds
 *	- clock frequency
 */
static int
writebintime(char *buf, int n)
{
	uchar *p;
	vlong delta;
	long period;

	n--;
	p = (uchar*)buf + 1;
	switch(*buf){
	case 'n':
		if(n < sizeof(vlong))
			error(Ebadtimectl);
		le2vlong(&delta, p);
		todset(delta, 0, 0);
		break;
	case 'd':
		if(n < sizeof(vlong)+sizeof(long))
			error(Ebadtimectl);
		p = le2vlong(&delta, p);
		le2long(&period, p);
		todset(-1, delta, period);
		break;
	case 'f':
		if(n < sizeof(uvlong))
			error(Ebadtimectl);
		le2vlong(&fasthz, p);
		if(fasthz <= 0)
			error(Ebadtimectl);
		todsetfreq(fasthz);
		break;
	}
	return n;
}
예제 #2
0
파일: devcons.c 프로젝트: Requaos/harvey
/*
 *  set any of the following
 *	- time in nsec
 *	- nsec trim applied over some seconds
 *	- clock frequency
 */
static int
writebintime(char *buf, int n)
{
	uint8_t *p;
	int64_t delta;
	int32_t period;

	n--;
	p = (uint8_t*)buf + 1;
	switch(*buf){
	case 'n':
		if(n < sizeof(int64_t))
			error(Ebadtimectl);
		le2int64_t(&delta, p);
		todset(delta, 0, 0);
		break;
	case 'd':
		if(n < sizeof(int64_t)+sizeof(int32_t))
			error(Ebadtimectl);
		p = le2int64_t(&delta, p);
		le2long(&period, p);
		todset(-1, delta, period);
		break;
	case 'f':
		if(n < sizeof(uint64_t))
			error(Ebadtimectl);
		le2int64_t(&fasthz, p);
		todsetfreq(fasthz);
		break;
	}
	return n;
}
예제 #3
0
파일: cons.c 프로젝트: ihategit/akaros
/*
 *  set any of the following
 *	- time in nsec
 *	- nsec trim applied over some seconds
 *	- clock frequency
 */
static int writebintime(char *buf, int n)
{
    uint8_t *p;
    int64_t delta = 0;
    long period = 0;

    n--;
    p = (uint8_t *) buf + 1;
    switch (*buf) {
    case 'n':
        if (n < sizeof(int64_t))
            error(EINVAL, ERROR_FIXME);
        le2int64_t(&delta, p);
#if 0
        todset(delta, 0, 0);
#endif
        break;
    case 'd':
        if (n < sizeof(int64_t) + sizeof(long))
            error(EINVAL, ERROR_FIXME);
        p = le2int64_t(&delta, p);
        le2long(&period, p);
#if 0
        todset(-1, delta, period);
#endif
        break;
    case 'f':
        if (n < sizeof(uint64_t))
            error(EINVAL, ERROR_FIXME);
        le2int64_t(&fasthz, p);
        if (fasthz <= 0)
            error(EINVAL, ERROR_FIXME);
#if 0
        todsetfreq(fasthz);
#endif
        break;
    }
    return n;
}