50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
#ifndef _KUSERHASH_H
|
|
#define _KUSERHASH_H
|
|
|
|
#include <linux/list.h>
|
|
#include <linux/types.h>
|
|
#include <linux/timex.h>
|
|
|
|
/*定义hash表大小 */
|
|
#define HASH_SIZE 100
|
|
#define KUSERNAME_SIZE 63
|
|
|
|
typedef struct konline_user
|
|
{
|
|
__u32 kuser_ip; /*用户IP*/
|
|
char kuser_name[KUSERNAME_SIZE + 1]; /*用户名, 不允许重名*/
|
|
int kuser_id; /*用户ID,唯一标识用户*/
|
|
int kgroup_id; /* 用户组ID,唯一标识用户组*/
|
|
__u32 kmessage_num; /*下行报文数*/
|
|
__u64 kbyte_num; /*下行字节数*/
|
|
__kernel_time_t konline_time; /* 在线时间*/
|
|
}KONLINE_USER;
|
|
|
|
typedef struct k_userinfo
|
|
{
|
|
struct list_head hnode;
|
|
KONLINE_USER k_user;
|
|
}K_USERINFO;
|
|
|
|
/*init hashtable */
|
|
void init_hashMap(void);
|
|
|
|
/*获取hashtable位置索引 */
|
|
int get_hash_index(__u32 ip);
|
|
|
|
/* search node */
|
|
K_USERINFO *search_user(__u32 ip);
|
|
|
|
/*add user */
|
|
int add_user(__u32 ip, char name, int id, int gid, __u64 mes_num, __u64 bnum, __kernel_time_t time);
|
|
|
|
/*delete a node */
|
|
void del_user(__u32 ip);
|
|
|
|
/*delete all node */
|
|
void free_all_user(void);
|
|
|
|
/*printf all nodes */
|
|
void printk_all_user(void);
|
|
|
|
#endif |