VirtualBox

Ignore:
Timestamp:
Apr 28, 2021 11:35:04 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144089
Message:

slirp/misc.c: It is absolutely forbidden to redefine logging macros (especailly not when the noop redefines are unsafe). Define custom logging macros for such sections of code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/slirp/misc.c

    r88543 r88759  
    8484
    8585#ifndef VBOX_NAT_TST_QUEUE
     86
    8687/*
    8788 * Set fd blocking and non-blocking
     
    106107}
    107108
    108 # if !defined(VBOX_NAT_MEM_DEBUG)
    109 #  if defined (LOG_ENABLED)
    110 #   undef LogFlowFunc
    111 #   define LogFlowFunc(x)
    112 
    113 #   undef LogFlowFuncEnter
    114 #   define LogFlowFuncEnter()
    115 
    116 #   undef LogFlowFuncLeave
    117 #   define LogFlowFuncLeave()
    118 
    119 #   undef Log2
    120 #   define Log2(x)
    121 #  endif /* !LOG_ENABLED */
    122 # else /* VBOX_NAT_MEM_DEBUG */
    123 # define NAT_MEM_LOG_ENABLED
     109
     110# if defined(VBOX_NAT_MEM_DEBUG)
     111#  define NATMEM_LOG_FLOW_FUNC(a)        LogFlowFunc(a)
     112#  define NATMEM_LOG_FLOW_FUNC_ENTER()   LogFlowFuncEnter()
     113#  define NATMEM_LOG_FLOW_FUNC_LEAVE()   LogFlowFuncLeave()
     114#  define NATMEM_LOG_2(a)                Log2(a)
     115# else
     116#  define NATMEM_LOG_FLOW_FUNC(a)        do { } while (0)
     117#  define NATMEM_LOG_FLOW_FUNC_ENTER()   do { } while (0)
     118#  define NATMEM_LOG_FLOW_FUNC_LEAVE()   do { } while (0)
     119#  define NATMEM_LOG_2(a)                do { } while (0)
    124120# endif
    125121
     
    136132DECLINLINE(void) slirp_zone_check_and_send_pending(uma_zone_t zone)
    137133{
    138     LogFlowFunc(("ENTER: zone:%R[mzone]\n", zone));
     134    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone]\n", zone));
    139135    if (   zone->fDoXmitPending
    140136        && zone->master_zone == NULL)
     
    148144        rc2 = RTCritSectEnter(&zone->csZone); AssertRC(rc2);
    149145    }
    150     LogFlowFuncLeave();
     146    NATMEM_LOG_FLOW_FUNC_LEAVE();
    151147}
    152148
     
    159155    int rc;
    160156
    161     LogFlowFunc(("ENTER: %R[mzone], size:%d, pflags:%p, %RTbool\n", zone, size, pflags, fWait));
    162 # ifndef NAT_MEM_LOG_ENABLED
    163     NOREF(size);
    164     NOREF(pflags);
    165     NOREF(fWait);
    166 # endif
     157    NATMEM_LOG_FLOW_FUNC(("ENTER: %R[mzone], size:%d, pflags:%p, %RTbool\n", zone, size, pflags, fWait)); RT_NOREF(size, pflags, fWait);
    167158    RTCritSectEnter(&zone->csZone);
    168159    for (;;)
     
    194185        {
    195186            /* We're on the master zone and we can't allocate more. */
    196             Log2(("NAT: no room on %s zone\n", zone->name));
     187            NATMEM_LOG_2(("NAT: no room on %s zone\n", zone->name));
    197188            /* AssertMsgFailed(("NAT: OOM!")); */
    198189            zone->fDoXmitPending = true;
     
    207198        {
    208199            /* No room on master */
    209             Log2(("NAT: no room on %s zone for %s zone\n", zone->master_zone->name, zone->name));
     200            NATMEM_LOG_2(("NAT: no room on %s zone for %s zone\n", zone->master_zone->name, zone->name));
    210201            break;
    211202        }
     
    230221    }
    231222    RTCritSectLeave(&zone->csZone);
    232     LogFlowFunc(("LEAVE: %p\n", ret));
     223    NATMEM_LOG_FLOW_FUNC(("LEAVE: %p\n", ret));
    233224    return ret;
    234225}
     
    238229    struct item *it;
    239230    uma_zone_t zone;
    240 # ifndef NAT_MEM_LOG_ENABLED
    241     NOREF(size);
    242     NOREF(flags);
    243 # endif
    244231
    245232    Assert(item);
    246233    it = &((struct item *)item)[-1];
    247     LogFlowFunc(("ENTER: item:%p(%R[mzoneitem]), size:%d, flags:%RX8\n", item, it, size, flags));
     234    NATMEM_LOG_FLOW_FUNC(("ENTER: item:%p(%R[mzoneitem]), size:%d, flags:%RX8\n", item, it, size, flags)); RT_NOREF(size, flags);
    248235    Assert(it->magic == ITEM_MAGIC);
    249236    zone = it->zone;
     
    266253    slirp_zone_check_and_send_pending(zone); /* may exit+enter the cs! */
    267254    RTCritSectLeave(&zone->csZone);
    268     LogFlowFuncLeave();
     255    NATMEM_LOG_FLOW_FUNC_LEAVE();
    269256}
    270257
     
    273260{
    274261    uma_zone_t zone = NULL;
    275 # ifndef NAT_MEM_LOG_ENABLED
    276     NOREF(flags1);
    277     NOREF(flags2);
    278 # endif
    279     LogFlowFunc(("ENTER: name:%s size:%d, ctor:%p, dtor:%p, init:%p, fini:%p, flags1:%RX32, flags2:%RX32\n",
    280                 name, ctor, dtor, init, fini, flags1, flags2));
     262    NATMEM_LOG_FLOW_FUNC(("ENTER: name:%s size:%d, ctor:%p, dtor:%p, init:%p, fini:%p, flags1:%RX32, flags2:%RX32\n",
     263                name, ctor, dtor, init, fini, flags1, flags2));  RT_NOREF(flags1, flags2);
    281264    zone = RTMemAllocZ(sizeof(struct uma_zone));
    282265    Assert((pData));
     
    292275    zone->pfFree = slirp_uma_free;
    293276    RTCritSectInit(&zone->csZone);
    294     LogFlowFunc(("LEAVE: %R[mzone]\n", zone));
     277    NATMEM_LOG_FLOW_FUNC(("LEAVE: %R[mzone]\n", zone));
    295278    return zone;
    296279
     
    301284    uma_zone_t zone;
    302285    Assert(master);
    303     LogFlowFunc(("ENTER: name:%s ctor:%p, dtor:%p, init:%p, fini:%p, master:%R[mzone]\n",
     286    NATMEM_LOG_FLOW_FUNC(("ENTER: name:%s ctor:%p, dtor:%p, init:%p, fini:%p, master:%R[mzone]\n",
    304287                name, ctor, dtor, init, fini, master));
    305288    zone = RTMemAllocZ(sizeof(struct uma_zone));
    306289    if (zone == NULL)
    307290    {
    308         LogFlowFunc(("LEAVE: %R[mzone]\n", NULL));
     291        NATMEM_LOG_FLOW_FUNC(("LEAVE: %R[mzone]\n", NULL));
    309292        return NULL;
    310293    }
     
    323306    zone->master_zone = master;
    324307    RTCritSectInit(&zone->csZone);
    325     LogFlowFunc(("LEAVE: %R[mzone]\n", zone));
     308    NATMEM_LOG_FLOW_FUNC(("LEAVE: %R[mzone]\n", zone));
    326309    return zone;
    327310}
     
    331314    int i = 0;
    332315    struct item *it;
    333     LogFlowFunc(("ENTER: zone:%R[mzone], max:%d\n", zone, max));
     316    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], max:%d\n", zone, max));
    334317    zone->max_items = max;
    335318    zone->area = RTMemAllocZ(max * (sizeof(struct item) + zone->size + sizeof(uint32_t)));
     
    342325        LIST_INSERT_HEAD(&zone->free_items, it, list);
    343326    }
    344     LogFlowFuncLeave();
     327    NATMEM_LOG_FLOW_FUNC_LEAVE();
    345328}
    346329
    347330void uma_zone_set_allocf(uma_zone_t zone, uma_alloc_t pfAlloc)
    348331{
    349     LogFlowFunc(("ENTER: zone:%R[mzone], pfAlloc:%Rfn\n", zone, pfAlloc));
     332    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], pfAlloc:%Rfn\n", zone, pfAlloc));
    350333    zone->pfAlloc = pfAlloc;
    351     LogFlowFuncLeave();
     334    NATMEM_LOG_FLOW_FUNC_LEAVE();
    352335}
    353336
    354337void uma_zone_set_freef(uma_zone_t zone, uma_free_t pfFree)
    355338{
    356     LogFlowFunc(("ENTER: zone:%R[mzone], pfAlloc:%Rfn\n", zone, pfFree));
     339    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], pfAlloc:%Rfn\n", zone, pfFree));
    357340    zone->pfFree = pfFree;
    358     LogFlowFuncLeave();
     341    NATMEM_LOG_FLOW_FUNC_LEAVE();
    359342}
    360343
     
    364347    reference counters */
    365348    struct item *it = NULL;
    366 # ifndef NAT_MEM_LOG_ENABLED
    367     NOREF(zone);
    368 # endif
    369     LogFlowFunc(("ENTER: zone:%R[mzone], mem:%p\n", zone, mem));
     349    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], mem:%p\n", zone, mem)); RT_NOREF(zone);
    370350    it = (struct item *)mem; /* 1st element */
    371351    Assert(mem != NULL);
     
    373353    /* for returning pointer to counter we need get 0 elemnt */
    374354    Assert(it[-1].magic == ITEM_MAGIC);
    375     LogFlowFunc(("LEAVE: %p\n", &it[-1].ref_count));
     355    NATMEM_LOG_FLOW_FUNC(("LEAVE: %p\n", &it[-1].ref_count));
    376356    return &it[-1].ref_count;
    377357}
     
    380360{
    381361    void *mem;
    382 # ifndef NAT_MEM_LOG_ENABLED
    383     NOREF(how);
    384 # endif
    385362    Assert(zone->magic == ZONE_MAGIC);
    386     LogFlowFunc(("ENTER: zone:%R[mzone], args:%p, how:%RX32\n", zone, args, how));
     363    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], args:%p, how:%RX32\n", zone, args, how)); RT_NOREF(how);
    387364    if (zone->pfAlloc == NULL)
    388365    {
    389         LogFlowFunc(("LEAVE: NULL\n"));
     366        NATMEM_LOG_FLOW_FUNC(("LEAVE: NULL\n"));
    390367        return NULL;
    391368    }
     
    398375    }
    399376    RTCritSectLeave(&zone->csZone);
    400     LogFlowFunc(("LEAVE: %p\n", mem));
     377    NATMEM_LOG_FLOW_FUNC(("LEAVE: %p\n", mem));
    401378    return mem;
    402379}
     
    404381void uma_zfree(uma_zone_t zone, void *item)
    405382{
    406     LogFlowFunc(("ENTER: zone:%R[mzone], item:%p\n", zone, item));
     383    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], item:%p\n", zone, item));
    407384    uma_zfree_arg(zone, item, NULL);
    408     LogFlowFuncLeave();
     385    NATMEM_LOG_FLOW_FUNC_LEAVE();
    409386}
    410387
     
    415392    Assert((zone->pfFree));
    416393    Assert((mem));
    417     LogFlowFunc(("ENTER: zone:%R[mzone], mem:%p, flags:%p\n", zone, mem, flags));
    418 # ifndef NAT_MEM_LOG_ENABLED
    419     NOREF(flags);
    420 # endif
     394    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], mem:%p, flags:%p\n", zone, mem, flags)); RT_NOREF(flags);
    421395
    422396    RTCritSectEnter(&zone->csZone);
     
    425399    Assert((zone->magic == ZONE_MAGIC && zone == it->zone));
    426400
    427     zone->pfFree(mem,  0, 0);
     401    zone->pfFree(mem, 0, 0);
    428402    RTCritSectLeave(&zone->csZone);
    429     LogFlowFuncLeave();
     403
     404    NATMEM_LOG_FLOW_FUNC_LEAVE();
    430405}
    431406
     
    433408{
    434409    int fExhausted;
    435     LogFlowFunc(("ENTER: zone:%R[mzone]\n", zone));
     410    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone]\n", zone));
    436411    RTCritSectEnter(&zone->csZone);
    437412    fExhausted = (zone->cur_items == zone->max_items);
    438413    RTCritSectLeave(&zone->csZone);
    439     LogFlowFunc(("LEAVE: %RTbool\n", fExhausted));
     414    NATMEM_LOG_FLOW_FUNC(("LEAVE: %RTbool\n", fExhausted));
    440415    return fExhausted;
    441416}
     
    448423    /* vvl: Huh? What to do with zone which hasn't got backstore ? */
    449424    Assert((zone->master_zone));
    450     LogFlowFunc(("ENTER: zone:%R[mzone]\n", zone));
     425    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone]\n", zone));
    451426    master_zone = zone->master_zone;
    452427    while (!LIST_EMPTY(&zone->free_items))
     
    468443        RTCritSectLeave(&master_zone->csZone);
    469444    }
    470     LogFlowFuncLeave();
     445    NATMEM_LOG_FLOW_FUNC_LEAVE();
    471446}
    472447
     
    474449{
    475450    /** @todo (vvl) make it wiser  */
    476     LogFlowFunc(("ENTER: mem:%p, arg:%p\n", mem, arg));
     451    NATMEM_LOG_FLOW_FUNC(("ENTER: mem:%p, arg:%p\n", mem, arg));
     452    RT_NOREF(arg);
    477453    Assert(mem);
    478 # ifndef NAT_MEM_LOG_ENABLED
    479     NOREF(arg);
    480 # endif
    481454    RTMemFree(mem);
    482     LogFlowFuncLeave();
     455    NATMEM_LOG_FLOW_FUNC_LEAVE();
    483456}
    484457
    485458void *uma_zalloc(uma_zone_t zone, int len)
    486459{
    487 # ifndef NAT_MEM_LOG_ENABLED
    488     NOREF(zone);
    489     NOREF(len);
    490 # endif
    491     LogFlowFunc(("ENTER: zone:%R[mzone], len:%d\n", zone, len));
    492     LogFlowFunc(("LEAVE: NULL"));
     460    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone], len:%d\n", zone, len));
     461    RT_NOREF(zone, len);
     462    NATMEM_LOG_FLOW_FUNC(("LEAVE: NULL"));
    493463    return NULL;
    494464}
     
    498468    struct mbuf *m;
    499469    int size = MCLBYTES;
    500     LogFlowFunc(("ENTER: cbMin:%d, ppvBuf:%p, pcbBuf:%p\n", cbMin, ppvBuf, pcbBuf));
     470    NATMEM_LOG_FLOW_FUNC(("ENTER: cbMin:%d, ppvBuf:%p, pcbBuf:%p\n", cbMin, ppvBuf, pcbBuf));
    501471
    502472    *ppvBuf = NULL;
     
    512482    {
    513483        AssertMsgFailed(("Unsupported size %zu", cbMin));
    514         LogFlowFunc(("LEAVE: NULL (bad size %zu)\n", cbMin));
     484        NATMEM_LOG_FLOW_FUNC(("LEAVE: NULL (bad size %zu)\n", cbMin));
    515485        return NULL;
    516486    }
     
    519489    if (m == NULL)
    520490    {
    521         LogFlowFunc(("LEAVE: NULL\n"));
     491        NATMEM_LOG_FLOW_FUNC(("LEAVE: NULL\n"));
    522492        return NULL;
    523493    }
     
    525495    *ppvBuf = mtod(m, void *);
    526496    *pcbBuf = size;
    527     LogFlowFunc(("LEAVE: %p\n", m));
     497    NATMEM_LOG_FLOW_FUNC(("LEAVE: %p\n", m));
    528498    return m;
    529499}
     
    532502{
    533503
    534     LogFlowFunc(("ENTER: m:%p, pu8Buf:%p\n", m, pu8Buf));
     504    NATMEM_LOG_FLOW_FUNC(("ENTER: m:%p, pu8Buf:%p\n", m, pu8Buf));
    535505    if (   !pu8Buf
    536506        && pu8Buf != mtod(m, uint8_t *))
    537507        RTMemFree(pu8Buf); /* This buffer was allocated on heap */
    538508    m_freem(pData, m);
    539     LogFlowFuncLeave();
     509    NATMEM_LOG_FLOW_FUNC_LEAVE();
    540510}
    541511
     
    543513{
    544514    RTCritSectEnter(&zone->csZone);
    545     LogFlowFunc(("ENTER: zone:%R[mzone]\n", zone));
     515    NATMEM_LOG_FLOW_FUNC(("ENTER: zone:%R[mzone]\n", zone));
    546516    LogRel(("NAT: Zone(nm:%s, used:%d)\n", zone->name, zone->cur_items));
    547517    RTMemFree(zone->area);
     
    549519    RTCritSectDelete(&zone->csZone);
    550520    RTMemFree(zone);
    551     LogFlowFuncLeave();
     521    NATMEM_LOG_FLOW_FUNC_LEAVE();
    552522}
    553523
    554524void m_fini(PNATState pData)
    555525{
    556     LogFlowFuncEnter();
     526    NATMEM_LOG_FLOW_FUNC_ENTER();
    557527# define ZONE_DESTROY(zone) do { zone_destroy((zone)); (zone) = NULL;} while (0)
    558528    ZONE_DESTROY(pData->zone_clust);
     
    565535# undef ZONE_DESTROY
    566536    /** @todo do finalize here.*/
    567     LogFlowFuncLeave();
     537    NATMEM_LOG_FLOW_FUNC_LEAVE();
    568538}
    569539
     
    577547    if_mru = 1500;
    578548}
     549
    579550#endif /* VBOX_NAT_TST_QUEUE */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette