drivers/s390/net/qeth_core.h
Source file repositories/reference/linux-study-clean/drivers/s390/net/qeth_core.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/s390/net/qeth_core.h- Extension
.h- Size
- 28490 bytes
- Lines
- 1109
- Domain
- Driver Families
- Bucket
- drivers/s390
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- 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/completion.hlinux/debugfs.hlinux/if.hlinux/if_arp.hlinux/etherdevice.hlinux/if_vlan.hlinux/ctype.hlinux/in6.hlinux/bitops.hlinux/seq_file.hlinux/hashtable.hlinux/ip.hlinux/rcupdate.hlinux/refcount.hlinux/timer.hlinux/types.hlinux/wait.hlinux/workqueue.hnet/dst.hnet/ip6_fib.hnet/ipv6.hnet/if_inet6.hnet/addrconf.hnet/route.hnet/sch_generic.hnet/tcp.hasm/debug.hasm/qdio.hasm/ccwdev.hasm/ccwgroup.hasm/sysinfo.huapi/linux/if_link.h
Detected Declarations
struct qeth_dbf_infostruct qeth_routing_infostruct qeth_sbp_infostruct qeth_vnicc_infostruct qeth_hdr_layer3struct rxstruct qeth_hdr_layer2struct qeth_hdrstruct qeth_qib_parmsstruct qeth_hdr_ext_tsostruct qeth_hdr_tsostruct qeth_local_addrstruct qeth_buffer_pool_entrystruct qeth_qdio_buffer_poolstruct qeth_qdio_bufferstruct qeth_qdio_qstruct qeth_qaob_priv1struct qeth_qdio_out_bufferstruct qeth_cardstruct qeth_card_statsstruct qeth_out_q_statsstruct qeth_qdio_out_qstruct qeth_qdio_infostruct qeth_ipatostruct qeth_channelstruct qeth_replystruct qeth_cmd_bufferstruct qeth_tokenstruct qeth_seqnostruct qeth_card_blktstruct qeth_link_infostruct qeth_card_infostruct qeth_card_optionsstruct qeth_disciplinestruct qeth_rxstruct qeth_switch_infostruct qeth_privstruct qeth_cardstruct qeth_trap_idenum qeth_dbf_namesenum qeth_sbp_rolesenum qeth_sbp_statesenum qeth_cast_flagsenum qeth_layer2_frame_flagsenum qeth_header_idsenum qeth_qdio_info_statesenum qeth_qdio_out_buffer_stateenum qeth_qaob_state
Annotated Snippet
struct qeth_dbf_info {
char name[DEBUG_MAX_NAME_LEN];
int pages;
int areas;
int len;
int level;
struct debug_view *view;
debug_info_t *id;
};
#define QETH_DBF_CTRL_LEN 256U
#define QETH_DBF_TEXT(name, level, text) \
debug_text_event(qeth_dbf[QETH_DBF_##name].id, level, text)
#define QETH_DBF_HEX(name, level, addr, len) \
debug_event(qeth_dbf[QETH_DBF_##name].id, level, (void *)(addr), len)
#define QETH_DBF_MESSAGE(level, text...) \
debug_sprintf_event(qeth_dbf[QETH_DBF_MSG].id, level, text)
#define QETH_DBF_TEXT_(name, level, text...) \
qeth_dbf_longtext(qeth_dbf[QETH_DBF_##name].id, level, text)
#define QETH_CARD_TEXT(card, level, text) \
debug_text_event(card->debug, level, text)
#define QETH_CARD_HEX(card, level, addr, len) \
debug_event(card->debug, level, (void *)(addr), len)
#define QETH_CARD_MESSAGE(card, text...) \
debug_sprintf_event(card->debug, level, text)
#define QETH_CARD_TEXT_(card, level, text...) \
qeth_dbf_longtext(card->debug, level, text)
#define SENSE_COMMAND_REJECT_BYTE 0
#define SENSE_COMMAND_REJECT_FLAG 0x80
#define SENSE_RESETTING_EVENT_BYTE 1
#define SENSE_RESETTING_EVENT_FLAG 0x80
static inline u32 qeth_get_device_id(struct ccw_device *cdev)
{
struct ccw_dev_id dev_id;
u32 id;
ccw_device_get_id(cdev, &dev_id);
id = dev_id.devno;
id |= (u32) (dev_id.ssid << 16);
return id;
}
/*
* Common IO related definitions
*/
#define CARD_RDEV(card) card->read.ccwdev
#define CARD_WDEV(card) card->write.ccwdev
#define CARD_DDEV(card) card->data.ccwdev
#define CARD_BUS_ID(card) dev_name(&card->gdev->dev)
#define CARD_RDEV_ID(card) dev_name(&card->read.ccwdev->dev)
#define CARD_WDEV_ID(card) dev_name(&card->write.ccwdev->dev)
#define CARD_DDEV_ID(card) dev_name(&card->data.ccwdev->dev)
#define CCW_DEVID(cdev) (qeth_get_device_id(cdev))
#define CARD_DEVID(card) (CCW_DEVID(CARD_RDEV(card)))
/* Routing stuff */
struct qeth_routing_info {
enum qeth_routing_types type;
};
/* SETBRIDGEPORT stuff */
enum qeth_sbp_roles {
QETH_SBP_ROLE_NONE = 0,
QETH_SBP_ROLE_PRIMARY = 1,
QETH_SBP_ROLE_SECONDARY = 2,
};
enum qeth_sbp_states {
QETH_SBP_STATE_INACTIVE = 0,
QETH_SBP_STATE_STANDBY = 1,
QETH_SBP_STATE_ACTIVE = 2,
};
#define QETH_SBP_HOST_NOTIFICATION 1
struct qeth_sbp_info {
__u32 supported_funcs;
enum qeth_sbp_roles role;
__u32 hostnotification:1;
Annotation
- Immediate include surface: `linux/completion.h`, `linux/debugfs.h`, `linux/if.h`, `linux/if_arp.h`, `linux/etherdevice.h`, `linux/if_vlan.h`, `linux/ctype.h`, `linux/in6.h`.
- Detected declarations: `struct qeth_dbf_info`, `struct qeth_routing_info`, `struct qeth_sbp_info`, `struct qeth_vnicc_info`, `struct qeth_hdr_layer3`, `struct rx`, `struct qeth_hdr_layer2`, `struct qeth_hdr`, `struct qeth_qib_parms`, `struct qeth_hdr_ext_tso`.
- Atlas domain: Driver Families / drivers/s390.
- 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.