setup — setup devices and filesystems, mount root filesystem


#include <unistd.h>

int setup(void);


setup() is called once from within linux/init/main.c. It calls initialization functions for devices and filesystems configured into the kernel and then mounts the root filesystem.

No user process may call setup(). Any user process, even a process with superuser permission, will receive EPERM.

Return Value

setup() always returns -1 for a user process.



Always, for a user process.


Since Linux 2.1.121, no such function exists anymore.

Conforming to

This function is Linux-specific, and should not be used in programs intended to be portable, or indeed in any programs at all.


The calling sequence varied: at some times setup() has had a single argument void *BIOS and at other times a single argument int magic.


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at

Referenced By


2008-12-03 Linux Programmer's Manual