Lines Matching refs:mi
44 int ife_encode_meta_u16(u16 metaval, void *skbdata, struct tcf_meta_info *mi)
48 if (mi->metaval)
49 edata = *(u16 *)mi->metaval;
57 return ife_tlv_meta_encode(skbdata, mi->metaid, 2, &edata);
61 int ife_get_meta_u32(struct sk_buff *skb, struct tcf_meta_info *mi)
63 if (mi->metaval)
64 return nla_put_u32(skb, mi->metaid, *(u32 *)mi->metaval);
66 return nla_put(skb, mi->metaid, 0, NULL);
70 int ife_check_meta_u32(u32 metaval, struct tcf_meta_info *mi)
72 if (metaval || mi->metaval)
79 int ife_check_meta_u16(u16 metaval, struct tcf_meta_info *mi)
81 if (metaval || mi->metaval)
88 int ife_encode_meta_u32(u32 metaval, void *skbdata, struct tcf_meta_info *mi)
92 if (mi->metaval)
93 edata = *(u32 *)mi->metaval;
101 return ife_tlv_meta_encode(skbdata, mi->metaid, 4, &edata);
105 int ife_get_meta_u16(struct sk_buff *skb, struct tcf_meta_info *mi)
107 if (mi->metaval)
108 return nla_put_u16(skb, mi->metaid, *(u16 *)mi->metaval);
110 return nla_put(skb, mi->metaid, 0, NULL);
114 int ife_alloc_meta_u32(struct tcf_meta_info *mi, void *metaval, gfp_t gfp)
116 mi->metaval = kmemdup(metaval, sizeof(u32), gfp);
117 if (!mi->metaval)
124 int ife_alloc_meta_u16(struct tcf_meta_info *mi, void *metaval, gfp_t gfp)
126 mi->metaval = kmemdup(metaval, sizeof(u16), gfp);
127 if (!mi->metaval)
134 void ife_release_meta_gen(struct tcf_meta_info *mi)
136 kfree(mi->metaval);
299 struct tcf_meta_info *mi = NULL;
302 mi = kzalloc(sizeof(*mi), atomic ? GFP_ATOMIC : GFP_KERNEL);
303 if (!mi)
306 mi->metaid = metaid;
307 mi->ops = ops;
309 ret = ops->alloc(mi, metaval, atomic ? GFP_ATOMIC : GFP_KERNEL);
311 kfree(mi);
318 list_add_tail(&mi->metalist, &ife->metalist);