Lines Matching refs:tab

835 static void gfar_set_mask(u32 mask, struct filer_table *tab)
837 tab->fe[tab->index].ctrl = RQFCR_AND | RQFCR_PID_MASK | RQFCR_CMP_EXACT;
838 tab->fe[tab->index].prop = mask;
839 tab->index++;
843 static void gfar_set_parse_bits(u32 value, u32 mask, struct filer_table *tab)
845 gfar_set_mask(mask, tab);
846 tab->fe[tab->index].ctrl = RQFCR_CMP_EXACT | RQFCR_PID_PARSE |
848 tab->fe[tab->index].prop = value;
849 tab->index++;
853 struct filer_table *tab)
855 gfar_set_mask(mask, tab);
856 tab->fe[tab->index].ctrl = RQFCR_CMP_EXACT | RQFCR_AND | flag;
857 tab->fe[tab->index].prop = value;
858 tab->index++;
876 struct filer_table *tab)
929 gfar_set_general_attribute(value, mask, flag, tab);
935 struct filer_table *tab)
939 RQFCR_PID_SIA, tab);
942 RQFCR_PID_DIA, tab);
945 RQFCR_PID_DPT, tab);
948 RQFCR_PID_SPT, tab);
949 gfar_set_attribute(value->tos, mask->tos, RQFCR_PID_TOS, tab);
955 struct filer_table *tab)
959 RQFCR_PID_SIA, tab);
962 RQFCR_PID_DIA, tab);
963 gfar_set_attribute(value->tos, mask->tos, RQFCR_PID_TOS, tab);
964 gfar_set_attribute(value->proto, mask->proto, RQFCR_PID_L4P, tab);
967 RQFCR_PID_ARB, tab);
973 struct filer_table *tab)
995 upper_temp_mask, RQFCR_PID_SAH, tab);
1000 lower_temp_mask, RQFCR_PID_SAL, tab);
1007 gfar_set_parse_bits(RQFPR_EBC, RQFPR_EBC, tab);
1025 upper_temp_mask, RQFCR_PID_DAH, tab);
1030 lower_temp_mask, RQFCR_PID_DAL, tab);
1036 RQFCR_PID_ETY, tab);
1073 struct filer_table *tab)
1079 u32 old_index = tab->index;
1108 RQFPR_IPV4 | RQFPR_TCP | vlan_mask, tab);
1110 &rule->m_u.tcp_ip4_spec, tab);
1114 RQFPR_IPV4 | RQFPR_UDP | vlan_mask, tab);
1116 &rule->m_u.udp_ip4_spec, tab);
1120 tab);
1121 gfar_set_attribute(132, 0, RQFCR_PID_L4P, tab);
1124 tab);
1128 tab);
1131 tab);
1135 gfar_set_parse_bits(vlan, vlan_mask, tab);
1137 (struct ethhdr *) &rule->m_u, tab);
1145 gfar_set_attribute(id, id_mask, RQFCR_PID_VID, tab);
1146 gfar_set_attribute(prio, prio_mask, RQFCR_PID_PRI, tab);
1150 if (tab->index == old_index) {
1151 gfar_set_mask(0xFFFFFFFF, tab);
1152 tab->fe[tab->index].ctrl = 0x20;
1153 tab->fe[tab->index].prop = 0x0;
1154 tab->index++;
1158 tab->fe[tab->index - 1].ctrl &= (~RQFCR_AND);
1162 tab->fe[tab->index - 1].ctrl |= RQFCR_RJE;
1164 tab->fe[tab->index - 1].ctrl |= (rule->ring_cookie << 10);
1167 if (tab->index > (old_index + 2)) {
1168 tab->fe[old_index + 1].ctrl |= RQFCR_CLE;
1169 tab->fe[tab->index - 1].ctrl |= RQFCR_CLE;
1175 if (tab->index > MAX_FILER_CACHE_IDX - 1)
1183 struct filer_table *tab)
1186 if (tab->index > MAX_FILER_IDX - 1)
1190 for (; i < MAX_FILER_IDX && (tab->fe[i].ctrl | tab->fe[i].prop); i++)
1191 gfar_write_filer(priv, i, tab->fe[i].ctrl, tab->fe[i].prop);
1226 struct filer_table *tab;
1230 tab = kzalloc(sizeof(*tab), GFP_KERNEL);
1231 if (tab == NULL)
1238 ret = gfar_convert_to_filer(&j->fs, tab);
1252 ret = gfar_write_filer_table(priv, tab);
1259 kfree(tab);