summaryrefslogtreecommitdiff
path: root/apps/plugin.h
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2014-04-28 09:15:06 -0400
committerMichael Sevakis <jethead71@rockbox.org>2014-05-09 23:14:58 +0200
commit355b5406fafe0d45285e70a0b01d5e674d6a2c16 (patch)
treeb17e42d8e36182280cf7399c9063a6db8b2f4fc9 /apps/plugin.h
parentf444ae70ebe9c978818bf473d176538244b4559e (diff)
downloadrockbox-355b5406fafe0d45285e70a0b01d5e674d6a2c16.tar.gz
rockbox-355b5406fafe0d45285e70a0b01d5e674d6a2c16.zip
Make errno a thread-local variable.
errno is supposed to be thread local and we do that here in a rather makeshift way by implementing a function that returns a pointer to the __errno variable in the thread block. If more serious TLS is required, perhaps it would be worthwhile implementing it using the linker and the "__thread" storage attribute. That's a bit overkill just for this. I'm also not liking what I saw the compiler producing. Change-Id: I03bc0bd6a89f6e3d6bae7653284ee01054614f9a Reviewed-on: http://gerrit.rockbox.org/803 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested: Michael Sevakis <jethead71@rockbox.org>
Diffstat (limited to 'apps/plugin.h')
-rw-r--r--apps/plugin.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/apps/plugin.h b/apps/plugin.h
index 6a15f86919..fd4e468b91 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -160,12 +160,12 @@ void* plugin_get_buffer(size_t *buffer_size);
160#define PLUGIN_MAGIC 0x526F634B /* RocK */ 160#define PLUGIN_MAGIC 0x526F634B /* RocK */
161 161
162/* increase this every time the api struct changes */ 162/* increase this every time the api struct changes */
163#define PLUGIN_API_VERSION 229 163#define PLUGIN_API_VERSION 230
164 164
165/* update this to latest version if a change to the api struct breaks 165/* update this to latest version if a change to the api struct breaks
166 backwards compatibility (and please take the opportunity to sort in any 166 backwards compatibility (and please take the opportunity to sort in any
167 new function which are "waiting" at the end of the function table) */ 167 new function which are "waiting" at the end of the function table) */
168#define PLUGIN_MIN_API_VERSION 228 168#define PLUGIN_MIN_API_VERSION 230
169 169
170/* plugin return codes */ 170/* plugin return codes */
171/* internal returns start at 0x100 to make exit(1..255) work */ 171/* internal returns start at 0x100 to make exit(1..255) work */
@@ -829,7 +829,7 @@ struct plugin_api {
829 829
830 /* misc */ 830 /* misc */
831#if (CONFIG_PLATFORM & PLATFORM_NATIVE) 831#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
832 int* __errno; 832 int * (*__errno)(void);
833#endif 833#endif
834 void (*srand)(unsigned int seed); 834 void (*srand)(unsigned int seed);
835 int (*rand)(void); 835 int (*rand)(void);