From 1b810de65b7ebdfc0d554bf7da0ee87250b2dc52 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 4 Sep 2011 21:10:20 +0200 Subject: Free memory used by boot modules * vm/vm_resident.c (pmap_startup): Warn when some pages could not be included in the allocator due to bad estimation. * kern/bootstrap.c: Include . (bootstrap_create): Call vm_page_create on bootstrap modules content. --- kern/bootstrap.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'kern/bootstrap.c') diff --git a/kern/bootstrap.c b/kern/bootstrap.c index c07b032d..7819553f 100644 --- a/kern/bootstrap.c +++ b/kern/bootstrap.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #if MACH_KDB @@ -107,10 +108,10 @@ task_insert_send_right( void bootstrap_create() { int compat; + int n = 0; #ifdef MACH_XEN struct multiboot_module *bmods = ((struct multiboot_module *) boot_info.mod_start); - int n = 0; if (bmods) for (n = 0; bmods[n].mod_start; n++) { bmods[n].mod_start = kvtophys(bmods[n].mod_start + (vm_offset_t) bmods); @@ -263,8 +264,12 @@ void bootstrap_create() panic ("ERROR in executing boot script: %s", boot_script_error_string (losers)); } - /* XXX at this point, we could free all the memory used - by the boot modules and the boot loader's descriptors and such. */ + /* XXX we could free the memory used + by the boot loader's descriptors and such. */ + for (n = 0; n < boot_info.mods_count; n++) { + printf("freeing %dMiB\n", (bmods[n].mod_end - bmods[n].mod_start) >> 20); + vm_page_create(bmods[n].mod_start, bmods[n].mod_end); + } } static void -- cgit v1.2.3 From c91469dfa41f697f52471f5889d528fd3f8a4f4c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 5 Sep 2011 03:04:12 +0200 Subject: Drop module memory free verbosity * kern/bootstrap.c (bootstrap_create): Do not show freed module memory. --- kern/bootstrap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'kern/bootstrap.c') diff --git a/kern/bootstrap.c b/kern/bootstrap.c index 7819553f..2c63df40 100644 --- a/kern/bootstrap.c +++ b/kern/bootstrap.c @@ -266,10 +266,8 @@ void bootstrap_create() } /* XXX we could free the memory used by the boot loader's descriptors and such. */ - for (n = 0; n < boot_info.mods_count; n++) { - printf("freeing %dMiB\n", (bmods[n].mod_end - bmods[n].mod_start) >> 20); + for (n = 0; n < boot_info.mods_count; n++) vm_page_create(bmods[n].mod_start, bmods[n].mod_end); - } } static void -- cgit v1.2.3 From 5988ae8fb41ace936e48e5a972abe1c5acc8f8af Mon Sep 17 00:00:00 2001 From: Richard Braun Date: Sat, 17 Dec 2011 15:54:47 +0000 Subject: Fix kern/kalloc.h includes * device/dev_pager.c: Remove #include . * i386/i386/io_perm.c: Add #include . * kern/bootstrap.c: Likewise. * kern/ipc_tt.c: Likewise. * kern/pc_sample.c: Likewise. * kern/processor.c: Likewise. * kern/server_loop.ch: Likewise. * kern/thread.c: Likewise. * linux/dev/glue/block.c: Likewise. * linux/dev/glue/net.c: Likewise. * vm/vm_map.c: Likewise. * xen/block.c: Likewise. * xen/net.c: Likewise. * xen/store.c: Likewise. --- device/dev_pager.c | 1 - i386/i386/io_perm.c | 1 + kern/bootstrap.c | 1 + kern/ipc_tt.c | 1 + kern/pc_sample.c | 1 + kern/processor.c | 1 + kern/server_loop.ch | 1 + kern/thread.c | 1 + linux/dev/glue/block.c | 2 ++ linux/dev/glue/net.c | 1 + vm/vm_map.c | 1 + xen/block.c | 1 + xen/net.c | 1 + xen/store.c | 1 + 14 files changed, 14 insertions(+), 1 deletion(-) (limited to 'kern/bootstrap.c') diff --git a/device/dev_pager.c b/device/dev_pager.c index dc5ba732..bc58a155 100644 --- a/device/dev_pager.c +++ b/device/dev_pager.c @@ -45,7 +45,6 @@ #include #include #include -#include #include #include diff --git a/i386/i386/io_perm.c b/i386/i386/io_perm.c index 7dcb8581..8bacb8d5 100644 --- a/i386/i386/io_perm.c +++ b/i386/i386/io_perm.c @@ -55,6 +55,7 @@ #include #include +#include #include #include #include diff --git a/kern/bootstrap.c b/kern/bootstrap.c index 2c63df40..68f40b4f 100644 --- a/kern/bootstrap.c +++ b/kern/bootstrap.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include diff --git a/kern/ipc_tt.c b/kern/ipc_tt.c index de4edc65..6d32e5b0 100644 --- a/kern/ipc_tt.c +++ b/kern/ipc_tt.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include diff --git a/kern/pc_sample.c b/kern/pc_sample.c index c82707b2..2cec907b 100644 --- a/kern/pc_sample.c +++ b/kern/pc_sample.c @@ -31,6 +31,7 @@ #include /* pointer_t */ #include #include +#include #include #include #include diff --git a/kern/processor.c b/kern/processor.c index 3ece3412..19868609 100644 --- a/kern/processor.c +++ b/kern/processor.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include diff --git a/kern/server_loop.ch b/kern/server_loop.ch index 1aa7edbc..409e013d 100644 --- a/kern/server_loop.ch +++ b/kern/server_loop.ch @@ -39,6 +39,7 @@ */ #include +#include #include #include #include /* for kernel_map */ diff --git a/kern/thread.c b/kern/thread.c index f23af581..0a59f076 100644 --- a/kern/thread.c +++ b/kern/thread.c @@ -54,6 +54,7 @@ #include #include #include +#include #include #include #include diff --git a/linux/dev/glue/block.c b/linux/dev/glue/block.c index 0c76d3d6..c7b38730 100644 --- a/linux/dev/glue/block.c +++ b/linux/dev/glue/block.c @@ -49,6 +49,8 @@ #include #include +#include + #include #include diff --git a/linux/dev/glue/net.c b/linux/dev/glue/net.c index 91ebf969..a60275fc 100644 --- a/linux/dev/glue/net.c +++ b/linux/dev/glue/net.c @@ -69,6 +69,7 @@ #include #include +#include #include #include diff --git a/vm/vm_map.c b/vm/vm_map.c index 5015c1cd..de10eecf 100644 --- a/vm/vm_map.c +++ b/vm/vm_map.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include diff --git a/xen/block.c b/xen/block.c index 02d410fb..fb18b67e 100644 --- a/xen/block.c +++ b/xen/block.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include diff --git a/xen/net.c b/xen/net.c index 27898288..8373cec0 100644 --- a/xen/net.c +++ b/xen/net.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include diff --git a/xen/store.c b/xen/store.c index 94d0ae45..8796bb59 100644 --- a/xen/store.c +++ b/xen/store.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3 From 4ae07e7e07cf77f1b7ce06bebf1057bfe4a16c54 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 9 Mar 2012 01:04:52 +0100 Subject: Use unsigned long for addresses and sizes TODO: remonter formats * i386/include/mach/i386/vm_types.h (vm_offset_t): Define to unsigned long. (signed32_t): Define to signed int. (unsigned32_t): Define to unsigned int. * i386/include/mach/sa/stdarg.h (__va_size): Use sizeof(unsigned long)-1 instead of 3. * include/mach/port.h (mach_port_t): Define to vm_offset_t instead of natural_t. * include/sys/types.h (size_t): Define to unsigned long instead of natural_t. * linux/src/include/asm-i386/posix_types.h (__kernel_size_t): Define to unsigned long. (__kernel_ssize_t): Define to long. * linux/src/include/linux/stddef.h (size_t): Define to unsigned long. * device/dev_pager.c (dev_pager_hash): Cast port to vm_offset_t insted of natural_t. (device_pager_data_request): Fix format. * device/ds_routines.c (ds_no_senders): Fix format. * i386/i386/io_map.c (io_map): Likewise. * i386/i386at/autoconf.c (take_dev_irq): Likewise. * i386/i386at/com.c (comattach): Likewise. * i386/i386at/lpr.c (lprattach): Likewise. * i386/i386at/model_dep.c (mem_size_init, mem_size_init, c_boot_entry): Likewise. * i386/intel/pmap.c (pmap_enter): Likewise. * ipc/ipc_notify.c (ipc_notify_port_deleted, ipc_notify_msg_accepted, ipc_notify_dead_name): Likewise. * ipc/mach_port.c (mach_port_destroy, mach_port_deallocate): Likewise. * kern/ipc_kobject.c (ipc_kobject_destroy): Likewise. * kern/slab.c (kalloc_init): Likewise. * vm/vm_fault.c (vm_fault_page): Likewise. * vm/vm_map.c (vm_map_pmap_enter): Likewise. * xen/block.c (device_read): Likewise. * device/net_io.c (bpf_match): Take unsigned long * instead of unsigned int *. (bpf_do_filter): Make mem unsigned long instead of long. * i386/i386/ktss.c (ktss_init): Cast pointer to unsigned long instead of unsigned. * i386/i386/pcb.c (stack_attach, switch_ktss): Cast pointers to long instead of int. * i386/i386/trap.c (dump_ss): Likewise. * ipc/ipc_hash.c (IH_LOCAL_HASH): Cast object to vm_offset_t. * ipc/mach_msg.c (mach_msg_receive, mach_msg_receive_continue): Cast kmsg to vm_offset_t instead of natural_t. * kern/pc_sample.c (take_pc_sample): Cast to vm_offset_t instead of natural_t. * kern/boot_script.c (sym, arg): Set type of `val' field to long instead of int. (create_task, builtin_symbols, boot_script_parse_line, boot_script_define_function): Cast to long instead of int. * kern/bootstrap.c (bootstrap_create): Likewise. * kern/sched_prim.c (decl_simple_lock_data): Likewise. * kern/printf.c (vsnprintf): Set size type to size_t. * kern/printf.h (vsnprintf): Likewise. * vm/vm_map.h (kentry_data_size): Fix type to vm_size_t. * vm/vm_object.c (vm_object_pmap_protect_by_page): Fix size parameter type to vm_size_t. --- device/dev_pager.c | 4 ++-- device/ds_routines.c | 2 +- device/net_io.c | 6 +++--- i386/i386/io_map.c | 2 +- i386/i386/ktss.c | 2 +- i386/i386/pcb.c | 12 ++++++------ i386/i386/trap.c | 4 ++-- i386/i386at/autoconf.c | 2 +- i386/i386at/com.c | 2 +- i386/i386at/lpr.c | 2 +- i386/i386at/model_dep.c | 6 +++--- i386/include/mach/i386/vm_types.h | 6 +++--- i386/include/mach/sa/stdarg.h | 2 +- i386/intel/pmap.c | 2 +- include/mach/port.h | 2 +- include/sys/types.h | 2 +- ipc/ipc_hash.c | 2 +- ipc/ipc_notify.c | 6 +++--- ipc/mach_msg.c | 4 ++-- ipc/mach_port.c | 4 ++-- kern/boot_script.c | 21 +++++++++++---------- kern/bootstrap.c | 12 ++++++------ kern/ipc_kobject.c | 2 +- kern/pc_sample.c | 2 +- kern/printf.c | 2 +- kern/printf.h | 2 +- kern/sched_prim.c | 2 +- kern/slab.c | 2 +- linux/src/include/asm-i386/posix_types.h | 4 ++-- linux/src/include/linux/stddef.h | 2 +- vm/vm_fault.c | 2 +- vm/vm_map.c | 2 +- vm/vm_map.h | 2 +- vm/vm_object.c | 2 +- xen/block.c | 2 +- 35 files changed, 68 insertions(+), 67 deletions(-) (limited to 'kern/bootstrap.c') diff --git a/device/dev_pager.c b/device/dev_pager.c index bc58a155..e0ca2c76 100644 --- a/device/dev_pager.c +++ b/device/dev_pager.c @@ -165,7 +165,7 @@ decl_simple_lock_data(, dev_pager_hash_lock) #define dev_pager_hash(name_port) \ - (((natural_t)(name_port) & 0xffffff) % DEV_PAGER_HASH_COUNT) + (((vm_offset_t)(name_port) & 0xffffff) % DEV_PAGER_HASH_COUNT) void dev_pager_hash_init(void) { @@ -336,7 +336,7 @@ kern_return_t device_pager_data_request( #endif /* lint */ if (device_pager_debug) - printf("(device_pager)data_request: pager=%p, offset=0x%x, length=0x%x\n", + printf("(device_pager)data_request: pager=%p, offset=0x%lx, length=0x%x\n", pager, offset, length); ds = dev_pager_hash_lookup((ipc_port_t)pager); diff --git a/device/ds_routines.c b/device/ds_routines.c index 5a6fdd2d..68589dee 100644 --- a/device/ds_routines.c +++ b/device/ds_routines.c @@ -1449,7 +1449,7 @@ static void ds_no_senders(notification) mach_no_senders_notification_t *notification; { - printf("ds_no_senders called! device_port=0x%x count=%d\n", + printf("ds_no_senders called! device_port=0x%lx count=%d\n", notification->not_header.msgh_remote_port, notification->not_count); } diff --git a/device/net_io.c b/device/net_io.c index 52a07163..4ebf9964 100644 --- a/device/net_io.c +++ b/device/net_io.c @@ -394,7 +394,7 @@ int net_add_q_info (ipc_port_t rcv_port); int bpf_match ( net_hash_header_t hash, int n_keys, - unsigned int *keys, + unsigned long *keys, net_hash_entry_t **hash_headpp, net_hash_entry_t *entpp); @@ -1638,7 +1638,7 @@ bpf_do_filter(infp, p, wirelen, header, hlen, hash_headpp, entpp) register unsigned long A, X; register int k; - long mem[BPF_MEMWORDS]; + unsigned long mem[BPF_MEMWORDS]; /* Generic pointer to either HEADER or P according to the specified offset. */ char *data = NULL; @@ -2032,7 +2032,7 @@ int bpf_match (hash, n_keys, keys, hash_headpp, entpp) net_hash_header_t hash; register int n_keys; - register unsigned int *keys; + register unsigned long *keys; net_hash_entry_t **hash_headpp, *entpp; { register net_hash_entry_t head, entp; diff --git a/i386/i386/io_map.c b/i386/i386/io_map.c index 5b77552d..b095f224 100644 --- a/i386/i386/io_map.c +++ b/i386/i386/io_map.c @@ -49,7 +49,7 @@ io_map(phys_addr, size) */ start = kernel_virtual_start; kernel_virtual_start += round_page(size); - printf("stealing kernel virtual addresses %08x-%08x\n", start, kernel_virtual_start); + printf("stealing kernel virtual addresses %08lx-%08lx\n", start, kernel_virtual_start); } else { (void) kmem_alloc_pageable(kernel_map, &start, round_page(size)); diff --git a/i386/i386/ktss.c b/i386/i386/ktss.c index 66432f3e..e2c44257 100644 --- a/i386/i386/ktss.c +++ b/i386/i386/ktss.c @@ -48,7 +48,7 @@ ktss_init() #ifdef MACH_XEN /* Xen won't allow us to do any I/O by default anyway, just register * exception stack */ - if (hyp_stack_switch(KERNEL_DS, (unsigned)(exception_stack+1024))) + if (hyp_stack_switch(KERNEL_DS, (unsigned long)(exception_stack+1024))) panic("couldn't register exception stack\n"); #else /* MACH_XEN */ /* Initialize the master TSS descriptor. */ diff --git a/i386/i386/pcb.c b/i386/i386/pcb.c index e065dbb2..dfe0444f 100644 --- a/i386/i386/pcb.c +++ b/i386/i386/pcb.c @@ -93,10 +93,10 @@ void stack_attach(thread, stack, continuation) * This function will not return normally, * so we don`t have to worry about a return address. */ - STACK_IKS(stack)->k_eip = (int) Thread_continue; - STACK_IKS(stack)->k_ebx = (int) continuation; - STACK_IKS(stack)->k_esp = (int) STACK_IEL(stack); - STACK_IKS(stack)->k_ebp = (int) 0; + STACK_IKS(stack)->k_eip = (long) Thread_continue; + STACK_IKS(stack)->k_ebx = (long) continuation; + STACK_IKS(stack)->k_esp = (long) STACK_IEL(stack); + STACK_IKS(stack)->k_ebp = (long) 0; /* * Point top of kernel stack to user`s registers. @@ -152,8 +152,8 @@ void switch_ktss(pcb) */ pcb_stack_top = (pcb->iss.efl & EFL_VM) - ? (int) (&pcb->iss + 1) - : (int) (&pcb->iss.v86_segs); + ? (long) (&pcb->iss + 1) + : (long) (&pcb->iss.v86_segs); #ifdef MACH_XEN /* No IO mask here */ diff --git a/i386/i386/trap.c b/i386/i386/trap.c index 01c83f50..d594907e 100644 --- a/i386/i386/trap.c +++ b/i386/i386/trap.c @@ -217,8 +217,8 @@ dump_ss(regs); printf("now %08x\n", subcode); #endif if (trunc_page(subcode) == 0 - || (subcode >= (int)_start - && subcode < (int)etext)) { + || (subcode >= (long)_start + && subcode < (long)etext)) { printf("Kernel page fault at address 0x%x, " "eip = 0x%x\n", subcode, regs->eip); diff --git a/i386/i386at/autoconf.c b/i386/i386at/autoconf.c index d1f2863f..93c71412 100644 --- a/i386/i386at/autoconf.c +++ b/i386/i386at/autoconf.c @@ -135,7 +135,7 @@ void take_dev_irq( printf("The device below will clobber IRQ %d.\n", pic); printf("You have two devices at the same IRQ.\n"); printf("This won't work. Reconfigure your hardware and try again.\n"); - printf("%s%d: port = %x, spl = %d, pic = %d.\n", + printf("%s%d: port = %lx, spl = %ld, pic = %d.\n", dev->name, dev->unit, dev->address, dev->sysdep, dev->sysdep1); while (1); diff --git a/i386/i386at/com.c b/i386/i386at/com.c index f02c7f83..165b0fab 100644 --- a/i386/i386at/com.c +++ b/i386/i386at/com.c @@ -229,7 +229,7 @@ comattach(struct bus_device *dev) u_short addr = dev->address; take_dev_irq(dev); - printf(", port = %x, spl = %d, pic = %d. (DOS COM%d)", + printf(", port = %lx, spl = %ld, pic = %d. (DOS COM%d)", dev->address, dev->sysdep, dev->sysdep1, unit+1); /* comcarrier[unit] = addr->flags;*/ diff --git a/i386/i386at/lpr.c b/i386/i386at/lpr.c index 468608c7..b69e813e 100644 --- a/i386/i386at/lpr.c +++ b/i386/i386at/lpr.c @@ -102,7 +102,7 @@ void lprattach(struct bus_device *dev) u_short addr = (u_short) dev->address; take_dev_irq(dev); - printf(", port = %x, spl = %d, pic = %d.", + printf(", port = %lx, spl = %ld, pic = %d.", dev->address, dev->sysdep, dev->sysdep1); lprinfo[unit] = dev; diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c index 980708cf..2f785207 100644 --- a/i386/i386at/model_dep.c +++ b/i386/i386at/model_dep.c @@ -284,7 +284,7 @@ mem_size_init(void) phys_last_addr = phys_last_kb * 0x400; #endif /* MACH_HYP */ - printf("AT386 boot: physical memory from 0x%x to 0x%x\n", + printf("AT386 boot: physical memory from 0x%lx to 0x%lx\n", phys_first_addr, phys_last_addr); /* Reserve room for virtual mappings. @@ -292,7 +292,7 @@ mem_size_init(void) max_phys_size = VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS - VM_KERNEL_MAP_SIZE; if (phys_last_addr - phys_first_addr > max_phys_size) { phys_last_addr = phys_first_addr + max_phys_size; - printf("Truncating memory size to %dMiB\n", (phys_last_addr - phys_first_addr) / (1024 * 1024)); + printf("Truncating memory size to %luMiB\n", (phys_last_addr - phys_first_addr) / (1024 * 1024)); /* TODO Xen: be nice, free lost memory */ } @@ -514,7 +514,7 @@ void c_boot_entry(vm_offset_t bi) strtab_size = (vm_offset_t)phystokv(boot_info.syms.a.strsize); kern_sym_end = kern_sym_start + 4 + symtab_size + strtab_size; - printf("kernel symbol table at %08x-%08x (%d,%d)\n", + printf("kernel symbol table at %08lx-%08lx (%d,%d)\n", kern_sym_start, kern_sym_end, symtab_size, strtab_size); } diff --git a/i386/include/mach/i386/vm_types.h b/i386/include/mach/i386/vm_types.h index d54008ef..1439940b 100644 --- a/i386/include/mach/i386/vm_types.h +++ b/i386/include/mach/i386/vm_types.h @@ -73,7 +73,7 @@ typedef unsigned int uint32; * A vm_offset_t is a type-neutral pointer, * e.g. an offset into a virtual memory space. */ -typedef natural_t vm_offset_t; +typedef unsigned long vm_offset_t; typedef vm_offset_t * vm_offset_array_t; /* @@ -88,11 +88,11 @@ typedef natural_t vm_size_t; */ typedef signed char signed8_t; typedef signed short signed16_t; -typedef signed long signed32_t; +typedef signed int signed32_t; typedef signed long long signed64_t; typedef unsigned char unsigned8_t; typedef unsigned short unsigned16_t; -typedef unsigned long unsigned32_t; +typedef unsigned int unsigned32_t; typedef unsigned long long unsigned64_t; typedef float float32_t; typedef double float64_t; diff --git a/i386/include/mach/sa/stdarg.h b/i386/include/mach/sa/stdarg.h index ba0f78a1..550fec4f 100644 --- a/i386/include/mach/sa/stdarg.h +++ b/i386/include/mach/sa/stdarg.h @@ -39,7 +39,7 @@ typedef __builtin_va_list va_list; #else -#define __va_size(type) ((sizeof(type)+3) & ~0x3) +#define __va_size(type) ((sizeof(type)+sizeof(unsigned long)-1) & ~(sizeof(unsigned long)-1)) #ifndef _VA_LIST_ #define _VA_LIST_ diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index d6e18e50..86d2415d 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -1747,7 +1747,7 @@ void pmap_enter(pmap, v, pa, prot, wired) vm_offset_t old_pa; assert(pa != vm_page_fictitious_addr); -if (pmap_debug) printf("pmap(%x, %x)\n", v, pa); +if (pmap_debug) printf("pmap(%lx, %lx)\n", v, pa); if (pmap == PMAP_NULL) return; diff --git a/include/mach/port.h b/include/mach/port.h index 6dafb2f3..53f60716 100644 --- a/include/mach/port.h +++ b/include/mach/port.h @@ -39,7 +39,7 @@ #include -typedef natural_t mach_port_t; +typedef vm_offset_t mach_port_t; typedef mach_port_t *mach_port_array_t; typedef int *rpc_signature_info_t; diff --git a/include/sys/types.h b/include/sys/types.h index d79e077c..19e7b242 100644 --- a/include/sys/types.h +++ b/include/sys/types.h @@ -30,7 +30,7 @@ #ifndef _SIZE_T #define _SIZE_T -typedef natural_t size_t; +typedef unsigned long size_t; #endif #ifndef _SSIZE_T diff --git a/ipc/ipc_hash.c b/ipc/ipc_hash.c index ad05016c..5eec58cb 100644 --- a/ipc/ipc_hash.c +++ b/ipc/ipc_hash.c @@ -326,7 +326,7 @@ ipc_hash_global_delete( */ #define IH_LOCAL_HASH(obj, size) \ - ((((mach_port_index_t) (obj)) >> 6) % (size)) + ((((mach_port_index_t) (vm_offset_t) (obj)) >> 6) % (size)) /* * Routine: ipc_hash_local_lookup diff --git a/ipc/ipc_notify.c b/ipc/ipc_notify.c index d06346ea..25fa421b 100644 --- a/ipc/ipc_notify.c +++ b/ipc/ipc_notify.c @@ -264,7 +264,7 @@ ipc_notify_port_deleted(port, name) kmsg = ikm_alloc(sizeof *n); if (kmsg == IKM_NULL) { - printf("dropped port-deleted (0x%p, 0x%x)\n", port, name); + printf("dropped port-deleted (0x%p, 0x%lx)\n", port, name); ipc_port_release_sonce(port); return; } @@ -298,7 +298,7 @@ ipc_notify_msg_accepted(port, name) kmsg = ikm_alloc(sizeof *n); if (kmsg == IKM_NULL) { - printf("dropped msg-accepted (0x%p, 0x%x)\n", port, name); + printf("dropped msg-accepted (0x%p, 0x%lx)\n", port, name); ipc_port_release_sonce(port); return; } @@ -437,7 +437,7 @@ ipc_notify_dead_name(port, name) kmsg = ikm_alloc(sizeof *n); if (kmsg == IKM_NULL) { - printf("dropped dead-name (0x%p, 0x%x)\n", port, name); + printf("dropped dead-name (0x%p, 0x%lx)\n", port, name); ipc_port_release_sonce(port); return; } diff --git a/ipc/mach_msg.c b/ipc/mach_msg.c index 43ae918a..00ab085b 100644 --- a/ipc/mach_msg.c +++ b/ipc/mach_msg.c @@ -218,7 +218,7 @@ mach_msg_receive(msg, option, rcv_size, rcv_name, time_out, notify) if (mr != MACH_MSG_SUCCESS) { if (mr == MACH_RCV_TOO_LARGE) { mach_msg_size_t real_size = - (mach_msg_size_t) (natural_t) kmsg; + (mach_msg_size_t) (vm_offset_t) kmsg; assert(real_size > rcv_size); @@ -309,7 +309,7 @@ mach_msg_receive_continue(void) if (mr != MACH_MSG_SUCCESS) { if (mr == MACH_RCV_TOO_LARGE) { mach_msg_size_t real_size = - (mach_msg_size_t) (natural_t) kmsg; + (mach_msg_size_t) (vm_offset_t) kmsg; assert(real_size > rcv_size); diff --git a/ipc/mach_port.c b/ipc/mach_port.c index c5688c90..d0310b55 100644 --- a/ipc/mach_port.c +++ b/ipc/mach_port.c @@ -571,7 +571,7 @@ mach_port_destroy( kr = ipc_right_lookup_write(space, name, &entry); if (kr != KERN_SUCCESS) { if (name != MACH_PORT_NULL && name != MACH_PORT_DEAD && space == current_space()) { - printf("task %p destroying an invalid port %u, most probably a bug.\n", current_task(), name); + printf("task %p destroying an invalid port %lu, most probably a bug.\n", current_task(), name); if (mach_port_deallocate_debug) SoftDebugger("mach_port_deallocate"); } @@ -615,7 +615,7 @@ mach_port_deallocate( kr = ipc_right_lookup_write(space, name, &entry); if (kr != KERN_SUCCESS) { if (name != MACH_PORT_NULL && name != MACH_PORT_DEAD && space == current_space()) { - printf("task %p deallocating an invalid port %u, most probably a bug.\n", current_task(), name); + printf("task %p deallocating an invalid port %lu, most probably a bug.\n", current_task(), name); if (mach_port_deallocate_debug) SoftDebugger("mach_port_deallocate"); } diff --git a/kern/boot_script.c b/kern/boot_script.c index 93491267..aa6833bb 100644 --- a/kern/boot_script.c +++ b/kern/boot_script.c @@ -17,7 +17,7 @@ struct sym int type; /* Symbol value. */ - int val; + long val; /* For function symbols; type of value returned by function. */ int ret_type; @@ -44,7 +44,7 @@ struct arg int type; /* Argument value. */ - int val; + long val; }; /* List of commands. */ @@ -70,7 +70,7 @@ static int create_task (struct cmd *cmd, int *val) { int err = boot_script_task_create (cmd); - *val = (int) cmd->task; + *val = (long) cmd->task; return err; } @@ -91,9 +91,9 @@ prompt_resume_task (struct cmd *cmd, int *val) /* List of builtin symbols. */ static struct sym builtin_symbols[] = { - { "task-create", VAL_FUNC, (int) create_task, VAL_TASK, 0 }, - { "task-resume", VAL_FUNC, (int) resume_task, VAL_NONE, 1 }, - { "prompt-task-resume", VAL_FUNC, (int) prompt_resume_task, VAL_NONE, 1 }, + { "task-create", VAL_FUNC, (long) create_task, VAL_TASK, 0 }, + { "task-resume", VAL_FUNC, (long) resume_task, VAL_NONE, 1 }, + { "prompt-task-resume", VAL_FUNC, (long) prompt_resume_task, VAL_NONE, 1 }, }; #define NUM_BUILTIN (sizeof (builtin_symbols) / sizeof (builtin_symbols[0])) @@ -294,7 +294,8 @@ boot_script_parse_line (void *hook, char *cmdline) for (p += 2;;) { char c; - int i, val, type; + int i, type; + long val; struct sym *s; /* Parse symbol name. */ @@ -349,7 +350,7 @@ boot_script_parse_line (void *hook, char *cmdline) if (! s->run_on_exec) { (error - = ((*((int (*) (struct cmd *, int *)) s->val)) + = ((*((int (*) (struct cmd *, long *)) s->val)) (cmd, &val))); if (error) goto bad; @@ -371,7 +372,7 @@ boot_script_parse_line (void *hook, char *cmdline) else if (s->type == VAL_NONE) { type = VAL_SYM; - val = (int) s; + val = (long) s; } else { @@ -681,7 +682,7 @@ boot_script_define_function (const char *name, int ret_type, if (sym) { sym->type = VAL_FUNC; - sym->val = (int) func; + sym->val = (long) func; sym->ret_type = ret_type; sym->run_on_exec = ret_type == VAL_NONE; } diff --git a/kern/bootstrap.c b/kern/bootstrap.c index 68f40b4f..2b74073a 100644 --- a/kern/bootstrap.c +++ b/kern/bootstrap.c @@ -154,19 +154,19 @@ void bootstrap_create() /* Initialize boot script variables. We leak these send rights. */ losers = boot_script_set_variable ("host-port", VAL_PORT, - (int)ipc_port_make_send(realhost.host_priv_self)); + (long)ipc_port_make_send(realhost.host_priv_self)); if (losers) panic ("cannot set boot-script variable host-port: %s", boot_script_error_string (losers)); losers = boot_script_set_variable ("device-port", VAL_PORT, - (int) ipc_port_make_send(master_device_port)); + (long) ipc_port_make_send(master_device_port)); if (losers) panic ("cannot set boot-script variable device-port: %s", boot_script_error_string (losers)); losers = boot_script_set_variable ("kernel-command-line", VAL_STR, - (int) kernel_cmdline); + (long) kernel_cmdline); if (losers) panic ("cannot set boot-script variable %s: %s", "kernel-command-line", boot_script_error_string (losers)); @@ -185,12 +185,12 @@ void bootstrap_create() get_compat_strings(flag_string, root_string); losers = boot_script_set_variable ("boot-args", VAL_STR, - (int) flag_string); + (long) flag_string); if (losers) panic ("cannot set boot-script variable %s: %s", "boot-args", boot_script_error_string (losers)); losers = boot_script_set_variable ("root-device", VAL_STR, - (int) root_string); + (long) root_string); if (losers) panic ("cannot set boot-script variable %s: %s", "root-device", boot_script_error_string (losers)); @@ -232,7 +232,7 @@ void bootstrap_create() if (eq == 0) continue; *eq++ = '\0'; - losers = boot_script_set_variable (word, VAL_STR, (int) eq); + losers = boot_script_set_variable (word, VAL_STR, (long) eq); if (losers) panic ("cannot set boot-script variable %s: %s", word, boot_script_error_string (losers)); diff --git a/kern/ipc_kobject.c b/kern/ipc_kobject.c index bd171a7e..c922d7fa 100644 --- a/kern/ipc_kobject.c +++ b/kern/ipc_kobject.c @@ -319,7 +319,7 @@ ipc_kobject_destroy( default: #if MACH_ASSERT - printf("ipc_kobject_destroy: port 0x%p, kobj 0x%x, type %d\n", + printf("ipc_kobject_destroy: port 0x%p, kobj 0x%lx, type %d\n", port, port->ip_kobject, ip_kotype(port)); #endif /* MACH_ASSERT */ break; diff --git a/kern/pc_sample.c b/kern/pc_sample.c index 2cec907b..57002581 100644 --- a/kern/pc_sample.c +++ b/kern/pc_sample.c @@ -57,7 +57,7 @@ void take_pc_sample( pc = interrupted_pc(t); cp->seqno++; sample = &((sampled_pc_t *)cp->buffer)[cp->seqno % MAX_PC_SAMPLES]; - sample->id = (natural_t)t; + sample->id = (vm_offset_t)t; sample->pc = pc; sample->sampletype = flavor; } diff --git a/kern/printf.c b/kern/printf.c index 88a527ba..658493cc 100644 --- a/kern/printf.c +++ b/kern/printf.c @@ -601,7 +601,7 @@ snputc(char c, vm_offset_t arg) } int -vsnprintf(char *buf, int size, const char *fmt, va_list args) +vsnprintf(char *buf, size_t size, const char *fmt, va_list args) { struct vsnprintf_cookie cookie = { .buf = buf, .index = 0, .max_len = size }; diff --git a/kern/printf.h b/kern/printf.h index 22681116..fcf2b3b0 100644 --- a/kern/printf.h +++ b/kern/printf.h @@ -40,7 +40,7 @@ extern void printnum (unsigned long u, int base, vm_offset_t putc_arg); extern int sprintf (char *buf, const char *fmt, ...); -extern int vsnprintf (char *buf, int size, const char *fmt, va_list args); +extern int vsnprintf (char *buf, size_t size, const char *fmt, va_list args); extern int printf (const char *fmt, ...); diff --git a/kern/sched_prim.c b/kern/sched_prim.c index 9d4e8afa..a7b7a4ee 100644 --- a/kern/sched_prim.c +++ b/kern/sched_prim.c @@ -146,7 +146,7 @@ decl_simple_lock_data(, wait_lock[NUMQUEUES]) /* NOTE: we want a small positive integer out of this */ #define wait_hash(event) \ - ((((int)(event) < 0) ? ~(int)(event) : (int)(event)) % NUMQUEUES) + ((((long)(event) < 0) ? ~(long)(event) : (long)(event)) % NUMQUEUES) void wait_queue_init(void) { diff --git a/kern/slab.c b/kern/slab.c index 38413e83..f95ec0bb 100644 --- a/kern/slab.c +++ b/kern/slab.c @@ -1381,7 +1381,7 @@ void kalloc_init(void) size = 1 << KALLOC_FIRST_SHIFT; for (i = 0; i < ARRAY_SIZE(kalloc_caches); i++) { - sprintf(name, "kalloc_%u", size); + sprintf(name, "kalloc_%lu", size); kmem_cache_init(&kalloc_caches[i], name, size, 0, NULL, kalloc_pagealloc, kalloc_pagefree, 0); size <<= 1; diff --git a/linux/src/include/asm-i386/posix_types.h b/linux/src/include/asm-i386/posix_types.h index 712ef70c..6a04605a 100644 --- a/linux/src/include/asm-i386/posix_types.h +++ b/linux/src/include/asm-i386/posix_types.h @@ -15,8 +15,8 @@ typedef long __kernel_off_t; typedef int __kernel_pid_t; typedef unsigned short __kernel_uid_t; typedef unsigned short __kernel_gid_t; -typedef unsigned int __kernel_size_t; -typedef int __kernel_ssize_t; +typedef unsigned long __kernel_size_t; +typedef long __kernel_ssize_t; typedef int __kernel_ptrdiff_t; typedef long __kernel_time_t; typedef long __kernel_clock_t; diff --git a/linux/src/include/linux/stddef.h b/linux/src/include/linux/stddef.h index c6221e71..488d49c0 100644 --- a/linux/src/include/linux/stddef.h +++ b/linux/src/include/linux/stddef.h @@ -3,7 +3,7 @@ #ifndef _SIZE_T #define _SIZE_T -typedef unsigned int size_t; +typedef unsigned long size_t; #endif #undef NULL diff --git a/vm/vm_fault.c b/vm/vm_fault.c index 10955edd..178f3072 100644 --- a/vm/vm_fault.c +++ b/vm/vm_fault.c @@ -657,7 +657,7 @@ vm_fault_return_t vm_fault_page(first_object, first_offset, m->offset + object->paging_offset, PAGE_SIZE, access_required)) != KERN_SUCCESS) { if (rc != MACH_SEND_INTERRUPTED) - printf("%s(0x%p, 0x%p, 0x%x, 0x%x, 0x%x) failed, %x\n", + printf("%s(0x%p, 0x%p, 0x%lx, 0x%x, 0x%x) failed, %x\n", "memory_object_data_request", object->pager, object->pager_request, diff --git a/vm/vm_map.c b/vm/vm_map.c index 1f062757..8012bcf2 100644 --- a/vm/vm_map.c +++ b/vm/vm_map.c @@ -711,7 +711,7 @@ vm_map_pmap_enter(map, addr, end_addr, object, offset, protection) if (vm_map_pmap_enter_print) { printf("vm_map_pmap_enter:"); - printf("map: %p, addr: %x, object: %p, offset: %x\n", + printf("map: %p, addr: %lx, object: %p, offset: %lx\n", map, addr, object, offset); } diff --git a/vm/vm_map.h b/vm/vm_map.h index 17de5db4..381c7cfd 100644 --- a/vm/vm_map.h +++ b/vm/vm_map.h @@ -354,7 +354,7 @@ MACRO_END */ extern vm_offset_t kentry_data; -extern vm_offset_t kentry_data_size; +extern vm_size_t kentry_data_size; extern int kentry_count; /* Initialize the module */ extern void vm_map_init(void); diff --git a/vm/vm_object.c b/vm/vm_object.c index d80124aa..f1017086 100644 --- a/vm/vm_object.c +++ b/vm/vm_object.c @@ -919,7 +919,7 @@ boolean_t vm_object_pmap_protect_by_page = FALSE; void vm_object_pmap_protect( register vm_object_t object, register vm_offset_t offset, - vm_offset_t size, + vm_size_t size, pmap_t pmap, vm_offset_t pmap_start, vm_prot_t prot) diff --git a/xen/block.c b/xen/block.c index fb18b67e..4253ef04 100644 --- a/xen/block.c +++ b/xen/block.c @@ -517,7 +517,7 @@ device_read (void *d, ipc_port_t reply_port, thread_block(NULL); if (err) - printf("error reading %d bytes at sector %d\n", amt, + printf("error reading %d bytes at sector %ld\n", amt, bn + offset / 512); for (i = 0; i < nbpages; i++) -- cgit v1.2.3 From 84bf93fa103eb9e2ed914b67cd5d2c7058d30b42 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 20 Mar 2012 02:37:02 +0100 Subject: Use long types * ddb/db_examine.c (db_xcdump): Do not cast addr before passing to db_read_bytes. * ddb/db_macro.c (db_arg_variable): Return long. * ddb/db_macro.h (db_arg_variable): Likewise. * ddb/db_sym.c (db_maxoff): Set type to unsigned long. * ddb/db_task_thread.c (db_set_default_thread, db_get_task_thread): Return long. * ddb/db_variables.h (db_variable): Make fcn function field to return long. (FCN_NULL): Make function type return long. * i386/i386/db_interface.c (int_regs): Set field sizes to long. * i386/i386/db_machdep.h (db_expr_t): Set type to long. * i386/i386/db_trace.c (db_i386_reg_value): Return long. Use long types. (i386_frame, i386_kregs, interrupt_frame, db_nextframe): Set field sizes to long. (db_regs, i386_kregs): Use long * pointers. (db_lookup_i386_kreg): Return long *. (db_numargs, db_nextframe, db_stack_trace_cmd, db_i386_stack_trace): Use long types. * i386/i386/debug_i386.c (dump_ss): Fix format. * i386/i386/ktss.c (ktss_init): Use long type. * i386/i386/pcb.c (set_user_regs): Likewise. * i386/i386/thread.h (i386_saved_state, v86_segs, i386_kernel_state, i386_interrupt_state): Set field sizes to long. * i386/i386/trap.c (kernel_trap, user_trap): Fix formats. * kern/ast.h (ast_t): Set type to long. * kern/boot_script.c (create_task, resume_task, prompt_resume_task, boot_script_set_variable): Use long types. * kern/boot_script.h (boot_script_set_variable): Use long type. * kern/bootstrap.c (bootstrap_create): Pass long type. * kern/lock.c (simple_lock, simple_lock_try): Use long type. * linux/dev/kernel/softirq.c (linux_soft_intr): Fix format. --- ddb/db_examine.c | 2 +- ddb/db_macro.c | 2 +- ddb/db_macro.h | 2 +- ddb/db_sym.c | 2 +- ddb/db_task_thread.c | 4 +- ddb/db_variables.h | 4 +- i386/i386/db_interface.c | 8 +-- i386/i386/db_machdep.h | 2 +- i386/i386/db_trace.c | 129 +++++++++++++++++++++++---------------------- i386/i386/debug_i386.c | 14 ++--- i386/i386/ktss.c | 2 +- i386/i386/pcb.c | 2 +- i386/i386/thread.h | 78 +++++++++++++-------------- i386/i386/trap.c | 8 +-- kern/ast.h | 2 +- kern/boot_script.c | 8 +-- kern/boot_script.h | 2 +- kern/bootstrap.c | 2 +- kern/lock.c | 8 +-- linux/dev/kernel/softirq.c | 2 +- 20 files changed, 143 insertions(+), 140 deletions(-) (limited to 'kern/bootstrap.c') diff --git a/ddb/db_examine.c b/ddb/db_examine.c index 2df261f5..96c5eee1 100644 --- a/ddb/db_examine.c +++ b/ddb/db_examine.c @@ -480,7 +480,7 @@ db_xcdump(addr, size, count, task) if (!DB_CHECK_ACCESS(next_page_addr, sizeof(int), task)) bcount = next_page_addr - addr; } - db_read_bytes((char *)addr, bcount, data, task); + db_read_bytes(addr, bcount, data, task); for (i = 0; i < bcount && off != 0; i += size) { if (i % 4 == 0) db_printf(" "); diff --git a/ddb/db_macro.c b/ddb/db_macro.c index e372c236..43bb5837 100644 --- a/ddb/db_macro.c +++ b/ddb/db_macro.c @@ -165,7 +165,7 @@ db_exec_macro(name) return(0); } -int +long /* ARGSUSED */ db_arg_variable(vp, valuep, flag, ap) struct db_variable *vp; diff --git a/ddb/db_macro.h b/ddb/db_macro.h index 12ed16e4..da5626f9 100644 --- a/ddb/db_macro.h +++ b/ddb/db_macro.h @@ -32,7 +32,7 @@ extern void db_show_macro (void); extern int db_exec_macro (char *name); -extern int db_arg_variable ( +extern long db_arg_variable ( struct db_variable *vp, db_expr_t *valuep, int flag, diff --git a/ddb/db_sym.c b/ddb/db_sym.c index dd721384..5c5f7006 100644 --- a/ddb/db_sym.c +++ b/ddb/db_sym.c @@ -445,7 +445,7 @@ db_symbol_values(stab, sym, namep, valuep) * not accept symbols whose value is zero (and use plain hex). */ -unsigned int db_maxoff = 0x4000; +unsigned long db_maxoff = 0x4000; void db_task_printsym(off, strategy, task) diff --git a/ddb/db_task_thread.c b/ddb/db_task_thread.c index 37629425..1146223b 100644 --- a/ddb/db_task_thread.c +++ b/ddb/db_task_thread.c @@ -245,7 +245,7 @@ db_init_default_thread(void) * in the command line */ /* ARGSUSED */ -int +long db_set_default_thread(vp, valuep, flag) struct db_variable *vp; db_expr_t *valuep; @@ -270,7 +270,7 @@ db_set_default_thread(vp, valuep, flag) /* * convert $taskXXX[.YYY] type DDB variable to task or thread address */ -int +long db_get_task_thread(vp, valuep, flag, ap) struct db_variable *vp; db_expr_t *valuep; diff --git a/ddb/db_variables.h b/ddb/db_variables.h index c01a5e25..5249d18c 100644 --- a/ddb/db_variables.h +++ b/ddb/db_variables.h @@ -42,7 +42,7 @@ struct db_variable { char *name; /* Name of variable */ db_expr_t *valuep; /* pointer to value of variable */ /* function to call when reading/writing */ - int (*fcn)(struct db_variable *, db_expr_t *, int, db_var_aux_param_t); + long (*fcn)(struct db_variable *, db_expr_t *, int, db_var_aux_param_t); short min_level; /* number of minimum suffix levels */ short max_level; /* number of maximum suffix levels */ short low; /* low value of level 1 suffix */ @@ -50,7 +50,7 @@ struct db_variable { #define DB_VAR_GET 0 #define DB_VAR_SET 1 }; -#define FCN_NULL ((int (*)())0) +#define FCN_NULL ((long (*)())0) #define DB_VAR_LEVEL 3 /* maximum number of suffix level */ diff --git a/i386/i386/db_interface.c b/i386/i386/db_interface.c index c07884de..66cc8b59 100644 --- a/i386/i386/db_interface.c +++ b/i386/i386/db_interface.c @@ -188,10 +188,10 @@ kdb_trap( * instead of those at its call to KDB. */ struct int_regs { - int edi; - int esi; - int ebp; - int ebx; + long edi; + long esi; + long ebp; + long ebx; struct i386_interrupt_state *is; }; diff --git a/i386/i386/db_machdep.h b/i386/i386/db_machdep.h index 95e37971..1dba2cd8 100644 --- a/i386/i386/db_machdep.h +++ b/i386/i386/db_machdep.h @@ -39,7 +39,7 @@ #include typedef vm_offset_t db_addr_t; /* address - unsigned */ -typedef int db_expr_t; /* expression - signed */ +typedef long db_expr_t; /* expression - signed */ typedef struct i386_saved_state db_regs_t; db_regs_t ddb_regs; /* register state */ diff --git a/i386/i386/db_trace.c b/i386/i386/db_trace.c index c4019b59..4e3bea39 100644 --- a/i386/i386/db_trace.c +++ b/i386/i386/db_trace.c @@ -45,7 +45,7 @@ #include "trap.h" -int +long db_i386_reg_value( struct db_variable *vp, db_expr_t *valuep, @@ -56,22 +56,22 @@ db_i386_reg_value( * Machine register set. */ struct db_variable db_regs[] = { - { "cs", (int *)&ddb_regs.cs, db_i386_reg_value }, - { "ds", (int *)&ddb_regs.ds, db_i386_reg_value }, - { "es", (int *)&ddb_regs.es, db_i386_reg_value }, - { "fs", (int *)&ddb_regs.fs, db_i386_reg_value }, - { "gs", (int *)&ddb_regs.gs, db_i386_reg_value }, - { "ss", (int *)&ddb_regs.ss, db_i386_reg_value }, - { "eax",(int *)&ddb_regs.eax, db_i386_reg_value }, - { "ecx",(int *)&ddb_regs.ecx, db_i386_reg_value }, - { "edx",(int *)&ddb_regs.edx, db_i386_reg_value }, - { "ebx",(int *)&ddb_regs.ebx, db_i386_reg_value }, - { "esp",(int *)&ddb_regs.uesp,db_i386_reg_value }, - { "ebp",(int *)&ddb_regs.ebp, db_i386_reg_value }, - { "esi",(int *)&ddb_regs.esi, db_i386_reg_value }, - { "edi",(int *)&ddb_regs.edi, db_i386_reg_value }, - { "eip",(int *)&ddb_regs.eip, db_i386_reg_value }, - { "efl",(int *)&ddb_regs.efl, db_i386_reg_value }, + { "cs", (long *)&ddb_regs.cs, db_i386_reg_value }, + { "ds", (long *)&ddb_regs.ds, db_i386_reg_value }, + { "es", (long *)&ddb_regs.es, db_i386_reg_value }, + { "fs", (long *)&ddb_regs.fs, db_i386_reg_value }, + { "gs", (long *)&ddb_regs.gs, db_i386_reg_value }, + { "ss", (long *)&ddb_regs.ss, db_i386_reg_value }, + { "eax",(long *)&ddb_regs.eax, db_i386_reg_value }, + { "ecx",(long *)&ddb_regs.ecx, db_i386_reg_value }, + { "edx",(long *)&ddb_regs.edx, db_i386_reg_value }, + { "ebx",(long *)&ddb_regs.ebx, db_i386_reg_value }, + { "esp",(long *)&ddb_regs.uesp,db_i386_reg_value }, + { "ebp",(long *)&ddb_regs.ebp, db_i386_reg_value }, + { "esi",(long *)&ddb_regs.esi, db_i386_reg_value }, + { "edi",(long *)&ddb_regs.edi, db_i386_reg_value }, + { "eip",(long *)&ddb_regs.eip, db_i386_reg_value }, + { "efl",(long *)&ddb_regs.efl, db_i386_reg_value }, }; struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]); @@ -82,8 +82,8 @@ struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]); struct i386_frame { struct i386_frame *f_frame; - int f_retaddr; - int f_arg0; + long f_retaddr; + long f_arg0; }; #define TRAP 1 @@ -99,18 +99,18 @@ boolean_t db_trace_symbols_found = FALSE; struct i386_kregs { char *name; - int offset; + long offset; } i386_kregs[] = { - { "ebx", (int)(&((struct i386_kernel_state *)0)->k_ebx) }, - { "esp", (int)(&((struct i386_kernel_state *)0)->k_esp) }, - { "ebp", (int)(&((struct i386_kernel_state *)0)->k_ebp) }, - { "edi", (int)(&((struct i386_kernel_state *)0)->k_edi) }, - { "esi", (int)(&((struct i386_kernel_state *)0)->k_esi) }, - { "eip", (int)(&((struct i386_kernel_state *)0)->k_eip) }, + { "ebx", (long)(&((struct i386_kernel_state *)0)->k_ebx) }, + { "esp", (long)(&((struct i386_kernel_state *)0)->k_esp) }, + { "ebp", (long)(&((struct i386_kernel_state *)0)->k_ebp) }, + { "edi", (long)(&((struct i386_kernel_state *)0)->k_edi) }, + { "esi", (long)(&((struct i386_kernel_state *)0)->k_esi) }, + { "eip", (long)(&((struct i386_kernel_state *)0)->k_eip) }, { 0 }, }; -int * +long * db_lookup_i386_kreg( char *name, int *kregp) @@ -119,19 +119,19 @@ db_lookup_i386_kreg( for (kp = i386_kregs; kp->name; kp++) { if (strcmp(name, kp->name) == 0) - return (int *)((int)kregp + kp->offset); + return (long *)((long)kregp + kp->offset); } return 0; } -int +long db_i386_reg_value( struct db_variable *vp, db_expr_t *valuep, int flag, db_var_aux_param_t ap) { - int *dp = 0; + long *dp = 0; db_expr_t null_reg = 0; register thread_t thread = ap->thread; extern unsigned int_stack_high; @@ -153,15 +153,15 @@ db_i386_reg_value( } else if ((thread->state & TH_SWAPPED) == 0 && thread->kernel_stack) { dp = db_lookup_i386_kreg(vp->name, - (int *)(STACK_IKS(thread->kernel_stack))); + (long *)(STACK_IKS(thread->kernel_stack))); if (dp == 0) dp = &null_reg; } else if ((thread->state & TH_SWAPPED) && thread->swap_func != thread_exception_return) { /*.....this breaks t/t $taskN.0...*/ /* only EIP is valid */ - if (vp->valuep == (int *) &ddb_regs.eip) { - dp = (int *)(&thread->swap_func); + if (vp->valuep == (long *) &ddb_regs.eip) { + dp = (long *)(&thread->swap_func); } else { dp = &null_reg; } @@ -170,8 +170,8 @@ db_i386_reg_value( if (dp == 0) { if (thread->pcb == 0) db_error("no pcb\n"); - dp = (int *)((int)(&thread->pcb->iss) + - ((int)vp->valuep - (int)&ddb_regs)); + dp = (long *)((long)(&thread->pcb->iss) + + ((long)vp->valuep - (long)&ddb_regs)); } if (flag == DB_VAR_SET) *dp = *valuep; @@ -212,18 +212,18 @@ db_numargs( struct i386_frame *fp, task_t task) { - int *argp; - int inst; - int args; + long *argp; + long inst; + long args; extern char etext[]; - argp = (int *)db_get_task_value((int)&fp->f_retaddr, 4, FALSE, task); - if (argp < (int *)VM_MIN_KERNEL_ADDRESS || argp > (int *)etext) + argp = (long *)db_get_task_value((long)&fp->f_retaddr, sizeof(long), FALSE, task); + if (argp < (long *)VM_MIN_KERNEL_ADDRESS || argp > (long *)etext) args = db_numargs_default; - else if (!DB_CHECK_ACCESS((int)argp, 4, task)) + else if (!DB_CHECK_ACCESS((long)argp, sizeof(long), task)) args = db_numargs_default; else { - inst = db_get_task_value((int)argp, 4, FALSE, task); + inst = db_get_task_value((long)argp, sizeof(long), FALSE, task); if ((inst & 0xff) == 0x59) /* popl %ecx */ args = 1; else if ((inst & 0xffff) == 0xc483) /* addl %n, %esp */ @@ -236,16 +236,16 @@ db_numargs( struct interrupt_frame { struct i386_frame *if_frame; /* point to next frame */ - int if_retaddr; /* return address to _interrupt */ - int if_unit; /* unit number */ + long if_retaddr; /* return address to _interrupt */ + long if_unit; /* unit number */ spl_t if_spl; /* saved spl */ - int if_iretaddr; /* _return_to_{iret,iret_i} */ - int if_edx; /* old sp(iret) or saved edx(iret_i) */ - int if_ecx; /* saved ecx(iret_i) */ - int if_eax; /* saved eax(iret_i) */ - int if_eip; /* saved eip(iret_i) */ - int if_cs; /* saved cs(iret_i) */ - int if_efl; /* saved efl(iret_i) */ + long if_iretaddr; /* _return_to_{iret,iret_i} */ + long if_edx; /* old sp(iret) or saved edx(iret_i) */ + long if_ecx; /* saved ecx(iret_i) */ + long if_eax; /* saved eax(iret_i) */ + long if_eip; /* saved eip(iret_i) */ + long if_cs; /* saved cs(iret_i) */ + long if_efl; /* saved efl(iret_i) */ }; /* @@ -263,7 +263,7 @@ db_nextframe( struct i386_frame **lfp, /* in/out */ struct i386_frame **fp, /* in/out */ db_addr_t *ip, /* out */ - int frame_type, /* in */ + long frame_type, /* in */ thread_t thread) /* in */ { struct i386_saved_state *saved_regs; @@ -277,7 +277,7 @@ db_nextframe( * it is an (struct i386_saved_state *). */ saved_regs = (struct i386_saved_state *) - db_get_task_value((int)&((*fp)->f_arg0),4,FALSE,task); + db_get_task_value((long)&((*fp)->f_arg0),sizeof(long),FALSE,task); db_printf(">>>>> %s (%d) at ", trap_name(saved_regs->trapno), saved_regs->trapno); db_task_printsym(saved_regs->eip, DB_STGY_PROC, task); @@ -310,10 +310,10 @@ db_nextframe( default: miss_frame: *ip = (db_addr_t) - db_get_task_value((int)&(*fp)->f_retaddr, 4, FALSE, task); + db_get_task_value((long)&(*fp)->f_retaddr, sizeof(long), FALSE, task); *lfp = *fp; *fp = (struct i386_frame *) - db_get_task_value((int)&(*fp)->f_frame, 4, FALSE, task); + db_get_task_value((long)&(*fp)->f_frame, sizeof(long), FALSE, task); break; } } @@ -401,7 +401,7 @@ db_stack_trace_cmd( } else { frame = (struct i386_frame *)addr; th = (db_default_thread)? db_default_thread: current_thread(); - callpc = (db_addr_t)db_get_task_value((int)&frame->f_retaddr, 4, + callpc = (db_addr_t)db_get_task_value((long)&frame->f_retaddr, sizeof(long), FALSE, (th == THREAD_NULL) ? TASK_NULL : th->task); } @@ -420,13 +420,13 @@ db_i386_stack_trace( { task_t task; boolean_t kernel_only; - int *argp; - int user_frame = 0; + long *argp; + long user_frame = 0; struct i386_frame *lastframe; int frame_type; char *filename; int linenum; - extern unsigned int db_maxoff; + extern unsigned long db_maxoff; if (count == -1) count = 65535; @@ -438,7 +438,7 @@ db_i386_stack_trace( if (!db_trace_symbols_found) db_find_trace_symbols(); - if (!INKERNEL((unsigned)callpc) && !INKERNEL((unsigned)frame)) { + if (!INKERNEL((unsigned long)callpc) && !INKERNEL((unsigned long)frame)) { db_printf(">>>>> user space <<<<<\n"); user_frame++; } @@ -449,7 +449,7 @@ db_i386_stack_trace( char * name; db_expr_t offset; - if (INKERNEL((unsigned)callpc) && user_frame == 0) { + if (INKERNEL((unsigned long)callpc) && user_frame == 0) { db_addr_t call_func = 0; db_sym_t sym_tmp; @@ -474,7 +474,7 @@ db_i386_stack_trace( frame_type = 0; narg = db_numargs(frame, task); } - } else if (INKERNEL((unsigned)callpc) ^ INKERNEL((unsigned)frame)) { + } else if (INKERNEL((unsigned long)callpc) ^ INKERNEL((unsigned long)frame)) { frame_type = 0; narg = -1; } else { @@ -492,7 +492,7 @@ db_i386_stack_trace( argp = &frame->f_arg0; while (narg > 0) { - db_printf("%x", db_get_task_value((int)argp,4,FALSE,task)); + db_printf("%x", db_get_task_value((long)argp,sizeof(long),FALSE,task)); argp++; if (--narg != 0) db_printf(","); @@ -519,7 +519,7 @@ db_i386_stack_trace( break; } if (!INKERNEL(lastframe) || - (!INKERNEL((unsigned)callpc) && !INKERNEL((unsigned)frame))) + (!INKERNEL((unsigned long)callpc) && !INKERNEL((unsigned long)frame))) user_frame++; if (user_frame == 1) { db_printf(">>>>> user space <<<<<\n"); @@ -570,6 +570,7 @@ static void db_cproc_state( } /* offsets in a cproc structure */ +/* TODO: longs? */ int db_cproc_next_offset = 0 * 4; int db_cproc_incarnation_offset = 1 * 4; int db_cproc_list_offset = 2 * 4; diff --git a/i386/i386/debug_i386.c b/i386/i386/debug_i386.c index f3e18835..937d7b4b 100644 --- a/i386/i386/debug_i386.c +++ b/i386/i386/debug_i386.c @@ -30,19 +30,21 @@ void dump_ss(struct i386_saved_state *st) { printf("Dump of i386_saved_state %p:\n", st); - printf("EAX %08x EBX %08x ECX %08x EDX %08x\n", + printf("EAX %08lx EBX %08lx ECX %08lx EDX %08lx\n", st->eax, st->ebx, st->ecx, st->edx); - printf("ESI %08x EDI %08x EBP %08x ESP %08x\n", + printf("ESI %08lx EDI %08lx EBP %08lx ESP %08lx\n", st->esi, st->edi, st->ebp, st->uesp); - printf("CS %04x SS %04x DS %04x ES %04x FS %04x GS %04x\n", + printf("CS %04lx SS %04lx " + "DS %04lx ES %04lx " + "FS %04lx GS %04lx\n", st->cs & 0xffff, st->ss & 0xffff, st->ds & 0xffff, st->es & 0xffff, st->fs & 0xffff, st->gs & 0xffff); - printf("v86: DS %04x ES %04x FS %04x GS %04x\n", + printf("v86: DS %04lx ES %04lx FS %04lx GS %04lx\n", st->v86_segs.v86_ds & 0xffff, st->v86_segs.v86_es & 0xffff, st->v86_segs.v86_gs & 0xffff, st->v86_segs.v86_gs & 0xffff); - printf("EIP %08x EFLAGS %08x\n", st->eip, st->efl); - printf("trapno %d: %s, error %08x\n", + printf("EIP %08lx EFLAGS %08lx\n", st->eip, st->efl); + printf("trapno %ld: %s, error %08lx\n", st->trapno, trap_name(st->trapno), st->err); } diff --git a/i386/i386/ktss.c b/i386/i386/ktss.c index e2c44257..453aad9c 100644 --- a/i386/i386/ktss.c +++ b/i386/i386/ktss.c @@ -58,7 +58,7 @@ ktss_init() /* Initialize the master TSS. */ ktss.tss.ss0 = KERNEL_DS; - ktss.tss.esp0 = (unsigned)(exception_stack+1024); + ktss.tss.esp0 = (unsigned long)(exception_stack+1024); ktss.tss.io_bit_map_offset = IOPB_INVAL; /* Set the last byte in the I/O bitmap to all 1's. */ ktss.barrier = 0xff; diff --git a/i386/i386/pcb.c b/i386/i386/pcb.c index dfe0444f..4f34391e 100644 --- a/i386/i386/pcb.c +++ b/i386/i386/pcb.c @@ -810,7 +810,7 @@ set_user_regs(stack_base, stack_size, exec_info, arg_size) arg_addr = stack_base + stack_size - arg_size; saved_state = USER_REGS(current_thread()); - saved_state->uesp = (int)arg_addr; + saved_state->uesp = (long)arg_addr; saved_state->eip = exec_info->entry; return (arg_addr); diff --git a/i386/i386/thread.h b/i386/i386/thread.h index f2ae8bf0..eddd25c2 100644 --- a/i386/i386/thread.h +++ b/i386/i386/thread.h @@ -51,31 +51,31 @@ */ struct i386_saved_state { - unsigned int gs; - unsigned int fs; - unsigned int es; - unsigned int ds; - unsigned int edi; - unsigned int esi; - unsigned int ebp; - unsigned int cr2; /* kernel esp stored by pusha - + unsigned long gs; + unsigned long fs; + unsigned long es; + unsigned long ds; + unsigned long edi; + unsigned long esi; + unsigned long ebp; + unsigned long cr2; /* kernel esp stored by pusha - we save cr2 here later */ - unsigned int ebx; - unsigned int edx; - unsigned int ecx; - unsigned int eax; - unsigned int trapno; - unsigned int err; - unsigned int eip; - unsigned int cs; - unsigned int efl; - unsigned int uesp; - unsigned int ss; + unsigned long ebx; + unsigned long edx; + unsigned long ecx; + unsigned long eax; + unsigned long trapno; + unsigned long err; + unsigned long eip; + unsigned long cs; + unsigned long efl; + unsigned long uesp; + unsigned long ss; struct v86_segs { - unsigned int v86_es; /* virtual 8086 segment registers */ - unsigned int v86_ds; - unsigned int v86_fs; - unsigned int v86_gs; + unsigned long v86_es; /* virtual 8086 segment registers */ + unsigned long v86_ds; + unsigned long v86_fs; + unsigned long v86_gs; } v86_segs; }; @@ -97,12 +97,12 @@ struct i386_exception_link { */ struct i386_kernel_state { - int k_ebx; /* kernel context */ - int k_esp; - int k_ebp; - int k_edi; - int k_esi; - int k_eip; + long k_ebx; /* kernel context */ + long k_esp; + long k_ebp; + long k_edi; + long k_esi; + long k_eip; }; /* @@ -144,16 +144,16 @@ struct v86_assist_state { */ struct i386_interrupt_state { - int gs; - int fs; - int es; - int ds; - int edx; - int ecx; - int eax; - int eip; - int cs; - int efl; + long gs; + long fs; + long es; + long ds; + long edx; + long ecx; + long eax; + long eip; + long cs; + long efl; }; /* diff --git a/i386/i386/trap.c b/i386/i386/trap.c index d594907e..0ca0a3f4 100644 --- a/i386/i386/trap.c +++ b/i386/i386/trap.c @@ -220,7 +220,7 @@ dump_ss(regs); || (subcode >= (long)_start && subcode < (long)etext)) { printf("Kernel page fault at address 0x%x, " - "eip = 0x%x\n", + "eip = 0x%lx\n", subcode, regs->eip); goto badtrap; } @@ -328,7 +328,7 @@ dump_ss(regs); printf("%s trap", trap_type[type]); else printf("trap %d", type); - printf(", eip 0x%x\n", regs->eip); + printf(", eip 0x%lx\n", regs->eip); #if MACH_TTD if (kttd_enabled && kttd_trap(type, code, regs)) return; @@ -362,7 +362,7 @@ int user_trap(regs) if ((vm_offset_t)thread < phys_last_addr) { printf("user_trap: bad thread pointer 0x%p\n", thread); - printf("trap type %d, code 0x%x, va 0x%x, eip 0x%x\n", + printf("trap type %ld, code 0x%lx, va 0x%lx, eip 0x%lx\n", regs->trapno, regs->err, regs->cr2, regs->eip); asm volatile ("1: hlt; jmp 1b"); } @@ -540,7 +540,7 @@ printf("user trap %d error %d sub %08x\n", type, code, subcode); return 0; #endif /* MACH_KDB */ splhigh(); - printf("user trap, type %d, code = %x\n", + printf("user trap, type %d, code = %lx\n", type, regs->err); dump_ss(regs); panic("trap"); diff --git a/kern/ast.h b/kern/ast.h index 695eaac0..4c28b1e6 100644 --- a/kern/ast.h +++ b/kern/ast.h @@ -68,7 +68,7 @@ #define AST_PER_THREAD (AST_HALT | AST_TERMINATE | MACHINE_AST_PER_THREAD) -typedef unsigned int ast_t; +typedef unsigned long ast_t; extern volatile ast_t need_ast[NCPUS]; diff --git a/kern/boot_script.c b/kern/boot_script.c index aa6833bb..b2e9393b 100644 --- a/kern/boot_script.c +++ b/kern/boot_script.c @@ -67,7 +67,7 @@ static int symtab_index = 0; /* Create a task and suspend it. */ static int -create_task (struct cmd *cmd, int *val) +create_task (struct cmd *cmd, long *val) { int err = boot_script_task_create (cmd); *val = (long) cmd->task; @@ -76,14 +76,14 @@ create_task (struct cmd *cmd, int *val) /* Resume a task. */ static int -resume_task (struct cmd *cmd, int *val) +resume_task (struct cmd *cmd, long *val) { return boot_script_task_resume (cmd); } /* Resume a task when the user hits return. */ static int -prompt_resume_task (struct cmd *cmd, int *val) +prompt_resume_task (struct cmd *cmd, long *val) { return boot_script_prompt_task_resume (cmd); } @@ -659,7 +659,7 @@ boot_script_exec () /* Create an entry for the variable NAME with TYPE and value VAL, in the symbol table. */ int -boot_script_set_variable (const char *name, int type, int val) +boot_script_set_variable (const char *name, int type, long val) { struct sym *sym = sym_enter (name); diff --git a/kern/boot_script.h b/kern/boot_script.h index c436ac21..c5ad6732 100644 --- a/kern/boot_script.h +++ b/kern/boot_script.h @@ -102,7 +102,7 @@ int boot_script_exec (void); /* Create an entry in the symbol table for variable NAME, whose type is TYPE and value is VAL. Returns 0 on success, non-zero otherwise. */ -int boot_script_set_variable (const char *name, int type, int val); +int boot_script_set_variable (const char *name, int type, long val); /* Define the function NAME, which will return type RET_TYPE. */ int boot_script_define_function (const char *name, int ret_type, diff --git a/kern/bootstrap.c b/kern/bootstrap.c index 2b74073a..c98b0a2c 100644 --- a/kern/bootstrap.c +++ b/kern/bootstrap.c @@ -211,7 +211,7 @@ void bootstrap_create() char *var = memcpy (alloca (len), *ep, len); char *val = strchr (var, '='); *val++ = '\0'; - losers = boot_script_set_variable (var, VAL_STR, (int) val); + losers = boot_script_set_variable (var, VAL_STR, (long) val); if (losers) panic ("cannot set boot-script variable %s: %s", var, boot_script_error_string (losers)); diff --git a/kern/lock.c b/kern/lock.c index 2bcfa8b8..44d4448e 100644 --- a/kern/lock.c +++ b/kern/lock.c @@ -163,8 +163,8 @@ void simple_lock( info->l = l; /* XXX we want our return address, if possible */ #if defined(__i386__) - info->ra = *((unsigned int *)&l - 1); -#endif /* __i386__ */ + info->ra = *((unsigned long *)&l - 1); +#endif /* i386 */ } boolean_t simple_lock_try( @@ -181,8 +181,8 @@ boolean_t simple_lock_try( info->l = l; /* XXX we want our return address, if possible */ #if defined(__i386__) - info->ra = *((unsigned int *)&l - 1); -#endif /* __i386__ */ + info->ra = *((unsigned long *)&l - 1); +#endif /* i386 */ return TRUE; } diff --git a/linux/dev/kernel/softirq.c b/linux/dev/kernel/softirq.c index 82e1442a..ac95a7dd 100644 --- a/linux/dev/kernel/softirq.c +++ b/linux/dev/kernel/softirq.c @@ -44,5 +44,5 @@ linux_soft_intr (void) } return; bad_bh: - printk ("linux_soft_intr:bad interrupt handler entry %08lx\n", mask); + printk ("linux_soft_intr:bad interrupt handler entry %08x\n", mask); } -- cgit v1.2.3