1 #ifndef SV_VPI_USER_H 2 #define SV_VPI_USER_H 3 /* 4 * Copyright (c) 2010-2014 Stephen Williams (steve@icarus.com) 5 * 6 * This source code is free software; you can redistribute it 7 * and/or modify it in source code form under the terms of the GNU 8 * General Public License as published by the Free Software 9 * Foundation; either version 2 of the License, or (at your option) 10 * any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 */ 21 22 # include "vpi_user.h" 23 24 #if defined(__MINGW32__) || defined (__CYGWIN__) 25 # define DLLEXPORT __declspec(dllexport) 26 #else 27 # define DLLEXPORT 28 #endif 29 30 #ifdef __cplusplus 31 # define EXTERN_C_START extern "C" { 32 # define EXTERN_C_END } 33 #else 34 # define EXTERN_C_START 35 # define EXTERN_C_END 36 #endif 37 38 #ifndef __GNUC__ 39 # undef __attribute__ 40 # define __attribute__(x) 41 #endif 42 43 EXTERN_C_START 44 45 /********* OBJECT TYPES ***********/ 46 #define vpiPackage 600 47 #define vpiArrayType 606 48 #define vpiStaticArray 1 49 #define vpiDynamicArray 2 50 #define vpiAssocArray 3 51 #define vpiQueueArray 4 52 #define vpiLongIntVar 610 53 #define vpiShortIntVar 611 54 #define vpiIntVar 612 55 #define vpiByteVar 614 56 #define vpiLogicVar vpiReg 57 #define vpiClassVar 615 58 #define vpiStringVar 616 59 #define vpiBitVar 620 60 #define vpiArrayVar vpiRegArray 61 62 /********* TYPESPECS *************/ 63 #define vpiClassTypespec 630 64 #define vpiEnumTypespec 633 65 #define vpiEnumConst 634 66 67 #define vpiClassDefn 652 68 69 /********* One-to-One ***********/ 70 #define vpiBaseTypespec 703 71 72 /********* Many-to-One ***********/ 73 #define vpiMember 742 74 75 /********* task/function properties **********/ 76 #define vpiOtherFunc 6 77 78 /* Icarus-specific function type to use string as the return type */ 79 #define vpiStringFunc 10 80 #define vpiSysFuncString vpiSysFuncString 81 82 EXTERN_C_END 83 84 #endif /* SV_VPI_USER_H */ 85