net/batman-adv/main.c
Source file repositories/reference/linux-study-clean/net/batman-adv/main.c
File Facts
- System
- Linux kernel
- Corpus path
net/batman-adv/main.c- Extension
.c- Size
- 19567 bytes
- Lines
- 703
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- 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
main.hlinux/array_size.hlinux/atomic.hlinux/build_bug.hlinux/byteorder/generic.hlinux/container_of.hlinux/device.hlinux/errno.hlinux/gfp.hlinux/if_ether.hlinux/if_vlan.hlinux/init.hlinux/ip.hlinux/ipv6.hlinux/kobject.hlinux/kref.hlinux/list.hlinux/minmax.hlinux/module.hlinux/netdevice.hlinux/printk.hlinux/rcupdate.hlinux/skbuff.hlinux/slab.hlinux/spinlock.hlinux/sprintf.hlinux/stddef.hlinux/string.hlinux/utsname.hlinux/workqueue.hnet/dsfield.hnet/genetlink.h
Detected Declarations
function batadv_initfunction batadv_exitfunction batadv_mesh_initfunction batadv_mesh_freefunction batadv_is_my_macfunction batadv_max_header_lenfunction batadv_skb_set_priorityfunction batadv_recv_unhandled_packetfunction batadv_batman_skb_recvfunction batadv_recv_handler_initfunction batadv_recv_handler_registerfunction batadv_recv_handler_unregisterfunction batadv_get_vidfunction batadv_vlan_ap_isola_getfunction batadv_throw_ueventmodule init batadv_init
Annotated Snippet
module_init(batadv_init);
module_exit(batadv_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR(BATADV_DRIVER_AUTHOR);
MODULE_DESCRIPTION(BATADV_DRIVER_DESC);
MODULE_ALIAS_RTNL_LINK("batadv");
MODULE_ALIAS_GENL_FAMILY(BATADV_NL_NAME);
Annotation
- Immediate include surface: `main.h`, `linux/array_size.h`, `linux/atomic.h`, `linux/build_bug.h`, `linux/byteorder/generic.h`, `linux/container_of.h`, `linux/device.h`, `linux/errno.h`.
- Detected declarations: `function batadv_init`, `function batadv_exit`, `function batadv_mesh_init`, `function batadv_mesh_free`, `function batadv_is_my_mac`, `function batadv_max_header_len`, `function batadv_skb_set_priority`, `function batadv_recv_unhandled_packet`, `function batadv_batman_skb_recv`, `function batadv_recv_handler_init`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: integration 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.