diff --git a/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.c b/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.c new file mode 100644 index 0000000000000000000000000000000000000000..8bbc06b73bf8df4ed7ff4ec38ae80e32e639d224 --- /dev/null +++ b/vmkdrivers/src_92/drivers/scsi/libfc/libfc_9_2_1_0.c @@ -0,0 +1,105 @@ +/* **************************************************************** + * Copyright 2015 VMware, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * ****************************************************************/ + +#include "vmkapi.h" +#include "vmklinux_version.h" +#include +/* NOTE: __namespace.h is generated by the build from the driver's .sc file. */ +#include "__namespace.h" + +#ifndef MODULE +#error "You can only compile and link vmklinux_module with modules, which" \ + "means that MODULE has to be defined when compiling it..." +#endif + +VMK_LICENSE_INFO(VMK_MODULE_LICENSE_GPLV2); +MODULE_VERSION2(VMKLNX_STRINGIFY(PRODUCT_VERSION), VMKLNX_MY_NAMESPACE_VERSION); + +/* + * All vmkdriver modules are built using the latest vmakpi interface. + */ +VMK_NAMESPACE_REQUIRED(VMK_NAMESPACE_VMKAPI, VMK_NAMESPACE_CURRENT_VERSION); +#if VMKAPI_REVISION >= VMK_REVISION_FROM_NUMBERS(2, 2, 0, 0) && \ + defined(VMK_DEVKIT_USES_BINARY_INCOMPATIBLE_APIS) +VMK_NAMESPACE_REQUIRED(VMK_NAMESPACE_VMKAPI_INCOMPAT, + VMK_NAMESPACE_INCOMPAT_CURRENT_VERSION); +#endif + +vmk_ModuleID vmkshim_module_id; + +int +vmk_early_init_module(void) +{ + VMK_ReturnStatus vmk_status; + + vmk_status = vmk_ModuleRegister(&vmkshim_module_id, VMKAPI_REVISION); + if (vmk_status != VMK_OK) { + vmk_WarningMessage("Registration failed (%#x): %s", + vmk_status, vmk_StatusToString(vmk_status)); + return vmk_status; + } + + return 0; +} + +int +vmk_late_cleanup_module(void) +{ + return 0; +} + +/* + * Symbols passed in directly from libfc without the need for a shim function. + */ +VMK_MODULE_EXPORT_ALIAS(fc_change_queue_depth); +VMK_MODULE_EXPORT_ALIAS(fc_change_queue_type); +VMK_MODULE_EXPORT_ALIAS(fc_cpu_mask); +VMK_MODULE_EXPORT_ALIAS(fc_disc_init); +VMK_MODULE_EXPORT_ALIAS(fc_eh_abort); +VMK_MODULE_EXPORT_ALIAS(fc_eh_device_reset); +VMK_MODULE_EXPORT_ALIAS(fc_eh_host_reset); +VMK_MODULE_EXPORT_ALIAS(fc_elsct_init); +VMK_MODULE_EXPORT_ALIAS(fc_elsct_send); +VMK_MODULE_EXPORT_ALIAS(fc_exch_init); +VMK_MODULE_EXPORT_ALIAS(fc_exch_mgr_add); +VMK_MODULE_EXPORT_ALIAS(fc_exch_mgr_alloc); +VMK_MODULE_EXPORT_ALIAS(fc_exch_mgr_del); +VMK_MODULE_EXPORT_ALIAS(fc_exch_mgr_free); +VMK_MODULE_EXPORT_ALIAS(fc_exch_mgr_reset); +VMK_MODULE_EXPORT_ALIAS(fc_exch_recv); +VMK_MODULE_EXPORT_ALIAS(fc_fabric_login); +VMK_MODULE_EXPORT_ALIAS(fc_fabric_logoff); +VMK_MODULE_EXPORT_ALIAS(fc_fcp_destroy); +VMK_MODULE_EXPORT_ALIAS(fc_fcp_init); +VMK_MODULE_EXPORT_ALIAS(_fc_frame_alloc); +VMK_MODULE_EXPORT_ALIAS(fc_frame_alloc_fill); +VMK_MODULE_EXPORT_ALIAS(fc_frame_crc_check); +VMK_MODULE_EXPORT_ALIAS(fc_get_host_port_state); +VMK_MODULE_EXPORT_ALIAS(fc_get_host_port_type); +VMK_MODULE_EXPORT_ALIAS(fc_get_host_speed); +VMK_MODULE_EXPORT_ALIAS(fc_get_host_stats); +VMK_MODULE_EXPORT_ALIAS(fc_linkdown); +VMK_MODULE_EXPORT_ALIAS(fc_linkup); +VMK_MODULE_EXPORT_ALIAS(fc_lport_config); +VMK_MODULE_EXPORT_ALIAS(fc_lport_destroy); +VMK_MODULE_EXPORT_ALIAS(fc_lport_flogi_resp); +VMK_MODULE_EXPORT_ALIAS(fc_lport_init); +VMK_MODULE_EXPORT_ALIAS(fc_lport_logo_resp); +VMK_MODULE_EXPORT_ALIAS(fc_lport_reset); +VMK_MODULE_EXPORT_ALIAS(fc_queuecommand); +VMK_MODULE_EXPORT_ALIAS(fc_rport_init); +VMK_MODULE_EXPORT_ALIAS(fc_rport_terminate_io); +VMK_MODULE_EXPORT_ALIAS(fc_set_mfs); +VMK_MODULE_EXPORT_ALIAS(fc_set_rport_loss_tmo); +VMK_MODULE_EXPORT_ALIAS(fc_slave_alloc); +VMK_MODULE_EXPORT_ALIAS(fc_slave_configure); +VMK_MODULE_EXPORT_ALIAS(fc_vport_setlink); +VMK_MODULE_EXPORT_ALIAS(libfc_lun_qdepth); +VMK_MODULE_EXPORT_ALIAS(libfc_vport_create); +VMK_MODULE_EXPORT_ALIAS(vmklnx_fc_eh_bus_reset);