#ifndef _OBJ_API_H #define _OBJ_API_H #ifdef __KERNEL__ #include #include #include #include "../../common/common.h" #include "../../common/uthash.h" #define OBJ_DBG_DIR ("obj") typedef int (*belong_server_objs)(__be32, int); typedef enum { OBJ_TYPE_ADDR = 0, OBJ_TYPE_SERVER, OBJ_TYPE_DATETIME, OBJ_TYPE_MAX } OBJ_TYPES; typedef struct { __be16 min_port; __be16 max_port; int pro_type; struct list_head list; } SERVER_OBJ_CONTENT, *PSERVER_OBJ_CONTENT; typedef struct { struct list_head content; belong_server_objs callback; } OBJECT_DATA, *POBJECT_DATA; typedef struct { char name[MAX_NAME_LEN]; char desc[MAX_PATH]; OBJ_TYPES type; POBJECT_DATA data; atomic_t ref_count; rwlock_t lock; UT_hash_handle hh; } CMHI_OBJECT, *PCMHI_OBJECT; void obj_upgrade_dev_buffer(unsigned char* buf, unsigned int size); const char *obj_version(void); void object_init(void); void free_object(PCMHI_OBJECT pObj); PCMHI_OBJECT new_object(void); PCMHI_OBJECT create_server_object(const char *name, OBJ_TYPES type); void cleanup_server_object(PCMHI_OBJECT pObj); int add_server_obj_data(PCMHI_OBJECT pObj, __be16 minPort, __be32 maxPort, int proType); int server_proc_init(void); int server_proc_uninit(void); #endif #endif