diff options
author | Thomas Bushnell <thomas@gnu.org> | 2000-07-25 19:40:27 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 2000-07-25 19:40:27 +0000 |
commit | 2f7e8f040f18b7f9bce6879d4b077094aa7d01c0 (patch) | |
tree | 80be9465da90cda7839b49574a3c232880b8fe49 /libpager/priv.h | |
parent | 0e0bcad3e157579dbeafec933ac6ccbc00a515a3 (diff) | |
download | hurd-2f7e8f040f18b7f9bce6879d4b077094aa7d01c0.tar.gz hurd-2f7e8f040f18b7f9bce6879d4b077094aa7d01c0.tar.bz2 hurd-2f7e8f040f18b7f9bce6879d4b077094aa7d01c0.zip |
2000-07-25 Thomas Bushnell, BSG <tb@mit.edu>
* priv.h (PM_WRITEWAIT): New pagemap bit.
* data-return.c (_pager_do_write_request): Don't proceed with a
pageout if one is already in progress. Once we finish, wake up
any potential PM_WRITEWAIT waiters.
* priv.h (PM_INIT): Provide value again.
* data-return.c (_pager_do_write_request): Track PM_INIT again.
* priv.h (struct pager): Make pagemap consist of 16-bit elements
instead of only 8 bits.
* data-request.c (_pager_seqnos_memory_object_data_request):
Make PM_ENTRY a short pointer.
* data-return.c (_pager_do_write_request): Make PM_ENTRIES a short
pointer.
* lock-object.c (_pager_lock_object): Make PM_ENTRIES a short
pointer.
* mark-error.c (_pager_mark_next_request_error): Make P a short
pointer.
(_pager_mark_object_error): Likewise.
* offer-page.c (pager_offer_page): Make PM_ENTRY a short pointer.
* object-terminate.c (_pager_free_structure): Interpret
pagemapsize correctly.
* pagemap.c (_pager_pagemap_resize): Likewise.
Diffstat (limited to 'libpager/priv.h')
-rw-r--r-- | libpager/priv.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libpager/priv.h b/libpager/priv.h index 0232e3e8..80afff1b 100644 --- a/libpager/priv.h +++ b/libpager/priv.h @@ -1,5 +1,5 @@ /* Private data for pager library. - Copyright (C) 1994,95,96,97,99 Free Software Foundation, Inc. + Copyright (C) 1994,95,96,97,99, 2000 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -65,8 +65,8 @@ struct pager struct pending_init *init_head, *init_tail; #endif - char *pagemap; - int pagemapsize; + short *pagemap; + int pagemapsize; /* number of elements in PAGEMAP */ }; struct lock_request @@ -108,11 +108,12 @@ extern int _pager_page_errors[]; /* Pagemap format */ /* These are binary state bits */ -/* #define PM_INIT 0x80 data has been written */ -#define PM_INCORE 0x80 /* kernel might have a copy */ -#define PM_PAGINGOUT 0x40 /* being written to disk */ -#define PM_PAGEINWAIT 0x20 /* provide data back when write done */ -#define PM_INVALID 0x10 /* data on disk is irrevocably wrong */ +#define PM_WRITEWAIT 0x0200 /* queue wakeup once write is done */ +#define PM_INIT 0x0100 /* data has been written */ +#define PM_INCORE 0x0080 /* kernel might have a copy */ +#define PM_PAGINGOUT 0x0040 /* being written to disk */ +#define PM_PAGEINWAIT 0x0020 /* provide data back when write done */ +#define PM_INVALID 0x0010 /* data on disk is irrevocably wrong */ /* These take values of enum page_errors */ |