コード例 #1
0
ファイル: gnrc_netreg.c プロジェクト: deepfryed/RIOT
void gnrc_netreg_unregister(gnrc_nettype_t type, gnrc_netreg_entry_t *entry)
{
    if (_INVALID_TYPE(type)) {
        return;
    }

    LL_DELETE(netreg[type], entry);
}
コード例 #2
0
ファイル: ng_netreg.c プロジェクト: 4dahalibut/RIOT
int ng_netreg_register(ng_nettype_t type, ng_netreg_entry_t *entry)
{
    if (_INVALID_TYPE(type)) {
        return -EINVAL;
    }

    LL_PREPEND(netreg[type], entry);

    return 0;
}
コード例 #3
0
ファイル: gnrc_netreg.c プロジェクト: deepfryed/RIOT
gnrc_netreg_entry_t *gnrc_netreg_lookup(gnrc_nettype_t type, uint32_t demux_ctx)
{
    gnrc_netreg_entry_t *res;

    if (_INVALID_TYPE(type)) {
        return NULL;
    }

    LL_SEARCH_SCALAR(netreg[type], res, demux_ctx, demux_ctx);

    return res;
}
コード例 #4
0
ファイル: gnrc_netreg.c プロジェクト: JMR-b/RIOT
int gnrc_netreg_register(gnrc_nettype_t type, gnrc_netreg_entry_t *entry)
{
    /* only threads with a message queue are allowed to register at gnrc */
    assert(sched_threads[entry->pid]->msg_array);

    if (_INVALID_TYPE(type)) {
        return -EINVAL;
    }

    LL_PREPEND(netreg[type], entry);

    return 0;
}
コード例 #5
0
ファイル: gnrc_netreg.c プロジェクト: deepfryed/RIOT
int gnrc_netreg_num(gnrc_nettype_t type, uint32_t demux_ctx)
{
    int num = 0;
    gnrc_netreg_entry_t *entry;

    if (_INVALID_TYPE(type)) {
        return 0;
    }

    entry = netreg[type];

    while (entry != NULL) {
        if (entry->demux_ctx == demux_ctx) {
            num++;
        }

        entry = entry->next;
    }

    return num;
}
コード例 #6
0
ファイル: gnrc_netreg.c プロジェクト: deepfryed/RIOT
int gnrc_netreg_register(gnrc_nettype_t type, gnrc_netreg_entry_t *entry)
{
#if defined(MODULE_GNRC_NETAPI_MBOX) || defined(MODULE_GNRC_NETAPI_CALLBACKS)
#ifdef DEVELHELP
    /* only threads with a message queue are allowed to register at gnrc */
    assert((entry->type != GNRC_NETREG_TYPE_DEFAULT) ||
           sched_threads[entry->target.pid]->msg_array);
#endif
#else
    /* only threads with a message queue are allowed to register at gnrc */
    assert(sched_threads[entry->target.pid]->msg_array);
#endif

    if (_INVALID_TYPE(type)) {
        return -EINVAL;
    }

    LL_PREPEND(netreg[type], entry);

    return 0;
}