Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  af_netlink.h

  Sprache: C
 

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _AF_NETLINK_H
#define _AF_NETLINK_H

#include <linux/rhashtable.h>
#include <linux/atomic.h>
#include <net/sock.h>

/* flags */
enum {
 NETLINK_F_KERNEL_SOCKET,
 NETLINK_F_RECV_PKTINFO,
 NETLINK_F_BROADCAST_SEND_ERROR,
 NETLINK_F_RECV_NO_ENOBUFS,
 NETLINK_F_LISTEN_ALL_NSID,
 NETLINK_F_CAP_ACK,
 NETLINK_F_EXT_ACK,
 NETLINK_F_STRICT_CHK,
};

#define NLGRPSZ(x) (ALIGN(x, sizeof(unsigned long) * 8) / 8)
#define NLGRPLONGS(x) (NLGRPSZ(x)/sizeof(unsigned long))

struct netlink_sock {
 /* struct sock has to be the first member of netlink_sock */
 struct sock  sk;
 unsigned long  flags;
 u32   portid;
 u32   dst_portid;
 u32   dst_group;
 u32   subscriptions;
 u32   ngroups;
 unsigned long  *groups;
 unsigned long  state;
 size_t   max_recvmsg_len;
 wait_queue_head_t wait;
 bool   bound;
 bool   cb_running;
 int   dump_done_errno;
 struct netlink_callback cb;
 struct mutex  nl_cb_mutex;

 void   (*netlink_rcv)(struct sk_buff *skb);
 int   (*netlink_bind)(struct net *net, int group);
 void   (*netlink_unbind)(struct net *net, int group);
 void   (*netlink_release)(struct sock *sk,
         unsigned long *groups);
 struct module  *module;

 struct rhash_head node;
 struct rcu_head  rcu;
};

static inline struct netlink_sock *nlk_sk(struct sock *sk)
{
 return container_of(sk, struct netlink_sock, sk);
}

#define nlk_test_bit(nr, sk) test_bit(NETLINK_F_##nr, &nlk_sk(sk)->flags)

struct netlink_table {
 struct rhashtable hash;
 struct hlist_head mc_list;
 struct listeners __rcu *listeners;
 unsigned int  flags;
 unsigned int  groups;
 struct mutex  *cb_mutex;
 struct module  *module;
 int   (*bind)(struct net *net, int group);
 void   (*unbind)(struct net *net, int group);
 void                    (*release)(struct sock *sk,
        unsigned long *groups);
 int   registered;
};

extern struct netlink_table *nl_table;
extern rwlock_t nl_table_lock;

#endif

Messung V0.5 in Prozent
C=94 H=93 G=93

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-04-28) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge