File tree Expand file tree Collapse file tree
vunit/vhdl/data_types/src/external/ghdl Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ VHPIDIRECT {
2+ global:
3+ main;
4+ oct_main;
5+ ghdl_main;
6+ read_char;
7+ write_char;
8+ read_integer;
9+ write_integer;
10+ set_string_ptr;
11+ get_string_ptr;
12+ set_intvec_ptr;
13+ get_intvec_ptr;
14+ local:
15+ *;
16+ };
Original file line number Diff line number Diff line change 1+ #include <stdio.h>
2+ #include <stdlib.h>
3+ #include <stdint.h>
4+
5+ void set_string_ptr (uint8_t id , uint8_t * p ) {
6+ printf ("ERROR set_string_ptr: THIS IS A STUB\n" );
7+ exit (1 );
8+ return ;
9+ }
10+
11+ uintptr_t get_string_ptr (uint8_t id ) {
12+ printf ("ERROR get_string_ptr: THIS IS A STUB\n" );
13+ exit (1 );
14+ return NULL ;
15+ }
16+
17+ void write_char ( uint8_t id , uint32_t i , uint8_t v ) {
18+ printf ("ERROR write_char: THIS IS A STUB\n" );
19+ exit (1 );
20+ return ;
21+ }
22+
23+ uint8_t read_char ( uint8_t id , uint32_t i ) {
24+ printf ("ERROR read_char: THIS IS A STUB\n" );
25+ exit (1 );
26+ return 0 ;
27+ }
28+
29+ //---
30+
31+ void set_intvec_ptr (uint8_t id , uint8_t * p ) {
32+ printf ("ERROR set_intvec_ptr: THIS IS A STUB\n" );
33+ exit (1 );
34+ return ;
35+ }
36+
37+ uintptr_t get_intvec_ptr (uint8_t id ) {
38+ printf ("ERROR get_intvec_ptr: THIS IS A STUB\n" );
39+ exit (1 );
40+ return NULL ;
41+ }
42+
43+ void write_integer (uint8_t id , uint32_t i , int32_t v ) {
44+ printf ("ERROR write_integer: THIS IS A STUB\n" );
45+ exit (1 );
46+ return ;
47+ }
48+
49+ int32_t read_integer (uint8_t id , uint32_t i ) {
50+ printf ("ERROR read_integer: THIS IS A STUB\n" );
51+ exit (1 );
52+ return 0 ;
53+ }
Original file line number Diff line number Diff line change 1+ #include <stdint.h>
2+
3+ extern int ghdl_main (int argc , char * * argv );
4+
5+ uint8_t * D [256 ];
6+
7+ //---
8+
9+ // External string/byte_vector through access (mode = extacc)
10+
11+ void set_string_ptr (uint8_t id , uintptr_t p ) {
12+ D [id ] = (uint8_t * )p ;
13+ }
14+
15+ uintptr_t get_string_ptr (uint8_t id ) {
16+ return (uintptr_t )D [id ];
17+ }
18+
19+ // External string/byte_vector through functions (mode = extfnc)
20+
21+ void write_char (uint8_t id , uint32_t i , uint8_t v ) {
22+ ((uint8_t * )D [id ])[i ] = v ;
23+ }
24+
25+ uint8_t read_char (uint8_t id , uint32_t i ) {
26+ return ((uint8_t * )D [id ])[i ];
27+ }
28+
29+ //---
30+
31+ // External integer_vector through access (mode = extacc)
32+
33+ void set_intvec_ptr (uint8_t id , uintptr_t p ) {
34+ D [id ] = (uint8_t * )p ;
35+ }
36+
37+ uintptr_t get_intvec_ptr (uint8_t id ) {
38+ return (uintptr_t )D [id ];
39+ }
40+
41+ // External integer_vector through functions (mode = extfnc)
42+
43+ void write_integer (uint8_t id , uint32_t i , int32_t v ) {
44+ ((int32_t * )D [id ])[i ] = v ;
45+ }
46+
47+ int32_t read_integer (uint8_t id , uint32_t i ) {
48+ return ((int32_t * )D [id ])[i ];
49+ }
You can’t perform that action at this time.
0 commit comments