コード例 #1
0
ファイル: irq.c プロジェクト: ChineseDr/linux
static void __init setup_vector(void)
{
    int i;
    unsigned long *ramvec, *ramvec_p;
    const h8300_vector *trap_entry;

    ramvec = get_vector_address();
    if (ramvec == NULL)
        panic("interrupt vector serup failed.");
    else
        pr_debug("virtual vector at 0x%p\n", ramvec);

    /* create redirect table */
    ramvec_p = ramvec;
    trap_entry = trap_table;
    for (i = 0; i < NR_IRQS; i++) {
        if (i < 12) {
            if (*trap_entry)
                *ramvec_p = VECTOR(*trap_entry);
            ramvec_p++;
            trap_entry++;
        } else
            *ramvec_p++ = REDIRECT(_interrupt_entry);
    }
    _interrupt_redirect_table = ramvec;
}
コード例 #2
0
ファイル: ints.c プロジェクト: 3sOx/asuswrt-merlin
void __init init_IRQ(void)
{
#if defined(CONFIG_RAMKERNEL)
	int i;
	unsigned long *ramvec,*ramvec_p;
	const unsigned long *trap_entry;
	const int *saved_vector;

	ramvec = get_vector_address();
	if (ramvec == NULL)
		panic("interrupt vector serup failed.");
	else
		printk(KERN_INFO "virtual vector at 0x%08lx\n",(unsigned long)ramvec);

	/* create redirect table */
	ramvec_p = ramvec;
	trap_entry = h8300_trap_table;
	saved_vector = h8300_saved_vectors;
	for ( i = 0; i < NR_IRQS; i++) {
		if (i == *saved_vector) {
			ramvec_p++;
			saved_vector++;
		} else {
			if ( i < NR_TRAPS ) {
				if (*trap_entry)
					*ramvec_p = VECTOR(*trap_entry);
				ramvec_p++;
				trap_entry++;
			} else
				*ramvec_p++ = REDIRECT(interrupt_entry);
		}
	}
	interrupt_redirect_table = ramvec;
#ifdef DUMP_VECTOR
	ramvec_p = ramvec;
	for (i = 0; i < NR_IRQS; i++) {
		if ((i % 8) == 0)
			printk(KERN_DEBUG "\n%p: ",ramvec_p);
		printk(KERN_DEBUG "%p ",*ramvec_p);
		ramvec_p++;
	}
	printk(KERN_DEBUG "\n");
#endif
#endif
}
コード例 #3
0
ファイル: ints.c プロジェクト: iPodLinux/linux-2.4.24-ipod
void __init init_IRQ(void)
{
#if defined(CONFIG_RAMKERNEL)
	int i;
	unsigned long *ramvec,*ramvec_p;
	unsigned long break_vec;

	ramvec = get_vector_address();
	if (ramvec == NULL)
		panic("interrupt vector serup failed.");
	else
		printk("virtual vector at 0x%08lx\n",(unsigned long)ramvec);

#if defined(CONFIG_GDB_DEBUG)
	/* save orignal break vector */
	break_vec = ramvec[TRAP3_VEC];
#else
	break_vec = VECTOR(trace_break);
#endif

	/* create redirect table */
	for (ramvec_p = ramvec, i = 0; i < NR_IRQS; i++)
		*ramvec_p++ = REDIRECT(interrupt_entry);

	/* set special vector */
	ramvec[TRAP0_VEC] = VECTOR(system_call);
	ramvec[TRAP3_VEC] = break_vec;
	interrupt_redirect_table = ramvec;
#ifdef DUMP_VECTOR
	ramvec_p = ramvec;
	for (i = 0; i < NR_IRQS; i++) {
		if ((i % 8) == 0)
			printk("\n%p: ",ramvec_p);
		printk("%p ",*ramvec_p);
		ramvec_p++;
	}
	printk("\n");
#endif
#endif
}
コード例 #4
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(ssize_t, readlinkat, int dirfd, const char *path,
                          char *buf, size_t bufsiz)
{
  REDIRECT(path);
  return ORIGCALL(readlinkat, dirfd, NEWPATH, buf, bufsiz);
}
コード例 #5
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, readlink, const char *path, char *buf, size_t bufsz)
{
  REDIRECT(path);
  return ORIGCALL(readlink, NEWPATH, buf, bufsz);
}
コード例 #6
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, open, const char *file, int flag)
{
  REDIRECT(file);
  return ORIGCALL(open, NEWPATH, flag);
}
コード例 #7
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, chdir, const char *file)
{
  REDIRECT(file);
  return ORIGCALL(chdir, NEWPATH);
}
コード例 #8
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, unlinkat, int dirfd, const char *path, int flags)
{
  REDIRECT(path);
  return ORIGCALL(unlinkat, dirfd, NEWPATH, flags);
}
コード例 #9
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, faccessat, int dirfd, const char *path, int mode, int flags)
{
  REDIRECT(path);
  return ORIGCALL(faccessat, dirfd, NEWPATH, mode, flags);
}
コード例 #10
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, mkdir, const char *path, mode_t mode)
{
  REDIRECT(path);
  return ORIGCALL(mkdir, NEWPATH, mode);
}
コード例 #11
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, fchmodat, int fd, const char *path, mode_t mode, int f)
{
  REDIRECT(path);
  return ORIGCALL(fchmodat, fd, NEWPATH, mode, f);
}
コード例 #12
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, fstatat, int fd, const char *path, struct stat* buf, int f)
{
  REDIRECT(path);
  return ORIGCALL(fstatat, fd, NEWPATH, buf, f);
}
コード例 #13
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, fchownat, int fd, const char *path, uid_t u, gid_t g, int f)
{
  REDIRECT(path);
  return ORIGCALL(fchownat, fd, NEWPATH, u, g, f);
}
コード例 #14
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, chown, const char *path, uid_t owner, gid_t group)
{
  REDIRECT(path);
  return ORIGCALL(chown, NEWPATH, owner, group);
}
コード例 #15
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(void*, dlopen, const char *path, int flag)
{
  REDIRECT(path);
  return ORIGCALL(dlopen, NEWPATH, flag);
}
コード例 #16
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, mknod, const char *path, mode_t mode, dev_t dev)
{
  REDIRECT(path);
  return ORIGCALL(mknod, NEWPATH, mode, dev);
}
コード例 #17
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, unlink, const char *path)
{
  REDIRECT(path);
  return ORIGCALL(unlink, NEWPATH);
}
コード例 #18
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, rmdir, const char *path)
{
  REDIRECT(path);
  return ORIGCALL(rmdir, NEWPATH);
}
コード例 #19
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, chmod, const char *path, mode_t mode)
{
  REDIRECT(path);
  return ORIGCALL(chmod, NEWPATH, mode);
}
コード例 #20
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, truncate, const char * path,off_t length)
{
  REDIRECT(path);
  return ORIGCALL(truncate, NEWPATH, length);
}
コード例 #21
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, access, const char *path, int flag)
{
  REDIRECT(path);
  return ORIGCALL(access, NEWPATH, flag);
}
コード例 #22
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, execve, const char * path,char * const argv[],char * const envp[])
{
  REDIRECT(path);
  return ORIGCALL(execve, NEWPATH, argv, envp);
}
コード例 #23
0
ファイル: IOHook.cpp プロジェクト: Andy10101/NativeIORedirect
HOOK(int, lstat, const char *path, struct stat *buf)
{
  REDIRECT(path);
  return ORIGCALL(lstat, NEWPATH, buf);
}