2 ** Copyright 2001, Travis Geiselbrecht. All rights reserved.
3 ** Distributed under the terms of the NewOS License.
5 #include <kernel/kernel.h>
6 #include <boot/stage2.h>
7 #include <kernel/dev.h>
8 #include <kernel/vfs.h>
9 #include <kernel/debug.h>
10 #include <kernel/elf.h>
14 int dev_init(kernel_args
*ka
)
16 dprintf("dev_init: entry\n");
21 int dev_scan_drivers(kernel_args
*ka
)
26 fd
= sys_open("/boot/addons/dev", STREAM_TYPE_DIR
, 0);
29 char buf
[SYS_MAX_NAME_LEN
];
31 while((len
= sys_read(fd
, buf
, 0, sizeof(buf
))) > 0) {
32 dprintf("loading '%s' dev module\n", buf
);
33 dev_load_dev_module(buf
);
40 image_id
dev_load_dev_module(const char *name
)
44 char path
[SYS_MAX_PATH_LEN
];
46 sprintf(path
, "/boot/addons/dev/%s", name
);
48 id
= elf_load_kspace(path
, "");
52 bootstrap
= (void *)elf_lookup_symbol(id
, "dev_bootstrap");
54 return ERR_VFS_INVALID_FS
;