diff options
| author | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-09-02 13:48:36 +0200 | 
|---|---|---|
| committer | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-09-02 14:59:42 +0200 | 
| commit | 4f44c91c68a3706e04334066f28471d56cc71849 (patch) | |
| tree | c31bfb75b7abfea47a1773fcbe2782d4832d5c49 /include | |
| parent | 4493d36a4769c6625e3025a0c484bf0ec65708bd (diff) | |
| download | ouroboros-4f44c91c68a3706e04334066f28471d56cc71849.tar.gz ouroboros-4f44c91c68a3706e04334066f28471d56cc71849.zip  | |
lib: Add northbound ringbuffers
Fast path is split in north and southbound paths.
Diffstat (limited to 'include')
| -rw-r--r-- | include/ouroboros/shm_ap_rbuff.h | 30 | 
1 files changed, 24 insertions, 6 deletions
diff --git a/include/ouroboros/shm_ap_rbuff.h b/include/ouroboros/shm_ap_rbuff.h index 9dad0863..594c9260 100644 --- a/include/ouroboros/shm_ap_rbuff.h +++ b/include/ouroboros/shm_ap_rbuff.h @@ -35,20 +35,38 @@ struct rb_entry {          int     port_id;  }; -struct shm_ap_rbuff * shm_ap_rbuff_create(); -struct shm_ap_rbuff * shm_ap_rbuff_open(pid_t api); +/* recv SDUs from N + 1 */ +struct shm_ap_rbuff * shm_ap_rbuff_create_n(); + +/* recv SDUs from N - 1 */ +struct shm_ap_rbuff * shm_ap_rbuff_create_s(); + +/* write SDUs to N - 1 */ +struct shm_ap_rbuff * shm_ap_rbuff_open_n(pid_t api); + +/* write SDUs to N + 1 */ +struct shm_ap_rbuff * shm_ap_rbuff_open_s(pid_t api); +  void                  shm_ap_rbuff_close(struct shm_ap_rbuff * rb); +  void                  shm_ap_rbuff_destroy(struct shm_ap_rbuff * rb); +  int                   shm_ap_rbuff_write(struct shm_ap_rbuff * rb, -                                         struct rb_entry * e); +                                         struct rb_entry *     e); +  struct rb_entry *     shm_ap_rbuff_read(struct shm_ap_rbuff * rb); +  int                   shm_ap_rbuff_peek_idx(struct shm_ap_rbuff * rb); +  int                   shm_ap_rbuff_peek_b(struct shm_ap_rbuff * rb,                                            const struct timespec * timeout); +  ssize_t               shm_ap_rbuff_read_port(struct shm_ap_rbuff * rb, -                                             int port_id); -ssize_t               shm_ap_rbuff_read_port_b(struct shm_ap_rbuff * rb, -                                               int port_id, +                                             int                   port_id); + +ssize_t               shm_ap_rbuff_read_port_b(struct shm_ap_rbuff *   rb, +                                               int                     port_id,                                                 const struct timespec * timeout); +  void                  shm_ap_rbuff_reset(struct shm_ap_rbuff * rb);  #endif /* OUROBOROS_SHM_AP_RBUFF_H */  | 
