⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skproc.c

📁 这是Marvell Technology Group Ltd. 4355 (rev 12)网卡在linux下的驱动程序源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
								10);							strcpy(sens_msg, pAC->I2c.SenTable[i].SenDesc);							strcat(sens_msg, " (F)");							len += sk_proc_print(buffer,								"%-25s      %d.%02d\n",								sens_msg,								((((pAC->I2c.SenTable[i].SenValue)								*10)*9)/5 + 3200)/100,								((((pAC->I2c.SenTable[i].SenValue)								*10)*9)/5 + 3200) % 10);							break;						case 2:							strcpy(sens_msg, pAC->I2c.SenTable[i].SenDesc);							strcat(sens_msg, " (V)");							len += sk_proc_print(buffer,								"%-25s      %d.%03d\n",								sens_msg,								pAC->I2c.SenTable[i].SenValue / 1000,								pAC->I2c.SenTable[i].SenValue % 1000);							break;						case 3:							strcpy(sens_msg, pAC->I2c.SenTable[i].SenDesc);							strcat(sens_msg, " (rpm)");							len += sk_proc_print(buffer,								"%-25s      %d\n",								sens_msg,								pAC->I2c.SenTable[i].SenValue);							break;						default:							break;						}					}								/*Receive statistics */					len += sk_proc_print(buffer, 					"\nReceive statistics\n\n");					len += sk_proc_print(buffer,						"Received bytes                 %Lu\n",						(unsigned long long) pPnmiStat->StatRxOctetsOkCts);					len += sk_proc_print(buffer,						"Received packets               %Lu\n",						(unsigned long long) pPnmiStat->StatRxOkCts);#if 0					if (pAC->GIni.GP[0].PhyType == SK_PHY_XMAC && 						pAC->HWRevision < 12) {						pPnmiStruct->InErrorsCts = pPnmiStruct->InErrorsCts - 							pPnmiStat->StatRxShortsCts;						pPnmiStat->StatRxShortsCts = 0;					}#endif					if (pAC->dev[t-1]->mtu > 1500) 						pPnmiStruct->InErrorsCts = pPnmiStruct->InErrorsCts -							pPnmiStat->StatRxTooLongCts;					len += sk_proc_print(buffer,						"Receive errors                 %Lu\n",						(unsigned long long) pPnmiStruct->InErrorsCts);					len += sk_proc_print(buffer,						"Receive dropped                %Lu\n",						(unsigned long long) pPnmiStruct->RxNoBufCts);					len += sk_proc_print(buffer,						"Received multicast             %Lu\n",						(unsigned long long) pPnmiStat->StatRxMulticastOkCts);#ifdef ADVANCED_STATISTIC_OUTPUT					len += sk_proc_print(buffer,						"Receive error types\n");					len += sk_proc_print(buffer,						"   length                      %Lu\n",						(unsigned long long) pPnmiStat->StatRxRuntCts);					len += sk_proc_print(buffer,						"   buffer overflow             %Lu\n",						(unsigned long long) pPnmiStat->StatRxFifoOverflowCts);					len += sk_proc_print(buffer,						"   bad crc                     %Lu\n",						(unsigned long long) pPnmiStat->StatRxFcsCts);					len += sk_proc_print(buffer,						"   framing                     %Lu\n",						(unsigned long long) pPnmiStat->StatRxFramingCts);					len += sk_proc_print(buffer,						"   missed frames               %Lu\n",						(unsigned long long) pPnmiStat->StatRxMissedCts);					if (pAC->dev[t-1]->mtu > 1500)						pPnmiStat->StatRxTooLongCts = 0;					len += sk_proc_print(buffer,						"   too long                    %Lu\n",						(unsigned long long) pPnmiStat->StatRxTooLongCts);										len += sk_proc_print(buffer,						"   carrier extension           %Lu\n",						(unsigned long long) pPnmiStat->StatRxCextCts);									len += sk_proc_print(buffer,						"   too short                   %Lu\n",						(unsigned long long) pPnmiStat->StatRxShortsCts);									len += sk_proc_print(buffer,						"   symbol                      %Lu\n",						(unsigned long long) pPnmiStat->StatRxSymbolCts);									len += sk_proc_print(buffer,						"   LLC MAC size                %Lu\n",						(unsigned long long) pPnmiStat->StatRxIRLengthCts);									len += sk_proc_print(buffer,						"   carrier event               %Lu\n",						(unsigned long long) pPnmiStat->StatRxCarrierCts);									len += sk_proc_print(buffer,						"   jabber                      %Lu\n",						(unsigned long long) pPnmiStat->StatRxJabberCts);				#endif					/*Transmit statistics */					len += sk_proc_print(buffer, 					"\nTransmit statistics\n\n");									len += sk_proc_print(buffer,						"Transmitted bytes              %Lu\n",						(unsigned long long) pPnmiStat->StatTxOctetsOkCts);					len += sk_proc_print(buffer,						"Transmitted packets            %Lu\n",						(unsigned long long) pPnmiStat->StatTxOkCts);					len += sk_proc_print(buffer,						"Transmit errors                %Lu\n",						(unsigned long long) pPnmiStat->StatTxSingleCollisionCts);					len += sk_proc_print(buffer,						"Transmit dropped               %Lu\n",						(unsigned long long) pPnmiStruct->TxNoBufCts);					len += sk_proc_print(buffer,						"Transmit collisions            %Lu\n",						(unsigned long long) pPnmiStat->StatTxSingleCollisionCts);#ifdef ADVANCED_STATISTIC_OUTPUT					len += sk_proc_print(buffer,						"Transmit error types\n");					len += sk_proc_print(buffer,						"   excessive collision         %ld\n",						pAC->stats.tx_aborted_errors);					len += sk_proc_print(buffer,						"   carrier                     %Lu\n",						(unsigned long long) pPnmiStat->StatTxCarrierCts);					len += sk_proc_print(buffer,						"   fifo underrun               %Lu\n",						(unsigned long long) pPnmiStat->StatTxFifoUnderrunCts);					len += sk_proc_print(buffer,						"   heartbeat                   %Lu\n",						(unsigned long long) pPnmiStat->StatTxCarrierCts);					len += sk_proc_print(buffer,						"   window                      %ld\n",						pAC->stats.tx_window_errors);#endif				} /* if (!DisableStatistic) */							} /* if (strcmp(pACname, currDeviceName) == 0) */		}		SkgeProcDev = next;	}}/***************************************************************************** * *      sk_proc_print - generic line print   * * Description: *	This function fills the proc entry with statistic data about the  *	ethernet device. *   * Returns: *	the number of bytes written *       */ static int sk_proc_print(void *writePtr, /* the buffer pointer         */char *format,   /* the format of the string   */...)            /* variable list of arguments */{   #define MAX_LEN_SINGLE_LINE 256	char     str[MAX_LEN_SINGLE_LINE];	va_list  a_start;	int      lenght = 0;	struct seq_file *seq = (struct seq_file *) writePtr;	SK_MEMSET(str, 0, MAX_LEN_SINGLE_LINE);	va_start(a_start, format);	vsprintf(str, format, a_start);	va_end(a_start);	lenght = strlen(str);	seq_printf(seq, str);	return lenght;}/***************************************************************************** * *      sk_seq_show - show proc information of a particular adapter * * Description: *	This function fills the proc entry with statistic data about the *	ethernet device. It invokes the generic sk_gen_browse() to print *	out all items one per one. *   * Returns: *	the number of bytes written *       */static int sk_seq_show(struct seq_file *seq,  /* the sequence pointer */void            *v)    /* additional pointer   */{	void *castedBuffer = (void *) seq;	currDev = seq->private;	sk_gen_browse(castedBuffer);	return 0;}/***************************************************************************** * *      sk_proc_open - register the show function when proc is open'ed *   * Description: *	This function is called whenever a sk98lin proc file is queried. *   * Returns: *	the return value of single_open() *       */static int sk_proc_open(struct inode *inode,  /* the inode of the file   */struct file  *file)   /* the file pointer itself */{	return single_open(file, sk_seq_show, PDE(inode)->data);}/******************************************************************************* * * End of file * ******************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -