pfq_id_t pfq_get_free_id(struct pfq_sock * so) { int n = 0; for(; n < (__force int)Q_MAX_ID; n++) { if (!atomic_long_cmpxchg(pfq_sock_vector + n, 0, (long)so)) { if(atomic_inc_return(&pfq_sock_count) == 1) pfq_sock_init_once(); return (__force pfq_id_t)n; } } return (__force pfq_id_t)-ENOMEM; }
pfq_id_t pfq_sock_get_free_id(struct pfq_sock * so) { int n = 0; for(; n < (__force int)Q_MAX_ID; n++) { if (atomic_long_cmpxchg(&global->socket_ptr[n], (long)0, (long)so) == 0) { if(atomic_inc_return(&global->socket_count) == 1) pfq_sock_init_once(); return (__force pfq_id_t)n; } } return (__force pfq_id_t)-ENOMEM; }