Esempio n. 1
0
int
tr_peerIoReconnect( tr_peerIo * io )
{
    short int pendingEvents;
    tr_session * session;

    assert( tr_isPeerIo( io ) );
    assert( !tr_peerIoIsIncoming( io ) );

    session = tr_peerIoGetSession( io );

    pendingEvents = io->pendingEvents;
    event_disable( io, EV_READ | EV_WRITE );

    if( io->socket >= 0 )
        tr_netClose( session, io->socket );

    io->socket = tr_netOpenPeerSocket( session, &io->addr, io->port, io->isSeed );
    event_set( &io->event_read, io->socket, EV_READ, event_read_cb, io );
    event_set( &io->event_write, io->socket, EV_WRITE, event_write_cb, io );

    if( io->socket >= 0 )
    {
        event_enable( io, pendingEvents );
        tr_netSetTOS( io->socket, session->peerSocketTOS );
        maybeSetCongestionAlgorithm( io->socket, session->peer_congestion_algorithm );
        return 0;
    }

    return -1;
}
Esempio n. 2
0
File: 02.c Progetto: fenollp/kaneton
void			test_architecture_event_interrupt_02(void)
{
  TEST_ENTER();

  event_release(ARCHITECTURE_IDT_SYSCALL_BASE + 0);
  event_release(ARCHITECTURE_IDT_SYSCALL_BASE + 1);
  event_release(ARCHITECTURE_IDT_SYSCALL_BASE + 2);

  if (event_reserve(ARCHITECTURE_IDT_SYSCALL_BASE + 0,
		    EVENT_TYPE_FUNCTION,
		    EVENT_ROUTINE(test_architecture_event_interrupt_02_handler_56),
		    EVENT_DATA(NULL)) != STATUS_OK)
    TEST_ERROR("[event_reserve] error");

  if (event_reserve(ARCHITECTURE_IDT_SYSCALL_BASE + 1,
		    EVENT_TYPE_FUNCTION,
		    EVENT_ROUTINE(test_architecture_event_interrupt_02_handler_57),
		    EVENT_DATA(NULL)) != STATUS_OK)
    TEST_ERROR("[event_reserve] error");

  if (event_reserve(ARCHITECTURE_IDT_SYSCALL_BASE + 2,
		    EVENT_TYPE_FUNCTION,
		    EVENT_ROUTINE(test_architecture_event_interrupt_02_handler_58),
		    EVENT_DATA(NULL)) != STATUS_OK)
    TEST_ERROR("[event_reserve] error");

  if (event_enable() != STATUS_OK)
    TEST_ERROR("[event_enable] error");

  asm volatile("int $56");
  asm volatile("int $57");
  asm volatile("int $58");

  if (event_disable() != STATUS_OK)
    TEST_ERROR("[event_disable] error");

  if (thrown != 3)
    TEST_ERROR("some interrupt events have not been caught");

  if (event_release(ARCHITECTURE_IDT_SYSCALL_BASE + 0) != STATUS_OK)
    TEST_ERROR("[event_release] error");

  if (event_release(ARCHITECTURE_IDT_SYSCALL_BASE + 1) != STATUS_OK)
    TEST_ERROR("[event_release] error");

  if (event_release(ARCHITECTURE_IDT_SYSCALL_BASE + 2) != STATUS_OK)
    TEST_ERROR("[event_release] error");

  TEST_SIGNATURE(cd09iwfjg9gerkg43hg);

  TEST_LEAVE();
}
Esempio n. 3
0
static int setup_child_event(struct event *event, pid_t child_pid)
{
	event_init_named(event, 0x400FA, "PM_RUN_INST_CMPL");

	event->attr.exclude_kernel = 1;
	event->attr.exclude_hv = 1;
	event->attr.exclude_idle = 1;

	FAIL_IF(event_open_with_pid(event, child_pid));
	FAIL_IF(event_enable(event));

	return 0;
}
static int setup_cpu_event(struct event *event, int cpu)
{
	event_init_named(event, 0x400FA, "PM_RUN_INST_CMPL");

	event->attr.pinned = 1;

	event->attr.exclude_kernel = 1;
	event->attr.exclude_hv = 1;
	event->attr.exclude_idle = 1;

	SKIP_IF(require_paranoia_below(1));
	FAIL_IF(event_open_with_cpu(event, cpu));
	FAIL_IF(event_enable(event));

	return 0;
}
Esempio n. 5
0
File: 01.c Progetto: fenollp/kaneton
void			test_core_timer_repeat_01(void)
{
  s_clock		clock;
  t_uint64		start;
  i_timer		tid;

  if (timer_reserve(TIMER_TYPE_FUNCTION,
		    TIMER_ROUTINE(test_core_timer_repeat_01_handler),
		    TIMER_DATA(NULL),
		    1500,
		    TIMER_OPTION_REPEAT,
		    &tid) != STATUS_OK)
    TEST_ERROR("[timer_reserve] error");

  if (clock_current(&clock) != STATUS_OK)
    TEST_ERROR("[clock_current] error");

  start = CLOCK_UNIQUE(&clock);

  if (event_enable() != STATUS_OK)
    TEST_ERROR("[event_enable] error");

  while (1)
    {
      t_uint64		current;

      if (clock_current(&clock) != STATUS_OK)
	TEST_ERROR("[clock_current] error");

      current = CLOCK_UNIQUE(&clock);

      if (current > (start + 3500))
	break;
    }

  if (event_disable() != STATUS_OK)
    TEST_ERROR("[event_disable] error");

  if (timed != 2)
    TEST_ERROR("the timer has not been triggered twice as expected but %u",
	       timed);

  TEST_SIGNATURE(sdiocvjigi4h4h3);

  TEST_LEAVE();
}
Esempio n. 6
0
void
tr_peerIoSetEnabled( tr_peerIo    * io,
                     tr_direction   dir,
                     tr_bool        isEnabled )
{
    const short event = dir == TR_UP ? EV_WRITE : EV_READ;

    assert( tr_isPeerIo( io ) );
    assert( tr_isDirection( dir ) );
    assert( tr_amInEventThread( io->session ) );
    assert( io->session->events != NULL );

    if( isEnabled )
        event_enable( io, event );
    else
        event_disable( io, event );
}
Esempio n. 7
0
int main(int argc, char* argv[])
{
    setScrollField(6, 43);
    printLine("================================================================================", 0, 0x0B);
    printLine("                                     Editor",                                      2, 0x0B);
    printLine("--------------------------------------------------------------------------------", 4, 0x0B);

    iSetCursor(0, 6);

    Editor editor;

    if(argc > 1)
        editor.open(argv[1]);

    union {
        KEY_t key;
        char text;
    } buffer;

    event_enable(true);
    EVENT_t ev = event_poll(&buffer, 2048, EVENT_NONE);
    bool ctrl;

    for (;;)
    {
        switch (ev)
        {
            case EVENT_NONE:
                waitForEvent(0);
                break;
            case EVENT_TEXT_ENTERED:
                if(!ctrl)
                    editor.textEnteredEvent(buffer.text);
                break;
            case EVENT_KEY_DOWN:
            {
                switch (buffer.key)
                {
                    case KEY_LCTRL: case KEY_RCTRL:
                        ctrl = true;
                        break;
                    case KEY_ESC:
                    {
                        return (0);
                    }
                    case KEY_S:
                    {
                        if (ctrl)
                            editor.save();
                        else
                            editor.keyPressedEvent(buffer.key);
                        break;
                    }
                    case KEY_O:
                    {
                        if (ctrl)
                        {
                            // Open
                        }
                        else
                            editor.keyPressedEvent(buffer.key);
                        break;
                    }
                    default:
                        editor.keyPressedEvent(buffer.key);
                        break;
                }
                break;
            }
            case EVENT_KEY_UP:
                switch (buffer.key)
                {
                    case KEY_LCTRL: case KEY_RCTRL:
                        ctrl = false;
                        break;
                    default:
                        break;
                }
                break;
            default:
                break;
        }
        ev = event_poll(&buffer, 4096, EVENT_NONE);
    }
    return (0);
}