Changeset 13840c1 in rtems-libbsd


Ignore:
Timestamp:
Sep 24, 2018, 11:40:35 AM (7 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
647dd08ae2aa69b935c2847ea450fb824322ecae, c6261f97870562d4c797cfb1ff1ba0affb85a916
Children:
7e8e177
Parents:
b42dea9
git-author:
Sebastian Huber <sebastian.huber@…> (09/24/18 11:40:35)
git-committer:
Sebastian Huber <sebastian.huber@…> (09/25/18 08:01:28)
Message:

Update gpio interface

Update #3525.

Location:
rtemsbsd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • rtemsbsd/include/rtems/bsd/local/gpio_if.h

    rb42dea9 r13840c1  
    2626{
    2727        kobjop_t _m;
     28        device_t rc;
    2829        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_get_bus);
    29         return ((gpio_get_bus_t *) _m)(dev);
     30        rc = ((gpio_get_bus_t *) _m)(dev);
     31        return (rc);
    3032}
    3133
     
    3840{
    3941        kobjop_t _m;
     42        int rc;
    4043        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_max);
    41         return ((gpio_pin_max_t *) _m)(dev, maxpin);
     44        rc = ((gpio_pin_max_t *) _m)(dev, maxpin);
     45        return (rc);
    4246}
    4347
     
    5155{
    5256        kobjop_t _m;
     57        int rc;
    5358        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_set);
    54         return ((gpio_pin_set_t *) _m)(dev, pin_num, pin_value);
     59        rc = ((gpio_pin_set_t *) _m)(dev, pin_num, pin_value);
     60        return (rc);
    5561}
    5662
     
    6470{
    6571        kobjop_t _m;
     72        int rc;
    6673        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_get);
    67         return ((gpio_pin_get_t *) _m)(dev, pin_num, pin_value);
     74        rc = ((gpio_pin_get_t *) _m)(dev, pin_num, pin_value);
     75        return (rc);
    6876}
    6977
     
    7684{
    7785        kobjop_t _m;
     86        int rc;
    7887        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_toggle);
    79         return ((gpio_pin_toggle_t *) _m)(dev, pin_num);
     88        rc = ((gpio_pin_toggle_t *) _m)(dev, pin_num);
     89        return (rc);
    8090}
    8191
     
    8999{
    90100        kobjop_t _m;
     101        int rc;
    91102        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_getcaps);
    92         return ((gpio_pin_getcaps_t *) _m)(dev, pin_num, caps);
     103        rc = ((gpio_pin_getcaps_t *) _m)(dev, pin_num, caps);
     104        return (rc);
    93105}
    94106
     
    103115{
    104116        kobjop_t _m;
     117        int rc;
    105118        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_getflags);
    106         return ((gpio_pin_getflags_t *) _m)(dev, pin_num, flags);
     119        rc = ((gpio_pin_getflags_t *) _m)(dev, pin_num, flags);
     120        return (rc);
    107121}
    108122
     
    115129{
    116130        kobjop_t _m;
     131        int rc;
    117132        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_getname);
    118         return ((gpio_pin_getname_t *) _m)(dev, pin_num, name);
     133        rc = ((gpio_pin_getname_t *) _m)(dev, pin_num, name);
     134        return (rc);
    119135}
    120136
     
    128144{
    129145        kobjop_t _m;
     146        int rc;
    130147        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_setflags);
    131         return ((gpio_pin_setflags_t *) _m)(dev, pin_num, flags);
     148        rc = ((gpio_pin_setflags_t *) _m)(dev, pin_num, flags);
     149        return (rc);
    132150}
    133151
     
    145163{
    146164        kobjop_t _m;
     165        int rc;
    147166        KOBJOPLOOKUP(((kobj_t)bus)->ops,gpio_map_gpios);
    148         return ((gpio_map_gpios_t *) _m)(bus, dev, gparent, gcells, gpios, pin, flags);
     167        rc = ((gpio_map_gpios_t *) _m)(bus, dev, gparent, gcells, gpios, pin, flags);
     168        return (rc);
     169}
     170
     171/** @brief Unique descriptor for the GPIO_PIN_ACCESS_32() method */
     172extern struct kobjop_desc gpio_pin_access_32_desc;
     173/** @brief A function implementing the GPIO_PIN_ACCESS_32() method */
     174typedef int gpio_pin_access_32_t(device_t dev, uint32_t first_pin,
     175                                 uint32_t clear_pins, uint32_t change_pins,
     176                                 uint32_t *orig_pins);
     177
     178static __inline int GPIO_PIN_ACCESS_32(device_t dev, uint32_t first_pin,
     179                                       uint32_t clear_pins,
     180                                       uint32_t change_pins,
     181                                       uint32_t *orig_pins)
     182{
     183        kobjop_t _m;
     184        int rc;
     185        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_access_32);
     186        rc = ((gpio_pin_access_32_t *) _m)(dev, first_pin, clear_pins, change_pins, orig_pins);
     187        return (rc);
     188}
     189
     190/** @brief Unique descriptor for the GPIO_PIN_CONFIG_32() method */
     191extern struct kobjop_desc gpio_pin_config_32_desc;
     192/** @brief A function implementing the GPIO_PIN_CONFIG_32() method */
     193typedef int gpio_pin_config_32_t(device_t dev, uint32_t first_pin,
     194                                 uint32_t num_pins, uint32_t *pin_flags);
     195
     196static __inline int GPIO_PIN_CONFIG_32(device_t dev, uint32_t first_pin,
     197                                       uint32_t num_pins, uint32_t *pin_flags)
     198{
     199        kobjop_t _m;
     200        int rc;
     201        KOBJOPLOOKUP(((kobj_t)dev)->ops,gpio_pin_config_32);
     202        rc = ((gpio_pin_config_32_t *) _m)(dev, first_pin, num_pins, pin_flags);
     203        return (rc);
    149204}
    150205
  • rtemsbsd/local/gpio_if.c

    rb42dea9 r13840c1  
    2727
    2828        return (NULL);
     29}
     30
     31static int
     32gpio_default_nosupport(void)
     33{
     34
     35        return (EOPNOTSUPP);
    2936}
    3037
     
    8794};
    8895
     96struct kobjop_desc gpio_pin_access_32_desc = {
     97        0, { &gpio_pin_access_32_desc, (kobjop_t)gpio_default_nosupport }
     98};
     99
     100struct kobjop_desc gpio_pin_config_32_desc = {
     101        0, { &gpio_pin_config_32_desc, (kobjop_t)gpio_default_nosupport }
     102};
     103
Note: See TracChangeset for help on using the changeset viewer.