/* load <msize> bytes of file <name> starting at offset <foffset> * into memory at <mstart> */ int load_file(char *name, int foffset, unsigned char *mstart, int msize) { int fd; if (strcmp(name, "/dev/mem") == 0) { v_printf("kmem used for loadfile\n"); open_kmem(); fd = mem_fd; } else fd = open(name, O_RDONLY); (void)DOS_SYSCALL(lseek(fd, foffset, SEEK_SET)); (void)RPT_SYSCALL(read(fd, mstart, msize)); if (strcmp(name, "/dev/mem") == 0) close_kmem(); else close(fd); return 0; }
static inline void giveup_permissions(void) { DOS_SYSCALL(set_ioperm(0x3b0, 0x3df - 0x3b0 + 1, 0)); }