Lines Matching refs:tab
825 static void gfar_set_mask(u32 mask, struct filer_table *tab)
827 tab->fe[tab->index].ctrl = RQFCR_AND | RQFCR_PID_MASK | RQFCR_CMP_EXACT;
828 tab->fe[tab->index].prop = mask;
829 tab->index++;
833 static void gfar_set_parse_bits(u32 value, u32 mask, struct filer_table *tab)
835 gfar_set_mask(mask, tab);
836 tab->fe[tab->index].ctrl = RQFCR_CMP_EXACT | RQFCR_PID_PARSE |
838 tab->fe[tab->index].prop = value;
839 tab->index++;
843 struct filer_table *tab)
845 gfar_set_mask(mask, tab);
846 tab->fe[tab->index].ctrl = RQFCR_CMP_EXACT | RQFCR_AND | flag;
847 tab->fe[tab->index].prop = value;
848 tab->index++;
866 struct filer_table *tab)
919 gfar_set_general_attribute(value, mask, flag, tab);
925 struct filer_table *tab)
929 RQFCR_PID_SIA, tab);
932 RQFCR_PID_DIA, tab);
935 RQFCR_PID_DPT, tab);
938 RQFCR_PID_SPT, tab);
939 gfar_set_attribute(value->tos, mask->tos, RQFCR_PID_TOS, tab);
945 struct filer_table *tab)
949 RQFCR_PID_SIA, tab);
952 RQFCR_PID_DIA, tab);
953 gfar_set_attribute(value->tos, mask->tos, RQFCR_PID_TOS, tab);
954 gfar_set_attribute(value->proto, mask->proto, RQFCR_PID_L4P, tab);
957 RQFCR_PID_ARB, tab);
963 struct filer_table *tab)
985 upper_temp_mask, RQFCR_PID_SAH, tab);
990 lower_temp_mask, RQFCR_PID_SAL, tab);
997 gfar_set_parse_bits(RQFPR_EBC, RQFPR_EBC, tab);
1015 upper_temp_mask, RQFCR_PID_DAH, tab);
1020 lower_temp_mask, RQFCR_PID_DAL, tab);
1026 RQFCR_PID_ETY, tab);
1063 struct filer_table *tab)
1069 u32 old_index = tab->index;
1098 RQFPR_IPV4 | RQFPR_TCP | vlan_mask, tab);
1100 &rule->m_u.tcp_ip4_spec, tab);
1104 RQFPR_IPV4 | RQFPR_UDP | vlan_mask, tab);
1106 &rule->m_u.udp_ip4_spec, tab);
1110 tab);
1111 gfar_set_attribute(132, 0, RQFCR_PID_L4P, tab);
1114 tab);
1118 tab);
1121 tab);
1125 gfar_set_parse_bits(vlan, vlan_mask, tab);
1127 (struct ethhdr *) &rule->m_u, tab);
1135 gfar_set_attribute(id, id_mask, RQFCR_PID_VID, tab);
1136 gfar_set_attribute(prio, prio_mask, RQFCR_PID_PRI, tab);
1140 if (tab->index == old_index) {
1141 gfar_set_mask(0xFFFFFFFF, tab);
1142 tab->fe[tab->index].ctrl = 0x20;
1143 tab->fe[tab->index].prop = 0x0;
1144 tab->index++;
1148 tab->fe[tab->index - 1].ctrl &= (~RQFCR_AND);
1152 tab->fe[tab->index - 1].ctrl |= RQFCR_RJE;
1154 tab->fe[tab->index - 1].ctrl |= (rule->ring_cookie << 10);
1157 if (tab->index > (old_index + 2)) {
1158 tab->fe[old_index + 1].ctrl |= RQFCR_CLE;
1159 tab->fe[tab->index - 1].ctrl |= RQFCR_CLE;
1165 if (tab->index > MAX_FILER_CACHE_IDX - 1)
1173 struct filer_table *tab)
1176 if (tab->index > MAX_FILER_IDX - 1)
1180 for (; i < MAX_FILER_IDX && (tab->fe[i].ctrl | tab->fe[i].prop); i++)
1181 gfar_write_filer(priv, i, tab->fe[i].ctrl, tab->fe[i].prop);
1216 struct filer_table *tab;
1220 tab = kzalloc(sizeof(*tab), GFP_KERNEL);
1221 if (tab == NULL)
1228 ret = gfar_convert_to_filer(&j->fs, tab);
1242 ret = gfar_write_filer_table(priv, tab);
1249 kfree(tab);