diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-07-26 05:43:26 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-07-26 05:43:26 +0200 |
commit | 6617c63a374f7211b41252d3957e8a89061b8a49 (patch) | |
tree | 649d456d9b95e47cfc10ac4b9ff2ec705c1633a3 /sys/src/9/port/portfns.h | |
parent | 918cb7604039601fecd70379b8bc2fee5b26a514 (diff) |
kernel: pipelined read ahead for the mount cache
this changes devmnt adding mntrahread() function and some helpers
for it to do pipelined sequential read ahead for the mount cache.
basically, cread() calls mntrahread() with Mntrah structure and it
figures out if we where reading sequentially and if thats the case
issues reads of c->iounit size in advance.
the read ahead state (Mntrah) is kept in the mount cache so we can
handle (read ahead) cache invalidation in the presence of writes.
Diffstat (limited to 'sys/src/9/port/portfns.h')
-rw-r--r-- | sys/src/9/port/portfns.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/src/9/port/portfns.h b/sys/src/9/port/portfns.h index 2f135c31b..db547d1a1 100644 --- a/sys/src/9/port/portfns.h +++ b/sys/src/9/port/portfns.h @@ -42,6 +42,7 @@ void confinit(void); int consactive(void); void (*consdebug)(void); void copen(Chan*); +void cclunk(Chan*); Block* concatblock(Block*); Block* copyblock(Block*, int); void copypage(Page*, Page*); @@ -283,6 +284,7 @@ int rand(void); void randominit(void); ulong randomread(void*, ulong); void rdb(void); +long readblist(Block *, uchar *, long, long); int readnum(ulong, char*, ulong, ulong, int); int readstr(ulong, char*, ulong, char*); void ready(Proc*); |