#include <linux/printk.h>
#include <linux/dynamic_debug.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/utsname.h>
#include <generated/utsrelease.h>
#include <linux/ctype.h>
#include "ionic.h"
#include "ionic_bus.h"
#include "ionic_lif.h"
#include "ionic_debugfs.h"
MODULE_DESCRIPTION(…);
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
static const char *ionic_error_to_str(enum ionic_status_code code)
{ … }
static int ionic_error_to_errno(enum ionic_status_code code)
{ … }
static const char *ionic_opcode_to_str(enum ionic_cmd_opcode opcode)
{ … }
static void ionic_adminq_flush(struct ionic_lif *lif)
{ … }
void ionic_adminq_netdev_err_print(struct ionic_lif *lif, u8 opcode,
u8 status, int err)
{ … }
static int ionic_adminq_check_err(struct ionic_lif *lif,
struct ionic_admin_ctx *ctx,
const bool timeout,
const bool do_msg)
{ … }
bool ionic_notifyq_service(struct ionic_cq *cq)
{ … }
bool ionic_adminq_service(struct ionic_cq *cq)
{ … }
bool ionic_adminq_poke_doorbell(struct ionic_queue *q)
{ … }
int ionic_adminq_post(struct ionic_lif *lif, struct ionic_admin_ctx *ctx)
{ … }
int ionic_adminq_wait(struct ionic_lif *lif, struct ionic_admin_ctx *ctx,
const int err, const bool do_msg)
{ … }
static int __ionic_adminq_post_wait(struct ionic_lif *lif,
struct ionic_admin_ctx *ctx,
const bool do_msg)
{ … }
int ionic_adminq_post_wait(struct ionic_lif *lif, struct ionic_admin_ctx *ctx)
{ … }
int ionic_adminq_post_wait_nomsg(struct ionic_lif *lif, struct ionic_admin_ctx *ctx)
{ … }
static void ionic_dev_cmd_clean(struct ionic *ionic)
{ … }
void ionic_dev_cmd_dev_err_print(struct ionic *ionic, u8 opcode, u8 status,
int err)
{ … }
static int __ionic_dev_cmd_wait(struct ionic *ionic, unsigned long max_seconds,
const bool do_msg)
{ … }
int ionic_dev_cmd_wait(struct ionic *ionic, unsigned long max_seconds)
{ … }
int ionic_dev_cmd_wait_nomsg(struct ionic *ionic, unsigned long max_seconds)
{ … }
int ionic_setup(struct ionic *ionic)
{ … }
int ionic_identify(struct ionic *ionic)
{ … }
int ionic_init(struct ionic *ionic)
{ … }
int ionic_reset(struct ionic *ionic)
{ … }
int ionic_port_identify(struct ionic *ionic)
{ … }
int ionic_port_init(struct ionic *ionic)
{ … }
int ionic_port_reset(struct ionic *ionic)
{ … }
static int __init ionic_init_module(void)
{ … }
static void __exit ionic_cleanup_module(void)
{ … }
module_init(…) …;
module_exit(ionic_cleanup_module);