[PATCH] uml: initrd cleanup

The serial UML OS-abstraction layer patch (um/kernel dir).

This moves all systemcalls from initrd_user.c file under os-Linux dir and join
initrd_user.c and initrd_kern.c files in new file initrd.c

Signed-off-by: Gennady Sharapov <Gennady.V.Sharapov@intel.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Jeff Dike and committed by Linus Torvalds 9b67a3c4 41a9cf8e

+79 -1
+1 -1
arch/um/kernel/Makefile
··· 14 14 tlb.o trap_kern.o trap_user.o uaccess_user.o um_arch.o umid.o \ 15 15 user_util.o 16 16 17 - obj-$(CONFIG_BLK_DEV_INITRD) += initrd_kern.o initrd_user.o 17 + obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o 18 18 obj-$(CONFIG_GPROF) += gprof_syms.o 19 19 obj-$(CONFIG_GCOV) += gmon_syms.o 20 20 obj-$(CONFIG_TTY_LOG) += tty_log.o
+78
arch/um/kernel/initrd.c
··· 1 + /* 2 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com) 3 + * Licensed under the GPL 4 + */ 5 + 6 + #include "linux/init.h" 7 + #include "linux/bootmem.h" 8 + #include "linux/initrd.h" 9 + #include "asm/types.h" 10 + #include "user_util.h" 11 + #include "kern_util.h" 12 + #include "initrd.h" 13 + #include "init.h" 14 + #include "os.h" 15 + 16 + /* Changed by uml_initrd_setup, which is a setup */ 17 + static char *initrd __initdata = NULL; 18 + 19 + static int __init read_initrd(void) 20 + { 21 + void *area; 22 + long long size; 23 + int err; 24 + 25 + if(initrd == NULL) return 0; 26 + err = os_file_size(initrd, &size); 27 + if(err) return 0; 28 + area = alloc_bootmem(size); 29 + if(area == NULL) return 0; 30 + if(load_initrd(initrd, area, size) == -1) return 0; 31 + initrd_start = (unsigned long) area; 32 + initrd_end = initrd_start + size; 33 + return 0; 34 + } 35 + 36 + __uml_postsetup(read_initrd); 37 + 38 + static int __init uml_initrd_setup(char *line, int *add) 39 + { 40 + initrd = line; 41 + return 0; 42 + } 43 + 44 + __uml_setup("initrd=", uml_initrd_setup, 45 + "initrd=<initrd image>\n" 46 + " This is used to boot UML from an initrd image. The argument is the\n" 47 + " name of the file containing the image.\n\n" 48 + ); 49 + 50 + int load_initrd(char *filename, void *buf, int size) 51 + { 52 + int fd, n; 53 + 54 + fd = os_open_file(filename, of_read(OPENFLAGS()), 0); 55 + if(fd < 0){ 56 + printk("Opening '%s' failed - err = %d\n", filename, -fd); 57 + return(-1); 58 + } 59 + n = os_read_file(fd, buf, size); 60 + if(n != size){ 61 + printk("Read of %d bytes from '%s' failed, err = %d\n", size, 62 + filename, -n); 63 + return(-1); 64 + } 65 + 66 + os_close_file(fd); 67 + return(0); 68 + } 69 + /* 70 + * Overrides for Emacs so that we follow Linus's tabbing style. 71 + * Emacs will notice this stuff at the end of the file and automatically 72 + * adjust the settings for this buffer only. This must remain at the end 73 + * of the file. 74 + * --------------------------------------------------------------------------- 75 + * Local variables: 76 + * c-file-style: "linux" 77 + * End: 78 + */