forked from luck/tmp_suning_uos_patched
500f83abdc
This patch introduces new feature in qeth: qeth enhancement provides the device driver support for the Communication Controller for Linux on System z9 and zSeries (CCL), which is software that enables running the Network Control Program (NCP) on a zSeries machine. The OSA CDLC support is based on a new IBM mainframe CHPID type called Open Systems Adaper for NCP (OSN). In case of OSN qeth communicates with the type-OSN OSA-card on one hand, and with the CCL-kernel-component Network Device Handler (NDH) on the other. Signed-off-by: Frank Pavlic <pavlic@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
174 lines
3.6 KiB
C
174 lines
3.6 KiB
C
/*
|
|
* linux/drivers/s390/net/qeth_fs.h
|
|
*
|
|
* Linux on zSeries OSA Express and HiperSockets support.
|
|
*
|
|
* This header file contains definitions related to sysfs and procfs.
|
|
*
|
|
* Copyright 2000,2003 IBM Corporation
|
|
* Author(s): Thomas Spatzier <tspat@de.ibm.com>
|
|
*
|
|
*/
|
|
#ifndef __QETH_FS_H__
|
|
#define __QETH_FS_H__
|
|
|
|
#define VERSION_QETH_FS_H "$Revision: 1.10 $"
|
|
|
|
extern const char *VERSION_QETH_PROC_C;
|
|
extern const char *VERSION_QETH_SYS_C;
|
|
|
|
#ifdef CONFIG_PROC_FS
|
|
extern int
|
|
qeth_create_procfs_entries(void);
|
|
|
|
extern void
|
|
qeth_remove_procfs_entries(void);
|
|
#else
|
|
static inline int
|
|
qeth_create_procfs_entries(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void
|
|
qeth_remove_procfs_entries(void)
|
|
{
|
|
}
|
|
#endif /* CONFIG_PROC_FS */
|
|
|
|
extern int
|
|
qeth_create_device_attributes(struct device *dev);
|
|
|
|
extern void
|
|
qeth_remove_device_attributes(struct device *dev);
|
|
|
|
extern int
|
|
qeth_create_device_attributes_osn(struct device *dev);
|
|
|
|
extern void
|
|
qeth_remove_device_attributes_osn(struct device *dev);
|
|
|
|
extern int
|
|
qeth_create_driver_attributes(void);
|
|
|
|
extern void
|
|
qeth_remove_driver_attributes(void);
|
|
|
|
/*
|
|
* utility functions used in qeth_proc.c and qeth_sys.c
|
|
*/
|
|
|
|
static inline const char *
|
|
qeth_get_checksum_str(struct qeth_card *card)
|
|
{
|
|
if (card->options.checksum_type == SW_CHECKSUMMING)
|
|
return "sw";
|
|
else if (card->options.checksum_type == HW_CHECKSUMMING)
|
|
return "hw";
|
|
else
|
|
return "no";
|
|
}
|
|
|
|
static inline const char *
|
|
qeth_get_prioq_str(struct qeth_card *card, char *buf)
|
|
{
|
|
if (card->qdio.do_prio_queueing == QETH_NO_PRIO_QUEUEING)
|
|
sprintf(buf, "always_q_%i", card->qdio.default_out_queue);
|
|
else
|
|
strcpy(buf, (card->qdio.do_prio_queueing ==
|
|
QETH_PRIO_Q_ING_PREC)?
|
|
"by_prec." : "by_ToS");
|
|
return buf;
|
|
}
|
|
|
|
static inline const char *
|
|
qeth_get_bufsize_str(struct qeth_card *card)
|
|
{
|
|
if (card->qdio.in_buf_size == 16384)
|
|
return "16k";
|
|
else if (card->qdio.in_buf_size == 24576)
|
|
return "24k";
|
|
else if (card->qdio.in_buf_size == 32768)
|
|
return "32k";
|
|
else if (card->qdio.in_buf_size == 40960)
|
|
return "40k";
|
|
else
|
|
return "64k";
|
|
}
|
|
|
|
static inline const char *
|
|
qeth_get_cardname(struct qeth_card *card)
|
|
{
|
|
if (card->info.guestlan) {
|
|
switch (card->info.type) {
|
|
case QETH_CARD_TYPE_OSAE:
|
|
return " Guest LAN QDIO";
|
|
case QETH_CARD_TYPE_IQD:
|
|
return " Guest LAN Hiper";
|
|
default:
|
|
return " unknown";
|
|
}
|
|
} else {
|
|
switch (card->info.type) {
|
|
case QETH_CARD_TYPE_OSAE:
|
|
return " OSD Express";
|
|
case QETH_CARD_TYPE_IQD:
|
|
return " HiperSockets";
|
|
case QETH_CARD_TYPE_OSN:
|
|
return " OSN QDIO";
|
|
default:
|
|
return " unknown";
|
|
}
|
|
}
|
|
return " n/a";
|
|
}
|
|
|
|
/* max length to be returned: 14 */
|
|
static inline const char *
|
|
qeth_get_cardname_short(struct qeth_card *card)
|
|
{
|
|
if (card->info.guestlan){
|
|
switch (card->info.type){
|
|
case QETH_CARD_TYPE_OSAE:
|
|
return "GuestLAN QDIO";
|
|
case QETH_CARD_TYPE_IQD:
|
|
return "GuestLAN Hiper";
|
|
default:
|
|
return "unknown";
|
|
}
|
|
} else {
|
|
switch (card->info.type) {
|
|
case QETH_CARD_TYPE_OSAE:
|
|
switch (card->info.link_type) {
|
|
case QETH_LINK_TYPE_FAST_ETH:
|
|
return "OSD_100";
|
|
case QETH_LINK_TYPE_HSTR:
|
|
return "HSTR";
|
|
case QETH_LINK_TYPE_GBIT_ETH:
|
|
return "OSD_1000";
|
|
case QETH_LINK_TYPE_10GBIT_ETH:
|
|
return "OSD_10GIG";
|
|
case QETH_LINK_TYPE_LANE_ETH100:
|
|
return "OSD_FE_LANE";
|
|
case QETH_LINK_TYPE_LANE_TR:
|
|
return "OSD_TR_LANE";
|
|
case QETH_LINK_TYPE_LANE_ETH1000:
|
|
return "OSD_GbE_LANE";
|
|
case QETH_LINK_TYPE_LANE:
|
|
return "OSD_ATM_LANE";
|
|
default:
|
|
return "OSD_Express";
|
|
}
|
|
case QETH_CARD_TYPE_IQD:
|
|
return "HiperSockets";
|
|
case QETH_CARD_TYPE_OSN:
|
|
return "OSN";
|
|
default:
|
|
return "unknown";
|
|
}
|
|
}
|
|
return "n/a";
|
|
}
|
|
|
|
#endif /* __QETH_FS_H__ */
|