module.c (83321) | module.c (86469) |
---|---|
1/*- 2 * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/boot/common/module.c 83321 2001-09-11 01:09:24Z peter $ | 26 * $FreeBSD: head/sys/boot/common/module.c 86469 2001-11-16 21:08:40Z iedowse $ |
27 */ 28 29/* 30 * file/module function dispatcher, support, etc. 31 */ 32 33#include <stand.h> 34#include <string.h> --- 12 unchanged lines hidden (view full) --- 47 u_char *d_hints; /* content of linker.hints file */ 48 int d_hintsz; /* size of hints data */ 49 int d_flags; 50 STAILQ_ENTRY(moduledir) d_link; 51}; 52 53static int file_load(char *filename, vm_offset_t dest, struct preloaded_file **result); 54static int file_loadraw(char *type, char *name); | 27 */ 28 29/* 30 * file/module function dispatcher, support, etc. 31 */ 32 33#include <stand.h> 34#include <string.h> --- 12 unchanged lines hidden (view full) --- 47 u_char *d_hints; /* content of linker.hints file */ 48 int d_hintsz; /* size of hints data */ 49 int d_flags; 50 STAILQ_ENTRY(moduledir) d_link; 51}; 52 53static int file_load(char *filename, vm_offset_t dest, struct preloaded_file **result); 54static int file_loadraw(char *type, char *name); |
55static int file_load_dependancies(struct preloaded_file *base_mod); | 55static int file_load_dependencies(struct preloaded_file *base_mod); |
56static char * file_search(const char *name, char **extlist); 57static struct kernel_module * file_findmodule(struct preloaded_file *fp, char *modname, struct mod_depend *verinfo); 58static int file_havepath(const char *name); 59static char *mod_searchmodule(char *name, struct mod_depend *verinfo); 60static void file_insert_tail(struct preloaded_file *mp); 61struct file_metadata* metadata_next(struct file_metadata *base_mp, int type); 62static void moduledir_readhints(struct moduledir *mdp); 63static void moduledir_rebuild(void); --- 186 unchanged lines hidden (view full) --- 250 filename, strerror(error)); 251 break; 252 } 253 } 254 return (error); 255} 256 257static int | 56static char * file_search(const char *name, char **extlist); 57static struct kernel_module * file_findmodule(struct preloaded_file *fp, char *modname, struct mod_depend *verinfo); 58static int file_havepath(const char *name); 59static char *mod_searchmodule(char *name, struct mod_depend *verinfo); 60static void file_insert_tail(struct preloaded_file *mp); 61struct file_metadata* metadata_next(struct file_metadata *base_mp, int type); 62static void moduledir_readhints(struct moduledir *mdp); 63static void moduledir_rebuild(void); --- 186 unchanged lines hidden (view full) --- 250 filename, strerror(error)); 251 break; 252 } 253 } 254 return (error); 255} 256 257static int |
258file_load_dependancies(struct preloaded_file *base_file) { | 258file_load_dependencies(struct preloaded_file *base_file) { |
259 struct file_metadata *md; 260 struct preloaded_file *fp; 261 struct mod_depend *verinfo; 262 struct kernel_module *mp; 263 char *dmodname; 264 int error; 265 266 md = file_findmetadata(base_file, MODINFOMD_DEPLIST); --- 171 unchanged lines hidden (view full) --- 438 439 do { 440 err = file_load(filename, loadaddr, &fp); 441 if (err) 442 break; 443 fp->f_args = unargv(argc, argv); 444 loadaddr = fp->f_addr + fp->f_size; 445 file_insert_tail(fp); /* Add to the list of loaded files */ | 259 struct file_metadata *md; 260 struct preloaded_file *fp; 261 struct mod_depend *verinfo; 262 struct kernel_module *mp; 263 char *dmodname; 264 int error; 265 266 md = file_findmetadata(base_file, MODINFOMD_DEPLIST); --- 171 unchanged lines hidden (view full) --- 438 439 do { 440 err = file_load(filename, loadaddr, &fp); 441 if (err) 442 break; 443 fp->f_args = unargv(argc, argv); 444 loadaddr = fp->f_addr + fp->f_size; 445 file_insert_tail(fp); /* Add to the list of loaded files */ |
446 if (file_load_dependancies(fp) != 0) { | 446 if (file_load_dependencies(fp) != 0) { |
447 err = ENOENT; 448 last_file->f_next = NULL; 449 loadaddr = last_file->f_addr + last_file->f_size; 450 fp = NULL; 451 break; 452 } 453 } while(0); 454 if (err == EFTYPE) --- 504 unchanged lines hidden --- | 447 err = ENOENT; 448 last_file->f_next = NULL; 449 loadaddr = last_file->f_addr + last_file->f_size; 450 fp = NULL; 451 break; 452 } 453 } while(0); 454 if (err == EFTYPE) --- 504 unchanged lines hidden --- |