1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * BSD LICENSE 5 * 6 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * * Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * * Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in 17 * the documentation and/or other materials provided with the 18 * distribution. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 * 32 * $FreeBSD$ 33 */ 34 35 #ifndef ENVIRONMENT_H_ 36 #define ENVIRONMENT_H_ 37 38 /** 39 * @file 40 * 41 * @brief Types and macros specific to the FreeBSD environment. 42 */ 43 #include <sys/cdefs.h> 44 #include <sys/types.h> 45 #include <sys/libkern.h> 46 #include <machine/bus.h> 47 #include "opt_isci.h" 48 49 typedef int8_t S8; 50 typedef uint8_t U8; 51 52 typedef int16_t S16; 53 typedef uint16_t U16; 54 55 typedef int32_t S32; 56 typedef uint32_t U32; 57 58 typedef int64_t S64; 59 typedef uint64_t U64; 60 61 /* Technically, this should be defined as bus_addr_t, but SCIL makes some 62 * incorrect assumptions in some of its physical address calculations which 63 * necessitate using uint64_t here to avoid compiler warnings. This is 64 * easier for now than modifying SCIL, and works just as well. 65 */ 66 typedef uint64_t SCI_PHYSICAL_ADDRESS; 67 68 typedef U64 SATI_LBA; 69 typedef void * FUNCPTR; 70 71 #define sci_cb_physical_address_upper(address) ((uint32_t)((address)>>32)) 72 #define sci_cb_physical_address_lower(address) ((uint32_t)((address)&0xFFFFFFFF)) 73 #define sci_cb_make_physical_address(physical_address, address_upper, address_lower) \ 74 ((physical_address) = ((U64)(address_upper))<<32 | (address_lower)) 75 76 #define INLINE __inline 77 78 #define PLACEMENT_HINTS(...) 79 80 #define SCIC_SDS_4_ENABLED 1 81 #define PBG_BUILD 1 82 #define PHY_MAX_LINK_SPEED_GENERATION 3 83 84 /* SCIL defines logging as SCI_LOGGING, but the FreeBSD driver name is ISCI. 85 So we define ISCI_LOGGING as the option exported to the kernel, and 86 translate it here. */ 87 #ifdef ISCI_LOGGING 88 #define SCI_LOGGING 89 #endif 90 91 #define __SCI_LIBRARY_MAJOR_VERSION__ 3 92 #define __SCI_LIBRARY_MINOR_VERSION__ 1 93 #define __SCI_LIBRARY_BUILD_VERSION__ 7142 94 95 #define SATI_TRANSPORT_SUPPORTS_SATA 96 #define SATI_TRANSPORT_SUPPORTS_SAS 97 #define USE_ABSTRACT_LIST_FUNCTIONS 98 99 #define ASSERT(cond) 100 #define assert(cond) 101 102 #endif /* ENVIRONMENT_H_ */ 103