Mod aaa-12 描述:修改netlink内核模块,到处外部符号给其他模块使用
RCA: SOL: 修改人:xusaiqun 检视人:xusaiqun Signed-off-by: xusaiqun <xusaiqun@cmhi.chinamobile.com>
This commit is contained in:
parent
05d068d2ad
commit
f1a46d9af9
|
@ -2,13 +2,15 @@
|
|||
export HUACHENG_LINUX_KERNEL
|
||||
|
||||
DEFINES :=
|
||||
INCLUDE := -I../lib -I../../../Common
|
||||
INCLUDE := -I../../../Common -I../../common
|
||||
LIB :=
|
||||
|
||||
obj-m :=cfgrcv.o
|
||||
cfgrcv-objs := cfgrcv_kinit.o ../netlink_api/libnetlink_k.o
|
||||
cfgrcv-objs := cfgrcv_kinit.o
|
||||
#KERNEL :=$(HUACHENG_LINUX_KERNEL)
|
||||
KERNEL :=/usr/src/linux
|
||||
KBUILD_EXTRA_SYMBOLS += ../netlink_api/Module.symvers
|
||||
export KBUILD_EXTRA_SYMBOLS
|
||||
PWD :=$(shell pwd)
|
||||
modules :
|
||||
echo $HUACHENG_LINUX_KERNEL
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/vermagic.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
MODULE_INFO(vermagic, VERMAGIC_STRING);
|
||||
MODULE_INFO(name, KBUILD_MODNAME);
|
||||
|
||||
__visible struct module __this_module
|
||||
__attribute__((section(".gnu.linkonce.this_module"))) = {
|
||||
.name = KBUILD_MODNAME,
|
||||
.init = init_module,
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
.exit = cleanup_module,
|
||||
#endif
|
||||
.arch = MODULE_ARCH_INIT,
|
||||
};
|
||||
|
||||
#ifdef RETPOLINE
|
||||
MODULE_INFO(retpoline, "Y");
|
||||
#endif
|
||||
|
||||
static const char __module_depends[]
|
||||
__used
|
||||
__attribute__((section(".modinfo"))) =
|
||||
"depends=";
|
||||
|
||||
|
||||
MODULE_INFO(srcversion, "1A92196CEBDAFD5950E8BDF");
|
|
@ -0,0 +1,19 @@
|
|||
#Makefile 2.6
|
||||
export HUACHENG_LINUX_KERNEL
|
||||
|
||||
DEFINES :=
|
||||
INCLUDE := -I../../../Common -I../../common
|
||||
LIB :=
|
||||
|
||||
obj-m :=netlink.o
|
||||
netlink-objs := libnetlink_k.o
|
||||
#KERNEL :=$(HUACHENG_LINUX_KERNEL)
|
||||
KERNEL :=/usr/src/linux
|
||||
|
||||
PWD :=$(shell pwd)
|
||||
modules :
|
||||
echo $HUACHENG_LINUX_KERNEL
|
||||
$(MAKE) $(INCLUDE) -C $(KERNEL) M=$(PWD) modules
|
||||
.PHONEY:clean
|
||||
clean :
|
||||
rm -rf *.o *.mod.c *.ko *.symvers *.order *.makers .*.cmd *.cmd .tmp_versions .cache.mk
|
|
@ -15,6 +15,8 @@ struct commnl_msgtype_process cfgnl_msg_handlers[COMMCFG_NLMSG_MAX_TYPE];
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
void printk_mem(unsigned char * p,int len)
|
||||
{
|
||||
int num = 0;
|
||||
|
@ -285,5 +287,35 @@ int commnl_unicast(struct sock *sk, struct sk_buff *skb, u32 portid)
|
|||
return err;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(pdeliv_msgtype_register);
|
||||
EXPORT_SYMBOL(cfg_msgtype_register);
|
||||
EXPORT_SYMBOL(cfg_msgtype_unregister);
|
||||
EXPORT_SYMBOL(pdeliv_msgtype_unregister);
|
||||
EXPORT_SYMBOL(libnetlinkk_init_byproto);
|
||||
EXPORT_SYMBOL(libnetlinkk_exit);
|
||||
EXPORT_SYMBOL(commnl_unicast);
|
||||
EXPORT_SYMBOL(printk_mem);
|
||||
EXPORT_SYMBOL(printk_ipaddress);
|
||||
|
||||
int __init libnetlink_k_init(void)
|
||||
{
|
||||
printk(KERN_INFO "insmod netlink.ko...\n");
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
void __exit libnetlink_k_exit(void)
|
||||
{
|
||||
printk(KERN_INFO "rmmod netlink.ko...\n");
|
||||
|
||||
return;
|
||||
};
|
||||
|
||||
|
||||
module_init(libnetlink_k_init);
|
||||
module_exit(libnetlink_k_exit);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("a common channel,made netlink protocal family");
|
||||
MODULE_AUTHOR("RSLjdkt");
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ struct netlinkk_cfg
|
|||
|
||||
//struct upmnl_link *upmnl_msg_handlers[UPMNL_FAMILY_MAX + 1];
|
||||
unsigned int pkt_delev_num;/*上送的包数量*/
|
||||
|
||||
};
|
||||
|
||||
typedef int (*commnl_doit_func)(struct sk_buff *, struct nlmsghdr *);
|
||||
|
@ -37,11 +38,11 @@ struct commnl_msgtype_process
|
|||
|
||||
|
||||
|
||||
void printk_mem(unsigned char * p,int len);
|
||||
void printk_ipaddress(unsigned int address);
|
||||
extern void printk_mem(unsigned char * p,int len);
|
||||
extern void printk_ipaddress(unsigned int address);
|
||||
|
||||
|
||||
int pdeliv_msgtype_register( int msgtype,commnl_doit_func doit,
|
||||
extern int pdeliv_msgtype_register( int msgtype,commnl_doit_func doit,
|
||||
commnl_dumpit_func dumpit,commnl_calcit_func calcit);
|
||||
|
||||
/****************************************************************/
|
||||
|
@ -53,11 +54,11 @@ int pdeliv_msgtype_register( int msgtype,commnl_doit_func doit,
|
|||
/*输出参数: WU */
|
||||
/*返回值:0注册成功;< 0,失败 */
|
||||
/****************************************************************/
|
||||
int cfg_msgtype_register( int msgtype,commnl_doit_func doit,
|
||||
extern int cfg_msgtype_register( int msgtype,commnl_doit_func doit,
|
||||
commnl_dumpit_func dumpit,commnl_calcit_func calcit);
|
||||
|
||||
int cfg_msgtype_unregister(int msgtype);
|
||||
int pdeliv_msgtype_unregister(int msgtype);
|
||||
extern int cfg_msgtype_unregister(int msgtype);
|
||||
extern int pdeliv_msgtype_unregister(int msgtype);
|
||||
|
||||
|
||||
/****************************************************************/
|
||||
|
@ -67,11 +68,11 @@ int pdeliv_msgtype_unregister(int msgtype);
|
|||
/*输出参数: struct upmnl_handle * upmh ,存放创建的通道相关信息。*/
|
||||
/*返回值:0通道创建成果;< 0,失败 */
|
||||
/****************************************************************/
|
||||
int libnetlinkk_init_byproto(struct netlinkk_cfg *g_nlcfg);
|
||||
extern int libnetlinkk_init_byproto(struct netlinkk_cfg *g_nlcfg);
|
||||
|
||||
void libnetlinkk_exit(struct netlinkk_cfg *g_nlcfg);
|
||||
extern void libnetlinkk_exit(struct netlinkk_cfg *g_nlcfg);
|
||||
|
||||
int commnl_unicast(struct sock *sk, struct sk_buff *skb, u32 portid);
|
||||
extern int commnl_unicast(struct sock *sk, struct sk_buff *skb, u32 portid);
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,17 +2,19 @@
|
|||
export HUACHENG_LINUX_KERNEL
|
||||
|
||||
DEFINES :=
|
||||
INCLUDE := -I../lib -I../../../Common
|
||||
INCLUDE := -I../../../Common -I../../common
|
||||
LIB :=
|
||||
|
||||
obj-m :=pdeliv.o
|
||||
pdeliv-objs := pdeliverynl_kinit.o ../netlink_api/libnetlink_k.o
|
||||
pdeliv-objs := pdeliverynl_kinit.o
|
||||
#KERNEL :=$(HUACHENG_LINUX_KERNEL)
|
||||
KERNEL :=/usr/src/linux
|
||||
|
||||
KBUILD_EXTRA_SYMBOLS += ../netlink_api/Module.symvers
|
||||
export KBUILD_EXTRA_SYMBOLS
|
||||
PWD :=$(shell pwd)
|
||||
modules :
|
||||
$(MAKE) -C $(KERNEL) M=$(PWD) modules
|
||||
echo $HUACHENG_LINUX_KERNEL
|
||||
$(MAKE) $(INCLUDE) -C $(KERNEL) M=$(PWD) modules
|
||||
.PHONEY:clean
|
||||
clean :
|
||||
rm -rf *.o *.mod.c *.ko *.symvers *.order *.makers .*.cmd *.cmd .tmp_versions .cache.mk
|
||||
|
|
|
@ -131,7 +131,7 @@ unsigned int pdelivery_hook_func(void *priv,
|
|||
}
|
||||
g_nlcfg.pkt_delev_num ++;
|
||||
|
||||
printk(KERN_INFO "pdelivery_hook_func() end.\n");
|
||||
printk(KERN_INFO "pdelivery_hook_func() end,pkt_delev_num =%u.\n",g_nlcfg.pkt_delev_num);
|
||||
return NF_ACCEPT;/*must return a value*/
|
||||
|
||||
failure:
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/vermagic.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
MODULE_INFO(vermagic, VERMAGIC_STRING);
|
||||
MODULE_INFO(name, KBUILD_MODNAME);
|
||||
|
||||
__visible struct module __this_module
|
||||
__attribute__((section(".gnu.linkonce.this_module"))) = {
|
||||
.name = KBUILD_MODNAME,
|
||||
.init = init_module,
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
.exit = cleanup_module,
|
||||
#endif
|
||||
.arch = MODULE_ARCH_INIT,
|
||||
};
|
||||
|
||||
#ifdef RETPOLINE
|
||||
MODULE_INFO(retpoline, "Y");
|
||||
#endif
|
||||
|
||||
static const char __module_depends[]
|
||||
__used
|
||||
__attribute__((section(".modinfo"))) =
|
||||
"depends=";
|
||||
|
||||
|
||||
MODULE_INFO(srcversion, "AFBB76601AC352A20DE7026");
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
echo '---------build kernel_ko:-------'
|
||||
cd ../../modules/cfgrcv
|
||||
echo 'clean cfgrcv..'
|
||||
make clean
|
||||
make
|
||||
echo 'build cfgrcv.ko sucess!'
|
||||
echo '---------------------------'
|
||||
|
||||
echo 'clean pdelivery..'
|
||||
cd ../../modules/pdelivery
|
||||
make clean
|
||||
make
|
||||
echo 'build pdeliv.ko sucess!'
|
||||
echo '---------------------------'
|
||||
echo ' '
|
||||
echo '---------build user_apps:-------'
|
||||
cd ../../user/netlink_uapi
|
||||
echo 'clean libnetlinku.so..'
|
||||
make clean
|
||||
make
|
||||
echo 'build libnetlinku.so sucess!'
|
||||
echo '---------------------------'
|
||||
|
||||
cd ../../user/pdeliv_u
|
||||
echo 'clean pdeliv..'
|
||||
make clean
|
||||
make
|
||||
echo 'build pdeliv sucess!'
|
||||
echo '---------------------------'
|
||||
|
||||
cd ../../user/cfg2kernel
|
||||
echo 'clean commcfg..'
|
||||
make clean
|
||||
make
|
||||
echo 'build commcfg sucess!'
|
||||
echo '---------------------------'
|
Loading…
Reference in New Issue