Changeset 1e3e818 in rtems-libbsd for freebsd/kern/subr_bus.c


Ignore:
Timestamp:
Apr 18, 2012, 3:02:17 PM (8 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, afaeccc05a556f6aa25ba044a7e49d6aa634a59e, freebsd-9.3, master
Children:
29c954f
Parents:
b086b5c
git-author:
Sebastian Huber <sebastian.huber@…> (04/18/12 15:02:17)
git-committer:
Sebastian Huber <sebastian.huber@…> (04/18/12 15:29:31)
Message:

Hide device sysctl and resource functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freebsd/kern/subr_bus.c

    rb086b5c r1e3e818  
    9191#define DC_HAS_CHILDREN         1
    9292
     93#ifndef __rtems__
    9394        struct sysctl_ctx_list sysctl_ctx;
    9495        struct sysctl_oid *sysctl_tree;
     96#endif /* __rtems__ */
    9597};
    9698
     
    137139        void    *softc;                 /**< current driver's variables  */
    138140
     141#ifndef __rtems__
    139142        struct sysctl_ctx_list sysctl_ctx; /**< state for sysctl variables  */
    140143        struct sysctl_oid *sysctl_tree; /**< state for sysctl variables */
     144#endif /* __rtems__ */
    141145};
    142146
     
    147151
    148152static int bus_debug = 1;
     153#ifndef __rtems__
    149154TUNABLE_INT("bus.debug", &bus_debug);
    150155SYSCTL_INT(_debug, OID_AUTO, bus_debug, CTLFLAG_RW, &bus_debug, 0,
    151156    "Debug bus code");
     157#endif /* __rtems__ */
    152158
    153159#define PDEBUG(a)       if (bus_debug) {printf("%s:%d: ", __func__, __LINE__), printf a; printf("\n");}
     
    194200#endif
    195201
     202#ifndef __rtems__
    196203/*
    197204 * dev sysctl tree
     
    277284        return (error);
    278285}
     286#endif /* __rtems__ */
    279287
    280288static void
    281289device_sysctl_init(device_t dev)
    282290{
     291#ifndef __rtems__
    283292        devclass_t dc = dev->devclass;
    284293
     
    311320            dev, DEVICE_SYSCTL_PARENT, device_sysctl_handler, "A",
    312321            "parent device");
     322#endif /* __rtems__ */
    313323}
    314324
     
    316326device_sysctl_update(device_t dev)
    317327{
     328#ifndef __rtems__
    318329        devclass_t dc = dev->devclass;
    319330
     
    321332                return;
    322333        sysctl_rename_oid(dev->sysctl_tree, dev->nameunit + strlen(dc->name));
     334#endif /* __rtems__ */
    323335}
    324336
     
    326338device_sysctl_fini(device_t dev)
    327339{
     340#ifndef __rtems__
    328341        if (dev->sysctl_tree == NULL)
    329342                return;
    330343        sysctl_ctx_free(&dev->sysctl_ctx);
    331344        dev->sysctl_tree = NULL;
     345#endif /* __rtems__ */
    332346}
    333347
     
    353367 */
    354368
     369#ifndef __rtems__
    355370/* Deprecated way to adjust queue length */
    356371static int sysctl_devctl_disable(SYSCTL_HANDLER_ARGS);
     
    358373SYSCTL_PROC(_hw_bus, OID_AUTO, devctl_disable, CTLTYPE_INT | CTLFLAG_RW, NULL,
    359374    0, sysctl_devctl_disable, "I", "devctl disable -- deprecated");
     375#endif /* __rtems__ */
    360376
    361377#define DEVCTL_DEFAULT_QUEUE_LEN 1000
     378#ifndef __rtems__
    362379static int sysctl_devctl_queue(SYSCTL_HANDLER_ARGS);
     380#endif /* __rtems__ */
    363381static int devctl_queue_length = DEVCTL_DEFAULT_QUEUE_LEN;
     382#ifndef __rtems__
    364383TUNABLE_INT("hw.bus.devctl_queue", &devctl_queue_length);
    365384SYSCTL_PROC(_hw_bus, OID_AUTO, devctl_queue, CTLTYPE_INT | CTLFLAG_RW, NULL,
     
    404423
    405424static struct cdev *devctl_dev;
     425#else /* __rtems__ */
     426#define devctl_disable 0
     427#endif /* __rtems__ */
    406428
    407429static void
    408430devinit(void)
    409431{
     432#ifndef __rtems__
    410433        devctl_dev = make_dev(&dev_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600,
    411434            "devctl");
     
    413436        cv_init(&devsoftc.cv, "dev cv");
    414437        TAILQ_INIT(&devsoftc.devq);
    415 }
    416 
     438#endif /* __rtems__ */
     439}
     440
     441#ifndef __rtems__
    417442static int
    418443devopen(struct cdev *dev, int oflags, int devtype, struct thread *td)
     
    532557        return (devsoftc.inuse == 1);
    533558}
     559#endif /* __rtems__ */
    534560
    535561/**
     
    543569devctl_queue_data_f(char *data, int flags)
    544570{
     571#ifndef __rtems__
    545572        struct dev_event_info *n1 = NULL, *n2 = NULL;
    546573        struct proc *p;
     574#endif /* __rtems__ */
    547575
    548576        if (strlen(data) == 0)
    549577                goto out;
     578#ifndef __rtems__
    550579        if (devctl_queue_length == 0)
    551580                goto out;
     
    580609                PROC_UNLOCK(p);
    581610        }
    582         return;
     611#else /* __rtems__ */
     612        printf("devctl: %s", data);
     613#endif /* __rtems__ */
    583614out:
    584615        /*
     
    773804}
    774805
     806#ifndef __rtems__
    775807static int
    776808sysctl_devctl_disable(SYSCTL_HANDLER_ARGS)
     
    826858
    827859/* End of /dev/devctl code */
     860#endif /* __rtems__ */
    828861
    829862static TAILQ_HEAD(,device)      bus_data_devices;
     
    14951528devclass_get_sysctl_ctx(devclass_t dc)
    14961529{
     1530#ifndef __rtems__
    14971531        return (&dc->sysctl_ctx);
     1532#else /* __rtems__ */
     1533        return (NULL);
     1534#endif /* __rtems__ */
    14981535}
    14991536
     
    15011538devclass_get_sysctl_tree(devclass_t dc)
    15021539{
     1540#ifndef __rtems__
    15031541        return (dc->sysctl_tree);
     1542#else /* __rtems__ */
     1543        return (NULL);
     1544#endif /* __rtems__ */
    15041545}
    15051546
     
    15461587                unit = 0;
    15471588                for (unit = 0;; unit++) {
     1589#ifndef __rtems__
    15481590                        /* If there is an "at" hint for a unit then skip it. */
    15491591                        if (resource_string_value(dc->name, unit, "at", &s) ==
    15501592                            0)
    15511593                                continue;
     1594#endif /* __rtems__ */
    15521595
    15531596                        /* If this device slot is already in use, skip it. */
     
    19762019                        }
    19772020
     2021#ifndef __rtems__
    19782022                        /* Fetch any flags for the device before probing. */
    19792023                        resource_int_value(dl->driver->name, child->unit,
    19802024                            "flags", &child->devflags);
     2025#endif /* __rtems__ */
    19812026
    19822027                        result = DEVICE_PROBE(child);
     
    20662111                }
    20672112                device_set_driver(child, best->driver);
     2113#ifndef __rtems__
    20682114                resource_int_value(best->driver->name, child->unit,
    20692115                    "flags", &child->devflags);
     2116#endif /* __rtems__ */
    20702117
    20712118                if (pri < 0) {
     
    21262173        }
    21272174
    2128         if (count) {
    2129                 list = malloc(count * sizeof(device_t), M_TEMP,
    2130                     M_NOWAIT|M_ZERO);
    2131                 if (!list)
    2132                         return (ENOMEM);
    2133 
    2134                 count = 0;
    2135                 TAILQ_FOREACH(child, &dev->children, link) {
    2136                         list[count] = child;
    2137                         count++;
    2138                 }
     2175#ifdef __rtems__
     2176        /* malloc(0) may return NULL */
     2177        if (count != 0) {
     2178#endif /* __rtems__ */
     2179        list = malloc(count * sizeof(device_t), M_TEMP, M_NOWAIT|M_ZERO);
     2180        if (!list)
     2181                return (ENOMEM);
     2182
     2183        count = 0;
     2184        TAILQ_FOREACH(child, &dev->children, link) {
     2185                list[count] = child;
     2186                count++;
     2187        }
     2188#ifdef __rtems__
    21392189        } else {
    21402190                list = NULL;
    21412191        }
     2192#endif /* __rtems__ */
    21422193
    21432194        *devlistp = list;
     
    22202271device_get_sysctl_ctx(device_t dev)
    22212272{
     2273#ifndef __rtems__
    22222274        return (&dev->sysctl_ctx);
     2275#else /* __rtems__ */
     2276        return (NULL);
     2277#endif /* __rtems__ */
    22232278}
    22242279
     
    22262281device_get_sysctl_tree(device_t dev)
    22272282{
     2283#ifndef __rtems__
    22282284        return (dev->sysctl_tree);
     2285#else /* __rtems__ */
     2286        return (NULL);
     2287#endif /* __rtems__ */
    22292288}
    22302289
     
    28032862}
    28042863
     2864#ifndef __rtems__
    28052865/*======================================*/
    28062866/*
     
    31343194        }
    31353195}
     3196#endif /* __rtems__ */
    31363197
    31373198device_t
     
    34583519}
    34593520
     3521#ifndef __rtems__
    34603522/**
    34613523 * @brief Helper function for implementing BUS_ALLOC_RESOURCE().
     
    35253587        return (EINVAL);
    35263588}
     3589#endif /* __rtems__ */
    35273590
    35283591/**
     
    35943657}
    35953658
     3659#ifndef __rtems__
    35963660/**
    35973661 * @brief Helper function for implementing BUS_GET_RESOURCE().
     
    37103774            start, end, count, flags));
    37113775}
     3776#endif /* __rtems__ */
    37123777
    37133778/**
     
    42304295}
    42314296
     4297#ifndef __rtems__
    42324298/**
    42334299 * @brief Enumerate all hinted devices for this bus.
     
    42634329                BUS_HINTED_CHILD(bus, dname, dunit);
    42644330}
     4331#endif /* __rtems__ */
    42654332
    42664333#ifdef BUS_DEBUG
     
    44194486#endif
    44204487
     4488#ifndef __rtems__
    44214489/*
    44224490 * User-space access to the device tree.
     
    44984566SYSCTL_NODE(_hw_bus, OID_AUTO, devices, CTLFLAG_RD, sysctl_devices,
    44994567    "system device tree");
     4568#endif /* __rtems__ */
    45004569
    45014570int
     
    45154584}
    45164585
     4586#ifndef __rtems__
    45174587int
    45184588bus_free_resource(device_t dev, int type, struct resource *r)
     
    45224592        return (bus_release_resource(dev, type, rman_get_rid(r), r));
    45234593}
     4594#endif /* __rtems__ */
Note: See TracChangeset for help on using the changeset viewer.