Module: xenomai-gch
Branch: for-forge
Commit: 1c20691202e1d5200c02f6fd5617103a8f5e2637
URL:    
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=1c20691202e1d5200c02f6fd5617103a8f5e2637

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Fri Nov 11 19:07:31 2011 +0100

nucleus: remove /proc/xenomai/interfaces

---

 include/cobalt/nucleus/shadow.h |    8 ---
 kernel/cobalt/nucleus/pod.c     |    2 -
 kernel/cobalt/nucleus/shadow.c  |   96 ---------------------------------------
 3 files changed, 0 insertions(+), 106 deletions(-)

diff --git a/include/cobalt/nucleus/shadow.h b/include/cobalt/nucleus/shadow.h
index fb72be7..ddbe03b 100644
--- a/include/cobalt/nucleus/shadow.h
+++ b/include/cobalt/nucleus/shadow.h
@@ -97,12 +97,4 @@ void xnshadow_demote(struct xnthread *thread);
 }
 #endif
 
-#ifdef CONFIG_XENO_OPT_VFILE
-void xnshadow_init_proc(void);
-void xnshadow_cleanup_proc(void);
-#else /* !CONFIG_XENO_OPT_VFILE */
-static inline void xnshadow_init_proc(void) { }
-static inline void xnshadow_cleanup_proc(void) { }
-#endif /* CONFIG_XENO_OPT_VFILE */
-
 #endif /* !_XENO_NUCLEUS_SHADOW_H */
diff --git a/kernel/cobalt/nucleus/pod.c b/kernel/cobalt/nucleus/pod.c
index 17cdf4c..f7420ee 100644
--- a/kernel/cobalt/nucleus/pod.c
+++ b/kernel/cobalt/nucleus/pod.c
@@ -3148,7 +3148,6 @@ int __init xnpod_init_proc(void)
        xntimer_init_proc();
        xnheap_init_proc();
        xnintr_init_proc();
-       xnshadow_init_proc();
 
        xnvfile_init_regular("latency", &latency_vfile, &nkvfroot);
        xnvfile_init_regular("version", &version_vfile, &nkvfroot);
@@ -3177,7 +3176,6 @@ void xnpod_cleanup_proc(void)
        xnvfile_destroy_regular(&version_vfile);
        xnvfile_destroy_regular(&latency_vfile);
 
-       xnshadow_cleanup_proc();
        xnintr_cleanup_proc();
        xnheap_cleanup_proc();
        xntimer_cleanup_proc();
diff --git a/kernel/cobalt/nucleus/shadow.c b/kernel/cobalt/nucleus/shadow.c
index c28c845..991438b 100644
--- a/kernel/cobalt/nucleus/shadow.c
+++ b/kernel/cobalt/nucleus/shadow.c
@@ -76,10 +76,6 @@ EXPORT_SYMBOL_GPL(nkmmptd);
 
 struct xnskin_slot {
        struct xnskin_props *props;
-       atomic_counter_t refcnt;
-#ifdef CONFIG_XENO_OPT_VFILE
-       struct xnvfile_regular vfile;
-#endif
 } skins[XENOMAI_SKINS_NR];
 
 static int lostage_apc;
@@ -336,20 +332,6 @@ static inline void unlock_timers(void)
                clrbits(nkclock.status, XNTBLCK);
 }
 
