Add pcdrv stub + ref
This commit is contained in:
parent
d2c6f1b84c
commit
a3bd1fbf59
80
pcdrv.c
Normal file
80
pcdrv.c
Normal file
@ -0,0 +1,80 @@
|
||||
int waitForSIODone( int command ){
|
||||
|
||||
// This should wait for a signal from the SIO to send when it's done
|
||||
// command can be 0 open, 1 close, 2 seek, 3 read, 4 write
|
||||
// Returns val < 0 if wrong
|
||||
|
||||
};
|
||||
|
||||
#define OPEN 0
|
||||
#define CLOSE 1
|
||||
#define SEEK 2
|
||||
#define READ 3
|
||||
#define WRITE 4
|
||||
#define CREATE 5
|
||||
|
||||
int open(const char * filename, int attributes) {
|
||||
|
||||
// Send filename and attributes (ro,wo,rw..)
|
||||
// expects an int referring to a file descriptor on the PC
|
||||
|
||||
int fd = 0; // File Descriptor https://en.wikipedia.org/wiki/File_descriptor
|
||||
|
||||
printf("open:%s:%i:%08x", filename, attributes, &fd);
|
||||
|
||||
waitForSIODone(0)
|
||||
|
||||
return fd; // If all is well, returns a positive int . If -1, wrong
|
||||
|
||||
};
|
||||
|
||||
int create(const char * filename, int attributes) {
|
||||
|
||||
// Send filename and attributes (ro,wo,rw..)
|
||||
// expects an int referring to a file descriptor on the PC
|
||||
|
||||
int fd = 0; // File Descriptor https://en.wikipedia.org/wiki/File_descriptor
|
||||
|
||||
printf("create:%s:%i:%08x", filename, attributes, &fd);
|
||||
|
||||
waitForSIODone(5); // Should return int fd, -1 else
|
||||
|
||||
return fd; // If all is well, returns a positive int . If -1, wrong
|
||||
|
||||
};
|
||||
|
||||
int close( int fd ) {
|
||||
|
||||
// Send the close command and fd as int
|
||||
|
||||
printf("close:%s:%08x", filename, fd);
|
||||
|
||||
return waitForSIODone(1); // Should return 1 if ok, 0 if wrong, or -1 if wrong ?
|
||||
|
||||
};
|
||||
|
||||
int seek( int fd, int offset, int accessMode){
|
||||
|
||||
// Move file pointer in fd at offset
|
||||
// Access mode can be 0 abs, 1 rel to start, 2 rel to end
|
||||
|
||||
printf("seek:%i:%08x:%i", fd, offset, accessMode);
|
||||
|
||||
return waitForSIODone(2);
|
||||
|
||||
};
|
||||
|
||||
int read( int fd, int len, char * buffer ){
|
||||
|
||||
// Read len bytes of fd and put them in buff
|
||||
|
||||
int count = 0;
|
||||
|
||||
printf("read:%i:%08x:%i", fd, len, buffer, count);
|
||||
|
||||
waitForSIODone(3);
|
||||
|
||||
return count;
|
||||
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user