summaryrefslogtreecommitdiff
path: root/klibc
diff options
context:
space:
mode:
Diffstat (limited to 'klibc')
-rw-r--r--klibc/klibc/include/endian.h1
-rw-r--r--klibc/klibc/include/klibc/compiler.h34
-rw-r--r--klibc/version2
3 files changed, 36 insertions, 1 deletions
diff --git a/klibc/klibc/include/endian.h b/klibc/klibc/include/endian.h
index 10dbbd8a89..44f89ccbbc 100644
--- a/klibc/klibc/include/endian.h
+++ b/klibc/klibc/include/endian.h
@@ -5,6 +5,7 @@
#ifndef _ENDIAN_H
#define _ENDIAN_H
+#include <klibc/compiler.h>
#include <asm/byteorder.h>
/* Linux' asm/byteorder.h defines either __LITTLE_ENDIAN or
diff --git a/klibc/klibc/include/klibc/compiler.h b/klibc/klibc/include/klibc/compiler.h
index 64b8c54158..49872b89d4 100644
--- a/klibc/klibc/include/klibc/compiler.h
+++ b/klibc/klibc/include/klibc/compiler.h
@@ -65,4 +65,38 @@
# define __unusedfunc
#endif
+/* "pure" function:
+
+ Many functions have no effects except the return value and their
+ return value depends only on the parameters and/or global
+ variables. Such a function can be subject to common subexpression
+ elimination and loop optimization just as an arithmetic operator
+ would be. These functions should be declared with the attribute
+ `pure'.
+*/
+#ifdef __GNUC__
+# define __attribute_pure__ __attribute__((pure))
+#else
+# define __attribute_pure__
+#endif
+
+/* "const" function:
+
+ Many functions do not examine any values except their arguments,
+ and have no effects except the return value. Basically this is
+ just slightly more strict class than the `pure' attribute above,
+ since function is not allowed to read global memory.
+
+ Note that a function that has pointer arguments and examines the
+ data pointed to must _not_ be declared `const'. Likewise, a
+ function that calls a non-`const' function usually must not be
+ `const'. It does not make sense for a `const' function to return
+ `void'.
+*/
+#ifdef __GNUC__
+# define __attribute_const__ __attribute__((const))
+#else
+# define __attribute_const__
+#endif
+
#endif
diff --git a/klibc/version b/klibc/version
index f14cf6a1e0..4b0a18ac52 100644
--- a/klibc/version
+++ b/klibc/version
@@ -1 +1 @@
-0.107
+0.108