Lines Matching full:app
43 return nn->app; in nfp_app_from_netdev()
49 return repr->app; in nfp_app_from_netdev()
57 const char *nfp_app_mip_name(struct nfp_app *app) in nfp_app_mip_name() argument
59 if (!app || !app->pf->mip) in nfp_app_mip_name()
61 return nfp_mip_name(app->pf->mip); in nfp_app_mip_name()
66 struct nfp_app *app = nfp_app_from_netdev(netdev); in nfp_app_ndo_init() local
68 if (!app || !app->type->ndo_init) in nfp_app_ndo_init()
70 return app->type->ndo_init(app, netdev); in nfp_app_ndo_init()
75 struct nfp_app *app = nfp_app_from_netdev(netdev); in nfp_app_ndo_uninit() local
77 if (app && app->type->ndo_uninit) in nfp_app_ndo_uninit()
78 app->type->ndo_uninit(app, netdev); in nfp_app_ndo_uninit()
83 if (!port || !port->app || !port->app->type->port_get_stats) in nfp_app_port_get_stats()
85 return port->app->type->port_get_stats(port->app, port, data); in nfp_app_port_get_stats()
90 if (!port || !port->app || !port->app->type->port_get_stats_count) in nfp_app_port_get_stats_count()
92 return port->app->type->port_get_stats_count(port->app, port); in nfp_app_port_get_stats_count()
97 if (!port || !port->app || !port->app->type->port_get_stats_strings) in nfp_app_port_get_stats_strings()
99 return port->app->type->port_get_stats_strings(port->app, port, data); in nfp_app_port_get_stats_strings()
103 nfp_app_ctrl_msg_alloc(struct nfp_app *app, unsigned int size, gfp_t priority) in nfp_app_ctrl_msg_alloc() argument
107 if (nfp_app_ctrl_has_meta(app)) in nfp_app_ctrl_msg_alloc()
114 if (nfp_app_ctrl_has_meta(app)) in nfp_app_ctrl_msg_alloc()
121 nfp_reprs_get_locked(struct nfp_app *app, enum nfp_repr_type type) in nfp_reprs_get_locked() argument
123 return rcu_dereference_protected(app->reprs[type], in nfp_reprs_get_locked()
124 nfp_app_is_locked(app)); in nfp_reprs_get_locked()
128 nfp_app_reprs_set(struct nfp_app *app, enum nfp_repr_type type, in nfp_app_reprs_set() argument
133 old = nfp_reprs_get_locked(app, type); in nfp_app_reprs_set()
135 rcu_assign_pointer(app->reprs[type], reprs); in nfp_app_reprs_set()
142 nfp_app_netdev_feat_change(struct nfp_app *app, struct net_device *netdev) in nfp_app_netdev_feat_change() argument
150 if (nn->app != app) in nfp_app_netdev_feat_change()
157 reprs = rtnl_dereference(app->reprs[type]); in nfp_app_netdev_feat_change()
177 struct nfp_app *app; in nfp_app_netdev_event() local
180 app = container_of(nb, struct nfp_app, netdev_nb); in nfp_app_netdev_event()
185 nfp_app_netdev_feat_change(app, netdev); in nfp_app_netdev_event()
190 if (app->type->netdev_event) in nfp_app_netdev_event()
191 return app->type->netdev_event(app, netdev, event, ptr); in nfp_app_netdev_event()
195 int nfp_app_start(struct nfp_app *app, struct nfp_net *ctrl) in nfp_app_start() argument
199 app->ctrl = ctrl; in nfp_app_start()
201 if (app->type->start) { in nfp_app_start()
202 err = app->type->start(app); in nfp_app_start()
207 app->netdev_nb.notifier_call = nfp_app_netdev_event; in nfp_app_start()
208 err = register_netdevice_notifier(&app->netdev_nb); in nfp_app_start()
215 if (app->type->stop) in nfp_app_start()
216 app->type->stop(app); in nfp_app_start()
220 void nfp_app_stop(struct nfp_app *app) in nfp_app_stop() argument
222 unregister_netdevice_notifier(&app->netdev_nb); in nfp_app_stop()
224 if (app->type->stop) in nfp_app_stop()
225 app->type->stop(app); in nfp_app_stop()
230 struct nfp_app *app; in nfp_app_alloc() local
233 nfp_err(pf->cpp, "unknown FW app ID 0x%02x, driver too old or support for FW not built in\n", id); in nfp_app_alloc()
242 app = kzalloc(sizeof(*app), GFP_KERNEL); in nfp_app_alloc()
243 if (!app) in nfp_app_alloc()
246 app->pf = pf; in nfp_app_alloc()
247 app->cpp = pf->cpp; in nfp_app_alloc()
248 app->pdev = pf->pdev; in nfp_app_alloc()
249 app->type = apps[id]; in nfp_app_alloc()
251 return app; in nfp_app_alloc()
254 void nfp_app_free(struct nfp_app *app) in nfp_app_free() argument
256 kfree(app); in nfp_app_free()