X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ffilesys%2Ffilesys-stub.c;h=edf5de21f25af77d85d424b926fb6a5e91962b4c;hb=955ab223bdf558fe308e41ef281c66a0d643acdc;hp=29c4cb995cc3a40cf25f789a99f743dd0bb27b0d;hpb=3fc16f6e9abc98a3bd5427eb210669860609a224;p=pintos-anon diff --git a/src/filesys/filesys-stub.c b/src/filesys/filesys-stub.c index 29c4cb9..edf5de2 100644 --- a/src/filesys/filesys-stub.c +++ b/src/filesys/filesys-stub.c @@ -84,7 +84,11 @@ filesys_stub_get_bool (void) void filesys_stub_get_bytes (void *buffer, size_t size) { - backdoor_get_bytes (buffer, size, in_byte, NULL); + /* We could use backdoor_get_bytes() but this is significantly + faster. */ + asm ("rep insl; movl %0, %%ecx; rep insb" + : + : "g" (size % 4), "d" (0x8901), "c" (size / 4), "D" (buffer)); } struct file *