Add alignment argument to km_map()
commita1b9f63c506357f379bb6f1d9f633d5a740e941c
authorJakub Jermar <jakub@jermar.eu>
Fri, 31 Aug 2018 09:54:11 +0000 (31 11:54 +0200)
committerJakub Jermar <jakub@jermar.eu>
Fri, 31 Aug 2018 10:32:40 +0000 (31 12:32 +0200)
tree3905c5a1564f92d9fdfc5fa64c6032351788cf30
parentb1834a01038fc2eeb50637bb5cb48a741a03b9fb
Add alignment argument to km_map()

km_map() currently always applies alignment requirement equal to the
size of the mapped region. Most of the time, the natural alignment is
unnecessarily strong and especially on 32-bit systems may contribute to
km_map() failures for regions with size in the order of several hundred
megabytes.

This change adds an extra argument to km_map() which allows the caller
to indicate the desired alignment. The old behaviour can be specified
by passing KM_NATURAL_ALIGNMENT as alignment.

This change only adds the alignment argument, but does not change the
alignment requirement anywhere.
29 files changed:
kernel/arch/amd64/src/vreg.c
kernel/arch/arm32/src/mach/beagleboardxm/beagleboardxm.c
kernel/arch/arm32/src/mach/beaglebone/beaglebone.c
kernel/arch/arm32/src/mach/gta02/gta02.c
kernel/arch/arm32/src/mach/integratorcp/integratorcp.c
kernel/arch/arm32/src/mach/raspberrypi/raspberrypi.c
kernel/arch/arm32/src/ras.c
kernel/arch/ia32/src/smp/smp.c
kernel/arch/ia32/src/vreg.c
kernel/arch/ia64/src/ia64.c
kernel/arch/ppc32/src/drivers/pic.c
kernel/arch/ppc32/src/ppc32.c
kernel/arch/sparc64/src/drivers/kbd.c
kernel/arch/sparc64/src/drivers/pci.c
kernel/genarch/include/genarch/drivers/amdm37x/gpt.h
kernel/genarch/src/acpi/acpi.c
kernel/genarch/src/drivers/am335x/timer.c
kernel/genarch/src/drivers/bcm2835/mbox.c
kernel/genarch/src/drivers/ega/ega.c
kernel/genarch/src/drivers/omap/uart.c
kernel/genarch/src/drivers/pl011/pl011.c
kernel/genarch/src/drivers/s3c24xx/uart.c
kernel/genarch/src/fb/fb.c
kernel/generic/include/mm/km.h
kernel/generic/src/console/cmd.c
kernel/generic/src/ipc/irq.c
kernel/generic/src/main/kinit.c
kernel/generic/src/mm/km.c
kernel/test/mm/mapping1.c