include/linux/ieee80211-nan.h

Source file repositories/reference/linux-study-clean/include/linux/ieee80211-nan.h

File Facts

System
Linux kernel
Corpus path
include/linux/ieee80211-nan.h
Extension
.h
Size
2357 bytes
Lines
78
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ieee80211_nan_attr {
	u8 attr;
	__le16 length;
	u8 data[];
} __packed;

struct ieee80211_nan_master_indication {
	u8 master_pref;
	u8 random_factor;
} __packed;

struct ieee80211_nan_anchor_master_info {
	union {
		__le64 master_rank;
		struct {
			u8 master_addr[ETH_ALEN];
			u8 random_factor;
			u8 master_pref;
		} __packed;
	} __packed;
	u8 hop_count;
	__le32 ambtt;
} __packed;

#define for_each_nan_attr(_attr, _data, _datalen)			\
	for (_attr = (const struct ieee80211_nan_attr *)(_data);	\
	     (const u8 *)(_data) + (_datalen) - (const u8 *)_attr >=	\
		(int)sizeof(*_attr) &&					\
	     (const u8 *)(_data) + (_datalen) - (const u8 *)_attr >=	\
		(int)sizeof(*_attr) + le16_to_cpu(_attr->length);	\
	     _attr = (const struct ieee80211_nan_attr *)		\
		(_attr->data + le16_to_cpu(_attr->length)))

#endif /* LINUX_IEEE80211_NAN_H */

Annotation

Implementation Notes