fdev: Simplify the code 39/15739/1
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 24 Jul 2018 14:50:00 +0000 (16:50 +0200)
committerJose Bollo <jose.bollo@iot.bzh>
Wed, 25 Jul 2018 13:12:48 +0000 (15:12 +0200)
Less code is faster and safer.

Change-Id: Ide71fec5ee80f14482e2972a3d0f65ef0b589f12
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/fdev.c
src/fdev.h

index a8f3695..03dc3ef 100644 (file)
@@ -27,7 +27,6 @@ struct fdev
 {
        int fd;
        uint32_t events;
-       int repeat;
        unsigned refcount;
        struct fdev_itf *itf;
        void *closure_itf;
@@ -45,7 +44,6 @@ struct fdev *fdev_create(int fd)
        else {
                fdev->fd = fd;
                fdev->refcount = 3; /* set autoclose by default */
-               fdev->repeat = -1; /* always repeat by default */
        }
        return fdev;
 }
@@ -58,8 +56,6 @@ void fdev_set_itf(struct fdev *fdev, struct fdev_itf *itf, void *closure_itf)
 
 void fdev_dispatch(struct fdev *fdev, uint32_t events)
 {
-       if (fdev->repeat > 0 && !--fdev->repeat && fdev->itf)
-               fdev->itf->disable(fdev->closure_itf, fdev);
        if (fdev->callback)
                fdev->callback(fdev->closure_callback, events, fdev);
 }
@@ -95,11 +91,6 @@ uint32_t fdev_events(const struct fdev *fdev)
        return fdev->events;
 }
 
-int fdev_repeat(const struct fdev *fdev)
-{
-       return fdev->repeat;
-}
-
 int fdev_autoclose(const struct fdev *fdev)
 {
        return 1 & fdev->refcount;
@@ -107,7 +98,7 @@ int fdev_autoclose(const struct fdev *fdev)
 
 static inline int is_active(struct fdev *fdev)
 {
-       return fdev->repeat && fdev->callback;
+       return !!fdev->callback;
 }
 
 static inline void update_activity(struct fdev *fdev, int old_active)
@@ -140,15 +131,6 @@ void fdev_set_events(struct fdev *fdev, uint32_t events)
        }
 }
 
-void fdev_set_repeat(struct fdev *fdev, int count)
-{
-       int oa;
-
-       oa = is_active(fdev);
-       fdev->repeat = count;
-       update_activity(fdev, oa);
-}
-
 void fdev_set_autoclose(struct fdev *fdev, int autoclose)
 {
        if (autoclose)
index 1e2f49f..c9d7443 100644 (file)
@@ -40,10 +40,8 @@ extern void fdev_unref(struct fdev *fdev);
 
 extern int fdev_fd(const struct fdev *fdev);
 extern uint32_t fdev_events(const struct fdev *fdev);
-extern int fdev_repeat(const struct fdev *fdev);
 extern int fdev_autoclose(const struct fdev *fdev);
 
 extern void fdev_set_callback(struct fdev *fdev, void (*callback)(void*,uint32_t,struct fdev*), void *closure);
 extern void fdev_set_events(struct fdev *fdev, uint32_t events);
-extern void fdev_set_repeat(struct fdev *fdev, int count);
 extern void fdev_set_autoclose(struct fdev *fdev, int autoclose);