… | |
… | |
377 | static void eio_execute (struct etp_worker *self, eio_req *req); |
377 | static void eio_execute (struct etp_worker *self, eio_req *req); |
378 | #define ETP_EXECUTE(wrk,req) eio_execute (wrk, req) |
378 | #define ETP_EXECUTE(wrk,req) eio_execute (wrk, req) |
379 | |
379 | |
380 | #include "etp.c" |
380 | #include "etp.c" |
381 | |
381 | |
|
|
382 | static struct etp_pool eio_pool; |
|
|
383 | #define EIO_POOL (&eio_pool) |
|
|
384 | |
382 | /*****************************************************************************/ |
385 | /*****************************************************************************/ |
383 | |
386 | |
384 | static void |
387 | static void |
385 | grp_try_feed (eio_req *grp) |
388 | grp_try_feed (eio_req *grp) |
386 | { |
389 | { |
… | |
… | |
452 | } |
455 | } |
453 | |
456 | |
454 | void |
457 | void |
455 | eio_grp_cancel (eio_req *grp) |
458 | eio_grp_cancel (eio_req *grp) |
456 | { |
459 | { |
457 | etp_grp_cancel (grp); |
460 | etp_grp_cancel (EIO_POOL, grp); |
458 | } |
461 | } |
459 | |
462 | |
460 | void |
463 | void |
461 | eio_cancel (eio_req *req) |
464 | eio_cancel (eio_req *req) |
462 | { |
465 | { |
463 | etp_cancel (req); |
466 | etp_cancel (EIO_POOL, req); |
464 | } |
467 | } |
465 | |
468 | |
466 | void |
469 | void |
467 | eio_submit (eio_req *req) |
470 | eio_submit (eio_req *req) |
468 | { |
471 | { |
469 | etp_submit (req); |
472 | etp_submit (EIO_POOL, req); |
470 | } |
473 | } |
471 | |
474 | |
472 | unsigned int |
475 | unsigned int |
473 | eio_nreqs (void) |
476 | eio_nreqs (void) |
474 | { |
477 | { |
475 | return etp_nreqs (); |
478 | return etp_nreqs (EIO_POOL); |
476 | } |
479 | } |
477 | |
480 | |
478 | unsigned int |
481 | unsigned int |
479 | eio_nready (void) |
482 | eio_nready (void) |
480 | { |
483 | { |
481 | return etp_nready (); |
484 | return etp_nready (EIO_POOL); |
482 | } |
485 | } |
483 | |
486 | |
484 | unsigned int |
487 | unsigned int |
485 | eio_npending (void) |
488 | eio_npending (void) |
486 | { |
489 | { |
487 | return etp_npending (); |
490 | return etp_npending (EIO_POOL); |
488 | } |
491 | } |
489 | |
492 | |
490 | unsigned int ecb_cold |
493 | unsigned int ecb_cold |
491 | eio_nthreads (void) |
494 | eio_nthreads (void) |
492 | { |
495 | { |
493 | return etp_nthreads (); |
496 | return etp_nthreads (EIO_POOL); |
494 | } |
497 | } |
495 | |
498 | |
496 | void ecb_cold |
499 | void ecb_cold |
497 | eio_set_max_poll_time (double nseconds) |
500 | eio_set_max_poll_time (double nseconds) |
498 | { |
501 | { |
499 | etp_set_max_poll_time (nseconds); |
502 | etp_set_max_poll_time (EIO_POOL, nseconds); |
500 | } |
503 | } |
501 | |
504 | |
502 | void ecb_cold |
505 | void ecb_cold |
503 | eio_set_max_poll_reqs (unsigned int maxreqs) |
506 | eio_set_max_poll_reqs (unsigned int maxreqs) |
504 | { |
507 | { |
505 | etp_set_max_poll_reqs (maxreqs); |
508 | etp_set_max_poll_reqs (EIO_POOL, maxreqs); |
506 | } |
509 | } |
507 | |
510 | |
508 | void ecb_cold |
511 | void ecb_cold |
509 | eio_set_max_idle (unsigned int nthreads) |
512 | eio_set_max_idle (unsigned int nthreads) |
510 | { |
513 | { |
511 | etp_set_max_idle (nthreads); |
514 | etp_set_max_idle (EIO_POOL, nthreads); |
512 | } |
515 | } |
513 | |
516 | |
514 | void ecb_cold |
517 | void ecb_cold |
515 | eio_set_idle_timeout (unsigned int seconds) |
518 | eio_set_idle_timeout (unsigned int seconds) |
516 | { |
519 | { |
517 | etp_set_idle_timeout (seconds); |
520 | etp_set_idle_timeout (EIO_POOL, seconds); |
518 | } |
521 | } |
519 | |
522 | |
520 | void ecb_cold |
523 | void ecb_cold |
521 | eio_set_min_parallel (unsigned int nthreads) |
524 | eio_set_min_parallel (unsigned int nthreads) |
522 | { |
525 | { |
523 | etp_set_min_parallel (nthreads); |
526 | etp_set_min_parallel (EIO_POOL, nthreads); |
524 | } |
527 | } |
525 | |
528 | |
526 | void ecb_cold |
529 | void ecb_cold |
527 | eio_set_max_parallel (unsigned int nthreads) |
530 | eio_set_max_parallel (unsigned int nthreads) |
528 | { |
531 | { |
529 | etp_set_max_parallel (nthreads); |
532 | etp_set_max_parallel (EIO_POOL, nthreads); |
530 | } |
533 | } |
531 | |
534 | |
532 | int eio_poll (void) |
535 | int eio_poll (void) |
533 | { |
536 | { |
534 | return etp_poll (); |
537 | return etp_poll (EIO_POOL); |
535 | } |
538 | } |
536 | |
539 | |
537 | /*****************************************************************************/ |
540 | /*****************************************************************************/ |
538 | /* work around various missing functions */ |
541 | /* work around various missing functions */ |
539 | |
542 | |
… | |
… | |
1720 | /*****************************************************************************/ |
1723 | /*****************************************************************************/ |
1721 | |
1724 | |
1722 | int ecb_cold |
1725 | int ecb_cold |
1723 | eio_init (void (*want_poll)(void), void (*done_poll)(void)) |
1726 | eio_init (void (*want_poll)(void), void (*done_poll)(void)) |
1724 | { |
1727 | { |
1725 | return etp_init (want_poll, done_poll); |
1728 | return etp_init (EIO_POOL, want_poll, done_poll); |
1726 | } |
1729 | } |
1727 | |
1730 | |
1728 | ecb_inline void |
1731 | ecb_inline void |
1729 | eio_api_destroy (eio_req *req) |
1732 | eio_api_destroy (eio_req *req) |
1730 | { |
1733 | { |