summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c')
-rw-r--r--drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c156
1 files changed, 116 insertions, 40 deletions
diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
index 75c628a..ffa1a2d 100644
--- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
+++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c
@@ -1957,62 +1957,138 @@ invalid_port_id:
#if defined(CONFIG_COMPAT)
+ case FM_PCD_IOC_MATCH_TABLE_GET_KEY_STAT_COMPAT:
+#endif
+ case FM_PCD_IOC_MATCH_TABLE_GET_KEY_STAT:
+ {
+ ioc_fm_pcd_cc_tbl_get_stats_t param;
+
+#if defined(CONFIG_COMPAT)
+ if (compat)
+ {
+ ioc_compat_fm_pcd_cc_tbl_get_stats_t *compat_param;
+
+ compat_param = (ioc_compat_fm_pcd_cc_tbl_get_stats_t *) XX_Malloc(
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
+ if (!compat_param)
+ RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD"));
+
+ memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
+ if (copy_from_user(compat_param,
+ (ioc_compat_fm_pcd_cc_tbl_get_stats_t *)compat_ptr(arg),
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t)))
+ {
+ XX_Free(compat_param);
+ RETURN_ERROR(MINOR, E_WRITE_FAILED, NO_MSG);
+ }
+
+ compat_copy_fm_pcd_cc_tbl_get_stats(compat_param, &param, COMPAT_US_TO_K);
+
+ XX_Free(compat_param);
+ }
+ else
+#endif
+ {
+ if (copy_from_user(&param, (ioc_fm_pcd_cc_tbl_get_stats_t *)arg,
+ sizeof(ioc_fm_pcd_cc_tbl_get_stats_t)))
+ RETURN_ERROR(MINOR, E_WRITE_FAILED, NO_MSG);
+ }
+
+
+ err = FM_PCD_MatchTableGetKeyStatistics((t_Handle) param.id,
+ param.key_index,
+ (t_FmPcdCcKeyStatistics *) &param.statistics);
+
+#if defined(CONFIG_COMPAT)
+ if (compat)
+ {
+ ioc_compat_fm_pcd_cc_tbl_get_stats_t *compat_param;
+
+ compat_param = (ioc_compat_fm_pcd_cc_tbl_get_stats_t*) XX_Malloc(
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
+ if (!compat_param)
+ RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD"));
+
+ memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
+ compat_copy_fm_pcd_cc_tbl_get_stats(compat_param, &param, COMPAT_K_TO_US);
+ if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_stats_t*) compat_ptr(arg),
+ compat_param,
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t))){
+ XX_Free(compat_param);
+ RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
+ }
+ XX_Free(compat_param);
+ }
+ else
+#endif
+ {
+ if (copy_to_user((ioc_fm_pcd_cc_tbl_get_stats_t *)arg,
+ &param,
+ sizeof(ioc_fm_pcd_cc_tbl_get_stats_t)))
+ RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
+ }
+
+ break;
+ }
+
+
+#if defined(CONFIG_COMPAT)
case FM_PCD_IOC_MATCH_TABLE_GET_MISS_STAT_COMPAT:
#endif
case FM_PCD_IOC_MATCH_TABLE_GET_MISS_STAT:
{
- ioc_fm_pcd_cc_tbl_get_miss_params_t param;
+ ioc_fm_pcd_cc_tbl_get_stats_t param;
#if defined(CONFIG_COMPAT)
if (compat)
{
- ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *compat_param;
+ ioc_compat_fm_pcd_cc_tbl_get_stats_t *compat_param;
- compat_param = (ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *) XX_Malloc(
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
+ compat_param = (ioc_compat_fm_pcd_cc_tbl_get_stats_t *) XX_Malloc(
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
if (!compat_param)
RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD"));
- memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
+ memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
if (copy_from_user(compat_param,
- (ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *)compat_ptr(arg),
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t)))
+ (ioc_compat_fm_pcd_cc_tbl_get_stats_t *)compat_ptr(arg),
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t)))
{
XX_Free(compat_param);
RETURN_ERROR(MINOR, E_WRITE_FAILED, NO_MSG);
}
- compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, &param, COMPAT_US_TO_K);
+ compat_copy_fm_pcd_cc_tbl_get_stats(compat_param, &param, COMPAT_US_TO_K);
XX_Free(compat_param);
}
else
#endif
{
- if (copy_from_user(&param, (ioc_fm_pcd_cc_tbl_get_miss_params_t *)arg,
- sizeof(ioc_fm_pcd_cc_tbl_get_miss_params_t)))
+ if (copy_from_user(&param, (ioc_fm_pcd_cc_tbl_get_stats_t *)arg,
+ sizeof(ioc_fm_pcd_cc_tbl_get_stats_t)))
RETURN_ERROR(MINOR, E_WRITE_FAILED, NO_MSG);
}
err = FM_PCD_MatchTableGetMissStatistics((t_Handle) param.id,
- (t_FmPcdCcKeyStatistics *) &param.miss_statistics);
+ (t_FmPcdCcKeyStatistics *) &param.statistics);
#if defined(CONFIG_COMPAT)
if (compat)
{
- ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *compat_param;
+ ioc_compat_fm_pcd_cc_tbl_get_stats_t *compat_param;
- compat_param = (ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) XX_Malloc(
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
+ compat_param = (ioc_compat_fm_pcd_cc_tbl_get_stats_t*) XX_Malloc(
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
if (!compat_param)
RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD"));
- memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
- compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, &param, COMPAT_K_TO_US);
- if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) compat_ptr(arg),
+ memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
+ compat_copy_fm_pcd_cc_tbl_get_stats(compat_param, &param, COMPAT_K_TO_US);
+ if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_stats_t*) compat_ptr(arg),
compat_param,
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))){
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t))){
XX_Free(compat_param);
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
}
@@ -2021,9 +2097,9 @@ invalid_port_id:
else
#endif
{
- if (copy_to_user((ioc_fm_pcd_hash_table_params_t *)arg,
+ if (copy_to_user((ioc_fm_pcd_cc_tbl_get_stats_t *)arg,
&param,
- sizeof(ioc_fm_pcd_cc_tbl_get_miss_params_t)))
+ sizeof(ioc_fm_pcd_cc_tbl_get_stats_t)))
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
}
@@ -2036,58 +2112,58 @@ invalid_port_id:
#endif
case FM_PCD_IOC_HASH_TABLE_GET_MISS_STAT:
{
- ioc_fm_pcd_cc_tbl_get_miss_params_t param;
+ ioc_fm_pcd_cc_tbl_get_stats_t param;
#if defined(CONFIG_COMPAT)
if (compat)
{
- ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *compat_param;
+ ioc_compat_fm_pcd_cc_tbl_get_stats_t *compat_param;
- compat_param = (ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *) XX_Malloc(
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
+ compat_param = (ioc_compat_fm_pcd_cc_tbl_get_stats_t *) XX_Malloc(
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
if (!compat_param)
RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD"));
- memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
+ memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
if (copy_from_user(compat_param,
- (ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *)compat_ptr(arg),
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t)))
+ (ioc_compat_fm_pcd_cc_tbl_get_stats_t *)compat_ptr(arg),
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t)))
{
XX_Free(compat_param);
RETURN_ERROR(MINOR, E_WRITE_FAILED, NO_MSG);
}
- compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, &param, COMPAT_US_TO_K);
+ compat_copy_fm_pcd_cc_tbl_get_stats(compat_param, &param, COMPAT_US_TO_K);
XX_Free(compat_param);
}
else
#endif
{
- if (copy_from_user(&param, (ioc_fm_pcd_cc_tbl_get_miss_params_t *)arg,
- sizeof(ioc_fm_pcd_cc_tbl_get_miss_params_t)))
+ if (copy_from_user(&param, (ioc_fm_pcd_cc_tbl_get_stats_t *)arg,
+ sizeof(ioc_fm_pcd_cc_tbl_get_stats_t)))
RETURN_ERROR(MINOR, E_WRITE_FAILED, NO_MSG);
}
err = FM_PCD_HashTableGetMissStatistics((t_Handle) param.id,
- (t_FmPcdCcKeyStatistics *) &param.miss_statistics);
+ (t_FmPcdCcKeyStatistics *) &param.statistics);
#if defined(CONFIG_COMPAT)
if (compat)
{
- ioc_compat_fm_pcd_cc_tbl_get_miss_params_t *compat_param;
+ ioc_compat_fm_pcd_cc_tbl_get_stats_t *compat_param;
- compat_param = (ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) XX_Malloc(
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
+ compat_param = (ioc_compat_fm_pcd_cc_tbl_get_stats_t*) XX_Malloc(
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
if (!compat_param)
RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD"));
- memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t));
- compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, &param, COMPAT_K_TO_US);
- if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) compat_ptr(arg),
+ memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t));
+ compat_copy_fm_pcd_cc_tbl_get_stats(compat_param, &param, COMPAT_K_TO_US);
+ if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_stats_t*) compat_ptr(arg),
compat_param,
- sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))){
+ sizeof(ioc_compat_fm_pcd_cc_tbl_get_stats_t))){
XX_Free(compat_param);
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
}
@@ -2096,9 +2172,9 @@ invalid_port_id:
else
#endif
{
- if (copy_to_user((ioc_fm_pcd_hash_table_params_t *)arg,
+ if (copy_to_user((ioc_fm_pcd_cc_tbl_get_stats_t *)arg,
&param,
- sizeof(ioc_fm_pcd_cc_tbl_get_miss_params_t)))
+ sizeof(ioc_fm_pcd_cc_tbl_get_stats_t)))
RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG);
}