lseek simulator working

This commit is contained in:
fares
2019-11-18 15:30:51 -05:00
parent 3bc2f449e4
commit f3e2bacee7
6 changed files with 30423 additions and 30126 deletions

View File

@@ -136,13 +136,28 @@ int main (int argc, char **argv) {
printf("\n\n******** Fixing fileio START Native Vecadd running ********\n\n");
FILE *fp;
char buff[1024];
fp = fopen("/home/fares/Desktop/Vortex/simX/reading_data.txt", "r");
// fscanf(fp, "%s %s %s %s", buff);
fgets(buff, 41, (FILE*)fp);
printf("1 : %s\n", buff );
FILE *f = fopen("/home/fares/Desktop/Vortex/simX/reading_data.txt", "r");
fseek(f, 0, SEEK_END);
int fsize = ftell(f);
fseek(f, 0, SEEK_SET); /* same as rewind(f); */
char *string = (char *) malloc(fsize + 1);
fread(string, 1, fsize, f);
fclose(f);
string[fsize] = 0;
printf("%s", string);
// FILE *fp;
// char buff[1024];
// fp = fopen("/home/fares/Desktop/Vortex/simX/reading_data.txt", "r");
// // fscanf(fp, "%s %s %s %s", buff);
// fgets(buff, 41, (FILE*)fp);
// printf("1 : %s\n", buff );
exit(0);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -95,7 +95,7 @@ void download(char ** ptr, char * drain)
void _close()
{
vx_print_str("Hello from _close\n");
// vx_print_str("Hello from _close\n");
}
int _fstat(int file, struct stat * st)
@@ -152,12 +152,35 @@ int _isatty (int file)
return 1;
}
void _lseek()
int _lseek(int fd, int offset, int whence)
{
// vx_print_str("Hello from _lseek\n");
char * write_buffer = (char *) FILE_IO_WRITE;
char * read_buffer = (char *) FILE_IO_READ;
int cmd_id = LSEEK;
upload((char **) &write_buffer, (char *) &cmd_id , sizeof(int));
upload((char **) &write_buffer, (char *) &fd , sizeof(int));
upload((char **) &write_buffer, (char *) &offset , sizeof(int));
upload((char **) &write_buffer, (char *) &whence , sizeof(int));
trap_to_simulator();
int retval;
download((char **) &read_buffer, (char *) &retval);
return retval;
vx_print_str("Hello from _lseek\n");
}
// void _lseek()
// {
// }
int _read (int file, char *ptr, int len)
{
@@ -250,7 +273,7 @@ void * _sbrk (int nbytes)
void _exit(int val)
{
vx_print_str("Hello from exit\n");
// vx_print_str("Hello from exit\n");
vx_tmc(0);
}

View File

@@ -197,7 +197,20 @@ void trap_to_simulator(Warp & c)
case (LSEEK):
{
cerr << "trap_to_simulator: LSEEK not supported yet\n";
// cerr << "trap_to_simulator: LSEEK not supported yet\n";
int fd;
int offset;
int whence;
download(&read_buffer, (char *) &fd , c);
download(&read_buffer, (char *) &offset , c);
download(&read_buffer, (char *) &whence , c);
int retval = lseek(fd, offset, whence);
upload(&write_buffer, (char *) &retval, sizeof(int), c);
}
break;
case (READ):