static int ezApiCreate(ezEventLoop * eventLoop) { ezApiState *state = (ezApiState *) ez_malloc(sizeof(ezApiState)); if (!state) return AE_ERR; state->events = (struct epoll_event *)ez_malloc(sizeof(struct epoll_event) * eventLoop->setsize); if (!state->events) { ez_free(state); return AE_ERR; } state->epfd = epoll_create(1024); /* 1024 is just a hint for the kernel */ if (state->epfd == -1) { ez_free(state->events); ez_free(state); return AE_ERR; } state->evfd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC); if (state->evfd == -1) { ez_free(state->events); ez_free(state); return AE_ERR; } eventLoop->apidata = state; return AE_OK; }
u8 *magic_new(u32 *size) { prime p; u8 *m; u32 lcm; u32 i; lcm = 1; for (i = 1; i <= MAGIC_PRIMES; ++i) lcm *= wheel[i]; m = ez_malloc(lcm); memset(m, 0xff, lcm); for (i = 1; i <= MAGIC_PRIMES; ++i) { init_prime(&p, 0, i, 0, 0); mark_multiples(&p, m, lcm); } *size = lcm; return m; }