Skip to content
Snippets Groups Projects
common.h 1.56 KiB
Newer Older
  • Learn to ignore specific revisions
  • #ifndef COMMON_H
    #define COMMON_H
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    #include <syslog.h>
    #include <regex.h>
    #include <sys/param.h>
    #include <string.h>
    
    #include <json_hal_common.h>
    
    #include "libdmtree/dmapi.h"
    
    #define ROOT_NODE "Device."
    #define BBF_ADD_EVENT "AddObj"
    #define BBF_DEL_EVENT "DelObj"
    #define BBF_EVENT "event"
    
    #define MAX_DM_KEY_LEN 256
    #define MAX_DM_PATH 1024
    #define MAX_DM_VALUE 4096
    #define DM_VALUE_SEP ","
    #define DELIM '.'
    
    extern DMOBJ *DEAMON_DM_ROOT_OBJ;
    
    bool is_str_eq(const char *s1, const char *s2);
    void set_debug_level(unsigned char level);
    void print_error(const char *format, ...);
    void print_warning(const char *format, ...);
    void print_info(const char *format, ...);
    void print_debug(const char *format, ...);
    bool get_boolean_string(char *value);
    
    Bogdan Bogush's avatar
    Bogdan Bogush committed
    int get_proto_type(const char *proto);
    int get_instance_mode(int instance_mode);
    
    
    int get_dm_type(char *dm_type);
    eParamType get_eparam_type(char *dm_type, int *err);
    
    #define DEBUG(fmt, args...) \
    	print_debug("[%s:%d]"fmt, __func__, __LINE__, ##args)
    
    #define INFO(fmt, args...) \
    	print_info(fmt, ##args)
    
    #define ERR(fmt, args...) \
    	print_error("[%s:%d] " fmt, __func__, __LINE__, ##args)
    
    #define WARNING(fmt, args...) \
    	print_warning("[%s:%d] " fmt, __func__, __LINE__, ##args)
    
    // glibc doesn't guarantee a 0 termianted string on strncpy
    // strncpy with always 0 terminated string
    static inline void strncpyt(char *dst, const char *src, size_t n)
    {
            if (n > 1) {
                    strncpy(dst, src, n - 1);
                    dst[n - 1] = 0;
            }
    }
    
    #endif /* COMMON_H */