lpfc 8.2.8 : Add kernel-doc function headers - part 3
Subsystems (2)
PATCH 3/15 lpfc 8.2.8 : Add kernel-doc function headers - part 3
Add kernel-doc function headers - part 3
Signed-off-by James Smart <[email protected]>
---
lpfc_debugfs.c | 327 ++++++++++++++++++++++++++++++-- lpfc_init.c | 575 ++++++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 763 insertions(+), 139 deletions(-)
drivers/scsi/lpfc/lpfc_debugfs.c +310 -17
@@ -1,7 +1,7 @@/******************************************************************* * This file is part of the Emulex Linux Device Driver for * * Fibre Channel Host Bus Adapters. * -* Copyright (C) 2007 Emulex. All rights reserved. * +* Copyright (C) 2007-2008 Emulex. All rights reserved. * * EMULEX and SLI are trademarks of Emulex. * * www.emulex.com * * *
@@ -47,13 +47,14 @@#include "lpfc_debugfs.h" #ifdef CONFIG_LPFC_DEBUG_FS -/* debugfs interface +/** +* debugfs interface * * To access this interface the user should: * # mkdir /debug * # mount -t debugfs none /debug * -* The lpfc debugfs directory hierachy is: +* The lpfc debugfs directory hierarchy is: * lpfc/lpfcX/vportY * where X is the lpfc hba unique_id * where Y is the vport VPI on that hba
@@ -62,14 +63,21 @@* discovery_trace * This is an ACSII readable file that contains a trace of the last * lpfc_debugfs_max_disc_trc events that happened on a specific vport. -* See lpfc_debugfs.h for different categories of -* discovery events. To enable the discovery trace, the following -* module parameters must be set: +* See lpfc_debugfs.h for different categories of discovery events. +* To enable the discovery trace, the following module parameters must be set: * lpfc_debugfs_enable=1 Turns on lpfc debugfs filesystem support * lpfc_debugfs_max_disc_trc=X Where X is the event trace depth for * EACH vport. X MUST also be a power of 2. * lpfc_debugfs_mask_disc_trc=Y Where Y is an event mask as defined in * lpfc_debugfs.h . +* +* slow_ring_trace +* This is an ACSII readable file that contains a trace of the last +* lpfc_debugfs_max_slow_ring_trc events that happened on a specific HBA. +* To enable the slow ring trace, the following module parameters must be set: +* lpfc_debugfs_enable=1 Turns on lpfc debugfs filesystem support +* lpfc_debugfs_max_slow_ring_trc=X Where X is the event trace depth for +* the HBA. X MUST also be a power of 2. */ static int lpfc_debugfs_enable =1 ;module_param (lpfc_debugfs_enable, int,0 );
@@ -118,6 +126,25 @@ struct lpfc_debug {static atomic_t lpfc_debugfs_seq_trc_cnt =ATOMIC_INIT (0 );static unsigned long lpfc_debugfs_start_time =0L ; +/** +* lpfc_debugfs_disc_trc_data - Dump discovery logging to a buffer. +* @vport: The vport to gather the log info from. +* @buf: The buffer to dump log into. +* @size: The maximum amount of data to process. +* +* Description: +* This routine gathers the lpfc discovery debugfs data from the @vport and +* dumps it to @buf up to @size number of bytes. It will start at the next entry +* in the log and process the log until the end of the buffer. Then it will +* gather from the beginning of the log and process until the current entry. +* +* Notes: +* Discovery logging will be disabled while while this routine dumps the log. +* +* Return Value: +* This routine returns the amount of bytes that were dumped into @buf and will +* not exceed @size. +**/ static int lpfc_debugfs_disc_trc_data (struct lpfc_vport *vport,char *buf,int size) {
@@ -126,7 +153,6 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vstruct lpfc_debugfs_trc *dtp;char buffer[LPFC_DEBUG_TRC_ENTRY_SIZE ]; - enable = lpfc_debugfs_enable; lpfc_debugfs_enable =0 ;
@@ -160,6 +186,25 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vreturn len; } +/** +* lpfc_debugfs_slow_ring_trc_data - Dump slow ring logging to a buffer. +* @phba: The HBA to gather the log info from. +* @buf: The buffer to dump log into. +* @size: The maximum amount of data to process. +* +* Description: +* This routine gathers the lpfc slow ring debugfs data from the @phba and +* dumps it to @buf up to @size number of bytes. It will start at the next entry +* in the log and process the log until the end of the buffer. Then it will +* gather from the beginning of the log and process until the current entry. +* +* Notes: +* Slow ring logging will be disabled while while this routine dumps the log. +* +* Return Value: +* This routine returns the amount of bytes that were dumped into @buf and will +* not exceed @size. +**/ static int lpfc_debugfs_slow_ring_trc_data (struct lpfc_hba *phba,char *buf,int size) {
@@ -204,6 +249,25 @@ lpfc_debugfs_slow_ring_trc_data(struct lstatic int lpfc_debugfs_last_hbq =-1 ; +/** +* lpfc_debugfs_hbqinfo_data - Dump host buffer queue info to a buffer. +* @phba: The HBA to gather host buffer info from. +* @buf: The buffer to dump log into. +* @size: The maximum amount of data to process. +* +* Description: +* This routine dumps the host buffer queue info from the @phba to @buf up to +* @size number of bytes. A header that describes the current hbq state will be +* dumped to @buf first and then info on each hbq entry will be dumped to @buf +* until @size bytes have been dumped or all the hbq info has been dumped. +* +* Notes: +* This routine will rotate through each configured HBQ each time called. +* +* Return Value: +* This routine returns the amount of bytes that were dumped into @buf and will +* not exceed @size. +**/ static int lpfc_debugfs_hbqinfo_data (struct lpfc_hba *phba,char *buf,int size) {
@@ -304,6 +368,24 @@ skipit:static int lpfc_debugfs_last_hba_slim_off; +/** +* lpfc_debugfs_dumpHBASlim_data - Dump HBA SLIM info to a buffer. +* @phba: The HBA to gather SLIM info from. +* @buf: The buffer to dump log into. +* @size: The maximum amount of data to process. +* +* Description: +* This routine dumps the current contents of HBA SLIM for the HBA associated +* with @phba to @buf up to @size bytes of data. This is the raw HBA SLIM data. +* +* Notes: +* This routine will only dump up to 1024 bytes of data each time called and +* should be called multiple times to dump the entire HBA SLIM. +* +* Return Value: +* This routine returns the amount of bytes that were dumped into @buf and will +* not exceed @size. +**/ static int lpfc_debugfs_dumpHBASlim_data (struct lpfc_hba *phba,char *buf,int size) {
@@ -343,6 +425,21 @@ lpfc_debugfs_dumpHBASlim_data(struct lpfreturn len; } +/** +* lpfc_debugfs_dumpHostSlim_data - Dump host SLIM info to a buffer. +* @phba: The HBA to gather Host SLIM info from. +* @buf: The buffer to dump log into. +* @size: The maximum amount of data to process. +* +* Description: +* This routine dumps the current contents of host SLIM for the host associated +* with @phba to @buf up to @size bytes of data. The dump will contain the +* Mailbox, PCB, Rings, and Registers that are located in host memory. +* +* Return Value: +* This routine returns the amount of bytes that were dumped into @buf and will +* not exceed @size. +**/ static int lpfc_debugfs_dumpHostSlim_data (struct lpfc_hba *phba,char *buf,int size) {
@@ -431,6 +528,21 @@ lpfc_debugfs_dumpHostSlim_data(struct lpreturn len; } +/** +* lpfc_debugfs_nodelist_data - Dump target node list to a buffer. +* @vport: The vport to gather target node info from. +* @buf: The buffer to dump log into. +* @size: The maximum amount of data to process. +* +* Description: +* This routine dumps the current target node list associated with @vport to +* @buf up to @size bytes of data. Each node entry in the dump will contain a +* node state, DID, WWPN, WWNN, RPI, flags, type, and other useful fields. +* +* Return Value: +* This routine returns the amount of bytes that were dumped into @buf and will +* not exceed @size. +**/ static int lpfc_debugfs_nodelist_data (struct lpfc_vport *vport,char *buf,int size) {
@@ -514,7 +626,22 @@ lpfc_debugfs_nodelist_data(struct lpfc_v }#endif - +/** +* lpfc_debugfs_disc_trc - Store discovery trace log. +* @vport: The vport to associate this trace string with for retrieval. +* @mask: Log entry classification. +* @fmt: Format string to be displayed when dumping the log. +* @data1: 1st data parameter to be applied to @fmt. +* @data2: 2nd data parameter to be applied to @fmt. +* @data3: 3rd data parameter to be applied to @fmt. +* +* Description: +* This routine is used by the driver code to add a debugfs log entry to the +* discovery trace buffer associated with @vport. Only entries with a @mask that +* match the current debugfs discovery mask will be saved. Entries that do not +* match will be thrown away. @fmt, @data1, @data2, and @data3 are used like +* printf when displaying the log. +**/ inline void lpfc_debugfs_disc_trc (struct lpfc_vport *vport,int mask,char *fmt,uint32_t data1,uint32_t data2,uint32_t data3)
@@ -543,6 +670,19 @@ lpfc_debugfs_disc_trc(struct lpfc_vportreturn ; } +/** +* lpfc_debugfs_slow_ring_trc - Store slow ring trace log. +* @phba: The phba to associate this trace string with for retrieval. +* @fmt: Format string to be displayed when dumping the log. +* @data1: 1st data parameter to be applied to @fmt. +* @data2: 2nd data parameter to be applied to @fmt. +* @data3: 3rd data parameter to be applied to @fmt. +* +* Description: +* This routine is used by the driver code to add a debugfs log entry to the +* discovery trace buffer associated with @vport. @fmt, @data1, @data2, and +* @data3 are used like printf when displaying the log. +**/ inline void lpfc_debugfs_slow_ring_trc (struct lpfc_hba *phba,char *fmt,uint32_t data1,uint32_t data2,uint32_t data3)
@@ -569,6 +709,21 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_h }#ifdef CONFIG_LPFC_DEBUG_FS +/** +* lpfc_debugfs_disc_trc_open - Open the discovery trace log. +* @inode: The inode pointer that contains a vport pointer. +* @file: The file pointer to attach the log output. +* +* Description: +* This routine is the entry point for the debugfs open file operation. It gets +* the vport from the i_private field in @inode, allocates the necessary buffer +* for the log, fills the buffer from the in-memory log for this vport, and then +* returns a pointer to that log in the private_data field in @file. +* +* Returns: +* This function returns zero if successful. On error it will return an negative +* error value. +**/ static int lpfc_debugfs_disc_trc_open (struct inode *inode,struct file *file) {
@@ -586,7 +741,7 @@ lpfc_debugfs_disc_trc_open(struct inodeif (!debug) goto out; -/* Round to page boundry */ +/* Round to page boundary */ size = (lpfc_debugfs_max_disc_trc *LPFC_DEBUG_TRC_ENTRY_SIZE ); size =PAGE_ALIGN (size);
@@ -604,6 +759,21 @@ out:return rc; } +/** +* lpfc_debugfs_slow_ring_trc_open - Open the Slow Ring trace log. +* @inode: The inode pointer that contains a vport pointer. +* @file: The file pointer to attach the log output. +* +* Description: +* This routine is the entry point for the debugfs open file operation. It gets +* the vport from the i_private field in @inode, allocates the necessary buffer +* for the log, fills the buffer from the in-memory log for this vport, and then +* returns a pointer to that log in the private_data field in @file. +* +* Returns: +* This function returns zero if successful. On error it will return an negative +* error value. +**/ static int lpfc_debugfs_slow_ring_trc_open (struct inode *inode,struct file *file) {
@@ -621,7 +791,7 @@ lpfc_debugfs_slow_ring_trc_open(struct iif (!debug) goto out; -/* Round to page boundry */ +/* Round to page boundary */ size = (lpfc_debugfs_max_slow_ring_trc *LPFC_DEBUG_TRC_ENTRY_SIZE ); size =PAGE_ALIGN (size);
@@ -639,6 +809,21 @@ out:return rc; } +/** +* lpfc_debugfs_hbqinfo_open - Open the hbqinfo debugfs buffer. +* @inode: The inode pointer that contains a vport pointer. +* @file: The file pointer to attach the log output. +* +* Description: +* This routine is the entry point for the debugfs open file operation. It gets +* the vport from the i_private field in @inode, allocates the necessary buffer +* for the log, fills the buffer from the in-memory log for this vport, and then +* returns a pointer to that log in the private_data field in @file. +* +* Returns: +* This function returns zero if successful. On error it will return an negative +* error value. +**/ static int lpfc_debugfs_hbqinfo_open (struct inode *inode,struct file *file) {
@@ -650,7 +835,7 @@ lpfc_debugfs_hbqinfo_open(struct inode *if (!debug) goto out; -/* Round to page boundry */ +/* Round to page boundary */ debug->buffer =kmalloc (LPFC_HBQINFO_SIZE ,GFP_KERNEL );if (!debug->buffer) {kfree (debug);
@@ -666,6 +851,21 @@ out:return rc; } +/** +* lpfc_debugfs_dumpHBASlim_open - Open the Dump HBA SLIM debugfs buffer. +* @inode: The inode pointer that contains a vport pointer. +* @file: The file pointer to attach the log output. +* +* Description: +* This routine is the entry point for the debugfs open file operation. It gets +* the vport from the i_private field in @inode, allocates the necessary buffer +* for the log, fills the buffer from the in-memory log for this vport, and then +* returns a pointer to that log in the private_data field in @file. +* +* Returns: +* This function returns zero if successful. On error it will return an negative +* error value. +**/ static int lpfc_debugfs_dumpHBASlim_open (struct inode *inode,struct file *file) {
@@ -677,7 +877,7 @@ lpfc_debugfs_dumpHBASlim_open(struct inoif (!debug) goto out; -/* Round to page boundry */ +/* Round to page boundary */ debug->buffer =kmalloc (LPFC_DUMPHBASLIM_SIZE ,GFP_KERNEL );if (!debug->buffer) {kfree (debug);
@@ -693,6 +893,21 @@ out:return rc; } +/** +* lpfc_debugfs_dumpHostSlim_open - Open the Dump Host SLIM debugfs buffer. +* @inode: The inode pointer that contains a vport pointer. +* @file: The file pointer to attach the log output. +* +* Description: +* This routine is the entry point for the debugfs open file operation. It gets +* the vport from the i_private field in @inode, allocates the necessary buffer +* for the log, fills the buffer from the in-memory log for this vport, and then +* returns a pointer to that log in the private_data field in @file. +* +* Returns: +* This function returns zero if successful. On error it will return an negative +* error value. +**/ static int lpfc_debugfs_dumpHostSlim_open (struct inode *inode,struct file *file) {
@@ -704,7 +919,7 @@ lpfc_debugfs_dumpHostSlim_open(struct inif (!debug) goto out; -/* Round to page boundry */ +/* Round to page boundary */ debug->buffer =kmalloc (LPFC_DUMPHOSTSLIM_SIZE ,GFP_KERNEL );if (!debug->buffer) {kfree (debug);
@@ -720,6 +935,21 @@ out:return rc; } +/** +* lpfc_debugfs_nodelist_open - Open the nodelist debugfs file. +* @inode: The inode pointer that contains a vport pointer. +* @file: The file pointer to attach the log output. +* +* Description: +* This routine is the entry point for the debugfs open file operation. It gets +* the vport from the i_private field in @inode, allocates the necessary buffer +* for the log, fills the buffer from the in-memory log for this vport, and then +* returns a pointer to that log in the private_data field in @file. +* +* Returns: +* This function returns zero if successful. On error it will return an negative +* error value. +**/ static int lpfc_debugfs_nodelist_open (struct inode *inode,struct file *file) {
@@ -731,7 +961,7 @@ lpfc_debugfs_nodelist_open(struct inodeif (!debug) goto out; -/* Round to page boundry */ +/* Round to page boundary */ debug->buffer =kmalloc (LPFC_NODELIST_SIZE ,GFP_KERNEL );if (!debug->buffer) {kfree (debug);
@@ -747,6 +977,23 @@ out:return rc; } +/** +* lpfc_debugfs_lseek - Seek through a debugfs file. +* @file: The file pointer to seek through. +* @off: The offset to seek to or the amount to seek by. +* @whence: Indicates how to seek. +* +* Description: +* This routine is the entry point for the debugfs lseek file operation. The +* @whence parameter indicates whether @off is the offset to directly seek to, +* or if it is a value to seek forward or reverse by. This function figures out +* what the new offset of the debugfs file will be and assigns that value to the +* f_pos field of @file. +* +* Returns: +* This function returns the new offset if successful and returns a negative +* error if unable to process the seek. +**/ static loff_t lpfc_debugfs_lseek (struct file *file,loff_t off,int whence) {
@@ -768,6 +1015,22 @@ lpfc_debugfs_lseek(struct file *file, loreturn (pos <0 || pos > debug->len) ? -EINVAL : (file->f_pos = pos); } +/** +* lpfc_debugfs_read - Read a debugfs file. +* @file: The file pointer to read from. +* @buf: The buffer to copy the data to. +* @nbytes: The number of bytes to read. +* @ppos: The position in the file to start reading from. +* +* Description: +* This routine reads data from from the buffer indicated in the private_data +* field of @file. It will start reading at @ppos and copy up to @nbytes of +* data to @buf. +* +* Returns: +* This function returns the amount of data that was read (this could be less +* than @nbytes if the end of the file was reached) or a negative error value. +**/ static ssize_t lpfc_debugfs_read (struct file *file,char __user *buf,size_t nbytes,loff_t *ppos)
@@ -777,6 +1040,18 @@ lpfc_debugfs_read(struct file *file, cha debug->len); } +/** +* lpfc_debugfs_release - Release the buffer used to store debugfs file data. +* @inode: The inode pointer that contains a vport pointer. (unused) +* @file: The file pointer that contains the buffer to release. +* +* Description: +* This routine frees the buffer that was allocated when the debugfs file was +* opened. +* +* Returns: +* This function returns zero. +**/ static int lpfc_debugfs_release (struct inode *inode,struct file *file) {
@@ -846,6 +1121,16 @@ static struct dentry *lpfc_debugfs_rootstatic atomic_t lpfc_debugfs_hba_count;#endif +/** +* lpfc_debugfs_initialize - Initialize debugfs for a vport. +* @vport: The vport pointer to initialize. +* +* Description: +* When Debugfs is configured this routine sets up the lpfc debugfs file system. +* If not already created, this routine will create the lpfc directory, and +* lpfcX directory (for this HBA), and vportX directory for this vport. It will +* also create each file used to access lpfc specific debugfs information. +**/ inline void lpfc_debugfs_initialize (struct lpfc_vport *vport) {
@@ -1034,7 +1319,17 @@ debug_failed:#endif } - +/** +* lpfc_debugfs_terminate - Tear down debugfs infrastructure for this vport. +* @vport: The vport pointer to remove from debugfs. +* +* Description: +* When Debugfs is configured this routine removes debugfs file system elements +* that are specific to this vport. It also checks to see if there are any +* users left for the debugfs directories associated with the HBA and driver. If +* this is the last user of the HBA directory or driver directory then it will +* remove those from the debugfs infrastructure as well. +**/ inline void lpfc_debugfs_terminate (struct lpfc_vport *vport) {
@@ -1097,5 +1392,3 @@ lpfc_debugfs_terminate(struct lpfc_vport#endif return ; } - -
drivers/scsi/lpfc/lpfc_init.c +453 -122
830 lines not on this page · raw message