linux/drivers
Evgeniy Polyakov 7672d0b544 [NET]: Add netlink connector.
Kernel connector - new userspace <-> kernel space easy to use
communication module which implements easy to use bidirectional
message bus using netlink as it's backend.  Connector was created to
eliminate complex skb handling both in send and receive message bus
direction.

Connector driver adds possibility to connect various agents using as
one of it's backends netlink based network.  One must register
callback and identifier. When driver receives special netlink message
with appropriate identifier, appropriate callback will be called.

From the userspace point of view it's quite straightforward:

	socket();
	bind();
	send();
	recv();

But if kernelspace want to use full power of such connections, driver
writer must create special sockets, must know about struct sk_buff
handling...  Connector allows any kernelspace agents to use netlink
based networking for inter-process communication in a significantly
easier way:

int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);

struct cb_id
{
	__u32			idx;
	__u32			val;
};

idx and val are unique identifiers which must be registered in
connector.h for in-kernel usage.  void (*callback) (void *) - is a
callback function which will be called when message with above idx.val
will be received by connector core.

Using connector completely hides low-level transport layer from it's
users.

Connector uses new netlink ability to have many groups in one socket.

[ Incorporating many cleanups and fixes by myself and
  Andrew Morton -DaveM ]

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-09-11 19:15:07 -07:00
..
acorn [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
acpi [PATCH] remove ACPI S4bios support 2005-09-10 10:06:35 -07:00
atm [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
base [PATCH] dmapool: Fix "nocast type" warnings 2005-09-10 10:06:29 -07:00
block [PATCH] cfq-iosched: reverse bad reference count fix 2005-09-10 10:15:12 -07:00
bluetooth [Bluetooth]: Move packet type into the SKB control buffer 2005-08-29 15:55:13 -07:00
cdrom [PATCH] drivers/cdrom: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
char Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2005-09-10 15:54:41 -07:00
connector [NET]: Add netlink connector. 2005-09-11 19:15:07 -07:00
cpufreq [CPUFREQ] Bugfix: Call driver exit in cpufreq_add_dev error path 2005-08-31 22:21:28 -07:00
crypto
dio
eisa
fc4 [SCSI] fc4 warning fix 2005-07-30 09:47:53 -05:00
firmware [PATCH] dcdbas: add Dell Systems Management Base Driver with sysfs support 2005-09-07 16:57:27 -07:00
hwmon [PATCH] hwmon: (3/3) pc87360 driver update 2005-09-05 09:26:55 -07:00
i2c Merge master.kernel.org:/home/rmk/linux-2.6-i2c manually 2005-09-08 15:43:09 -07:00
ide hpt366: write the full 4 bytes of ROM address, not just low 1 byte 2005-09-11 09:22:50 -07:00
ieee1394 [PATCH] trivial __user cleanup (video1394) 2005-09-09 14:05:54 -07:00
infiniband Merge master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2005-09-11 10:16:07 -07:00
input Input: i8042 - use kzalloc instead of kcalloc 2005-09-10 12:04:42 -05:00
isdn [PATCH] vfree and kfree cleanup in drivers/ 2005-09-10 10:06:30 -07:00
macintosh [PATCH] swsusp: switch pm_message_t to struct 2005-09-05 00:06:16 -07:00
mca
md [PATCH] merge some from Rusty's trivial patches 2005-09-10 10:06:30 -07:00
media [PATCH] vfree and kfree cleanup in drivers/ 2005-09-10 10:06:30 -07:00
message Merge by hand (conflicts in sd.c) 2005-09-06 17:52:54 -05:00
mfd [MFD] Cleanups suggested by Dmitri, Vojtech and lists. 2005-09-11 10:28:00 +01:00
misc [PATCH] hdpu_cpustate.c: misc_register() can fail 2005-09-10 10:06:25 -07:00
mmc [MMC] Add mmc_detect_change() delay support for wbsd driver 2005-09-10 11:58:21 +01:00
mtd [PATCH] vfree and kfree cleanup in drivers/ 2005-09-10 10:06:30 -07:00
net [PATCH] Sun HME: enable and map PCI ROM properly 2005-09-11 09:28:17 -07:00
nubus
oprofile [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
parisc [PATCH] merge some from Rusty's trivial patches 2005-09-10 10:06:30 -07:00
parport [PATCH] parport: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
pci [PATCH] Subject: PATCH: fix numa caused compile warnings 2005-09-10 10:06:21 -07:00
pcmcia [PATCH] pcmcia: add pcmcia to IRQ information 2005-09-09 13:57:48 -07:00
pnp Merge linux-2.6 with linux-acpi-2.6 2005-09-08 01:45:47 -04:00
s390 [PATCH] s390: claw driver fixes 2005-09-06 22:15:20 -04:00
sbus [PATCH] envctrl fixes 2005-09-10 10:16:27 -07:00
scsi [PATCH] __user annotations (scsi/ch) 2005-09-10 10:16:27 -07:00
serial Merge master.kernel.org:/home/rmk/linux-2.6-serial 2005-09-10 10:17:13 -07:00
sh
sn
tc
telephony [PATCH] telephony: fix-up schedule_timeout() usage 2005-09-10 10:06:39 -07:00
usb Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2005-09-10 15:54:41 -07:00
video [PATCH] Fix breakage on ppc{,64} by "nvidiafb: Fallback to firmware EDID" 2005-09-10 17:31:12 -07:00
w1 [PATCH] w1_ds2433: Added crc16 protection and read caching. 2005-09-08 14:41:27 -07:00
zorro
Kconfig [NET]: Add netlink connector. 2005-09-11 19:15:07 -07:00
Makefile [NET]: Add netlink connector. 2005-09-11 19:15:07 -07:00