include/net/af_unix.h
Source file repositories/reference/linux-study-clean/include/net/af_unix.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/af_unix.h- Extension
.h- Size
- 1405 bytes
- Lines
- 64
- 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.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/atomic.hlinux/mutex.hlinux/net.hlinux/path.hlinux/refcount.hlinux/spinlock.hlinux/wait.hnet/sock.huapi/linux/un.h
Detected Declarations
struct unix_addressstruct scm_statstruct unix_sock
Annotated Snippet
struct unix_address {
refcount_t refcnt;
int len;
struct sockaddr_un name[];
};
struct scm_stat {
atomic_t nr_fds;
unsigned long nr_unix_fds;
};
/* The AF_UNIX socket */
struct unix_sock {
/* WARNING: sk has to be the first member */
struct sock sk;
struct unix_address *addr;
struct path path;
struct mutex iolock, bindlock;
struct sock *peer;
struct sock *listener;
struct unix_vertex *vertex;
spinlock_t lock;
struct socket_wq peer_wq;
#define peer_wait peer_wq.wait
wait_queue_entry_t peer_wake;
struct scm_stat scm_stat;
int inq_len;
bool recvmsg_inq;
#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
struct sk_buff *oob_skb;
#endif
};
#define unix_sk(ptr) container_of_const(ptr, struct unix_sock, sk)
#define unix_peer(sk) (unix_sk(sk)->peer)
#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock)
#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock)
#endif
Annotation
- Immediate include surface: `linux/atomic.h`, `linux/mutex.h`, `linux/net.h`, `linux/path.h`, `linux/refcount.h`, `linux/spinlock.h`, `linux/wait.h`, `net/sock.h`.
- Detected declarations: `struct unix_address`, `struct scm_stat`, `struct unix_sock`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.