convert from svn repository: remove tags directory
[lttv.git] / trunk / markers-userspace / kernel-api.h
CommitLineData
99c5a086 1/*
2 * Kernel API extracted from Linux kernel headers.
3 */
4
5#ifndef __KERNEL_API
6#define __KERNEL_API
7
c604f8bf 8#include <errno.h>
9#include <syscall.h>
10#include <string.h>
11#include <stdint.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
99c5a086 17#define DECLARE_IMV(type, name) extern __typeof__(type) name##__imv
18#define DEFINE_IMV(type, name) __typeof__(type) name##__imv
19
20#define likely(x) __builtin_expect(!!(x), 1)
21#define unlikely(x) __builtin_expect(!!(x), 0)
22
23/**
24 * imv_read - read immediate variable
25 * @name: immediate value name
26 *
27 * Reads the value of @name.
28 */
29#define imv_read(name) _imv_read(name)
30
31/**
32 * _imv_read - Read immediate value with standard memory load.
33 * @name: immediate value name
34 *
35 * Force a data read of the immediate value instead of the immediate value
36 * based mechanism. Useful for __init and __exit section data read.
37 */
38#define _imv_read(name) (name##__imv)
39
3be48142 40#ifdef __i386__
7129e44e 41#define __NR_marker 333
42#define __NR_trace 334
3be48142 43#elif defined(__x86_64__)
7129e44e 44#define __NR_marker 295
45#define __NR_trace 296
3be48142 46#else
47#error "Unsupported architecture for userspace markers"
48#endif
c604f8bf 49
50#define sys_marker(...) syscall(__NR_marker, __VA_ARGS__)
37fac847 51#define sys_trace(...) syscall(__NR_trace, __VA_ARGS__)
c604f8bf 52
53#ifdef __cplusplus
54} /* end of extern "C" */
55#endif
56
99c5a086 57#endif
This page took 0.028162 seconds and 4 git commands to generate.