-static void xnshadow_dereference_skin(unsigned magic)
-{
-       struct xnskin_slot *sslt;
-       int muxid;
-
-       for (muxid = 0; muxid < XENOMAI_SKINS_NR; muxid++) {
-               sslt = skins + muxid;
-               if (sslt->props && sslt->props->magic == magic) {
-                       xnarch_atomic_dec(&sslt->refcnt);
-                       break;
-               }
-       }
-}
-
 static void lostage_handler(void *cookie)
 {
        int cpu, reqnum, type, arg, sig, sigarg;
@@ -375,8 +357,6 @@ static void lostage_handler(void *cookie)
 
                switch (type) {
                case LO_UNMAP_REQ:
-                       xnshadow_dereference_skin(arg);
-
                        /* fall through */
                case LO_WAKEUP_REQ:
                        xnpod_schedule();
@@ -960,8 +940,6 @@ int xnshadow_map(xnthread_t *thread, xncompletion_t __user 
*u_completion,
        struct xnthread_start_attr attr;
        xnarch_cpumask_t affinity;
        struct xnsys_ppd *sys_ppd;
-       unsigned int muxid, magic;
-       struct xnskin_slot *sslt;
        unsigned long *u_mode;
        xnheap_t *sem_heap;
        spl_t s;
@@ -990,17 +968,6 @@ int xnshadow_map(xnthread_t *thread, xncompletion_t __user 
*u_completion,
                        return ret;
 #endif /* CONFIG_MMU */
 
-       /* Increment the interface reference count. */
-       magic = xnthread_get_magic(thread);
-
-       for (muxid = 0; muxid < XENOMAI_SKINS_NR; muxid++) {
-               sslt = skins + muxid;
-               if (sslt->props && sslt->props->magic == magic) {
-                       xnarch_atomic_inc(&sslt->refcnt);
-                       break;
-               }
-       }
-
        xnlock_get_irqsave(&nklock, s);
        sys_ppd = xnsys_ppd_get(0);
        xnlock_put_irqrestore(&nklock, s);
@@ -1870,7 +1837,6 @@ static void *xnshadow_sys_event(int event, void *data)
                        return ERR_PTR(-ENOMEM);
                }
 
-               xnarch_atomic_set(&p->refcnt, 1);
                exe_path = get_exe_path(current);
                if (IS_ERR(exe_path)) {
                        printk(KERN_WARNING
@@ -1880,14 +1846,11 @@ static void *xnshadow_sys_event(int event, void *data)
                }
                p->exe_path = exe_path;
 
-               xnarch_atomic_inc(&skins[0].refcnt);
-
                return &p->ppd;
 
        case XNSHADOW_CLIENT_DETACH:
                p = ppd2sys(data);
                xnheap_destroy_mapped(&p->sem_heap, post_ppd_release, NULL);
-               xnarch_atomic_dec(&skins[0].refcnt);
                if (p->exe_path)
                        kfree(p->exe_path);
 
@@ -2283,7 +2246,6 @@ static inline void do_taskexit_event(struct task_struct 
*p)
        if (!xnarch_atomic_get(&sys_ppd->refcnt))
                ppd_remove_mm(xnshadow_mm(p), &detach_ppd);
 
-       xnshadow_dereference_skin(magic);
        trace_mark(xn_nucleus, shadow_exit, "thread %p thread_name %s",
                   thread, xnthread_name(thread));
 }
@@ -2480,47 +2442,6 @@ static inline void do_cleanup_event(struct mm_struct *mm)
 
 RTHAL_DECLARE_CLEANUP_EVENT(cleanup_event);
 
-#ifdef CONFIG_XENO_OPT_VFILE
-
-static struct xnvfile_directory iface_vfroot;
-
-static int iface_vfile_show(struct xnvfile_regular_iterator *it, void *data)
-{
-       struct xnskin_slot *sslt;
-       int refcnt;
-
-       sslt = container_of(it->vfile, struct xnskin_slot, vfile);
-       refcnt = xnarch_atomic_get(&sslt->refcnt);
-       xnvfile_printf(it, "%d\n", refcnt);
-
-       return 0;
-}
-
-static struct xnvfile_regular_ops iface_vfile_ops = {
-       .show = iface_vfile_show,
-};
-
-void xnshadow_init_proc(void)
-{
-       xnvfile_init_dir("interfaces", &iface_vfroot, &nkvfroot);
-}
-
-void xnshadow_cleanup_proc(void)
-{
-       struct xnskin_slot *sslt;
-       int muxid;
-
-       for (muxid = 0; muxid < XENOMAI_SKINS_NR; muxid++) {
-               sslt = skins + muxid;
-               if (sslt->props && sslt->props->name)
-                       xnvfile_destroy_regular(&sslt->vfile);
-       }
-
-       xnvfile_destroy_dir(&iface_vfroot);
-}
-
-#endif /* CONFIG_XENO_OPT_VFILE */
-
 /*
  * xnshadow_register_interface() -- Register a new skin/interface.
  * NOTE: an interface can be registered without its pod being
@@ -2564,7 +2485,6 @@ int xnshadow_register_interface(struct xnskin_props 
*props)
                sslt = skins + muxid;
                if (sslt->props == NULL) {
                        sslt->props = props;
-                       xnarch_atomic_set(&sslt->refcnt, 0);
                        break;
                }
        }
@@ -2576,13 +2496,6 @@ int xnshadow_register_interface(struct xnskin_props 
*props)
                return -EAGAIN;
        }
 
-#ifdef CONFIG_XENO_OPT_VFILE
-       memset(&sslt->vfile, 0, sizeof(sslt->vfile));
-       sslt->vfile.ops = &iface_vfile_ops;
-       xnvfile_init_regular(props->name, &sslt->vfile,
-                            &iface_vfroot);
-#endif
-
        up(&registration_mutex);
 
        return muxid;
@@ -2609,19 +2522,10 @@ int xnshadow_unregister_interface(int muxid)
 
        xnlock_get_irqsave(&nklock, s);
 
-       if (xnarch_atomic_get(&sslt->refcnt) > 0) {
-               xnlock_put_irqrestore(&nklock, s);
-               up(&registration_mutex);
-               return -EBUSY;
-       }
        sslt->props = NULL;
 
        xnlock_put_irqrestore(&nklock, s);
 
-#ifdef CONFIG_XENO_OPT_VFILE
-       xnvfile_destroy_regular(&sslt->vfile);
-#endif
-
        up(&registration_mutex);
 
        return 0;


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to