void *kqemu_vmalloc(size_t size)

{

    static int phys_ram_fd = -1;

    static int phys_ram_size = 0;

    const char *tmpdir;

    char phys_ram_file[1024];

    void *ptr;

    struct statfs stfs;



    if (phys_ram_fd < 0) {

        tmpdir = getenv("QEMU_TMPDIR");

        if (!tmpdir)

            tmpdir = "/dev/shm";

        if (statfs(tmpdir, &stfs) == 0) {

            int64_t free_space;

            int ram_mb;



            extern int ram_size;

            free_space = (int64_t)stfs.f_bavail * stfs.f_bsize;

            if ((ram_size + 8192 * 1024) >= free_space) {

                ram_mb = (ram_size / (1024 * 1024));

                fprintf(stderr, 

                        "You do not have enough space in '%s' for the %d MB of QEMU virtual RAM.\n",

                        tmpdir, ram_mb);

                if (strcmp(tmpdir, "/dev/shm") == 0) {

                    fprintf(stderr, "To have more space available provided you have enough RAM and swap, do as root:\n"

                            "umount /dev/shm\n"

                            "mount -t tmpfs -o size=%dm none /dev/shm\n",

                            ram_mb + 16);

                } else {

                    fprintf(stderr, 

                            "Use the '-m' option of QEMU to diminish the amount of virtual RAM or use the\n"

                            "QEMU_TMPDIR environment variable to set another directory where the QEMU\n"

                            "temporary RAM file will be opened.\n");

                }

                fprintf(stderr, "Or disable the accelerator module with -no-kqemu\n");

                exit(1);

            }

        }

        snprintf(phys_ram_file, sizeof(phys_ram_file), "%s/qemuXXXXXX", 

                 tmpdir);

        if (mkstemp(phys_ram_file) < 0) {

            fprintf(stderr, 

                    "warning: could not create temporary file in '%s'.\n"

                    "Use QEMU_TMPDIR to select a directory in a tmpfs filesystem.\n"

                    "Using '/tmp' as fallback.\n",

                    tmpdir);

            snprintf(phys_ram_file, sizeof(phys_ram_file), "%s/qemuXXXXXX", 

                     "/tmp");

            if (mkstemp(phys_ram_file) < 0) {

                fprintf(stderr, "Could not create temporary memory file '%s'\n", 

                        phys_ram_file);

                exit(1);

            }

        }

        phys_ram_fd = open(phys_ram_file, O_CREAT | O_TRUNC | O_RDWR, 0600);

        if (phys_ram_fd < 0) {

            fprintf(stderr, "Could not open temporary memory file '%s'\n", 

                    phys_ram_file);

            exit(1);

        }

        unlink(phys_ram_file);

    }

    size = (size + 4095) & ~4095;

    ftruncate(phys_ram_fd, phys_ram_size + size);

    ptr = mmap(NULL, 

               size, 

               PROT_WRITE | PROT_READ, MAP_SHARED, 

               phys_ram_fd, phys_ram_size);

    if (ptr == MAP_FAILED) {

        fprintf(stderr, "Could not map physical memory\n");

        exit(1);

    }

    phys_ram_size += size;

    return ptr;

}

void *kqemu_vmalloc(size_t size)

