diff options
Diffstat (limited to 'include')
30 files changed, 92 insertions, 83 deletions
diff --git a/include/ouroboros/CMakeLists.txt b/include/ouroboros/CMakeLists.txt index d1a3166c..a8589da1 100644 --- a/include/ouroboros/CMakeLists.txt +++ b/include/ouroboros/CMakeLists.txt @@ -3,6 +3,7 @@ configure_file(    "${CMAKE_CURRENT_BINARY_DIR}/config.h")  set(HEADER_FILES +  cacep.h    cdap.h    dev.h    endian.h diff --git a/include/ouroboros/bitmap.h b/include/ouroboros/bitmap.h index d6ce623a..cb62312a 100644 --- a/include/ouroboros/bitmap.h +++ b/include/ouroboros/bitmap.h @@ -3,8 +3,8 @@   *   * Bitmap implementation   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> - *    Francesco Salvestrini <f.salvestrini@nextworks.it> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/cacep.h b/include/ouroboros/cacep.h index e0737c47..950f3cf7 100644 --- a/include/ouroboros/cacep.h +++ b/include/ouroboros/cacep.h @@ -1,10 +1,10 @@  /*   * Ouroboros - Copyright (C) 2016 - 2017   * - * The Common Application Connection Establishment Phase + * The Common Application Connection Establishment Protocol   * - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -24,7 +24,7 @@  #ifndef OUROBOROS_CACEP_H  #define OUROBOROS_CACEP_H -#include <ouroboros/irm_config.h> +#include <stdint.h>  enum proto_concrete_syntax {          PROTO_GPB = 0, @@ -32,27 +32,18 @@ enum proto_concrete_syntax {          PROTO_FIXED  }; -struct cacep_info { -        struct { -                char *                     protocol; -                uint32_t                   pref_version; -                enum proto_concrete_syntax pref_syntax; -        }        proto; -        char *   name; -        uint64_t addr; -        void *   data; +struct conn_info { +        char                       ae_name[64]; +        char                       protocol[64]; +        uint32_t                   pref_version; +        enum proto_concrete_syntax pref_syntax; +        uint64_t                   addr;  }; -int                 cacep_info_init(struct cacep_info * info); +int cacep_snd(int                      fd, +              const struct conn_info * in); -void                cacep_info_fini(struct cacep_info * info); - -struct cacep_info * cacep_auth(int                       fd, -                               enum pol_cacep            pc, -                               const struct cacep_info * info); - -struct cacep_info * cacep_auth_wait(int                       fd, -                                    enum pol_cacep            pc, -                                    const struct cacep_info * info); +int cacep_rcv(int                fd, +              struct conn_info * out);  #endif /* OUROBOROS_CACEP_H */ diff --git a/include/ouroboros/cdap.h b/include/ouroboros/cdap.h index cc04cf27..32edb51c 100644 --- a/include/ouroboros/cdap.h +++ b/include/ouroboros/cdap.h @@ -3,8 +3,8 @@   *   * The Common Distributed Application Protocol   * - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -46,12 +46,17 @@ struct cdap;  typedef int32_t cdap_key_t; -/* Assumes flow is blocking */ -struct cdap * cdap_create(int fd); +struct cdap * cdap_create(void);  int           cdap_destroy(struct cdap * instance); -cdap_key_t    cdap_request_send(struct cdap *    instance, +int           cdap_add_flow(struct cdap * instance, +                            int           fd); + +int           cdap_del_flow(struct cdap * instance, +                            int           fd); + +cdap_key_t *  cdap_request_send(struct cdap *    instance,                                  enum cdap_opcode code,                                  const char *     name,                                  const void *     data, diff --git a/include/ouroboros/crc32.h b/include/ouroboros/crc32.h index 3c7721de..dccdf7cb 100644 --- a/include/ouroboros/crc32.h +++ b/include/ouroboros/crc32.h @@ -3,7 +3,8 @@   *   * 32-bit Cyclic Redundancy Check   * - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/dev.h b/include/ouroboros/dev.h index 1d2a2533..e92cdd1c 100644 --- a/include/ouroboros/dev.h +++ b/include/ouroboros/dev.h @@ -3,7 +3,8 @@   *   * API for applications   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -27,16 +28,13 @@  #ifndef OUROBOROS_DEV_H  #define OUROBOROS_DEV_H -#define UNKNOWN_AE "__UNKNOWN_AE__" -  /* These calls should be removed once we write the ouroboros OS. */  int     ap_init(const char * ap_name);  void    ap_fini(void); -/* Returns flow descriptor (> 0), client AE name and qos spec. */ -int     flow_accept(char **     ae_name, -                    qosspec_t * spec); +/* Returns flow descriptor (> 0) and qos spec. */ +int     flow_accept(qosspec_t * spec);  int     flow_alloc_resp(int fd,                          int response); @@ -46,7 +44,6 @@ int     flow_alloc_resp(int fd,   * On returning, spec will contain the actual supplied QoS.   */  int     flow_alloc(const char * dst_name, -                   const char * src_ae_name,                     qosspec_t *  spec);  int     flow_alloc_res(int fd); diff --git a/include/ouroboros/endian.h b/include/ouroboros/endian.h index 46f384ec..d712b1b3 100644 --- a/include/ouroboros/endian.h +++ b/include/ouroboros/endian.h @@ -3,8 +3,8 @@   *   * Endianness   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/errno.h b/include/ouroboros/errno.h index 600f016f..d2117992 100644 --- a/include/ouroboros/errno.h +++ b/include/ouroboros/errno.h @@ -3,7 +3,8 @@   *   * Ouroboros specific error numbers   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/fcntl.h b/include/ouroboros/fcntl.h index 7ee4229e..c07b7bf0 100644 --- a/include/ouroboros/fcntl.h +++ b/include/ouroboros/fcntl.h @@ -3,7 +3,8 @@   *   * Flows   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/fqueue.h b/include/ouroboros/fqueue.h index fdd2cbfb..fc7dc303 100644 --- a/include/ouroboros/fqueue.h +++ b/include/ouroboros/fqueue.h @@ -3,8 +3,8 @@   *   * Flow queues   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/hashtable.h b/include/ouroboros/hashtable.h index 4cb6000d..81fbcc1a 100644 --- a/include/ouroboros/hashtable.h +++ b/include/ouroboros/hashtable.h @@ -3,7 +3,8 @@   *   * Hash table with integer keys with separate chaining on collisions   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/ipcp-dev.h b/include/ouroboros/ipcp-dev.h index 81aca1d7..6cad9a87 100644 --- a/include/ouroboros/ipcp-dev.h +++ b/include/ouroboros/ipcp-dev.h @@ -3,8 +3,8 @@   *   * Additional API for IPCPs   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -31,7 +31,6 @@ int  ipcp_create_r(pid_t api,  int  ipcp_flow_req_arr(pid_t  api,                         char * dst_name, -                       char * src_ae_name,                         qoscube_t cube);  int  ipcp_flow_alloc_reply(int fd, diff --git a/include/ouroboros/irm.h b/include/ouroboros/irm.h index 07052727..9bd0c93b 100644 --- a/include/ouroboros/irm.h +++ b/include/ouroboros/irm.h @@ -3,7 +3,8 @@   *   * The API to instruct the IPC Resource Manager   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/irm_config.h b/include/ouroboros/irm_config.h index 9a05a434..3dd55823 100644 --- a/include/ouroboros/irm_config.h +++ b/include/ouroboros/irm_config.h @@ -3,7 +3,8 @@   *   * Configuration information for the IPC Resource Manager   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -47,11 +48,6 @@ enum pol_gam {          COMPLETE = 0  }; -enum pol_cacep { -        ANONYMOUS_AUTH = 0, -        SIMPLE_AUTH -}; -  struct dif_config {          char *         dif_name;          enum ipcp_type type; diff --git a/include/ouroboros/list.h b/include/ouroboros/list.h index 5f246775..5da93b9a 100644 --- a/include/ouroboros/list.h +++ b/include/ouroboros/list.h @@ -3,8 +3,8 @@   *   * Simple doubly linked list implementation.   * - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/local-dev.h b/include/ouroboros/local-dev.h index 3c95e589..228a2a98 100644 --- a/include/ouroboros/local-dev.h +++ b/include/ouroboros/local-dev.h @@ -3,7 +3,8 @@   *   * Optimized calls for the local IPCPs   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/lockfile.h b/include/ouroboros/lockfile.h index 561e31ab..1b988092 100644 --- a/include/ouroboros/lockfile.h +++ b/include/ouroboros/lockfile.h @@ -3,7 +3,8 @@   *   * Lockfile for Ouroboros   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -28,8 +29,11 @@  struct lockfile;  struct lockfile * lockfile_create(void); +  struct lockfile * lockfile_open(void); +  void              lockfile_close(struct lockfile * lf); +  void              lockfile_destroy(struct lockfile * lf);  pid_t             lockfile_owner(struct lockfile * lf); diff --git a/include/ouroboros/logs.h b/include/ouroboros/logs.h index 9b83abd2..38b50053 100644 --- a/include/ouroboros/logs.h +++ b/include/ouroboros/logs.h @@ -3,9 +3,8 @@   *   * Logging facilities   * - *    Sander Vrijders       <sander.vrijders@intec.ugent.be> - *    Francesco Salvestrini <f.salvestrini@nextworks.it> - *    Dimitri Staessens     <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/np1_flow.h b/include/ouroboros/np1_flow.h index 6144ec06..a4e94b89 100644 --- a/include/ouroboros/np1_flow.h +++ b/include/ouroboros/np1_flow.h @@ -3,7 +3,8 @@   *   * Adapter functions for N + 1 flow descriptors   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/nsm.h b/include/ouroboros/nsm.h index 0bcc028a..22a2a593 100644 --- a/include/ouroboros/nsm.h +++ b/include/ouroboros/nsm.h @@ -3,7 +3,8 @@   *   * The API to instruct the global Namespace Manager   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/qos.h b/include/ouroboros/qos.h index 57d0ab0e..b12fed60 100644 --- a/include/ouroboros/qos.h +++ b/include/ouroboros/qos.h @@ -3,7 +3,8 @@   *   * Quality of Service specification   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/rib.h b/include/ouroboros/rib.h index 50747498..320ef860 100644 --- a/include/ouroboros/rib.h +++ b/include/ouroboros/rib.h @@ -3,8 +3,8 @@   *   * Resource Information Base   * - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/rqueue.h b/include/ouroboros/rqueue.h index 7bfbfa8f..b0ec4a60 100644 --- a/include/ouroboros/rqueue.h +++ b/include/ouroboros/rqueue.h @@ -3,8 +3,8 @@   *   * RIB event queues   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/shared.h b/include/ouroboros/shared.h index 1f309d27..07d4be5e 100644 --- a/include/ouroboros/shared.h +++ b/include/ouroboros/shared.h @@ -3,7 +3,8 @@   *   * Shared definitions between IRMd and IPCPs   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/shm_flow_set.h b/include/ouroboros/shm_flow_set.h index 95b1718e..947fe897 100644 --- a/include/ouroboros/shm_flow_set.h +++ b/include/ouroboros/shm_flow_set.h @@ -3,7 +3,8 @@   *   * Management of flow_sets for fqueue   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/shm_rbuff.h b/include/ouroboros/shm_rbuff.h index 14cfb79a..8471f47f 100644 --- a/include/ouroboros/shm_rbuff.h +++ b/include/ouroboros/shm_rbuff.h @@ -3,7 +3,8 @@   *   * Ring buffer for incoming SDUs   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -28,9 +29,11 @@  struct shm_rbuff; -struct shm_rbuff * shm_rbuff_create(pid_t api, int port_id); +struct shm_rbuff * shm_rbuff_create(pid_t api, +                                    int   port_id); -struct shm_rbuff * shm_rbuff_open(pid_t api, int port_id); +struct shm_rbuff * shm_rbuff_open(pid_t api, +                                  int   port_id);  void               shm_rbuff_close(struct shm_rbuff * rb); @@ -50,4 +53,6 @@ ssize_t            shm_rbuff_read(struct shm_rbuff * rb);  ssize_t            shm_rbuff_read_b(struct shm_rbuff *      rb,                                      const struct timespec * timeout); +size_t             shm_rbuff_queued(struct shm_rbuff * rb); +  #endif /* OUROBOROS_SHM_RBUFF_H */ diff --git a/include/ouroboros/shm_rdrbuff.h b/include/ouroboros/shm_rdrbuff.h index 73d6bfbc..92173388 100644 --- a/include/ouroboros/shm_rdrbuff.h +++ b/include/ouroboros/shm_rdrbuff.h @@ -3,8 +3,8 @@   *   * Random Deletion Ring Buffer for Data Units   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> - *    Sander Vrijders   <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/sockets.h b/include/ouroboros/sockets.h index efd4a08f..bcc60e17 100644 --- a/include/ouroboros/sockets.h +++ b/include/ouroboros/sockets.h @@ -3,7 +3,8 @@   *   * The sockets layer to communicate between daemons   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License diff --git a/include/ouroboros/time_utils.h b/include/ouroboros/time_utils.h index f45df27f..35f2dcbb 100644 --- a/include/ouroboros/time_utils.h +++ b/include/ouroboros/time_utils.h @@ -3,7 +3,8 @@   *   * Time utilities   * - *    Dimitri Staessens <dimitri.staessens@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -97,7 +98,8 @@ int ts_to_tv(const struct timespec * src,  #define CLOCKS_MASK                     (CLOCK_REALTIME | CLOCK_MONOTONIC)  #define CLOCKS_MONO                     CLOCK_MONOTONIC -int clock_gettime(int clock, struct timespec * t); +int clock_gettime(int               clock, +                  struct timespec * t);  #endif  #endif /* OUROBOROS_TIME_UTILS_H */ diff --git a/include/ouroboros/utils.h b/include/ouroboros/utils.h index 29fb4367..19a29097 100644 --- a/include/ouroboros/utils.h +++ b/include/ouroboros/utils.h @@ -3,7 +3,8 @@   *   * Handy utilities   * - *    Sander Vrijders <sander.vrijders@intec.ugent.be> + *    Dimitri Staessens <dimitri.staessens@ugent.be> + *    Sander Vrijders   <sander.vrijders@ugent.be>   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public License @@ -40,9 +41,6 @@ typedef struct {   */  int n_digits(unsigned i); -/* Returns a copy of the source string */ -char * strdup(const char * src); -  /* gets the application name */  char * path_strip(char * src);  | 
