225 lines
4.9 KiB
C
225 lines
4.9 KiB
C
/********************************************************************************/
|
|
/* */
|
|
/* Module: jbiexprt.h */
|
|
/* */
|
|
/* Copyright (C) Altera Corporation 1998-2001 */
|
|
/* */
|
|
/* Description: Jam STAPL ByteCode Player Export Header File */
|
|
/* */
|
|
/* Revisions: */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
#ifndef INC_JBIEXPRT_H
|
|
#define INC_JBIEXPRT_H
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* Return codes from most JBI functions */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
#define JBI_RETURN_TYPE int
|
|
|
|
#define JBIC_SUCCESS 0
|
|
#define JBIC_OUT_OF_MEMORY 1
|
|
#define JBIC_IO_ERROR 2
|
|
/* #define JAMC_SYNTAX_ERROR 3 */
|
|
#define JBIC_UNEXPECTED_END 4
|
|
#define JBIC_UNDEFINED_SYMBOL 5
|
|
/* #define JAMC_REDEFINED_SYMBOL 6 */
|
|
#define JBIC_INTEGER_OVERFLOW 7
|
|
#define JBIC_DIVIDE_BY_ZERO 8
|
|
#define JBIC_CRC_ERROR 9
|
|
#define JBIC_INTERNAL_ERROR 10
|
|
#define JBIC_BOUNDS_ERROR 11
|
|
/* #define JAMC_TYPE_MISMATCH 12 */
|
|
/* #define JAMC_ASSIGN_TO_CONST 13 */
|
|
/* #define JAMC_NEXT_UNEXPECTED 14 */
|
|
/* #define JAMC_POP_UNEXPECTED 15 */
|
|
/* #define JAMC_RETURN_UNEXPECTED 16 */
|
|
/* #define JAMC_ILLEGAL_SYMBOL 17 */
|
|
#define JBIC_VECTOR_MAP_FAILED 18
|
|
#define JBIC_USER_ABORT 19
|
|
#define JBIC_STACK_OVERFLOW 20
|
|
#define JBIC_ILLEGAL_OPCODE 21
|
|
/* #define JAMC_PHASE_ERROR 22 */
|
|
/* #define JAMC_SCOPE_ERROR 23 */
|
|
#define JBIC_ACTION_NOT_FOUND 24
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* Macro Definitions */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
/*
|
|
* For DOS port, program data is stored in a set of 16K pages, accessed
|
|
* through a pointer table. For 32-bit version, the buffer is continuous.
|
|
* The macro GET_BYTE gets a single byte for either case.
|
|
*/
|
|
#if PORT==DOS
|
|
#define PROGRAM_PTR unsigned char **
|
|
#else
|
|
#define PROGRAM_PTR unsigned char *
|
|
#endif
|
|
|
|
#if PORT==DOS
|
|
#define GET_BYTE(x) (jbi_program[(x) >> 14L][(x) & 0x3fffL])
|
|
#else
|
|
#define GET_BYTE(x) (program[x])
|
|
#endif
|
|
|
|
#define GET_WORD(x) \
|
|
(((((unsigned short) GET_BYTE(x)) << 8) & 0xFF00) | \
|
|
(((unsigned short) GET_BYTE((x)+1)) & 0x00FF))
|
|
|
|
#define GET_DWORD(x) \
|
|
(((((unsigned long) GET_BYTE(x)) << 24L) & 0xFF000000L) | \
|
|
((((unsigned long) GET_BYTE((x)+1)) << 16L) & 0x00FF0000L) | \
|
|
((((unsigned long) GET_BYTE((x)+2)) << 8L) & 0x0000FF00L) | \
|
|
(((unsigned long) GET_BYTE((x)+3)) & 0x000000FFL))
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* Structured Types */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
typedef struct JBI_PROCINFO_STRUCT
|
|
{
|
|
char *name;
|
|
unsigned char attributes;
|
|
struct JBI_PROCINFO_STRUCT *next;
|
|
}
|
|
JBI_PROCINFO;
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* Global Data Prototypes */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
#if PORT==DOS
|
|
extern unsigned char jbi_aca_out_buffer[8192 + 1024];
|
|
#endif
|
|
|
|
extern PROGRAM_PTR jbi_program;
|
|
|
|
extern char *jbi_workspace;
|
|
|
|
extern long jbi_workspace_size;
|
|
|
|
/********************************************************************************/
|
|
/* */
|
|
/* Function Prototypes */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
JBI_RETURN_TYPE jbi_execute
|
|
(
|
|
PROGRAM_PTR program,
|
|
long program_size,
|
|
char *workspace,
|
|
long workspace_size,
|
|
char *action,
|
|
char **init_list,
|
|
int reset_jtag,
|
|
long *error_address,
|
|
int *exit_code,
|
|
int *format_version
|
|
);
|
|
|
|
JBI_RETURN_TYPE jbi_get_note
|
|
(
|
|
PROGRAM_PTR program,
|
|
long program_size,
|
|
long *offset,
|
|
char *key,
|
|
char *value,
|
|
int length
|
|
);
|
|
|
|
JBI_RETURN_TYPE jbi_check_crc
|
|
(
|
|
PROGRAM_PTR program,
|
|
long program_size,
|
|
unsigned short *expected_crc,
|
|
unsigned short *actual_crc
|
|
);
|
|
|
|
JBI_RETURN_TYPE jbi_get_file_info
|
|
(
|
|
PROGRAM_PTR program,
|
|
long program_size,
|
|
int *format_version,
|
|
int *action_count,
|
|
int *procedure_count
|
|
);
|
|
|
|
JBI_RETURN_TYPE jbi_get_action_info
|
|
(
|
|
PROGRAM_PTR program,
|
|
long program_size,
|
|
int index,
|
|
char **name,
|
|
char **description,
|
|
JBI_PROCINFO **procedure_list
|
|
);
|
|
|
|
int jbi_jtag_io
|
|
(
|
|
int tms,
|
|
int tdi,
|
|
int read_tdo
|
|
);
|
|
|
|
void jbi_message
|
|
(
|
|
char *message_text
|
|
);
|
|
|
|
void jbi_export_integer
|
|
(
|
|
char *key,
|
|
long value
|
|
);
|
|
|
|
void jbi_export_boolean_array
|
|
(
|
|
char *key,
|
|
unsigned char *data,
|
|
long count
|
|
);
|
|
|
|
void jbi_delay
|
|
(
|
|
long microseconds
|
|
);
|
|
|
|
int jbi_vector_map
|
|
(
|
|
int signal_count,
|
|
char **signals
|
|
);
|
|
|
|
int jbi_vector_io
|
|
(
|
|
int signal_count,
|
|
long *dir_vect,
|
|
long *data_vect,
|
|
long *capture_vect
|
|
);
|
|
|
|
void *jbi_malloc
|
|
(
|
|
unsigned int size
|
|
);
|
|
|
|
void jbi_free
|
|
(
|
|
void *ptr
|
|
);
|
|
|
|
#endif /* INC_JBIEXPRT_H */
|