include/linux/atmdev.h
Source file repositories/reference/linux-study-clean/include/linux/atmdev.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/atmdev.h- Extension
.h- Size
- 7920 bytes
- Lines
- 272
- 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.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- 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/wait.hlinux/time.hlinux/net.hlinux/bug.hlinux/skbuff.hlinux/uio.hnet/sock.hlinux/atomic.hlinux/refcount.huapi/linux/atmdev.hlinux/proc_fs.hlinux/compat.h
Detected Declarations
struct compat_atm_iobufstruct k_atm_aal_statsstruct k_atm_dev_statsstruct devicestruct atm_vccstruct atm_devstruct atmdev_opsstruct atm_skb_datastruct atm_ioctlfunction atm_account_txfunction atm_return_txfunction atm_force_chargefunction atm_returnfunction atm_may_sendfunction atm_dev_holdfunction atm_dev_put
Annotated Snippet
struct compat_atm_iobuf {
int length;
compat_uptr_t buffer;
};
#endif
struct k_atm_aal_stats {
#define __HANDLE_ITEM(i) atomic_t i
__AAL_STAT_ITEMS
#undef __HANDLE_ITEM
};
struct k_atm_dev_stats {
struct k_atm_aal_stats aal0;
struct k_atm_aal_stats aal34;
struct k_atm_aal_stats aal5;
};
struct device;
enum {
ATM_VF_ADDR, /* Address is in use. Set by anybody, cleared
by device driver. */
ATM_VF_READY, /* VC is ready to transfer data. Set by device
driver, cleared by anybody. */
ATM_VF_PARTIAL, /* resources are bound to PVC (partial PVC
setup), controlled by socket layer */
ATM_VF_HASQOS, /* QOS parameters have been set */
ATM_VF_CLOSE, /* asynchronous close - VC is being torn down */
};
enum {
ATM_DF_REMOVED, /* device was removed from atm_devs list */
};
#define ATM_PHY_SIG_LOST 0 /* no carrier/light */
#define ATM_PHY_SIG_UNKNOWN 1 /* carrier/light status is unknown */
#define ATM_PHY_SIG_FOUND 2 /* carrier/light okay */
#define ATM_ATMOPT_CLP 1 /* set CLP bit */
struct atm_vcc {
/* struct sock has to be the first member of atm_vcc */
struct sock sk;
unsigned long flags; /* VCC flags (ATM_VF_*) */
short vpi; /* VPI and VCI (types must be equal */
/* with sockaddr) */
int vci;
unsigned long aal_options; /* AAL layer options */
unsigned long atm_options; /* ATM layer options */
struct atm_dev *dev; /* device back pointer */
struct atm_qos qos; /* QOS */
void (*release_cb)(struct atm_vcc *vcc); /* release_sock callback */
void (*push)(struct atm_vcc *vcc,struct sk_buff *skb);
void (*pop)(struct atm_vcc *vcc,struct sk_buff *skb); /* optional */
int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
void *dev_data; /* per-device data */
void *proto_data; /* per-protocol data */
struct k_atm_aal_stats *stats; /* pointer to AAL stats group */
struct module *owner; /* owner of ->push function */
void *user_back; /* user backlink - not touched by the */
/* native ATM stack, used by sch_atm */
};
static inline struct atm_vcc *atm_sk(struct sock *sk)
{
return (struct atm_vcc *)sk;
}
static inline struct atm_vcc *ATM_SD(struct socket *sock)
{
return atm_sk(sock->sk);
}
static inline struct sock *sk_atm(struct atm_vcc *vcc)
{
return (struct sock *)vcc;
}
struct atm_dev {
const struct atmdev_ops *ops; /* device operations; NULL if unused */
const char *type; /* device type name */
int number; /* device index */
void *dev_data; /* per-device data */
void *phy_data; /* private PHY data */
unsigned long flags; /* device flags (ATM_DF_*) */
unsigned char esi[ESI_LEN]; /* ESI ("MAC" addr) */
Annotation
- Immediate include surface: `linux/wait.h`, `linux/time.h`, `linux/net.h`, `linux/bug.h`, `linux/skbuff.h`, `linux/uio.h`, `net/sock.h`, `linux/atomic.h`.
- Detected declarations: `struct compat_atm_iobuf`, `struct k_atm_aal_stats`, `struct k_atm_dev_stats`, `struct device`, `struct atm_vcc`, `struct atm_dev`, `struct atmdev_ops`, `struct atm_skb_data`, `struct atm_ioctl`, `function atm_account_tx`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.