X-Git-Url: http://git.madism.org/?p=~madcoder%2Fpwqr.git;a=blobdiff_plain;f=lib%2Flibpwqr.c;h=538813700d6a0ca9df27dc65455ca313cf98b2d5;hp=1e1f681a76c8df3b994b33cae192f732efc55270;hb=a5f7e5aaf5bb2168aca37066eb6b49d126689aa6;hpb=537958e9f81a6338fa2986ec56938d5a9fbc5166 diff --git a/lib/libpwqr.c b/lib/libpwqr.c index 1e1f681..5388137 100644 --- a/lib/libpwqr.c +++ b/lib/libpwqr.c @@ -70,7 +70,7 @@ static int pwqr_create(int flags) { - if (flags & ~(O_NONBLOCK | O_CLOEXEC)) { + if (flags & ~PWQR_FL__SET) { errno = -EINVAL; return -1; } @@ -82,16 +82,16 @@ static int pwqr_ctl(int fd, int op, int val, void *uaddr) struct pwqr_ioc_wait wait; switch (op) { - case PWQR_GET_CONC: - case PWQR_REGISTER: - case PWQR_UNREGISTER: - case PWQR_PARK: + case PWQR_CTL_GET_CONC: + case PWQR_CTL_REGISTER: + case PWQR_CTL_UNREGISTER: + case PWQR_CTL_PARK: return ioctl(fd, op); - case PWQR_SET_CONC: - case PWQR_WAKE: - case PWQR_WAKE_OC: + case PWQR_CTL_SET_CONC: + case PWQR_CTL_WAKE: + case PWQR_CTL_WAKE_OC: return ioctl(fd, op, val); - case PWQR_WAIT: + case PWQR_CTL_WAIT: wait.pwqr_ticket = val; wait.pwqr_uaddr = uaddr; return ioctl(fd, op, &wait); @@ -169,7 +169,7 @@ static ALWAYS_INLINE void pwqr_signal_n(int n) atomic_add(&pwqr_g.ticket, 1); #endif if (atomic_fetch_and_add(&pwqr_g.waiters, 0)) - pwqr_ctl(pwqr_g.fd, PWQR_WAKE, n, NULL); + pwqr_ctl(pwqr_g.fd, PWQR_CTL_WAKE, n, NULL); } static ALWAYS_INLINE void pwqr_signal(void) { @@ -258,7 +258,7 @@ static int pwqr_do_wait(uint64_t ticket) pthread_cleanup_push(&pwqr_do_wait_cleanup, NULL); pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &canceltype); - rc = pwqr_ctl(pwqr_g.fd, PWQR_WAIT, ticket, &pwqr_g.lo); + rc = pwqr_ctl(pwqr_g.fd, PWQR_CTL_WAIT, ticket, &pwqr_g.lo); if (rc < 0) { if (errno == EINTR) { rc = INPOOL; @@ -299,7 +299,7 @@ static int pwqr_do_park(void) run_job(job); #endif - if ((rc = pwqr_ctl(pwqr_g.fd, PWQR_PARK, 0, NULL)) == 0) { + if ((rc = pwqr_ctl(pwqr_g.fd, PWQR_CTL_PARK, 0, NULL)) == 0) { access_once(pwqr_g.overcommit_count) = 0; if (atomic_fetch_and_sub(&pwqr_g.parked, 1) == 0) { pwqr_spawn_thread(PARKED, 1); @@ -334,7 +334,7 @@ static void *pwqr_main(void *arg) goto out; pthread_cleanup_push(&pwqr_main_cleanup, NULL); - if (pwqr_ctl(pwqr_g.fd, PWQR_REGISTER, 0, NULL) < 0) + if (pwqr_ctl(pwqr_g.fd, PWQR_CTL_REGISTER, 0, NULL) < 0) goto out; do { @@ -400,7 +400,7 @@ static int _pthread_workqueue_init_np(void) } pwqr_g.fd = fd; - n = pwqr_ctl(pwqr_g.fd, PWQR_GET_CONC, 0, NULL) + 4; + n = pwqr_ctl(pwqr_g.fd, PWQR_CTL_GET_CONC, 0, NULL) + 4; pwqr_spawn_thread(INPOOL, n); pwqr_spawn_thread(PARKED, 4);