Example #1
0
static void select_list_enqueue(termstate_t *term, struct term_select_info *t)
{
    l4semaphore_down(&term->termsem);
    t->prev       = NULL;
    t->next       = term->select_list;
    term->select_list = t;
    l4semaphore_up(&term->termsem);
}
Example #2
0
static void select_list_dequeue(termstate_t *term, struct term_select_info *t)
{
    if (t)
    {
        l4semaphore_down(&term->termsem);
        if (t == term->select_list)
            term->select_list = t->next;
        else
            t->prev->next = t->next;
        l4semaphore_up(&term->termsem);
    }
}
Example #3
0
static void
_add_key(int code)
{
  int new_top = (keylist_head + 1) % CONTXT_KEYLIST_SIZE;

  if (new_top == keylist_tail)
    {
      if (__keyin)
	LOG("key buffer overrun!");
      return;
    }

  keylist[keylist_head] = code;
  keylist_head = new_top;
  l4semaphore_up(&keysem);
}