linux/drivers/scsi/elx/libefc/efc_nport.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2021 Broadcom. All Rights Reserved. The term
 * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
 */

/*
 * NPORT
 *
 * Port object for physical port and NPIV ports.
 */

/*
 * NPORT REFERENCE COUNTING
 *
 * A nport reference should be taken when:
 * - an nport is allocated
 * - a vport populates associated nport
 * - a remote node is allocated
 * - a unsolicited frame is processed
 * The reference should be dropped when:
 * - the unsolicited frame processesing is done
 * - the remote node is removed
 * - the vport is removed
 * - the nport is removed
 */

#include "efc.h"

void
efc_nport_cb(void *arg, int event, void *data)
{}

static struct efc_nport *
efc_nport_find_wwn(struct efc_domain *domain, uint64_t wwnn, uint64_t wwpn)
{}

static void
_efc_nport_free(struct kref *arg)
{}

struct efc_nport *
efc_nport_alloc(struct efc_domain *domain, uint64_t wwpn, uint64_t wwnn,
		u32 fc_id, bool enable_ini, bool enable_tgt)
{}

void
efc_nport_free(struct efc_nport *nport)
{}

struct efc_nport *
efc_nport_find(struct efc_domain *domain, u32 d_id)
{}

int
efc_nport_attach(struct efc_nport *nport, u32 fc_id)
{}

static void
efc_nport_shutdown(struct efc_nport *nport)
{}

static void
efc_vport_link_down(struct efc_nport *nport)
{}

static void
__efc_nport_common(const char *funcname, struct efc_sm_ctx *ctx,
		   enum efc_sm_event evt, void *arg)
{}

void
__efc_nport_allocated(struct efc_sm_ctx *ctx,
		      enum efc_sm_event evt, void *arg)
{}

void
__efc_nport_vport_init(struct efc_sm_ctx *ctx,
		       enum efc_sm_event evt, void *arg)
{}

void
__efc_nport_vport_wait_alloc(struct efc_sm_ctx *ctx,
			     enum efc_sm_event evt, void *arg)
{}

void
__efc_nport_vport_allocated(struct efc_sm_ctx *ctx,
			    enum efc_sm_event evt, void *arg)
{}

static void
efc_vport_update_spec(struct efc_nport *nport)
{}

void
__efc_nport_attached(struct efc_sm_ctx *ctx,
		     enum efc_sm_event evt, void *arg)
{}

void
__efc_nport_wait_shutdown(struct efc_sm_ctx *ctx,
			  enum efc_sm_event evt, void *arg)
{}

void
__efc_nport_wait_port_free(struct efc_sm_ctx *ctx,
			   enum efc_sm_event evt, void *arg)
{}

static int
efc_vport_nport_alloc(struct efc_domain *domain, struct efc_vport *vport)
{}

int
efc_vport_start(struct efc_domain *domain)
{}

int
efc_nport_vport_new(struct efc_domain *domain, uint64_t wwpn, uint64_t wwnn,
		    u32 fc_id, bool ini, bool tgt, void *tgt_data,
		    void *ini_data)
{}

int
efc_nport_vport_del(struct efc *efc, struct efc_domain *domain,
		    u64 wwpn, uint64_t wwnn)
{}

void
efc_vport_del_all(struct efc *efc)
{}

struct efc_vport *
efc_vport_create_spec(struct efc *efc, uint64_t wwnn, uint64_t wwpn,
		      u32 fc_id, bool enable_ini,
		      bool enable_tgt, void *tgt_data, void *ini_data)
{}