Skip to content

Commit 9c2563d

Browse files
umarcor1138-4EB
authored andcommitted
add reference VHPIDIRECT related C sources to data_types/src/external/ghdl
1 parent b1111dc commit 9c2563d

3 files changed

Lines changed: 118 additions & 0 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
};
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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+
}

0 commit comments

Comments
 (0)