Changeset 60618d5 in rtems-libbsd


Ignore:
Timestamp:
Oct 18, 2013, 2:30:27 PM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, afaeccc05a556f6aa25ba044a7e49d6aa634a59e, freebsd-9.3, master
Children:
b833cc4
Parents:
8ff186f
git-author:
Sebastian Huber <sebastian.huber@…> (10/18/13 14:30:27)
git-committer:
Sebastian Huber <sebastian.huber@…> (10/31/13 12:18:49)
Message:

IFCONFIG(8): Initialize global variables in ctors

Location:
freebsd/sbin/ifconfig
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sbin/ifconfig/af_atalk.c

    r8ff186f r60618d5  
    170170};
    171171
     172#ifndef __rtems__
    172173static __constructor void
     174#else /* __rtems__ */
     175void
     176#endif /* __rtems__ */
    173177atalk_ctor(void)
    174178{
     179#ifdef __rtems__
     180        memset(&at_nr, 0, sizeof(at_nr));
     181        memset(&at_addreq, 0, sizeof(at_addreq));
     182#endif /* __rtems__ */
    175183#define N(a)    (sizeof(a) / sizeof(a[0]))
    176184        size_t i;
  • freebsd/sbin/ifconfig/af_inet.c

    r8ff186f r60618d5  
    198198};
    199199
     200#ifndef __rtems__
    200201static __constructor void
     202#else /* __rtems__ */
     203void
     204#endif /* __rtems__ */
    201205inet_ctor(void)
    202206{
     207#ifdef __rtems__
     208        memset(&in_addreq, 0, sizeof(in_addreq));
     209        memset(&in_ridreq, 0, sizeof(in_ridreq));
     210#endif /* __rtems__ */
    203211        af_register(&af_inet);
    204212}
  • freebsd/sbin/ifconfig/af_inet6.c

    r8ff186f r60618d5  
    534534static struct option in6_Lopt = { .opt = "L", .opt_usage = "[-L]", .cb = in6_Lopt_cb };
    535535
     536#ifndef __rtems__
    536537static __constructor void
     538#else /* __rtems__ */
     539void
     540#endif /* __rtems__ */
    537541inet6_ctor(void)
    538542{
     543#ifdef __rtems__
     544        memset(&in6_ridreq, 0, sizeof(in6_ridreq));
     545        memset(&in6_addreq, 0, sizeof(in6_addreq));
     546        in6_addreq.ifra_lifetime.ia6t_vltime = ND6_INFINITE_LIFETIME;
     547        in6_addreq.ifra_lifetime.ia6t_pltime = ND6_INFINITE_LIFETIME;
     548        ip6lifetime = 0;
     549        explicit_prefix = 0;
     550        memset(&addr_buf, 0, sizeof(addr_buf));
     551#endif /* __rtems__ */
    539552#define N(a)    (sizeof(a) / sizeof(a[0]))
    540553        size_t i;
  • freebsd/sbin/ifconfig/af_link.c

    r8ff186f r60618d5  
    121121};
    122122
     123#ifndef __rtems__
    123124static __constructor void
     125#else /* __rtems__ */
     126void
     127#endif /* __rtems__ */
    124128link_ctor(void)
    125129{
     130#ifdef __rtems__
     131        memset(&link_ridreq, 0, sizeof(link_ridreq));
     132#endif /* __rtems__ */
    126133        af_register(&af_link);
    127134        af_register(&af_ether);
  • freebsd/sbin/ifconfig/af_nd6.c

    r8ff186f r60618d5  
    223223};
    224224
     225#ifndef __rtems__
    225226static __constructor void
     227#else /* __rtems__ */
     228void
     229#endif /* __rtems__ */
    226230nd6_ctor(void)
    227231{
  • freebsd/sbin/ifconfig/ifbridge.c

    r8ff186f r60618d5  
    747747};
    748748
     749#ifndef __rtems__
    749750static __constructor void
     751#else /* __rtems__ */
     752void
     753#endif /* __rtems__ */
    750754bridge_ctor(void)
    751755{
  • freebsd/sbin/ifconfig/ifcarp.c

    r8ff186f r60618d5  
    188188};
    189189
     190#ifndef __rtems__
    190191static __constructor void
     192#else /* __rtems__ */
     193void
     194#endif /* __rtems__ */
    191195carp_ctor(void)
    192196{
  • freebsd/sbin/ifconfig/ifclone.c

    r8ff186f r60618d5  
    182182static struct option clone_Copt = { .opt = "C", .opt_usage = "[-C]", .cb = clone_Copt_cb };
    183183
     184#ifndef __rtems__
    184185static __constructor void
     186#else /* __rtems__ */
     187void
     188#endif /* __rtems__ */
    185189clone_ctor(void)
    186190{
     191#ifdef __rtems__
     192        SLIST_INIT(&clone_defcbh);
     193#endif /* __rtems__ */
    187194#define N(a)    (sizeof(a) / sizeof(a[0]))
    188195        size_t i;
  • freebsd/sbin/ifconfig/ifconfig.c

    r8ff186f r60618d5  
    4747#include <getopt.h>
    4848#undef option
     49#include <machine/rtems-bsd-program.h>
     50#include <machine/rtems-bsd-commands.h>
    4951#endif /* __rtems__ */
    5052#include <rtems/bsd/sys/param.h>
     
    148150
    149151#ifdef __rtems__
    150 #include <machine/rtems-bsd-program.h>
    151 #include <machine/rtems-bsd-commands.h>
    152 
     152static void ifconfig_ctor(void);
    153153static int main(int argc, char *argv[]);
    154154
    155155int rtems_bsd_command_ifconfig(int argc, char *argv[])
    156156{
    157         descr = NULL;
    158         descrlen = 64;
    159         newaddr = 1;
    160         supmedia = 0;
    161         printkeys = 0;
    162 
    163         return rtems_bsd_program_call_main("ifconfig", main, argc, argv);
     157        int exit_code;
     158
     159        rtems_bsd_program_lock();
     160
     161        ifconfig_ctor();
     162
     163        atalk_ctor();
     164        bridge_ctor();
     165        carp_ctor();
     166        clone_ctor();
     167        gif_ctor();
     168        gre_ctor();
     169        group_ctor();
     170        ifmedia_ctor();
     171        inet_ctor();
     172        inet6_ctor();
     173        lagg_ctor();
     174        link_ctor();
     175        mac_ctor();
     176        nd6_ctor();
     177        pfsync_ctor();
     178        vlan_ctor();
     179
     180        exit_code = rtems_bsd_program_call_main("ifconfig", main, argc, argv);
     181
     182        rtems_bsd_program_unlock();
     183
     184        return exit_code;
    164185}
    165186#endif /* __rtems__ */
     
    11951216ifconfig_ctor(void)
    11961217{
     1218#ifdef __rtems__
     1219        memset(&ifr, 0, sizeof(ifr));
     1220        memset(&name, 0, sizeof(name));
     1221        descr = NULL;
     1222        descrlen = 64;
     1223        setaddr = 0;
     1224        setmask = 0;
     1225        doalias = 0;
     1226        clearaddr = 0;
     1227        newaddr = 1;
     1228        verbose = 0;
     1229        noload = 0;
     1230        supmedia = 0;
     1231        printkeys = 0;
     1232        opts = NULL;
     1233        afs = NULL;
     1234        callbacks = NULL;
     1235        cmds = NULL;
     1236#endif /* __rtems__ */
    11971237#define N(a)    (sizeof(a) / sizeof(a[0]))
    11981238        size_t i;
  • freebsd/sbin/ifconfig/ifconfig.h

    r8ff186f r60618d5  
    3535 */
    3636
     37#ifndef __rtems__
    3738#define __constructor   __attribute__((constructor))
     39#else /* __rtems__ */
     40#define __constructor
     41#endif /* __rtems__ */
    3842
    3943struct afswtch;
     
    149153 */
    150154struct ifmediareq *ifmedia_getstate(int s);
     155#ifdef __rtems__
     156void atalk_ctor(void);
     157void bridge_ctor(void);
     158void carp_ctor(void);
     159void clone_ctor(void);
     160void gif_ctor(void);
     161void gre_ctor(void);
     162void group_ctor(void);
     163void ifmedia_ctor(void);
     164void inet6_ctor(void);
     165void inet_ctor(void);
     166void lagg_ctor(void);
     167void link_ctor(void);
     168void mac_ctor(void);
     169void nd6_ctor(void);
     170void pfsync_ctor(void);
     171void vlan_ctor(void);
     172#endif /* __rtems__ */
  • freebsd/sbin/ifconfig/ifgif.c

    r8ff186f r60618d5  
    122122};
    123123
     124#ifndef __rtems__
    124125static __constructor void
     126#else /* __rtems__ */
     127void
     128#endif /* __rtems__ */
    125129gif_ctor(void)
    126130{
  • freebsd/sbin/ifconfig/ifgre.c

    r8ff186f r60618d5  
    8686};
    8787
     88#ifndef __rtems__
    8889static __constructor void
     90#else /* __rtems__ */
     91void
     92#endif /* __rtems__ */
    8993gre_ctor(void)
    9094{
  • freebsd/sbin/ifconfig/ifgroup.c

    r8ff186f r60618d5  
    173173static struct option group_gopt = { "g:", "[-g groupname]", printgroup };
    174174
     175#ifndef __rtems__
    175176static __constructor void
     177#else /* __rtems__ */
     178void
     179#endif /* __rtems__ */
    176180group_ctor(void)
    177181{
  • freebsd/sbin/ifconfig/iflagg.c

    r8ff186f r60618d5  
    182182};
    183183
     184#ifndef __rtems__
    184185static __constructor void
     186#else /* __rtems__ */
     187void
     188#endif /* __rtems__ */
    185189lagg_ctor(void)
    186190{
     191#ifdef __rtems__
     192        memset(&lacpbuf, 0, sizeof(lacpbuf));
     193#endif /* __rtems__ */
    187194#define N(a)    (sizeof(a) / sizeof(a[0]))
    188195        int i;
  • freebsd/sbin/ifconfig/ifmac.c

    r8ff186f r60618d5  
    109109};
    110110
     111#ifndef __rtems__
    111112static __constructor void
     113#else /* __rtems__ */
     114void
     115#endif /* __rtems__ */
    112116mac_ctor(void)
    113117{
  • freebsd/sbin/ifconfig/ifmedia.c

    r8ff186f r60618d5  
    194194}
    195195
     196#ifdef __rtems__
     197static struct ifmediareq *ifmr = NULL;
     198#endif /* __rtems__ */
    196199struct ifmediareq *
    197200ifmedia_getstate(int s)
    198201{
     202#ifndef __rtems__
    199203        static struct ifmediareq *ifmr = NULL;
     204#endif /* __rtems__ */
    200205        int *mwords;
    201206
     
    237242}
    238243
     244#ifdef __rtems__
     245static int did_it = 0;
     246#endif /* __rtems__ */
    239247static void
    240248setifmediacallback(int s, void *arg)
    241249{
    242250        struct ifmediareq *ifmr = (struct ifmediareq *)arg;
     251#ifndef __rtems__
    243252        static int did_it = 0;
     253#endif /* __rtems__ */
    244254
    245255        if (!did_it) {
     
    823833};
    824834
     835#ifndef __rtems__
    825836static __constructor void
     837#else /* __rtems__ */
     838void
     839#endif /* __rtems__ */
    826840ifmedia_ctor(void)
    827841{
     842#ifdef __rtems__
     843        did_it = 0;
     844        ifmr = NULL;
     845#endif /* __rtems__ */
    828846#define N(a)    (sizeof(a) / sizeof(a[0]))
    829847        size_t i;
  • freebsd/sbin/ifconfig/ifpfsync.c

    r8ff186f r60618d5  
    203203};
    204204
     205#ifndef __rtems__
    205206static __constructor void
     207#else /* __rtems__ */
     208void
     209#endif /* __rtems__ */
    206210pfsync_ctor(void)
    207211{
  • freebsd/sbin/ifconfig/ifvlan.c

    r8ff186f r60618d5  
    191191};
    192192
     193#ifndef __rtems__
    193194static __constructor void
     195#else /* __rtems__ */
     196void
     197#endif /* __rtems__ */
    194198vlan_ctor(void)
    195199{
     200#ifdef __rtems__
     201        memset(&params, 0, sizeof(params));
     202        params.vlr_tag = NOTAG;
     203#endif /* __rtems__ */
    196204#define N(a)    (sizeof(a) / sizeof(a[0]))
    197205        size_t i;
Note: See TracChangeset for help on using the changeset viewer.