]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/vector.h
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / vector.h
index ab1d1e6aacc7fd2e90f7cb66c7eb78c98074521a..97e15da04099c621ced75845f0f3dbe8cd7ce801 100644 (file)
 #include "memory.h"
 
 /* struct for vector */
-struct _vector 
-{
-  unsigned int active;         /* number of active slots */
-  unsigned int alloced;                /* number of allocated slot */
-  void **index;                        /* index to data */
+struct _vector {
+       unsigned int active;  /* number of active slots */
+       unsigned int alloced; /* number of allocated slot */
+       void **index;    /* index to data */
 };
 typedef struct _vector *vector;
 
@@ -39,26 +38,29 @@ typedef struct _vector *vector;
  array expression. */
 /* Reference slot at given index, caller must ensure slot is active */
 #define vector_slot(V,I)  ((V)->index[(I)])
-/* Number of active slots. 
+/* Number of active slots.
  * Note that this differs from vector_count() as it the count returned
  * will include any empty slots
  */
 #define vector_active(V) ((V)->active)
 
 /* Prototypes. */
-extern vector vector_init (unsigned int size);
-extern void vector_ensure (vector v, unsigned int num);
-extern int vector_empty_slot (vector v);
-extern int vector_set (vector v, void *val);
-extern int vector_set_index (vector v, unsigned int i, void *val);
-extern void vector_unset (vector v, unsigned int i);
-extern void vector_unset_value (vector v, void *val);
+extern vector vector_init(unsigned int size);
+extern void vector_ensure(vector v, unsigned int num);
+extern int vector_empty_slot(vector v);
+extern int vector_set(vector v, void *val);
+extern int vector_set_index(vector v, unsigned int i, void *val);
+extern void vector_unset(vector v, unsigned int i);
+extern void vector_unset_value(vector v, void *val);
+extern void vector_remove(vector v, unsigned int ix);
+extern void vector_compact(vector v);
 
-extern unsigned int vector_count (vector v);
-extern void vector_free (vector v);
-extern vector vector_copy (vector v);
-
-extern void *vector_lookup (vector, unsigned int);
-extern void *vector_lookup_ensure (vector, unsigned int);
+extern unsigned int vector_count(vector v);
+extern void vector_free(vector v);
+extern vector vector_copy(vector v);
 
+extern void *vector_lookup(vector, unsigned int);
+extern void *vector_lookup_ensure(vector, unsigned int);
+extern void vector_to_array(vector v, void ***dest, int *argc);
+extern vector array_to_vector(void **src, int argc);
 #endif /* _ZEBRA_VECTOR_H */