cregit-Linux how code gets into the kernel

Release 4.14 arch/x86/um/vdso/um_vdso.c

Directory: arch/x86/um/vdso
/*
 * Copyright (C) 2011 Richard Weinberger <richrd@nod.at>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This vDSO turns all calls into a syscall so that UML can trap them.
 */


/* Disable profiling for userspace code */

#define DISABLE_BRANCH_PROFILING

#include <linux/time.h>
#include <linux/getcpu.h>
#include <asm/unistd.h>


int __vdso_clock_gettime(clockid_t clock, struct timespec *ts) { long ret; asm("syscall" : "=a" (ret) : "0" (__NR_clock_gettime), "D" (clock), "S" (ts) : "memory"); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
Richard Weinberger20100.00%1100.00%
Total20100.00%1100.00%

int clock_gettime(clockid_t, struct timespec *) __attribute__((weak, alias("__vdso_clock_gettime")));
int __vdso_gettimeofday(struct timeval *tv, struct timezone *tz) { long ret; asm("syscall" : "=a" (ret) : "0" (__NR_gettimeofday), "D" (tv), "S" (tz) : "memory"); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
Richard Weinberger22100.00%1100.00%
Total22100.00%1100.00%

int gettimeofday(struct timeval *, struct timezone *) __attribute__((weak, alias("__vdso_gettimeofday")));
time_t __vdso_time(time_t *t) { long secs; asm volatile("syscall" : "=a" (secs) : "0" (__NR_time), "D" (t) : "cc", "r11", "cx", "memory"); return secs; }

Contributors

PersonTokensPropCommitsCommitProp
Richard Weinberger18100.00%1100.00%
Total18100.00%1100.00%

int time(time_t *t) __attribute__((weak, alias("__vdso_time")));
long __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused) { /* * UML does not support SMP, we can cheat here. :) */ if (cpu) *cpu = 0; if (node) *node = 0; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Richard Weinberger40100.00%1100.00%
Total40100.00%1100.00%

long getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache) __attribute__((weak, alias("__vdso_getcpu")));

Overall Contributors

PersonTokensPropCommitsCommitProp
Richard Weinberger193100.00%1100.00%
Total193100.00%1100.00%
Directory: arch/x86/um/vdso
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.