1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (C) 2008-2012 Daisuke Aoyama <aoyama@peach.ne.jp>. 3 * Copyright (c) Intel Corporation. 4 * All rights reserved. 5 */ 6 7 #include "scsi_internal.h" 8 9 int 10 spdk_scsi_init(void) 11 { 12 return 0; 13 } 14 15 void 16 spdk_scsi_fini(void) 17 { 18 } 19 20 SPDK_TRACE_REGISTER_FN(scsi_trace, "scsi", TRACE_GROUP_SCSI) 21 { 22 spdk_trace_register_owner(OWNER_SCSI_DEV, 'd'); 23 spdk_trace_register_object(OBJECT_SCSI_TASK, 't'); 24 spdk_trace_register_description("SCSI_TASK_DONE", TRACE_SCSI_TASK_DONE, 25 OWNER_SCSI_DEV, OBJECT_SCSI_TASK, 0, 26 SPDK_TRACE_ARG_TYPE_INT, ""); 27 spdk_trace_register_description("SCSI_TASK_START", TRACE_SCSI_TASK_START, 28 OWNER_SCSI_DEV, OBJECT_SCSI_TASK, 0, 29 SPDK_TRACE_ARG_TYPE_INT, ""); 30 } 31 32 uint64_t 33 spdk_scsi_lun_id_int_to_fmt(int lun_id) 34 { 35 uint64_t fmt_lun, method; 36 37 if (lun_id < 0x0100) { 38 /* below 256 */ 39 method = 0x00U; 40 fmt_lun = (method & 0x03U) << 62; 41 fmt_lun |= ((uint64_t)lun_id & 0x00ffU) << 48; 42 } else if (lun_id < 0x4000) { 43 /* below 16384 */ 44 method = 0x01U; 45 fmt_lun = (method & 0x03U) << 62; 46 fmt_lun |= ((uint64_t)lun_id & 0x3fffU) << 48; 47 } else { 48 /* XXX */ 49 fmt_lun = 0; 50 } 51 52 return fmt_lun; 53 } 54 55 int 56 spdk_scsi_lun_id_fmt_to_int(uint64_t fmt_lun) 57 { 58 uint64_t method; 59 int lun_i; 60 61 method = (fmt_lun >> 62) & 0x03U; 62 fmt_lun = fmt_lun >> 48; 63 if (method == 0x00U) { 64 lun_i = (int)(fmt_lun & 0x00ffU); 65 } else if (method == 0x01U) { 66 lun_i = (int)(fmt_lun & 0x3fffU); 67 } else { 68 lun_i = 0xffffU; 69 } 70 return lun_i; 71 } 72 73 SPDK_LOG_REGISTER_COMPONENT(scsi) 74