Use .def file instead of _dllexport.
This commit is contained in:
parent
07aa86f0fa
commit
887654b7c5
|
|
@ -18,7 +18,7 @@
|
|||
# 59 Temple Place - Suite 330
|
||||
# Boston, MA 02111-1307, USA
|
||||
#
|
||||
#ident "$Id: Makefile.in,v 1.14 2000/10/04 02:01:40 steve Exp $"
|
||||
#ident "$Id: Makefile.in,v 1.15 2000/10/04 02:37:44 steve Exp $"
|
||||
#
|
||||
#
|
||||
SHELL = /bin/sh
|
||||
|
|
@ -58,13 +58,11 @@ sys_readmem.o sys_readmem_lex.o sys_vcd.o
|
|||
|
||||
ifeq (@CYGWIN@,yes)
|
||||
SYSTEM_VPI_LDFLAGS=-Wl,--enable-auto-image-base -L../vvm -lvvm -lvpip
|
||||
VPIP_LIBS = ../vvm/libvvm.a ../vvm/libvpip.a
|
||||
else
|
||||
SYSTEM_VPI_LDFLAGS=
|
||||
VPIP_LIBS =
|
||||
endif
|
||||
|
||||
system.vpi: $O $(VPIP_LIBS)
|
||||
system.vpi: $O
|
||||
$(CC) -shared -o $@ $O $(SYSTEM_VPI_LDFLAGS)
|
||||
|
||||
sys_readmem_lex.c: sys_readmem_lex.lex
|
||||
|
|
|
|||
|
|
@ -19,27 +19,16 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#if !defined(WINNT) && !defined(macintosh)
|
||||
#ident "$Id: vpi_user.h,v 1.22 2000/10/03 16:15:35 steve Exp $"
|
||||
#ident "$Id: vpi_user.h,v 1.23 2000/10/04 02:37:44 steve Exp $"
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__CYGWIN32__)
|
||||
# define DLLIMPORT __declspec(dllimport)
|
||||
# define DLLEXPORT __declspec(dllexport)
|
||||
# define DLLEXPORT __declspec(dllexport)
|
||||
#else
|
||||
# define DLLIMPORT
|
||||
# define DLLEXPORT
|
||||
#endif
|
||||
|
||||
#undef VPIP_STORAGE_CLASS
|
||||
#if defined(__build_vpip)
|
||||
# define VPIP_STORAGE_CLASS DLLEXPORT
|
||||
#else
|
||||
# define VPIP_STORAGE_CLASS DLLIMPORT
|
||||
#endif
|
||||
|
||||
#define VPIP_EXTERN extern VPIP_STORAGE_CLASS
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
@ -180,13 +169,13 @@ typedef struct t_vpi_value {
|
|||
|
||||
|
||||
/* VPI FUNCTIONS */
|
||||
VPIP_EXTERN void vpi_register_systf(const struct t_vpi_systf_data*ss);
|
||||
VPIP_EXTERN void vpi_printf(const char*fmt, ...);
|
||||
extern void vpi_register_systf(const struct t_vpi_systf_data*ss);
|
||||
extern void vpi_printf(const char*fmt, ...);
|
||||
|
||||
VPIP_EXTERN unsigned int vpi_mcd_close(unsigned int mcd);
|
||||
VPIP_EXTERN char *vpi_mcd_name(unsigned int mcd);
|
||||
VPIP_EXTERN unsigned int vpi_mcd_open(char *name);
|
||||
VPIP_EXTERN int vpi_mcd_printf(unsigned int mcd, const char*fmt, ...);
|
||||
extern unsigned int vpi_mcd_close(unsigned int mcd);
|
||||
extern char *vpi_mcd_name(unsigned int mcd);
|
||||
extern unsigned int vpi_mcd_open(char *name);
|
||||
extern int vpi_mcd_printf(unsigned int mcd, const char*fmt, ...);
|
||||
|
||||
/*
|
||||
* support for VPI callback functions.
|
||||
|
|
@ -226,8 +215,8 @@ typedef struct t_cb_data {
|
|||
#define cbInteractiveScopeChange 23
|
||||
#define cbUnresolvedSystf 24
|
||||
|
||||
VPIP_EXTERN vpiHandle vpi_register_cb(p_cb_data data);
|
||||
VPIP_EXTERN int vpi_remove_cb(vpiHandle ref);
|
||||
extern vpiHandle vpi_register_cb(p_cb_data data);
|
||||
extern int vpi_remove_cb(vpiHandle ref);
|
||||
|
||||
/*
|
||||
* This function allows a vpi application to control the simulation
|
||||
|
|
@ -244,26 +233,26 @@ VPIP_EXTERN int vpi_remove_cb(vpiHandle ref);
|
|||
* vpiReset -
|
||||
* vpiSetInteractiveScope -
|
||||
*/
|
||||
VPIP_EXTERN void vpi_sim_control(int operation, ...);
|
||||
extern void vpi_sim_control(int operation, ...);
|
||||
#define vpiStop 1
|
||||
#define vpiFinish 2
|
||||
#define vpiReset 3
|
||||
#define vpiSetInteractiveScope 4
|
||||
|
||||
VPIP_EXTERN vpiHandle vpi_handle(int type, vpiHandle ref);
|
||||
VPIP_EXTERN vpiHandle vpi_iterate(int type, vpiHandle ref);
|
||||
VPIP_EXTERN vpiHandle vpi_scan(vpiHandle iter);
|
||||
VPIP_EXTERN vpiHandle vpi_handle_by_index(vpiHandle ref, int index);
|
||||
extern vpiHandle vpi_handle(int type, vpiHandle ref);
|
||||
extern vpiHandle vpi_iterate(int type, vpiHandle ref);
|
||||
extern vpiHandle vpi_scan(vpiHandle iter);
|
||||
extern vpiHandle vpi_handle_by_index(vpiHandle ref, int index);
|
||||
|
||||
VPIP_EXTERN void vpi_get_time(vpiHandle obj, s_vpi_time*t);
|
||||
VPIP_EXTERN int vpi_get(int property, vpiHandle ref);
|
||||
VPIP_EXTERN char* vpi_get_str(int property, vpiHandle ref);
|
||||
VPIP_EXTERN void vpi_get_value(vpiHandle expr, p_vpi_value value);
|
||||
VPIP_EXTERN vpiHandle vpi_put_value(vpiHandle obj, p_vpi_value value,
|
||||
extern void vpi_get_time(vpiHandle obj, s_vpi_time*t);
|
||||
extern int vpi_get(int property, vpiHandle ref);
|
||||
extern char* vpi_get_str(int property, vpiHandle ref);
|
||||
extern void vpi_get_value(vpiHandle expr, p_vpi_value value);
|
||||
extern vpiHandle vpi_put_value(vpiHandle obj, p_vpi_value value,
|
||||
p_vpi_time when, int flags);
|
||||
|
||||
VPIP_EXTERN int vpi_free_object(vpiHandle ref);
|
||||
VPIP_EXTERN int vpi_get_vlog_info(p_vpi_vlog_info vlog_info_p);
|
||||
extern int vpi_free_object(vpiHandle ref);
|
||||
extern int vpi_get_vlog_info(p_vpi_vlog_info vlog_info_p);
|
||||
|
||||
|
||||
/* This is the table of startup routines included in each module. */
|
||||
|
|
@ -275,6 +264,9 @@ extern DLLEXPORT void (*vlog_startup_routines[])();
|
|||
|
||||
/*
|
||||
* $Log: vpi_user.h,v $
|
||||
* Revision 1.23 2000/10/04 02:37:44 steve
|
||||
* Use .def file instead of _dllexport.
|
||||
*
|
||||
* Revision 1.22 2000/10/03 16:15:35 steve
|
||||
* Cleanup build of VPI modules under Cygwin. (Venkat)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
# 59 Temple Place - Suite 330
|
||||
# Boston, MA 02111-1307, USA
|
||||
#
|
||||
#ident "$Id: Makefile.in,v 1.34 2000/10/03 16:15:35 steve Exp $"
|
||||
#ident "$Id: Makefile.in,v 1.35 2000/10/04 02:37:44 steve Exp $"
|
||||
#
|
||||
#
|
||||
SHELL = /bin/sh
|
||||
|
|
@ -35,7 +35,7 @@ bindir = $(exec_prefix)/bin
|
|||
libdir = $(exec_prefix)/lib
|
||||
includedir = $(prefix)/include
|
||||
|
||||
CC = @CC@ -I$(srcdir) -I$(srcdir)/../vpi -D__build_vpip
|
||||
CC = @CC@ -I$(srcdir) -I$(srcdir)/../vpi
|
||||
CXX = @CXX@ -I$(srcdir) -I$(srcdir)/../vpi
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
|
|
@ -61,14 +61,14 @@ vpi_mcd.o vpi_vlog_info.o
|
|||
|
||||
ifeq (@CYGWIN@,yes)
|
||||
# In the DOS world, we need to split out the vpip object file.
|
||||
all: libvvm.a libvpip.a
|
||||
all: libvvm.a libvpip.a vpip.dll
|
||||
|
||||
libvvm.a: $O
|
||||
rm -f $@
|
||||
ar cvq $@ $O
|
||||
|
||||
libvpip.a vpip.dll: $P
|
||||
$(CC) -shared -Wl,--enable-auto-image-base,--out-implib,libvpip.a -o vpip.dll $P
|
||||
$(CC) -shared -Wl,--enable-auto-image-base,--out-implib,libvpip.a -o vpip.dll vpip.def $P
|
||||
|
||||
else
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#if !defined(WINNT) && !defined(macintosh)
|
||||
#ident "$Id: vpi_priv.h,v 1.26 2000/10/03 16:15:35 steve Exp $"
|
||||
#ident "$Id: vpi_priv.h,v 1.27 2000/10/04 02:37:44 steve Exp $"
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
@ -107,13 +107,13 @@ typedef unsigned char vpip_bit_t;
|
|||
|
||||
/* Take as input an array of bits, and return the resolved
|
||||
value. The result accounts for the strengths involved. */
|
||||
VPIP_EXTERN vpip_bit_t vpip_pair_resolve(vpip_bit_t a, vpip_bit_t b);
|
||||
VPIP_EXTERN vpip_bit_t vpip_bits_resolve(const vpip_bit_t*bits, unsigned nbits);
|
||||
extern vpip_bit_t vpip_pair_resolve(vpip_bit_t a, vpip_bit_t b);
|
||||
extern vpip_bit_t vpip_bits_resolve(const vpip_bit_t*bits, unsigned nbits);
|
||||
|
||||
|
||||
VPIP_EXTERN void vpip_bits_get_value(const vpip_bit_t*bits, unsigned nbits,
|
||||
extern void vpip_bits_get_value(const vpip_bit_t*bits, unsigned nbits,
|
||||
s_vpi_value*vp);
|
||||
VPIP_EXTERN void vpip_bits_set_value(vpip_bit_t*bits, unsigned nbits,
|
||||
extern void vpip_bits_set_value(vpip_bit_t*bits, unsigned nbits,
|
||||
s_vpi_value*vp);
|
||||
|
||||
/*
|
||||
|
|
@ -203,7 +203,7 @@ struct __vpiNull {
|
|||
struct __vpiHandle base;
|
||||
};
|
||||
|
||||
VPIP_EXTERN struct __vpiNull vpip_null;
|
||||
extern struct __vpiNull vpip_null;
|
||||
|
||||
/*
|
||||
* This type represents the handle to a Verilog scope. These include
|
||||
|
|
@ -219,7 +219,7 @@ struct __vpiScope {
|
|||
struct __vpiHandle**intern;
|
||||
unsigned nintern;
|
||||
};
|
||||
VPIP_EXTERN void vpip_attach_to_scope(struct __vpiScope*scope, vpiHandle obj);
|
||||
extern void vpip_attach_to_scope(struct __vpiScope*scope, vpiHandle obj);
|
||||
|
||||
|
||||
/*
|
||||
|
|
@ -241,8 +241,8 @@ struct __vpiSignal {
|
|||
};
|
||||
|
||||
|
||||
VPIP_EXTERN const struct __vpirt vpip_systask_rt;
|
||||
VPIP_EXTERN const struct __vpirt vpip_sysfunc_rt;
|
||||
extern const struct __vpirt vpip_systask_rt;
|
||||
extern const struct __vpirt vpip_sysfunc_rt;
|
||||
struct __vpiSysTaskCall {
|
||||
struct __vpiHandle base;
|
||||
|
||||
|
|
@ -293,35 +293,35 @@ struct __vpiNumberConst {
|
|||
* to allocate the memory for the handle. The result is the vpiHandle
|
||||
* of the constructed object.
|
||||
*/
|
||||
VPIP_EXTERN vpiHandle vpip_make_iterator(unsigned nargs, vpiHandle*args);
|
||||
VPIP_EXTERN vpiHandle vpip_make_net(struct __vpiSignal*ref, const char*name,
|
||||
extern vpiHandle vpip_make_iterator(unsigned nargs, vpiHandle*args);
|
||||
extern vpiHandle vpip_make_net(struct __vpiSignal*ref, const char*name,
|
||||
vpip_bit_t*bits, unsigned nbits);
|
||||
VPIP_EXTERN vpiHandle vpip_make_scope(struct __vpiScope*ref,
|
||||
extern vpiHandle vpip_make_scope(struct __vpiScope*ref,
|
||||
int type_code,
|
||||
const char*name);
|
||||
VPIP_EXTERN vpiHandle vpip_make_string_const(struct __vpiStringConst*ref,
|
||||
extern vpiHandle vpip_make_string_const(struct __vpiStringConst*ref,
|
||||
const char*val);
|
||||
VPIP_EXTERN vpiHandle vpip_make_number_const(struct __vpiNumberConst*ref,
|
||||
extern vpiHandle vpip_make_number_const(struct __vpiNumberConst*ref,
|
||||
const vpip_bit_t*bits,
|
||||
unsigned nbits);
|
||||
VPIP_EXTERN vpiHandle vpip_make_memory(struct __vpiMemory*ref, const char*name,
|
||||
extern vpiHandle vpip_make_memory(struct __vpiMemory*ref, const char*name,
|
||||
unsigned width, unsigned size);
|
||||
VPIP_EXTERN vpiHandle vpip_make_reg(struct __vpiSignal*ref, const char*name,
|
||||
extern vpiHandle vpip_make_reg(struct __vpiSignal*ref, const char*name,
|
||||
vpip_bit_t*bits, unsigned nbits);
|
||||
VPIP_EXTERN vpiHandle vpip_make_time_var(struct __vpiTimeVar*ref,
|
||||
extern vpiHandle vpip_make_time_var(struct __vpiTimeVar*ref,
|
||||
const char*val);
|
||||
|
||||
/* Use this function to call a registered task. */
|
||||
VPIP_EXTERN void vpip_calltask(const char*name, unsigned nparms, vpiHandle*parms);
|
||||
extern void vpip_calltask(const char*name, unsigned nparms, vpiHandle*parms);
|
||||
|
||||
/*
|
||||
* This calls a system function with a given name. The return value is
|
||||
* taken by the res[] array.
|
||||
*/
|
||||
VPIP_EXTERN void vpip_callfunc(const char*name, unsigned nres, vpip_bit_t*res,
|
||||
extern void vpip_callfunc(const char*name, unsigned nres, vpip_bit_t*res,
|
||||
unsigned nparms, vpiHandle*parms);
|
||||
|
||||
VPIP_EXTERN void vpip_run_value_changes(struct __vpiSignal*sig);
|
||||
extern void vpip_run_value_changes(struct __vpiSignal*sig);
|
||||
|
||||
/*
|
||||
* The simulation object holds the current state of the
|
||||
|
|
@ -347,13 +347,13 @@ struct vpip_simulation {
|
|||
short time_precision;
|
||||
};
|
||||
|
||||
VPIP_EXTERN struct vpip_simulation vpip_simulation_obj;
|
||||
extern struct vpip_simulation vpip_simulation_obj;
|
||||
|
||||
VPIP_EXTERN void vpip_set_vlog_info(int argc, char**argv);
|
||||
VPIP_EXTERN void vpip_init_simulation();
|
||||
VPIP_EXTERN void vpip_time_scale(int precision);
|
||||
VPIP_EXTERN void vpip_simulation_run();
|
||||
VPIP_EXTERN void vpi_mcd_init(void);
|
||||
extern void vpip_set_vlog_info(int argc, char**argv);
|
||||
extern void vpip_init_simulation();
|
||||
extern void vpip_time_scale(int precision);
|
||||
extern void vpip_simulation_run();
|
||||
extern void vpi_mcd_init(void);
|
||||
|
||||
/*
|
||||
* Schedule an event to be run sometime in the future. The d parmater
|
||||
|
|
@ -364,22 +364,22 @@ VPIP_EXTERN void vpi_mcd_init(void);
|
|||
* The return value from the insert method is a cookie that can be
|
||||
* used to manipulate the event before it is executed.
|
||||
*/
|
||||
VPIP_EXTERN struct vpip_event* vpip_sim_insert_event(unsigned long d,
|
||||
extern struct vpip_event* vpip_sim_insert_event(unsigned long d,
|
||||
void*user_data,
|
||||
void (*sim_fun)(void*),
|
||||
int nonblock_flag);
|
||||
VPIP_EXTERN void vpip_sim_cancel_event(struct vpip_event*cookie);
|
||||
extern void vpip_sim_cancel_event(struct vpip_event*cookie);
|
||||
|
||||
/*
|
||||
* This function returns a handle to the vpiTimeVar that is th main
|
||||
* simulation time clock.
|
||||
*/
|
||||
VPIP_EXTERN vpiHandle vpip_sim_time();
|
||||
extern vpiHandle vpip_sim_time();
|
||||
|
||||
/*
|
||||
* Return true if the going_flag is false.
|
||||
*/
|
||||
VPIP_EXTERN int vpip_finished();
|
||||
extern int vpip_finished();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
@ -388,6 +388,9 @@ VPIP_EXTERN int vpip_finished();
|
|||
|
||||
/*
|
||||
* $Log: vpi_priv.h,v $
|
||||
* Revision 1.27 2000/10/04 02:37:44 steve
|
||||
* Use .def file instead of _dllexport.
|
||||
*
|
||||
* Revision 1.26 2000/10/03 16:15:35 steve
|
||||
* Cleanup build of VPI modules under Cygwin. (Venkat)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
EXPORTS
|
||||
|
||||
vpi_free_object
|
||||
vpi_get
|
||||
vpi_get_str
|
||||
vpi_get_time
|
||||
vpi_get_value
|
||||
vpi_get_vlog_info
|
||||
vpi_handle
|
||||
vpi_handle_by_index
|
||||
vpi_iterate
|
||||
vpi_mcd_close
|
||||
vpi_mcd_init
|
||||
vpi_mcd_name
|
||||
vpi_mcd_open
|
||||
vpi_mcd_printf
|
||||
vpi_printf
|
||||
vpi_put_value
|
||||
vpi_register_cb
|
||||
vpi_register_systf
|
||||
vpi_remove_cb
|
||||
vpi_scan
|
||||
vpi_sim_control
|
||||
vpip_attach_to_scope
|
||||
vpip_bits_get_value
|
||||
vpip_bits_resolve
|
||||
vpip_bits_set_value
|
||||
vpip_callfunc
|
||||
vpip_calltask
|
||||
vpip_finished
|
||||
vpip_init_simulation
|
||||
vpip_make_iterator
|
||||
vpip_make_memory
|
||||
vpip_make_net
|
||||
vpip_make_number_const
|
||||
vpip_make_reg
|
||||
vpip_make_scope
|
||||
vpip_make_string_const
|
||||
vpip_make_time_var
|
||||
vpip_null DATA
|
||||
vpip_pair_resolve
|
||||
vpip_run_value_changes
|
||||
vpip_set_vlog_info
|
||||
vpip_sim_cancel_event
|
||||
vpip_sim_insert_event
|
||||
vpip_sim_time
|
||||
vpip_simulation_obj DATA
|
||||
vpip_simulation_run
|
||||
vpip_sysfunc_rt DATA
|
||||
vpip_systask_rt DATA
|
||||
vpip_time_scale
|
||||
Loading…
Reference in New Issue