1/*- 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * Copyright (c) 2023-2024 Chelsio Communications, Inc. 5 * Written by: John Baldwin <jhb@FreeBSD.org> 6 */ 7 8#ifndef __INTERNAL_H__ 9#define __INTERNAL_H__ 10 11#include <stdbool.h> 12 13struct controller; 14struct nvme_command; 15struct nvme_controller_data; 16struct nvme_ns_list; 17struct nvmf_capsule; 18struct nvmf_qpair; 19 20typedef bool handle_command(const struct nvmf_capsule *, 21 const struct nvme_command *, void *); 22 23extern bool data_digests; 24extern bool header_digests; 25extern bool flow_control_disable; 26extern bool kernel_io; 27 28/* controller.c */ 29void controller_handle_admin_commands(struct controller *c, 30 handle_command *cb, void *cb_arg); 31struct controller *init_controller(struct nvmf_qpair *qp, 32 const struct nvme_controller_data *cdata); 33void free_controller(struct controller *c); 34 35/* discovery.c */ 36void init_discovery(void); 37void handle_discovery_socket(int s); 38void discovery_add_io_controller(int s, const char *subnqn); 39 40/* io.c */ 41void init_io(const char *subnqn); 42void handle_io_socket(int s); 43void shutdown_io(void); 44 45/* devices.c */ 46void register_devices(int ac, char **av); 47u_int device_count(void); 48void device_active_nslist(uint32_t nsid, struct nvme_ns_list *nslist); 49bool device_identification_descriptor(uint32_t nsid, void *buf); 50bool device_namespace_data(uint32_t nsid, struct nvme_namespace_data *nsdata); 51void device_read(uint32_t nsid, uint64_t lba, u_int nlb, 52 const struct nvmf_capsule *nc); 53void device_write(uint32_t nsid, uint64_t lba, u_int nlb, 54 const struct nvmf_capsule *nc); 55void device_flush(uint32_t nsid, const struct nvmf_capsule *nc); 56 57/* ctl.c */ 58void init_ctl_port(const char *subnqn, 59 const struct nvmf_association_params *params); 60void ctl_handoff_qpair(struct nvmf_qpair *qp, 61 const struct nvmf_fabric_connect_cmd *cmd, 62 const struct nvmf_fabric_connect_data *data); 63void shutdown_ctl_port(const char *subnqn); 64 65#endif /* !__INTERNAL_H__ */ 66