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
..
byteorder
dvb
hdlc
isdn
lockd
mmc
[MMC] Ensure correct mmc_priv() behaviour
2005-09-08 22:46:00 +01:00
mtd
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
[NETFILTER]: kill __ip_ct_expect_unlink_destroy
2005-09-06 15:10:46 -07:00
netfilter_ipv6
nfsd
raid
[PATCH] md: add write-intent-bitmap support to raid5
2005-09-09 16:39:12 -07:00
sunrpc
[PATCH] sunrpc: cache_register can use wrong module reference
2005-09-07 16:57:25 -07:00
tc_act
tc_ematch
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi.h
adb.h
adfs_fs.h
adfs_fs_i.h
adfs_fs_sb.h
affs_fs.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio.h
aio_abi.h
amifd.h
amifdreg.h
amigaffs.h
apm_bios.h
arcdevice.h
arcfb.h
ata.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
[SCSI] correct attribute_container list usage
2005-08-30 22:44:20 -05:00
audit.h
auto_fs.h
auto_fs4.h
auxvec.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
awe_voice.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
baycom.h
bcd.h
bfs_fs.h
[PATCH] bfs: fix endianness, signedness; add trivial bugfix
2005-09-09 13:57:32 -07:00
binfmts.h
bio.h
[PATCH] include/linux/bio.h: "extern inline" -> "static inline"
2005-09-10 10:06:35 -07:00
bit_spinlock.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
bitmap.h
bitops.h
blkdev.h
[PATCH] include/linux/blkdev.h: "extern inline" -> "static inline"
2005-09-10 10:06:34 -07:00
blkpg.h
blockgroup_lock.h
bootmem.h
bpqether.h
buffer_head.h
cache.h
capability.h
[PATCH] VM: add capabilites check to set_zone_reclaim
2005-09-05 00:05:44 -07:00
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
chio.h
[PATCH] __user annotations (scsi/ch)
2005-09-10 10:16:27 -07:00
circ_buf.h
cobalt-nvram.h
coda.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_proc.h
coda_psdev.h
coff.h
com20020.h
compat.h
[PATCH] compat: be more consistent about [ug]id_t
2005-09-07 16:57:19 -07:00
compat_ioctl.h
compiler-gcc.h
compiler-gcc2.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
config.h
connector.h
[NET]: Add netlink connector.
2005-09-11 19:15:07 -07:00
console.h
console_struct.h
consolemap.h
cpu.h
[PATCH] remove driverfs references from include/linux/cpu.h and net/sunrpc/rpc_pipe.c
2005-09-02 00:57:31 -07:00
cpufreq.h
cpumask.h
cpuset.h
[PATCH] cpusets: confine oom_killer to mem_exclusive cpuset
2005-09-07 16:57:40 -07:00
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h
crc-ccitt.h
crc16.h
[PATCH] lib/crc16: added crc16 algorithm.
2005-09-08 14:41:27 -07:00
crc32.h
crc32c.h
crypto.h
[CRYPTO]: Added CRYPTO_TFM_REQ_MAY_SLEEP flag
2005-09-01 17:43:05 -07:00
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
[PATCH] struct dentry: place d_hash close to d_parent and d_name to speedup lookups
2005-09-07 16:57:41 -07:00
dccp.h
[DCCP] Introduce dccp_timestamp
2005-09-09 02:38:35 -03:00
dcookies.h
debugfs.h
delay.h
devfs_fs.h
devfs_fs_kernel.h
device-mapper.h
device.h
devpts_fs.h
dio.h
dirent.h
divert.h
dm-ioctl.h
dm9000.h
dma-mapping.h
dmapool.h
[PATCH] dmapool: Fix "nocast type" warnings
2005-09-10 10:06:29 -07:00
dmi.h
[PATCH] dmi: add onboard devices discovery
2005-09-07 16:57:44 -07:00
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1286.h
dtlk.h
edd.h
eeprom.h
efi.h
[PATCH] x86: fix EFI memory map parsing
2005-09-05 00:06:09 -07:00
efs_dir.h
efs_fs.h
efs_fs_i.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
elfcore.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventpoll.h
ext2_fs.h
[PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts
2005-09-07 16:57:23 -07:00
ext2_fs_sb.h
ext3_fs.h
[PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts
2005-09-07 16:57:23 -07:00
ext3_fs_i.h
ext3_fs_sb.h
ext3_jbd.h
fadvise.h
fb.h
[PATCH] fbcon: Break up bit_putcs into its component functions
2005-09-09 14:03:41 -07:00
fcdevice.h
fcntl.h
fd.h
fd1772.h
fddidevice.h
fdreg.h
file.h
[PATCH] files: files struct with RCU
2005-09-09 13:57:55 -07:00
filter.h
firmware.h
[PATCH] modified firmware_class.c to support no hotplug
2005-09-07 16:57:26 -07:00
flat.h
font.h
fs.h
[PATCH] mm/filemap.c: make two functions static
2005-09-10 10:06:25 -07:00
fs_struct.h
fsl_devices.h
fsnotify.h
ftape-header-segment.h
ftape-vendors.h
ftape.h
fuse.h
[PATCH] FUSE: add fsync operation for directories
2005-09-09 14:03:47 -07:00
futex.h
[PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup
2005-09-07 16:57:17 -07:00
gameport.h
gen_stats.h
genalloc.h
generic_serial.h
genhd.h
gfp.h
[PATCH] cpusets: new __GFP_HARDWALL flag
2005-09-07 16:57:40 -07:00
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hdsmart.h
hiddev.h
highmem.h
highuid.h
hippidevice.h
hpet.h
hpfs_fs.h
hugetlb.h
[PATCH] remove hugetlb_clean_stale_pgtable() and fix huge_pte_alloc()
2005-09-05 00:05:46 -07:00
hwmon-sysfs.h
[PATCH] I2C: W83792D driver 1/3
2005-09-05 09:14:13 -07:00
hwmon-vid.h
[PATCH] hwmon: hwmon vs i2c, second round (10/11)
2005-09-05 09:14:23 -07:00
hwmon.h
[PATCH] hwmon: move SENSORS_LIMIT to hwmon.h
2005-09-05 09:14:17 -07:00
hysdn_if.h
i2c-algo-bit.h
i2c-algo-ite.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-algo-sibyte.h
i2c-dev.h
i2c-id.h
[PATCH] I2C: Kill i2c_algorithm.id (7/7)
2005-09-05 09:14:33 -07:00
i2c-isa.h
[PATCH] I2C: Kill i2c_algorithm.id (5/7)
2005-09-05 09:14:31 -07:00
i2c-pxa.h
i2c.h
[PATCH] I2C: Drop the I2C_ACK_TEST ioctl
2005-09-05 09:26:56 -07:00
i2o-dev.h
i2o.h
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h
idr.h
if.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_ltalk.h
if_packet.h
if_plip.h
if_ppp.h
if_pppox.h
if_shaper.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
[TUNTAP]: Allow setting the linktype of the tap device from userspace
2005-09-01 17:40:05 -07:00
if_tunnel.h
if_vlan.h
if_wanpipe.h
if_wanpipe_common.h
igmp.h
in.h
in6.h
[IPV6]: Note values allocated for ip6_tables.
2005-09-10 11:32:45 +09:00
in_route.h
inet.h
inet_diag.h
inetdevice.h
init.h
init_task.h
[PATCH] files: files struct with RCU
2005-09-09 13:57:55 -07:00
initrd.h
inotify.h
[PATCH] inotify: fix event loss on hardlinked files
2005-09-07 16:57:39 -07:00
input.h
Manual merge with Linus
2005-09-09 20:14:47 -05:00
interrupt.h
ioc4.h
ioctl.h
ioctl32.h
[PATCH] remove register_ioctl32_conversion and unregister_ioctl32_conversion
2005-09-07 16:57:20 -07:00
ioport.h
ioprio.h
ip.h
ip6_tunnel.h
ip_mp_alg.h
ipc.h
ipmi.h
[PATCH] ipmi: fix panic ipmb response
2005-09-07 16:57:48 -07:00
ipmi_msgdefs.h
ipmi_smi.h
ipsec.h
ipv6.h
[IPV6]: Bring Type 0 routing header in-line with rfc3542.
2005-09-10 00:15:06 -07:00
ipv6_route.h
ipx.h
irda.h
irq.h
[PATCH] CHECK_IRQ_PER_CPU() to avoid dead code in __do_IRQ()
2005-09-07 16:57:29 -07:00
irq_cpustat.h
isapnp.h
isdn.h
[PATCH] Remove non-arch consumers of asm/segment.h
2005-09-07 16:57:34 -07:00
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ite_gpio.h
ixjuser.h
jbd.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
jffs.h
jffs2.h
jffs2_fs_i.h
jffs2_fs_sb.h
jhash.h
jiffies.h
[PATCH] include: update jiffies/{m,u}secs conversion functions
2005-09-10 10:06:36 -07:00
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kd.h
kdev_t.h
kernel.h
kernel_stat.h
kernelcapi.h
kexec.h
key-ui.h
key.h
keyboard.h
keyctl.h
kfifo.h
klist.h
[PATCH] fix klist semantics for lists which have elements removed on traversal
2005-09-07 18:26:54 -07:00
kmalloc_sizes.h
kmod.h
kobj_map.h
kobject.h
kobject_uevent.h
kprobes.h
[PATCH] Kprobes: prevent possible race conditions generic
2005-09-07 16:57:59 -07:00
kref.h
kthread.h
lapb.h
lcd.h
libata.h
/spare/repo/libata-dev branch 'iomap-try3'
2005-09-05 05:20:33 -04:00
libps2.h
limits.h
linkage.h
[PATCH] Kprobes: prevent possible race conditions generic
2005-09-07 16:57:59 -07:00
linux_logo.h
list.h
llc.h
loop.h
lp.h
major.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mempolicy.h
[PATCH] PCI: Run PCI driver initialization on local node
2005-09-08 14:57:23 -07:00
mempool.h
meye.h
mii.h
minix_fs.h
miscdevice.h
mm.h
mm_inline.h
mman.h
mmtimer.h
mmzone.h
[PATCH] sparsemem extreme: hotplug preparation
2005-09-05 00:05:38 -07:00
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h
[PATCH] ipc: convert /proc/sysvipc/* to generic seq_file interface
2005-09-07 16:57:26 -07:00
mtio.h
mv643xx.h
[PATCH] ppc32: mv64x60 updates & enhancements
2005-09-05 00:06:00 -07:00
n_r3964.h
namei.h
namespace.h
nbd.h
ncp.h
ncp_fs.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_mount.h
ncp_no.h
net.h
netdevice.h
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_logging.h
netlink.h
[NET]: Add netlink connector.
2005-09-11 19:15:07 -07:00
netpoll.h
netrom.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_acl.h
nfs4_mount.h
nfs_fs.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nfsd_idmap.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nubus.h
numa.h
nvram.h
openprom_fs.h
oprofile.h
page-flags.h
[PATCH] VM: add page_state info to per-node meminfo
2005-09-05 00:05:49 -07:00
pagemap.h
pagevec.h
param.h
parport.h
parport_pc.h
parser.h
patchkey.h
pci-acpi.h
pci.h
Remove "must_check" attributes in PCI-land
2005-09-09 15:43:46 -07:00
pci_ids.h
[PATCH] net: add driver for the NIC on Cell Blades
2005-09-06 22:17:49 -04:00
pci_regs.h
[PATCH] PCI: restore BAR values after D3hot->D0 for devices that need it
2005-09-08 14:57:24 -07:00
pcieport_if.h
percpu.h
percpu_counter.h
personality.h
pfkeyv2.h
pg.h
phonedev.h
phy.h
pid.h
pipe_fs_i.h
[PATCH] remove pipe definitions
2005-09-07 16:57:24 -07:00
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform.h
pm.h
[PATCH] swsusp: switch pm_message_t to struct
2005-09-05 00:06:16 -07:00
pmu.h
pnp.h
[PATCH] PNP: make pnp_dbg conditional directly on CONFIG_PNP_DEBUG
2005-09-07 16:57:25 -07:00
pnpbios.h
poll.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
prctl.h
preempt.h
prefetch.h
prio_tree.h
proc_fs.h
profile.h
ps2esdi.h
ptrace.h
[PATCH] remove duplicated code from proc and ptrace
2005-09-07 16:57:43 -07:00
qic117.h
qnx4_fs.h
qnxtypes.h
quota.h
quotaio_v1.h
quotaio_v2.h
quotaops.h
radeonfb.h
radix-tree.h
[PATCH] lib/radix-tree: Fix "nocast type" warnings
2005-09-10 10:06:28 -07:00
raid_class.h
[SCSI] embryonic RAID class
2005-08-30 22:48:51 -05:00
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h
[PATCH] files: fix rcu initializers
2005-09-09 13:57:54 -07:00
rcuref.h
[PATCH] files: rcuref APIs
2005-09-09 13:57:54 -07:00
reboot.h
reboot_fixups.h
reiserfs_acl.h
reiserfs_fs.h
[PATCH] "extern inline" -> "static inline"
2005-09-10 10:06:35 -07:00
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_xattr.h
relayfs_fs.h
[PATCH] relayfs
2005-09-07 16:57:18 -07:00
resource.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc.h
rtnetlink.h
rwsem-spinlock.h
rwsem.h
sc26198.h
scatterlist.h
scc.h
sched.h
[PATCH] MCA/INIT: scheduler hooks
2005-09-11 14:01:30 -07:00
sctp.h
scx200.h
scx200_gpio.h
sdla.h
sdla_asy.h
sdla_chdlc.h
sdla_fr.h
sdla_ppp.h
sdla_x25.h
sdladrv.h
sdlapci.h
sdlasfm.h
seccomp.h
securebits.h
security.h
[PATCH] remove the inode_post_link and inode_post_rename LSM hooks
2005-09-09 13:57:28 -07:00
selection.h
selinux_netlink.h
sem.h
[PATCH] ipc: convert /proc/sysvipc/* to generic seq_file interface
2005-09-07 16:57:26 -07:00
seq_file.h
seqlock.h
serial.h
[ARM] 2866/1: add i.MX set_mctrl / get_mctrl functions
2005-08-31 21:48:47 +01:00
serial167.h
serial_8250.h
[SERIAL] Use an enum for serial8250 platform device IDs
2005-09-08 16:04:41 +01:00
serial_core.h
Fix up ARM serial driver compile failure
2005-09-08 14:47:12 -07:00
serial_reg.h
serialP.h
serio.h
shm.h
shmem_fs.h
signal.h
skbuff.h
[NET]: Optimize pskb_trim_rcsum()
2005-09-08 12:32:03 -07:00
slab.h
[PATCH] mm/slab: fix sparse warnings
2005-09-10 10:06:26 -07:00
smb.h
smb_fs.h
smb_fs_i.h
smb_fs_sb.h
smb_mount.h
smbno.h
smp.h
smp_lock.h
snmp.h
socket.h
sockios.h
som.h
sonet.h
sonypi.h
[PATCH] sonypi SPIC initialisation fix
2005-09-07 16:57:24 -07:00
sort.h
sound.h
soundcard.h
spinlock.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
spinlock_api_smp.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
spinlock_api_up.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
spinlock_types.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
spinlock_types_up.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
spinlock_up.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
stallion.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h
stringify.h
superhyway.h
suspend.h
swap.h
[PATCH] swap: swap_lock replace list+device
2005-09-05 00:05:42 -07:00
swapops.h
[PATCH] comment typo fix
2005-09-05 00:05:45 -07:00
synclink.h
sys.h
syscalls.h
sysctl.h
[PATCH] ipmi poweroff: fix chassis control
2005-09-07 16:57:49 -07:00
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
tcp.h
telephony.h
termios.h
textsearch.h
textsearch_fsm.h
thread_info.h
threads.h
ticable.h
time.h
[PATCH] time.h: remove ifdefs
2005-09-10 10:06:36 -07:00
timer.h
[PATCH] timer initialization cleanup: DEFINE_TIMER
2005-09-09 14:03:48 -07:00
times.h
timex.h
[PATCH] NTP: ntp-helper functions
2005-09-07 16:57:34 -07:00
tiocl.h
topology.h
[PATCH] cpusets: Move the ia64 domain setup code to the generic code
2005-09-07 16:57:40 -07:00
toshiba.h
transport_class.h
trdevice.h
tty.h
[PATCH] vesafb: Add blanking support
2005-09-09 13:57:58 -07:00
tty_driver.h
tty_flip.h
tty_ldisc.h
types.h
udf_fs.h
udf_fs_i.h
udf_fs_sb.h
udp.h
ufs_fs.h
ufs_fs_i.h
ufs_fs_sb.h
uinput.h
uio.h
ultrasound.h
umem.h
un.h
unistd.h
usb.h
[PATCH] USB: URB_ASYNC_UNLINK flag removed from the kernel
2005-09-08 16:23:04 -07:00
usb_cdc.h
usb_ch9.h
usb_gadget.h
usb_gadgetfs.h
usb_input.h
usb_isp116x.h
[PATCH] USB: isp116x-hcd: remove clock() and reset()
2005-09-08 16:22:48 -07:00
usb_otg.h
usb_sl811.h
usbdevice_fs.h
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
videodev.h
[PATCH] v4l: common part Updates and tuner additions
2005-09-09 13:57:49 -07:00
videodev2.h
[PATCH] v4l: common part Updates and tuner additions
2005-09-09 13:57:49 -07:00
videotext.h
vmalloc.h
[PATCH] arm: allow for arch-specific IOREMAP_MAX_ORDER
2005-09-05 00:05:46 -07:00
vt.h
vt_buffer.h
vt_kern.h
wait.h
wanpipe.h
wanrouter.h
watchdog.h
wavefront.h
wireless.h
[wireless] build fixes after merging WE-19
2005-09-07 00:27:54 -04:00
workqueue.h
writeback.h
[PATCH] mm/filemap.c: make two functions static
2005-09-10 10:06:25 -07:00
x25.h
xattr.h
xfrm.h
yam.h
zconf.h
zftape.h
zlib.h
zorro.h
zorro_ids.h
zutil.h