LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

По поводу функции mmap_create_stack есть еще два три важных замечания:

uint32_t mmap_create_stack(struct emmap *mmap) {
	size_t size = 4096; // а почему тут, почему нет какого-нибудь дефайна STACK_SIZE чтоб была конфигурируемость ?
	uintptr_t base = mmap_alloc(mmap, size);
	mmap_place(task_self_resource_mmap(), base, size, 0);
	vmem_map_region(mmap->ctx, base, base, size,
			PROT_WRITE | PROT_READ | PROT_EXEC | VMEM_PAGE_USERMODE); // правильно ли назначать PROT_EXEC для стека? Это чтоб трамполины из GCC работали?
	return base + size; // А разве стек всегда снизу вверх растет?
}

Исходная версия SZT, :

По поводу функции mmap_create_stack есть еще два важных замечания:

uint32_t mmap_create_stack(struct emmap *mmap) {
	size_t size = 4096; // а почему тут, почему нет какого-нибудь дефайна STACK_SIZE чтоб была конфигурируемость ?
	uintptr_t base = mmap_alloc(mmap, size);
	mmap_place(task_self_resource_mmap(), base, size, 0);
	vmem_map_region(mmap->ctx, base, base, size,
			PROT_WRITE | PROT_READ | PROT_EXEC | VMEM_PAGE_USERMODE);
	return base + size; // А разве стек всегда снизу вверх растет?
}