include/net/netns/generic.h

Source file repositories/reference/linux-study-clean/include/net/netns/generic.h

File Facts

System
Linux kernel
Corpus path
include/net/netns/generic.h
Extension
.h
Size
1225 bytes
Lines
53
Domain
Networking Core
Bucket
Sockets, Protocols, Packet Path, And Network Policy
Inferred role
Networking Core: implementation source
Status
source implementation candidate

Why This File Exists

Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.

Dependency Surface

Detected Declarations

Annotated Snippet

struct net_generic {
	union {
		struct {
			unsigned int len;
			struct rcu_head rcu;
		} s;

		DECLARE_FLEX_ARRAY(void *, ptr);
	};
};

static inline void *net_generic(const struct net *net, unsigned int id)
{
	struct net_generic *ng;
	void *ptr;

	rcu_read_lock();
	ng = rcu_dereference(net->gen);
	ptr = ng->ptr[id];
	rcu_read_unlock();

	return ptr;
}
#endif

Annotation

Implementation Notes