products/Sources/formale Sprachen/C/Linux/drivers/video/fbdev/aty/   (Linux Kernel Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 5 kB image not shown  

Impressum physmem.c  Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
 */


#include <linux/module.h>
#include <linux/memblock.h>
#include <linux/mm.h>
#include <linux/pfn.h>
#include <asm/page.h>
#include <asm/sections.h>
#include <as-layout.h>
#include <init.h>
#include <kern.h>
#include <kern_util.h>
#include <mem_user.h>
#include <os.h>

static int physmem_fd = -1;

/* Changed during early boot */
unsigned long high_physmem;
EXPORT_SYMBOL(high_physmem);

void map_memory(unsigned long virt, unsigned long phys, unsigned long len,
  int r, int w, int x)
{
 __u64 offset;
 int fd, err;

 fd = phys_mapping(phys, &offset);
 err = os_map_memory((void *) virt, fd, offset, len, r, w, x);
 if (err) {
  if (err == -ENOMEM)
   printk(KERN_ERR "try increasing the host's "
          "/proc/sys/vm/max_map_count to <physical "
          "memory size>/4096\n");
  panic("map_memory(0x%lx, %d, 0x%llx, %ld, %d, %d, %d) failed, "
        "err = %d\n", virt, fd, offset, len, r, w, x, err);
 }
}

/**
 * setup_physmem() - Setup physical memory for UML
 * @start: Start address of the physical kernel memory,
 *  i.e start address of the executable image.
 * @reserve_end: end address of the physical kernel memory.
 * @len: Length of total physical memory