Module: xenomai-gch Branch: for-forge Commit: 69822314e9a4a71f9bf5bf9c5c8717a13a96c5df URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=69822314e9a4a71f9bf5bf9c5c8717a13a96c5df
Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> Date: Sun Dec 11 20:03:08 2011 +0100 cobalt: remove errno --- include/asm-generic/syscall.h | 4 ---- include/cobalt/nucleus/thread.h | 4 ---- kernel/cobalt/clock.c | 2 +- kernel/cobalt/nucleus/shadow.c | 6 +----- kernel/cobalt/nucleus/thread.c | 20 -------------------- kernel/cobalt/thread.h | 10 ---------- 6 files changed, 2 insertions(+), 44 deletions(-) diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h index 97894ae..6391b33 100644 --- a/include/asm-generic/syscall.h +++ b/include/asm-generic/syscall.h @@ -138,12 +138,8 @@ struct xnsysent { extern int nkthrptd; -extern int nkerrptd; - #define xnshadow_thrptd(t) ((t)->ptd[nkthrptd]) #define xnshadow_thread(t) ((xnthread_t *)xnshadow_thrptd(t)) -/* The errno field must be addressable for plain Linux tasks too. */ -#define xnshadow_errno(t) (*(int *)&((t)->ptd[nkerrptd])) #define access_rok(addr, size) access_ok(VERIFY_READ, (addr), (size)) #define access_wok(addr, size) access_ok(VERIFY_WRITE, (addr), (size)) diff --git a/include/cobalt/nucleus/thread.h b/include/cobalt/nucleus/thread.h index b8c4511..c55bbd7 100644 --- a/include/cobalt/nucleus/thread.h +++ b/include/cobalt/nucleus/thread.h @@ -271,8 +271,6 @@ typedef struct xnthread { struct xnselector *selector; /* For select. */ - int errcode; /* Local errno */ - xnasr_t asr; /* Asynchronous service routine */ xnflags_t asrmode; /* Thread's mode for ASR */ @@ -437,8 +435,6 @@ void xnthread_cleanup_tcb(struct xnthread *thread); char *xnthread_format_status(xnflags_t status, char *buf, int size); -int *xnthread_get_errno_location(struct xnthread *thread); - xnticks_t xnthread_get_timeout(struct xnthread *thread, xnticks_t tsc_ns); xnticks_t xnthread_get_period(struct xnthread *thread); diff --git a/kernel/cobalt/clock.c b/kernel/cobalt/clock.c index 5d31e5d..95f783d 100644 --- a/kernel/cobalt/clock.c +++ b/kernel/cobalt/clock.c @@ -175,7 +175,7 @@ int cobalt_clock_gettime(clockid_t clock_id, struct timespec __user *u_ts) if (err == 0 && __xn_safe_copy_to_user(u_ts, &ts, sizeof(*u_ts))) return -EFAULT; - return err ? -thread_get_errno() : 0; + return err; } int cobalt_clock_settime(clockid_t clock_id, const struct timespec __user *u_ts) diff --git a/kernel/cobalt/nucleus/shadow.c b/kernel/cobalt/nucleus/shadow.c index 15430f1..7f06fe3 100644 --- a/kernel/cobalt/nucleus/shadow.c +++ b/kernel/cobalt/nucleus/shadow.c @@ -66,8 +66,6 @@ MODULE_PARM_DESC(xenomai_gid, "GID of the group with access to Xenomai services" int nkthrptd; EXPORT_SYMBOL_GPL(nkthrptd); -int nkerrptd; -EXPORT_SYMBOL_GPL(nkerrptd); int nkmmptd; EXPORT_SYMBOL_GPL(nkmmptd); @@ -2589,10 +2587,9 @@ int xnshadow_mount(void) sema_init(&completion_mutex, 1); nkthrptd = rthal_alloc_ptdkey(); - nkerrptd = rthal_alloc_ptdkey(); nkmmptd = rthal_alloc_ptdkey(); - if (nkthrptd < 0 || nkerrptd < 0 || nkmmptd < 0) { + if (nkthrptd < 0 || nkmmptd < 0) { printk(KERN_ERR "Xenomai: cannot allocate PTD slots\n"); return -ENOMEM; } @@ -2691,7 +2688,6 @@ void xnshadow_cleanup(void) } rthal_apc_free(lostage_apc); - rthal_free_ptdkey(nkerrptd); rthal_free_ptdkey(nkthrptd); mayday_cleanup_page(); diff --git a/kernel/cobalt/nucleus/thread.c b/kernel/cobalt/nucleus/thread.c index f9e139f..b5132de 100644 --- a/kernel/cobalt/nucleus/thread.c +++ b/kernel/cobalt/nucleus/thread.c @@ -137,7 +137,6 @@ int xnthread_init(struct xnthread *thread, thread->wwake = NULL; thread->wcontext = NULL; thread->hrescnt = 0; - thread->errcode = 0; thread->registry.handle = XN_NO_HANDLE; thread->registry.waitkey = NULL; memset(&thread->stat, 0, sizeof(thread->stat)); @@ -253,25 +252,6 @@ char *xnthread_format_status(xnflags_t status, char *buf, int size) return buf; } -int *xnthread_get_errno_location(xnthread_t *thread) -{ - static int fallback_errno; - - if (unlikely(!xnpod_active_p())) - return &fallback_errno; - -#ifndef __XENO_SIM__ - if (xnthread_test_state(thread, XNSHADOW)) - return &thread->errcode; - - if (xnthread_test_state(thread, XNROOT)) - return &xnshadow_errno(current); -#endif /* !__XENO_SIM__ */ - - return &thread->errcode; -} -EXPORT_SYMBOL_GPL(xnthread_get_errno_location); - xnticks_t xnthread_get_timeout(xnthread_t *thread, xnticks_t tsc_ns) { xnticks_t timeout; diff --git a/kernel/cobalt/thread.h b/kernel/cobalt/thread.h index b7752b2..162cd42 100644 --- a/kernel/cobalt/thread.h +++ b/kernel/cobalt/thread.h @@ -82,16 +82,6 @@ struct cobalt_thread { #define cobalt_current_thread() thread2pthread(xnpod_current_thread()) -static inline void thread_set_errno(int err) -{ - *xnthread_get_errno_location(xnpod_current_thread()) = err; -} - -static inline int thread_get_errno(void) -{ - return *xnthread_get_errno_location(xnpod_current_thread()); -} - #define thread_name(thread) ((thread)->attr.name) pthread_t cobalt_thread_find(const struct cobalt_hkey *hkey); _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git