diff --git a/qdf/inc/qdf_debugfs.h b/qdf/inc/qdf_debugfs.h index 339e5ac84e..2d78b4dd2d 100644 --- a/qdf/inc/qdf_debugfs.h +++ b/qdf/inc/qdf_debugfs.h @@ -28,6 +28,17 @@ #include #ifdef WLAN_DEBUGFS + +/* qdf file modes */ +#define QDF_FILE_USR_READ 00400 +#define QDF_FILE_USR_WRITE 00200 + +#define QDF_FILE_GRP_READ 00040 +#define QDF_FILE_GRP_WRITE 00020 + +#define QDF_FILE_OTH_READ 00004 +#define QDF_FILE_OTH_WRITE 00002 + /** * qdf_debugfs_init() - initialize debugfs * diff --git a/qdf/linux/src/i_qdf_debugfs.h b/qdf/linux/src/i_qdf_debugfs.h index 4f64484a3c..506b6f04ad 100644 --- a/qdf/linux/src/i_qdf_debugfs.h +++ b/qdf/linux/src/i_qdf_debugfs.h @@ -28,9 +28,31 @@ #include #include +typedef struct dentry *__qdf_dentry_t; +typedef struct seq_file *__qdf_debugfs_file_t; + #ifdef WLAN_DEBUGFS +/** + * qdf_debugfs_get_root() - get debugfs root + * + * Return: dentry * or NULL in case of failure + */ struct dentry *qdf_debugfs_get_root(void); +/** + * qdf_debugfs_get_filemode() - get Linux specific file mode + * @mode: This is a bitmap of file modes, + * QDF_FILE_USR_READ + * QDF_FILE_USR_WRITE + * QDF_FILE_OTH_READ + * QDF_FILE_OTH_WRITE + * QDF_FILE_GRP_READ + * QDF_FILE_GRP_WRITE + * + * Return: Linux specific file mode + */ +umode_t qdf_debugfs_get_filemode(uint16_t mode); + #endif /* WLAN_DEBUGFS */ #endif /* _I_QDF_DEBUGFS_H */ diff --git a/qdf/linux/src/qdf_debugfs.c b/qdf/linux/src/qdf_debugfs.c index 4a8bb9d7ca..9b991266f8 100644 --- a/qdf/linux/src/qdf_debugfs.c +++ b/qdf/linux/src/qdf_debugfs.c @@ -52,3 +52,24 @@ struct dentry *qdf_debugfs_get_root(void) return qdf_debugfs_root; } +umode_t qdf_debugfs_get_filemode(uint16_t mode) +{ + umode_t ret = 0; + + if (mode & QDF_FILE_USR_READ) + ret |= 0400; + if (mode & QDF_FILE_USR_WRITE) + ret |= 0200; + + if (mode & QDF_FILE_GRP_READ) + ret |= 0040; + if (mode & QDF_FILE_GRP_WRITE) + ret |= 0020; + + if (mode & QDF_FILE_OTH_READ) + ret |= 0004; + if (mode & QDF_FILE_OTH_WRITE) + ret |= 0002; + + return ret; +}