From 653a408caabea249e4791dedfa433400dad90713 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 11:40:08 +0100 Subject: mach-defpager: remove comments around form feeds Form feed characters (\f) are whitespace and are treated as such by c compilers. There is no need to enclose them in comments. * mach-defpager/default_pager.c: Remove comments around form feeds. --- mach-defpager/default_pager.c | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index 0977a5d8..bea23b16 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -98,10 +98,7 @@ static pthread_mutex_t printf_lock = PTHREAD_MUTEX_INITIALIZER; #define ptoa(p) ((p)*vm_page_size) #define atop(a) ((a)/vm_page_size) - -/* - */ /* * Bitmap allocation. */ @@ -627,10 +624,7 @@ ddprintf ("pager_dealloc_page(%d,%x,%d)\n",pindex,page,lock_it); if (lock_it) pthread_mutex_unlock(&part->p_lock); } - -/* - */ /* * Allocation info for each paging object. * @@ -1706,11 +1700,7 @@ ok: pager->cur_partition = choose_partition(0, P_INDEX_INVALID); return TRUE; } - -/* - */ - /* * Read/write routines. */ @@ -1888,10 +1878,7 @@ default_has_page(ds, offset) { return ( ! no_block(pager_read_offset(ds, offset)) ); } -/* - */ - /* * Mapping between pager port and paging object. */ -- cgit v1.2.3 From 6f1fa0884602c05fba05c14cd6eb6884ba928e8e Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 11:54:23 +0100 Subject: mach-defpager: fix warnings about unused variables * mach-defpager/default_pager.c (pager_alloc): Declare variables only when needed. (dealloc_direct): Remove unused variables. (seqnos_memory_object_terminate): Remove unused variable, adjust ddprintfs accordingly. (seqnos_memory_object_data_write): Remove unused variable. --- mach-defpager/default_pager.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index bea23b16..df0200d8 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -753,7 +753,9 @@ pager_alloc(pager, part, size) vm_size_t size; /* in BYTES */ { int i; +#ifdef CHECKSUM dp_map_t mapptr, emapptr; +#endif pthread_mutex_init(&pager->lock, NULL); #if DEBUG_READER_CONFLICTS @@ -1092,8 +1094,6 @@ dealloc_direct (dp_map_t mapptr, static void pager_truncate(dpager_t pager, vm_size_t new_size) /* in pages */ { - dp_map_t new_mapptr; - dp_map_t old_mapptr; int i; vm_size_t old_size; @@ -2499,7 +2499,6 @@ seqnos_memory_object_terminate(pager, seqno, pager_request, pager_name) mach_port_t pager_name; { default_pager_t ds; - kern_return_t kr; static char here[] = "%sterminate"; /* @@ -2511,7 +2510,7 @@ seqnos_memory_object_terminate(pager, seqno, pager_request, pager_name) if (ds == DEFAULT_PAGER_NULL) panic(here, my_name); ddprintf ("seqnos_memory_object_terminate <%p>: pager_port_lock: <%p>[s:%d,r:%d,w:%d,l:%d], %d\n", - &kr, ds, ds->seqno, ds->readers, ds->writers, ds->lock.held, seqno); + &ds, ds, ds->seqno, ds->readers, ds->writers, ds->lock.held, seqno); pager_port_lock(ds, seqno); /* @@ -2542,7 +2541,7 @@ ddprintf ("seqnos_memory_object_terminate <%p>: pager_port_lock: <%p>[s:%d,r:%d, ds->pager_name = MACH_PORT_NULL; ds->name_refs = 0; ddprintf ("seqnos_memory_object_terminate <%p>: pager_port_unlock: <%p>[s:%d,r:%d,w:%d,l:%d]\n", - &kr, ds, ds->seqno, ds->readers, ds->writers, ds->lock.held); + &ds, ds, ds->seqno, ds->readers, ds->writers, ds->lock.held); pager_port_unlock(ds); /* @@ -2840,7 +2839,6 @@ seqnos_memory_object_data_write(pager, seqno, pager_request, vm_size_t tail_size = round_page(limit) - limit; memset((void *) tail, 0, tail_size); - unsigned *arr = (unsigned *)addr; memory_object_data_supply(pager_request, trunc_page(limit), addr, vm_page_size, TRUE, VM_PROT_NONE, TRUE, MACH_PORT_NULL); -- cgit v1.2.3 From 727d2825675e9d67999a15d2e9903bf8af854395 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 12:20:00 +0100 Subject: mach-defpager: add and use synchronized_printf for dprintf * mach-defpager/default_pager.c (synchronized_printf): New function. (printf_lock): Move to synchronized_printf. (dprintf): Use synchronized_printf. (ddprintf): Likewise. --- mach-defpager/default_pager.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index df0200d8..ebbff608 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -51,6 +51,7 @@ #include #include #include +#include #include @@ -63,24 +64,30 @@ static char my_name[] = "(default pager):"; -static pthread_mutex_t printf_lock = PTHREAD_MUTEX_INITIALIZER; +static void __attribute__ ((format (printf, 1, 2), unused)) +synchronized_printf (const char *fmt, ...) +{ + static pthread_mutex_t printf_lock = PTHREAD_MUTEX_INITIALIZER; + va_list ap; + + va_start (ap, fmt); + pthread_mutex_lock (&printf_lock); + + vprintf (fmt, ap); + fflush (stdout); + + pthread_mutex_unlock (&printf_lock); + va_end (ap); +} #if 0 -#define dprintf(f, x...) \ - ({ pthread_mutex_lock (&printf_lock); \ - printf (f , ##x); \ - fflush (stdout); \ - pthread_mutex_unlock (&printf_lock); }) +#define dprintf(f, x...) synchronized_printf (f, ##x) #else #define dprintf(f, x...) #endif #if 0 -#define ddprintf(f, x...) \ - ({ pthread_mutex_lock (&printf_lock); \ - printf (f , ##x); \ - fflush (stdout); \ - pthread_mutex_unlock (&printf_lock); }) +#define ddprintf(f, x...) synchronized_printf (f, ##x) #else #define ddprintf(f, x...) #endif -- cgit v1.2.3 From f3d9cf9f788e5b98d270309c03f44b26568944eb Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 13:00:16 +0100 Subject: mach-defpager: fix error handling in S_default_pager_object_set_size Fix a compiler warning about kr being potentially being uninitialized. * mach-defpager/default_pager.c (S_default_pager_object_set_size): Initialize kr. --- mach-defpager/default_pager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index ebbff608..33d72b3a 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -3761,7 +3761,7 @@ S_default_pager_object_set_size (mach_port_t pager, mach_port_seqno_t seqno, vm_size_t limit) { - kern_return_t kr; + kern_return_t kr = KERN_SUCCESS; default_pager_t ds; ds = pager_port_lookup(pager); -- cgit v1.2.3 From 3deb2d7685f9e9b502a992491f747c3a657e4d15 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 13:10:04 +0100 Subject: mach-defpager: fix warning about uninitialized variable Previously, failure to look up the given partition was detected after the loop by checking whether the loop ran over all existing partitions. Initialize part to NULL and check for that instead. This retains the behavior, but expresses it in a way the compiler understands better. * mach-defpager/default_pager.c (destroy_paging_partition): Initialize part to NULL and check for it still being NULL after the loop. --- mach-defpager/default_pager.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index 33d72b3a..1b9d5114 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -1991,7 +1991,7 @@ destroy_paging_partition(name, pp_private) void **pp_private; { unsigned int id = part_id(name); - partition_t part; + partition_t part = NULL; boolean_t all_ok = TRUE; default_pager_t entry; int pindex; @@ -2006,7 +2006,7 @@ destroy_paging_partition(name, pp_private) part = partition_of(pindex); if (part && (part->id == id)) break; } - if (pindex == all_partitions.n_partitions) { + if (! part) { pthread_mutex_unlock(&all_partitions.lock); return KERN_INVALID_ARGUMENT; } -- cgit v1.2.3 From a77077efbd5658a39538557911fccca9da5a81ab Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 13:22:53 +0100 Subject: mach-defpager: fix warnings about uninitialized variables * mach-defpager/default_pager.c (S_default_pager_objects): Initialize address, size-pairs to 0. (S_default_pager_object_pages): Likewise. * mach-defpager/kalloc.c (kget_space): Likewise. --- mach-defpager/default_pager.c | 12 ++++++------ mach-defpager/kalloc.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index 1b9d5114..4127126d 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -3423,13 +3423,13 @@ S_default_pager_objects (mach_port_t pager, mach_port_array_t *portsp, natural_t *pcountp) { - vm_offset_t oaddr; /* memory for objects */ - vm_size_t osize; /* current size */ + vm_offset_t oaddr = 0; /* memory for objects */ + vm_size_t osize = 0; /* current size */ default_pager_object_t *objects; natural_t opotential; - vm_offset_t paddr; /* memory for ports */ - vm_size_t psize; /* current size */ + vm_offset_t paddr = 0; /* memory for ports */ + vm_size_t psize = 0; /* current size */ mach_port_t *ports; natural_t ppotential; @@ -3657,8 +3657,8 @@ S_default_pager_object_pages (mach_port_t pager, default_pager_page_array_t *pagesp, natural_t *countp) { - vm_offset_t addr; /* memory for page offsets */ - vm_size_t size; /* current memory size */ + vm_offset_t addr = 0; /* memory for page offsets */ + vm_size_t size = 0; /* current memory size */ default_pager_page_t *pages; natural_t potential, actual; kern_return_t kr; diff --git a/mach-defpager/kalloc.c b/mach-defpager/kalloc.c index 777cd3d5..2f8f002e 100644 --- a/mach-defpager/kalloc.c +++ b/mach-defpager/kalloc.c @@ -122,7 +122,7 @@ void kalloc_init(void) */ vm_offset_t kget_space(vm_offset_t size) { - vm_size_t space_to_add; + vm_size_t space_to_add = 0; vm_offset_t new_space = 0; vm_offset_t addr; -- cgit v1.2.3 From 109169ca9d8835227cbfcf2c2da5434232e2c6ec Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 15:06:20 +0100 Subject: mach-defpager: fix type of size arguments * mach-defpager/default_pager.c (new_partition): Fix type of bsize. * mach-defpager/file_io.h (page_read_file_direct): Fix type of size argument. (page_write_file_direct): Likewise. * mach-defpager/setup.c (page_read_file_direct): Likewise. (page_write_file_direct): Likewise. --- mach-defpager/default_pager.c | 3 ++- mach-defpager/file_io.h | 6 +++--- mach-defpager/setup.c | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index 4127126d..362697e0 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -253,7 +253,8 @@ new_partition (const char *name, struct file_direct *fdp, { /* Filesystem block size is smaller than page size, so we must do several reads to get the whole page. */ - vm_address_t baddr, bsize; + vm_address_t baddr; + vm_size_t bsize; rc = page_read_file_direct(part->file, rsize, LINUX_PAGE_SIZE-rsize, &baddr, diff --git a/mach-defpager/file_io.h b/mach-defpager/file_io.h index d0b03f33..2721412b 100644 --- a/mach-defpager/file_io.h +++ b/mach-defpager/file_io.h @@ -57,13 +57,13 @@ struct file_direct int page_read_file_direct (struct file_direct *fdp, vm_offset_t offset, vm_size_t size, - vm_offset_t *addr, /* out */ - mach_msg_type_number_t *size_read); /* out */ + vm_offset_t *addr, /* out */ + vm_size_t *size_read); /* out */ int page_write_file_direct(struct file_direct *fdp, vm_offset_t offset, vm_offset_t addr, vm_size_t size, - vm_offset_t *size_written); /* out */ + vm_size_t *size_written); /* out */ #endif /* file_io.h */ diff --git a/mach-defpager/setup.c b/mach-defpager/setup.c index 080b0fa6..7c1afbc9 100644 --- a/mach-defpager/setup.c +++ b/mach-defpager/setup.c @@ -106,8 +106,8 @@ int page_read_file_direct (struct file_direct *fdp, vm_offset_t offset, vm_size_t size, - vm_offset_t *addr, /* out */ - mach_msg_type_number_t *size_read) /* out */ + vm_offset_t *addr, /* out */ + vm_size_t *size_read) /* out */ { struct storage_run *r; error_t err; @@ -173,7 +173,7 @@ page_write_file_direct(struct file_direct *fdp, vm_offset_t offset, vm_offset_t addr, vm_size_t size, - vm_offset_t *size_written) /* out */ + vm_size_t *size_written) /* out */ { struct storage_run *r; error_t err; -- cgit v1.2.3 From cc9757407fa124998613329ce73c5bba98d5cf21 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 12 Mar 2014 15:09:44 +0100 Subject: mach-defpager: silently ignore requests to page to active partition Currently, if mach-defpager is asked to page to an already active partition, it ignores this request and returns success. It does, however, print a message about this to stdout. This message might indicate to the user that there is some kind of a problem with the configuration of the machine, even though the code in new_partition clearly does not consider it an error to do such an request. * mach-defpager/default_pager.c (new_partition): Do not print a message if requested to page to an already active partition. --- mach-defpager/default_pager.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'mach-defpager') diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c index 362697e0..8f8e13e4 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -209,8 +209,6 @@ new_partition (const char *name, struct file_direct *fdp, part = partition_of(i); if (part && part->id == id) { - printf ("(default pager): Already paging to partition %s!\n", - name); pthread_mutex_unlock(&all_partitions.lock); return 0; } -- cgit v1.2.3