Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Merge branch 'devel'
[palacios.git] / kitten / include / lwk / linkage.h
1 #ifndef _LWK_LINKAGE_H
2 #define _LWK_LINKAGE_H
3
4 #include <arch/linkage.h>
5
6 #ifdef __cplusplus
7 #define CPP_ASMLINKAGE extern "C"
8 #else
9 #define CPP_ASMLINKAGE
10 #endif
11
12 #ifndef asmlinkage
13 #define asmlinkage CPP_ASMLINKAGE
14 #endif
15
16 #ifndef prevent_tail_call
17 # define prevent_tail_call(ret) do { } while (0)
18 #endif
19
20 #ifndef __ALIGN
21 #define __ALIGN         .align 4,0x90
22 #define __ALIGN_STR     ".align 4,0x90"
23 #endif
24
25 #ifdef __ASSEMBLY__
26
27 #define ALIGN __ALIGN
28 #define ALIGN_STR __ALIGN_STR
29
30 #ifndef ENTRY
31 #define ENTRY(name) \
32   .globl name; \
33   ALIGN; \
34   name:
35 #endif
36
37 #define KPROBE_ENTRY(name) \
38   .section .kprobes.text, "ax"; \
39   ENTRY(name)
40
41 #ifndef END
42 #define END(name) \
43   .size name, .-name
44 #endif
45
46 #ifndef ENDPROC
47 #define ENDPROC(name) \
48   .type name, @function; \
49   END(name)
50 #endif
51
52 #endif
53
54 #define NORET_TYPE    /**/
55 #define ATTRIB_NORET  __attribute__((noreturn))
56 #define NORET_AND     noreturn,
57
58 #ifndef FASTCALL
59 #define FASTCALL(x)     x
60 #define fastcall
61 #endif
62
63 #endif