Ejemplo n.º 1
0
int init_module(address_t sct, address_t func) {
    int ret, ret2;
    address_t old_syscall;

    /* backup old system call, install kmalloc as system call */
    ret = read_syscall(sct, __NR_INIT_MODULE, &old_syscall);
    if (ret < 0) {
        fprintf(stderr, "jammod: failed to read syscall %u: %s\n",
                __NR_INIT_MODULE, strerror(errno));
        return 0;
    }

    ret = write_syscall(sct, __NR_INIT_MODULE, func);
    if (ret < 0) {
        fprintf(stderr, "jammod: failed to read syscall %u: %s\n",
                __NR_INIT_MODULE, strerror(errno));
        return 0;
    }

    /* do it */
    ret2 = INIT_MODULE();

    /* restore old system call */
    ret = write_syscall(sct, __NR_INIT_MODULE, old_syscall);
    if (ret < 0) {
        fprintf(stderr, "jammod: failed to restore syscall %u: %s\n",
                __NR_INIT_MODULE, strerror(errno));
    }

    return ret2;
}
Ejemplo n.º 2
0
int init_config(void)
{
	INIT_MODULE(him_odin);
	INIT_MODULE(vdev_raw);
	INIT_MODULE(partition);
	INIT_MODULE(raid0);
	INIT_MODULE(raid1);
	INIT_MODULE(raid5);
	INIT_MODULE(jbod);
	return 0;
}