]> mj.ucw.cz Git - libucw.git/blobdiff - lib/pagecache.h
CF_USAGE_TAB can be used to insert more tabs to the default help message.
[libucw.git] / lib / pagecache.h
index 7598f3459b80eedf9256cf738c3347e0a4c0bbd8..a9368df9e4172913dac58745b8cbabeb0aae1fb8 100644 (file)
@@ -1,7 +1,10 @@
 /*
  *     Sherlock Library -- File Page Cache
  *
- *     (c) 1999 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
+ *     (c) 1999--2002 Martin Mares <mj@ucw.cz>
+ *
+ *     This software may be freely distributed and used according to the terms
+ *     of the GNU Lesser General Public License.
  */
 
 #ifndef _SHERLOCK_PAGECACHE_H
@@ -14,7 +17,8 @@ struct page_cache;
 struct page {
   node n;                              /* Node in page list */
   node hn;                             /* Node in hash table */
-  sh_off_t key;                                /* Lower bits contain file handle */
+  sh_off_t pos;
+  uns fd;
   uns flags;
   uns lock_count;
   byte data[0];
@@ -30,9 +34,9 @@ void pgc_flush(struct page_cache *);                          /* Write all unwritten pages */
 void pgc_cleanup(struct page_cache *);                         /* Deallocate all unused buffers */
 struct page *pgc_read(struct page_cache *, int fd, sh_off_t);  /* Read page and lock it */
 struct page *pgc_get(struct page_cache *, int fd, sh_off_t);   /* Get page for writing */
+struct page *pgc_get_zero(struct page_cache *, int fd, sh_off_t); /* ... and clear it */
 void pgc_put(struct page_cache *, struct page *);              /* Release page */
 void pgc_mark_dirty(struct page_cache *, struct page *);       /* Mark locked page as dirty */
 byte *pgc_read_data(struct page_cache *, int fd, sh_off_t, uns *);     /* Partial reading */
-sh_off_t pgc_page_pos(struct page_cache *, struct page *);     /* Get page position */
 
 #endif