Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. int *ptr = f->esp;
  2.  
  3. switch (*ptr) {
  4. case SYS_HALT: {
  5. halt();
  6. break;
  7. }
  8. case SYS_CREATE: {
  9. ptr = ptr + 4;
  10. char nameOfFile = *((char**)(ptr));
  11. ptr = ptr + 4;
  12. int sizeOfFile = *((int*))ptr));
  13. f->eax = create(nameOfFile, sizeOfFile);
  14. break;
  15. }
  16. case SYS_OPEN: {
  17. ptr = ptr + 4;
  18. char *nameOfFile1 = *((char**)(ptr));
  19. f->eax = open(nameOfFile);
  20. break;
  21. }
  22. case SYS_CLOSE: {
  23. ptr = ptr + 4:
  24. int fd = *((int*)(ptr));
  25. close(fd);
  26. break;
  27. }
  28. case SYS_READ: {
  29. ptr = ptr + 4;
  30. int readFd = *((int*))ptr));
  31. ptr = ptr + 4;
  32. void *readBuffer = *((void**)ptr);
  33. ptr = ptr + 4;
  34. int sizeOfBuffer = *((int*)(ptr));
  35. f->eax = read(readFd, readBuffer, sizeOfBuffer);
  36. break;
  37. }
  38. case SYS_WRITE: {
  39. ptr = ptr + 4;
  40. int writeFd = *((int*))ptr));
  41. ptr = ptr + 4;
  42. void *writeBuffer = ((void**)ptr);
  43. ptr = ptr + 4;
  44. int sizeOfWrBuffer = *(int*)(ptr)
  45. f->eax = write(writeFd, writeBuffer, sizeOfWrBuffer);
  46. break;
  47. }
  48. case SYS_EXIT: {
  49. exit(0);
  50. break;
  51. }
  52.  
  53. }
  54. }
  55.  
  56. void halt(void) {
  57.  
  58. power_off();
  59. }
  60.  
  61. bool create(const char *file, unsigned intitial_size) {
  62. return filesys_create(file, intitial_size);
  63. }
  64.  
  65. int open(const char *file) {
  66.  
  67. struct file *newFile = filesys_open(file);
  68. if(newFile != NULL) {
  69. for(int i = 2; i < 128; i++) {
  70.  
  71.  
  72.  
  73.  
  74. }
  75. }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement