Esempio n. 1
0
void bitsetVar::setVar(const char *s) {
    uint32 idx, val;
    if (!get_expression(&s, &idx) || !get_expression(&s, &val)) {
        ScriptError("Expected <index> <value>");
        return;
    }
    if (idx > maxavail) {
        ScriptError("Index out of range (0..%d)", maxavail);
        return;
    }
    ASSIGNBIT(data, idx, val);
}
Esempio n. 2
0
extern u8 DIO_u8WritePinVal(u8 Copy_u8PinIdx, u8 Copy_u8PinVal) {
	u8 local_u8Error;
	u8 local_u8Portno = Copy_u8PinIdx / PIN_PER_PORT;
	u8 local_u8Pinno = Copy_u8PinIdx % PIN_PER_PORT;
	if(Copy_u8PinIdx >NO_PINS)
	{
		local_u8Error = DIO_u8ERROR;
	}
	else
	{
		local_u8Error = DIO_u8OK;
		*DIO_u8PORTArr[local_u8Portno]=ASSIGNBIT(*DIO_u8PORTArr[local_u8Portno],Copy_u8PinVal,local_u8Pinno);
	}
	return local_u8Error;
}
Esempio n. 3
0
static void
EvdevRead (int evdevPort, void *closure)
{
    KdMouseInfo		*mi = closure;
    Kevdev		*ke = mi->driver;
    int			i, n;
    struct input_event	events[NUM_EVENTS];

    n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
    if (n <= 0)
	return;
    n /= sizeof (struct input_event);
    for (i = 0; i < n; i++)
    {
	switch (events[i].type) {
	case EV_SYN:
	    break;
	case EV_KEY:
	    EvdevMotion (mi);
	    ASSIGNBIT(ke->key,events[i].code, events[i].value);
	    if (events[i].code < 0x100)
		ErrorF ("key %d %d\n", events[i].code, events[i].value);
	    else
		ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
	    
	    if (events[i].value==1) {
	      switch (events[i].code) {
	      case BTN_LEFT:
                flags |= KD_BUTTON_1;
                break;
	      case BTN_RIGHT:
		flags |= KD_BUTTON_3;
                break;
	      case BTN_MIDDLE:
                flags |= KD_BUTTON_2;
                break;
	      case BTN_FORWARD:
                flags |= KD_BUTTON_4;
                break;
	      case BTN_BACK:
                flags |= KD_BUTTON_5;
                break;
	      }
	    }
	    else if (events[i].value==0) {
	      switch (events[i].code) {
	      case BTN_LEFT:
                flags &= ~KD_BUTTON_1;
                break;
	      case BTN_RIGHT:
		flags &= ~KD_BUTTON_3;
                break;
	      case BTN_MIDDLE:
                flags &= ~KD_BUTTON_2;
                break;
	      case BTN_FORWARD:
                flags &= ~KD_BUTTON_4;
                break;
	      case BTN_BACK:
                flags &= ~KD_BUTTON_5;
                break;
	      }
	    }
	    KdEnqueueMouseEvent (mi, KD_MOUSE_DELTA | flags, 0, 0);
	    break;
	case EV_REL:
	    ke->rel[events[i].code] += events[i].value;
	    break;
	case EV_ABS:
	    ke->abs[events[i].code] = events[i].value;
	    break;
	}
    }
    EvdevMotion (mi);
}