Initial IBM OpenAFS 1.0 tree
[openafs.git] / src / WINNT / client_config / misc.cpp
1 extern "C" {
2 #include <afs/param.h>
3 #include <afs/stds.h>
4 }
5
6 #include "afs_config.h"
7
8
9 /*
10  * REALLOC ____________________________________________________________________
11  *
12  */
13
14 BOOL AfsConfigReallocFunction (LPVOID *ppTarget, size_t cbElement, size_t *pcTarget, size_t cReq, size_t cInc)
15 {
16    LPVOID pNew;
17    size_t cNew;
18
19    if (cReq <= *pcTarget)
20       return TRUE;
21
22    if ((cNew = cInc * ((cReq + cInc-1) / cInc)) <= 0)
23       return FALSE;
24
25    if ((pNew = (LPVOID)Allocate (cbElement * cNew)) == NULL)
26       return FALSE;
27    memset (pNew, 0x00, cbElement * cNew);
28
29    if (*pcTarget != 0)
30       {
31       memcpy (pNew, *ppTarget, cbElement * (*pcTarget));
32       Free (*ppTarget);
33       }
34
35    *ppTarget = pNew;
36    *pcTarget = cNew;
37    return TRUE;
38 }
39