2005-04-17 02:20:36 +04:00
/*
* 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__
# 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 ) ;
2005-09-30 12:19:19 +04:00
extern int
qeth_create_device_attributes_osn ( struct device * dev ) ;
extern void
qeth_remove_device_attributes_osn ( struct device * dev ) ;
2006-05-27 05:58:38 +04:00
2005-04-17 02:20:36 +04:00
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 " ;
2005-09-30 12:19:19 +04:00
case QETH_CARD_TYPE_OSN :
return " OSN QDIO " ;
2005-04-17 02:20:36 +04:00
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 " ;
2005-09-30 12:19:19 +04:00
case QETH_CARD_TYPE_OSN :
return " OSN " ;
2005-04-17 02:20:36 +04:00
default :
return " unknown " ;
}
}
return " n/a " ;
}
# endif /* __QETH_FS_H__ */