new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / headers / store_op.h
old mode 100755 (executable)
new mode 100644 (file)
index a8e155b..da77c41
@@ -1,6 +1,3 @@
-/* @(#) $Id: ./src/headers/store_op.h, 2011/09/08 dcid Exp $
- */
-
 /* Copyright (C) 2009 Trend Micro Inc.
  * All right reserved.
  *
 
 /* Common list API */
 
-
 #ifndef _OS_STORE
 #define _OS_STORE
 
 /* Store node */
-typedef struct _OSStoreNode
-{
+typedef struct _OSStoreNode {
     struct _OSStoreNode *next;
     struct _OSStoreNode *prev;
     void *data;
     char *key;
-    int key_size;
-}OSStoreNode;
+    size_t key_size;
+} OSStoreNode;
 
 /* Store list */
-typedef struct _OSStore
-{
+typedef struct _OSStore {
     OSStoreNode *first_node;
     OSStoreNode *last_node;
     OSStoreNode *cur_node;
@@ -37,23 +31,22 @@ typedef struct _OSStore
     int max_size;
 
     void (*free_data_function)(void *data);
-}OSStore;
-
-
-OSStore *OSStore_Create();
-OSStore *OSStore_Free(OSStore *list);
+} OSStore;
 
-int OSStore_Put(OSStore *list, char *key, void *data);
-int OSStore_Check(OSStore *list, char *key);
-int OSStore_NCheck(OSStore *list, char *key);
-int OSStore_NCaseCheck(OSStore *list, char *key);
-int OSStore_GetPosition(OSStore *list, char *key);
-void *OSStore_Get(OSStore *list, char *key);
-OSStoreNode *OSStore_GetFirstNode(OSStore *list);
-int OSStore_Sort(OSStore *list, void*(sort_data_function)(void *d1, void *d2));
+OSStore *OSStore_Create(void);
+OSStore *OSStore_Free(OSStore *list) __attribute__((nonnull));
 
+int OSStore_Put(OSStore *list, const char *key, void *data) __attribute__((nonnull(1, 2)));
+int OSStore_Check(OSStore *list, const char *key) __attribute__((nonnull));
+int OSStore_NCheck(OSStore *list, const char *key) __attribute__((nonnull));
+int OSStore_NCaseCheck(OSStore *list, const char *key) __attribute__((nonnull));
+int OSStore_GetPosition(OSStore *list, const char *key) __attribute__((nonnull));
+void *OSStore_Get(OSStore *list, const char *key) __attribute__((nonnull));
+OSStoreNode *OSStore_GetFirstNode(OSStore *list) __attribute__((nonnull));
+int OSStore_Sort(OSStore *list, void *(sort_data_function)(void *d1, void *d2)) __attribute__((nonnull));
 
+int OSStore_SetMaxSize(OSStore *list, int max_size);
+int OSStore_SetFreeDataPointer(OSStore *list, void (free_data_function)(void *));
 
 #endif
 
-/* EOF */