Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v2.6.21 48 lines 1.0 kB view raw
1/* 2 * Copyright (C) Paul Mackerras 1997. 3 * Copyright (C) Leigh Brown 2002. 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 8 * 2 of the License, or (at your option) any later version. 9 */ 10 11#include "of1275.h" 12#include "nonstdio.h" 13 14extern ihandle of_prom_mmu; 15 16int 17map(unsigned int phys, unsigned int virt, unsigned int size) 18{ 19 struct prom_args { 20 char *service; 21 int nargs; 22 int nret; 23 char *method; 24 ihandle mmu_ihandle; 25 int misc; 26 unsigned int size; 27 unsigned int virt; 28 unsigned int phys; 29 int ret0; 30 } args; 31 32 if (of_prom_mmu == 0) { 33 printf("map() called, no MMU found\n"); 34 return -1; 35 } 36 args.service = "call-method"; 37 args.nargs = 6; 38 args.nret = 1; 39 args.method = "map"; 40 args.mmu_ihandle = of_prom_mmu; 41 args.misc = 0; 42 args.phys = phys; 43 args.virt = virt; 44 args.size = size; 45 (*of_prom_entry)(&args); 46 47 return (int)args.ret0; 48}