fork of 9front i guess
Find a file
cinap_lenrek e9fddbaad8 kernel: fix segattach() rounding of va+len (thanks kenji arisawa)
from segattach(2):

          Va and len specify the position of the segment in the
          process's address space.  Va is rounded down to the nearest
          page boundary and va+len is rounded up.  The system does not
          permit segments to overlap.  If va is zero, the system will
          choose a suitable address.

just rounding up len isnt enougth. we have to round up va+len
instead of just len so that the span [va, va+len) is covered
even if va is not page aligned.

kenjis example:

	print("%p\n",ap);	// 206cb0
	ap = segattach(0, "shared", ap, 1024);
	print("%p\n",ap);	// 206000

term% cat /proc/612768/segment
Stack     defff000 dffff000    1
Text   R      1000     6000    1
Data          6000     7000    1
Bss           7000     7000    1
Shared      206000   207000    1
term%

note that 0x206cb0 + 0x400 > 0x20700.
2014-09-14 16:04:22 +02:00
386 change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
68000 change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
68020 change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
acme acme: fix more error messages 2013-04-28 00:19:35 +02:00
adm/timezone add Uruguay timezone (from sources) 2013-01-25 14:13:01 +01:00
alpha change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
amd64 libc and ape support for amd64 2014-02-01 10:31:41 +01:00
arm change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
lib /lib/rob: Just write the code. 2014-09-06 01:11:18 -04:00
mips change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
power change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
power64 change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
rc usps: yet another update 2014-08-01 20:44:58 +02:00
sparc change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
sparc64 change Rune from ushort to uint for to 21 bit runes (thanks mischief!) 2013-10-17 12:02:45 +02:00
sys kernel: fix segattach() rounding of va+len (thanks kenji arisawa) 2014-09-14 16:04:22 +02:00
.hgignore hgignore: ignore intermediate object files for amd64 2014-09-13 06:23:41 -07:00