{

    static int phys_ram_fd = -1;

    static int phys_ram_size = 0;

    const char *tmpdir;

    char phys_ram_file[1024];

    void *ptr;

    struct statfs stfs;



    if (phys_ram_fd < 0) {

        tmpdir = getenv("QEMU_TMPDIR");

        if (!tmpdir)

            tmpdir = "/dev/shm";

        if (statfs(tmpdir, &stfs) == 0) {

            int64_t free_space;

            int ram_mb;



            extern int ram_size;

            free_space = (int64_t)stfs.f_bavail * stfs.f_bsize;

            if ((ram_size + 8192 * 1024) >= free_space) {

                ram_mb = (ram_size / (1024 * 1024));

                fprintf(stderr, 

                        "You do not have enough space in '%s' for the %d MB of QEMU virtual RAM.\n",

                        tmpdir, ram_mb);

                if (strcmp(tmpdir, "/dev/shm") == 0) {

                    fprintf(stderr, "To have more space available provided you have enough RAM and swap, do as root:\n"

                            "umount /dev/shm\n"

                            "mount -t tmpfs -o size=%dm none /dev/shm\n",

                            ram_mb + 16);

                } else {

                    fprintf(stderr, 

                            "Use the '-m' option of QEMU to diminish the amount of virtual RAM or use the\n"

                            "QEMU_TMPDIR environment variable to set another directory where the QEMU\n"

                            "temporary RAM file will be opened.\n");

                }

                fprintf(stderr, "Or disable the accelerator module with -no-kqemu\n");

                exit(1);

            }

        }

        snprintf(phys_ram_file, sizeof(phys_ram_file), "%s/qemuXXXXXX", 

                 tmpdir);

        if (mkstemp(phys_ram_file) < 0) {

            fprintf(stderr, 

                    "warning: could not create temporary file in '%s'.\n"

                    "Use QEMU_TMPDIR to select a directory in a tmpfs filesystem.\n"

                    "Using '/tmp' as fallback.\n",

                    tmpdir);

            snprintf(phys_ram_file, sizeof(phys_ram_file), "%s/qemuXXXXXX", 

                     "/tmp");

            if (mkstemp(phys_ram_file) < 0) {

                fprintf(stderr, "Could not create temporary memory file '%s'\n", 

                        phys_ram_file);

                exit(1);

            }

        }

        phys_ram_fd = open(phys_ram_file, O_CREAT | O_TRUNC | O_RDWR, 0600);

        if (phys_ram_fd < 0) {

            fprintf(stderr, "Could not open temporary memory file '%s'\n", 

                    phys_ram_file);

            exit(1);

        }

        unlink(phys_ram_file);

    }

    size = (size + 4095) & ~4095;

    ftruncate(phys_ram_fd, phys_ram_size + size);

    ptr = mmap(NULL, 

               size, 

               PROT_WRITE | PROT_READ, MAP_SHARED, 

               phys_ram_fd, phys_ram_size);

    if (ptr == MAP_FAILED) {

        fprintf(stderr, "Could not map physical memory\n");

        exit(1);

    }

    phys_ram_size += size;

    return ptr;

}

        if (mkstemp(phys_ram_file) < 0) {             if (mkstemp(phys_ram_file) < 0) {         phys_ram_fd = open(phys_ram_file, O_CREAT | O_TRUNC | O_RDWR, 0600);         if (phys_ram_fd < 0) {             fprintf(stderr, "Could not open temporary memory file '%s'\n",                      phys_ram_file);             exit(1);
void *FUNC_0(size_t VAR_0)

{

    static int VAR_1 = -1;

    static int VAR_2 = 0;

    const char *VAR_3;

    char VAR_4[1024];

    void *VAR_5;

    struct statfs VAR_6;



    if (VAR_1 < 0) {

        VAR_3 = getenv("QEMU_TMPDIR");

        if (!VAR_3)

            VAR_3 = "/dev/shm";

        if (statfs(VAR_3, &VAR_6) == 0) {

            int64_t free_space;

            int VAR_7;



            extern int VAR_8;

            free_space = (int64_t)VAR_6.f_bavail * VAR_6.f_bsize;

            if ((VAR_8 + 8192 * 1024) >= free_space) {

                VAR_7 = (VAR_8 / (1024 * 1024));

                fprintf(stderr, 

                        "You do not have enough space in '%s' for the %d MB of QEMU virtual RAM.\n",

                        VAR_3, VAR_7);

                if (strcmp(VAR_3, "/dev/shm") == 0) {

                    fprintf(stderr, "To have more space available provided you have enough RAM and swap, do as root:\n"

                            "umount /dev/shm\n"

                            "mount -t tmpfs -o VAR_0=%dm none /dev/shm\n",

                            VAR_7 + 16);

                } else {

                    fprintf(stderr, 

                            "Use the '-m' option of QEMU to diminish the amount of virtual RAM or use the\n"

                            "QEMU_TMPDIR environment variable to set another directory where the QEMU\n"

                            "temporary RAM file will be opened.\n");

                }

                fprintf(stderr, "Or disable the accelerator module with -no-kqemu\n");

                exit(1);

            }

        }

        snprintf(VAR_4, sizeof(VAR_4), "%s/qemuXXXXXX", 

                 VAR_3);

        if (mkstemp(VAR_4) < 0) {

            fprintf(stderr, 

                    "warning: could not create temporary file in '%s'.\n"

                    "Use QEMU_TMPDIR to select a directory in a tmpfs filesystem.\n"

                    "Using '/tmp' as fallback.\n",

                    VAR_3);

            snprintf(VAR_4, sizeof(VAR_4), "%s/qemuXXXXXX", 

                     "/tmp");

            if (mkstemp(VAR_4) < 0) {

                fprintf(stderr, "Could not create temporary memory file '%s'\n", 

                        VAR_4);

                exit(1);

            }

        }

        VAR_1 = open(VAR_4, O_CREAT | O_TRUNC | O_RDWR, 0600);

        if (VAR_1 < 0) {

            fprintf(stderr, "Could not open temporary memory file '%s'\n", 

                    VAR_4);

            exit(1);

        }

        unlink(VAR_4);

    }

    VAR_0 = (VAR_0 + 4095) & ~4095;

    ftruncate(VAR_1, VAR_2 + VAR_0);

    VAR_5 = mmap(NULL, 

               VAR_0, 

               PROT_WRITE | PROT_READ, MAP_SHARED, 

               VAR_1, VAR_2);

    if (VAR_5 == MAP_FAILED) {

        fprintf(stderr, "Could not map physical memory\n");

        exit(1);

    }

    VAR_2 += VAR_0;

    return VAR_5;

}

void *FUNC_0(size_t VAR_0)
{ static int VAR_1 = -1; static int VAR_2 = 0; const char *VAR_3; char VAR_4[1024]; void *VAR_5; struct statfs VAR_6; if (VAR_1 < 0) { VAR_3 = getenv("QEMU_TMPDIR"); if (!VAR_3)
VAR_3 = "/dev/shm"; if (statfs(VAR_3, &VAR_6) == 0) { int64_t free_space; int VAR_7; extern int VAR_8; free_space = (int64_t)VAR_6.f_bavail * VAR_6.f_bsize; if ((VAR_8 + 8192 * 1024) >= free_space) { VAR_7 = (VAR_8 / (1024 * 1024)); fprintf(stderr,
"You do not have enough space in '%s' for the %d MB of QEMU virtual RAM.\n",
VAR_3, VAR_7); if (strcmp(VAR_3, "/dev/shm") == 0) { fprintf(stderr, "To have more space available provided you have enough RAM and swap, do as root:\n"
"umount /dev/shm\n"
"mount -t tmpfs -o VAR_0=%dm none /dev/shm\n",
VAR_7 + 16); } else { fprintf(stderr,
"Use the '-m' option of QEMU to diminish the amount of virtual RAM or use the\n"
"QEMU_TMPDIR environment variable to set another directory where the QEMU\n"
"temporary RAM file will be opened.\n"); } fprintf(stderr, "Or disable the accelerator module with -no-kqemu\n"); exit(1); } } snprintf(VAR_4, sizeof(VAR_4), "%s/qemuXXXXXX",
VAR_3); if (mkstemp(VAR_4) < 0) { fprintf(stderr,
"warning: could not create temporary file in '%s'.\n"
"Use QEMU_TMPDIR to select a directory in a tmpfs filesystem.\n"
"Using '/tmp' as fallback.\n",
VAR_3); snprintf(VAR_4, sizeof(VAR_4), "%s/qemuXXXXXX",
"/tmp"); if (mkstemp(VAR_4) < 0) { fprintf(stderr, "Could not create temporary memory file '%s'\n",
VAR_4); exit(1); } } VAR_1 = open(VAR_4, O_CREAT | O_TRUNC | O_RDWR, 0600); if (VAR_1 < 0) { fprintf(stderr, "Could not open temporary memory file '%s'\n",
VAR_4); exit(1); } unlink(VAR_4); } VAR_0 = (VAR_0 + 4095) & ~4095; ftruncate(VAR_1, VAR_2 + VAR_0); VAR_5 = mmap(NULL,
VAR_0,
PROT_WRITE | PROT_READ, MAP_SHARED,
VAR_1, VAR_2); if (VAR_5 == MAP_FAILED) { fprintf(stderr, "Could not map physical memory\n"); exit(1); } VAR_2 += VAR_0; return VAR_5; }