~ubuntu-branches/ubuntu/raring/virtualbox-ose/raring

« back to all changes in this revision

Viewing changes to src/VBox/Runtime/common/misc/handletablesimple.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-12-18 16:44:29 UTC
  • mfrom: (0.3.3 upstream) (0.4.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091218164429-jd34ccexpv5na11a
Tags: 3.1.2-dfsg-1ubuntu1
* Merge from Debian unstable (LP: #498219), remaining changes:
  - Disable update action
    - debian/patches/u01-disable-update-action.dpatch
  - VirtualBox should go in Accessories, not in System tools (LP: #288590)
    - debian/virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add Apport hook
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Add Launchpad integration
    - debian/control
    - debian/lpi-bug.xpm
    - debian/patches/u02-lp-integration.dpatch
* Fixes the following bugs:
  - Kernel module fails to build with Linux >= 2.6.32 (LP: #474625)
  - X.Org drivers need to be rebuilt against X-Server 1.7 (LP: #495935)
  - The *-source packages try to build the kernel modules even though the
    kernel headers aren't available (LP: #473334)
* Replace *-source packages with transitional packages for *-dkms.
* Adapt u01-disable-update-action.dpatch and u02-lp-integration.dpatch for
  new upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 * additional information or have any questions.
29
29
 */
30
30
 
 
31
 
31
32
/*******************************************************************************
32
33
*   Header Files                                                               *
33
34
*******************************************************************************/
34
35
#include <iprt/handletable.h>
 
36
#include "internal/iprt.h"
 
37
 
35
38
#include <iprt/mem.h>
36
39
#include <iprt/spinlock.h>
37
40
#include <iprt/err.h>
57
60
    /*
58
61
     * Allocation loop.
59
62
     */
60
 
    RTSPINLOCKTMP Tmp;
 
63
    RTSPINLOCKTMP Tmp /*= no init */;
61
64
    rtHandleTableLock(pThis, &Tmp);
62
65
 
63
66
    int rc;
166
169
 
167
170
                /* link all entries into a free list. */
168
171
                Assert(!(pThis->cCur % RTHT_LEVEL2_ENTRIES));
169
 
                for (uint32_t i = 0; i < RTHT_LEVEL2_ENTRIES - 1; i++)
 
172
                for (i = 0; i < RTHT_LEVEL2_ENTRIES - 1; i++)
170
173
                    RTHT_SET_FREE_IDX((PRTHTENTRYFREE)&paTable[i], i + 1 + pThis->cCur);
171
174
                RTHT_SET_FREE_IDX((PRTHTENTRYFREE)&paTable[RTHT_LEVEL2_ENTRIES - 1], NIL_RTHT_INDEX);
172
175
 
199
202
 
200
203
    return rc;
201
204
}
 
205
RT_EXPORT_SYMBOL(RTHandleTableAlloc);
202
206
 
203
207
 
204
208
RTDECL(void *)  RTHandleTableLookup(RTHANDLETABLE hHandleTable, uint32_t h)
212
216
    void *pvObj = NULL;
213
217
 
214
218
    /* acquire the lock */
215
 
    RTSPINLOCKTMP Tmp;
 
219
    RTSPINLOCKTMP Tmp /*= no init */;
216
220
    rtHandleTableLock(pThis, &Tmp);
217
221
 
218
222
    /*
239
243
    rtHandleTableUnlock(pThis, &Tmp);
240
244
    return pvObj;
241
245
}
 
246
RT_EXPORT_SYMBOL(RTHandleTableLookup);
242
247
 
243
248
 
244
249
RTDECL(void *)  RTHandleTableFree(RTHANDLETABLE hHandleTable, uint32_t h)
252
257
    void *pvObj = NULL;
253
258
 
254
259
    /* acquire the lock */
255
 
    RTSPINLOCKTMP Tmp;
 
260
    RTSPINLOCKTMP Tmp /*= no init */;
256
261
    rtHandleTableLock(pThis, &Tmp);
257
262
 
258
263
    /*
302
307
    rtHandleTableUnlock(pThis, &Tmp);
303
308
    return pvObj;
304
309
}
 
310
RT_EXPORT_SYMBOL(RTHandleTableFree);
305
311