Esempio n. 1
0
static void notify_act(Widget w, XEvent *event, String *params, Cardinal *n)
{
  CtrlWidget cw = (CtrlWidget)w;
  CtrlPart *c = & cw->ctrl;  
  TF();

  if( ! c->isflip ) {
    c->msg.cmd = MSG_FIRE;
    XtCallCallbacks( w, XtNcallback, (XtPointer) & c->msg );
  }
  else {
    if( c->msg.state == STATE_ARMED ) {
      c->msg.state = STATE_SELECTED;
      c->msg.cmd = MSG_FIRE;
      XtCallCallbacks( w, XtNcallback, (XtPointer) & c->msg );
    }
    else {
      c->msg.state = STATE_ARMED;
      /* make virtual keyboard visible */
      vis_setup_slider_t msg;
      msg.min = c->msg.min_value;
      msg.max = c->msg.max_value;
      msg.cur = c->msg.value;
      sig_send( w, VIS_SETUP_SLIDER, &msg );
    }
  }

  expose(w, NULL, 0);
}
Esempio n. 2
0
static void button_handle_keyboard_event(widget_t *widget, kbd_event_t event)
{
	button_t *btn = (button_t *) widget;
	if (event.key == KC_ENTER && event.type == KEY_PRESS) {
		sig_send(&btn->clicked, NULL);
	}
}
Esempio n. 3
0
int usys_kill(int *err, uuprocess_t *u, int pid, int sig)
{
    (void) u;

    hal_mutex_lock(&proc_lock);

    //panic("kill is not implemented");
    uuprocess_t * p = proc_by_pid(pid);

    if(!p)
    {
        hal_mutex_unlock(&proc_lock);
        *err = ESRCH;
        return -1;
    }

    //int ret = 0;
    sig_send( &p->signals, sig );

    hal_mutex_unlock(&proc_lock);

    //if(ret)        *err = EINVAL;
    //return ret;
    return 0;
}
void kernel_footprint(void)
{
	init();

	// generate code for process
	struct Process *p =
		proc_new(proc1_main, 0, sizeof(proc1_stack), proc1_stack);
	proc_setPri(p, 5);
	proc_yield();

	// generate code for msg
	Msg msg;
	msg_initPort(&in_port, event_createSignal(p, SIG_USER1));
	msg_put(&in_port, &msg);
	msg_peek(&in_port);
	Msg *msg_re = msg_get(&in_port);
	msg_reply(msg_re);

	// generate code for signals
	sig_send(p, SIG_USER0);

	// generate code for msg
	Semaphore sem;
	sem_init(&sem);
	sem_obtain(&sem);
	sem_release(&sem);

	sig_wait(SIG_USER0);
}
Esempio n. 5
0
static void remove_entity(SIGNALING_ENTITY *sig)
{
    struct atmsvc_msg msg;

    msg.type = as_terminate;
    sig_send(sig,&msg);
    dsp_fd_remove(sig->s);
    (void) close(sig->s);
}
Esempio n. 6
0
static void NORETURN lp_process(void)
{
	while (1)
	{
		start = get_hp_ticks();
		sig_send(hp_proc, SIG_USER0);
		sig_wait(SIG_USER0);
	}
}
Esempio n. 7
0
static void NORETURN hp_process(void)
{
	while (1)
	{
		sig_wait(SIG_USER0);
		end = get_hp_ticks();
		timer_delay(100);
		sig_send(lp_proc, SIG_USER0);
	}
}
Esempio n. 8
0
static void reset_act(Widget w, XEvent* e, String* s, Cardinal* n)
{
  CtrlWidget cw = (CtrlWidget)w;
  CtrlPart *c = & cw->ctrl;  
  TF();
  if( c->msg.state == STATE_NORMAL ) return;
  c->msg.state = STATE_NORMAL;
  expose(w, NULL, 0);
  /* disable virtual keyboard */
  sig_send( w, VIS_REMOVE_SLIDER, NULL  ); 
}
Esempio n. 9
0
static void button_handle_position_event(widget_t *widget, pos_event_t event)
{
	button_t *btn = (button_t *) widget;
	widget->window->focus = widget;

	// TODO make the click logic more robust (mouse grabbing, mouse moves)
	if (event.btn_num == 1) {
		if (event.type == POS_RELEASE) {
			sig_send(&btn->clicked, NULL);
		}
	}
}
Esempio n. 10
0
static void NORETURN hp_process(void)
{
	while (1)
	{
		sig_wait(SIG_USER0);
		#if CONFIG_USE_LED
			LED_ON();
		#endif
		#if CONFIG_USE_HP_TIMER
			end = timer_hw_hpread();
		#endif
		sig_send(main_proc, SIG_USER0);
	}
}
Esempio n. 11
0
void NORETURN context_switch(void)
{
	IRQ_ENABLE;
	timer_init();
	proc_init();

	#if CONFIG_USE_HP_TIMER
		ser_init(&out, CONFIG_CTX_DEBUG_PORT);
		ser_setbaudrate(&out, CONFIG_CTX_DEBUG_BAUDRATE);
	#endif

	#if CONFIG_USE_LED
		LED_INIT();
	#endif

	proc_forbid();
	hp_proc = proc_new(hp_process, NULL, PROC_STACK_SIZE, hp_stack);
	lp_proc = proc_new(lp_process, NULL, PROC_STACK_SIZE, lp_stack);
	main_proc = proc_current();
	proc_setPri(hp_proc, 2);
	proc_setPri(lp_proc, 1);
	proc_permit();

	while (1)
	{
		timer_delay(100);

		sig_send(lp_proc, SIG_USER0);
		sig_wait(SIG_USER0);

		#if CONFIG_USE_HP_TIMER
			kfile_printf(&out.fd,
				"Switch: %lu.%lu usec\n\r",
				hptime_to_us((end - start)),
				hptime_to_us((end - start) * 1000) % 1000);
		#endif
	}
}
Esempio n. 12
0
static void led_test(UNUSED_ARG(Bitmap *, bm))
{
	led_blinking = !led_blinking;
	sig_send(led_proc, SIG_USER0);
}
Esempio n. 13
0
void hadarp_wakePolifemo(void)
{
	sig_send(hadarp_proc, SIG_POLIFEMO);
}