From: Andrew Deason Date: Wed, 19 May 2010 20:04:45 +0000 (-0500) Subject: libuafs: Add uafs_Init compat function X-Git-Tag: openafs-devel-1_5_75~219 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=e29bd1f8d1734c45d244df45202a4b8eb47208c1;p=packages%2Fo%2Fopenafs.git libuafs: Add uafs_Init compat function Recent libuafs changes changed the libuafs initialization API. Add a uafs_Init wrapper for compatibility in case someone is using the old way. Change-Id: I30611479e0c281526dc52ac6a1969ae526886537 Reviewed-on: http://gerrit.openafs.org/2047 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- diff --git a/src/afs/UKERNEL/afs_usrops.c b/src/afs/UKERNEL/afs_usrops.c index 8bb3381a2..bd1d6ab28 100644 --- a/src/afs/UKERNEL/afs_usrops.c +++ b/src/afs/UKERNEL/afs_usrops.c @@ -1107,6 +1107,112 @@ uafs_SetRxPort(int port) usr_rx_port = port; } +/* + * uafs_Init is for backwards compatibility only! Do not use it; use + * uafs_Setup, uafs_ParseArgs, and uafs_Run instead. + */ +void +uafs_Init(char *rn, char *mountDirParam, char *confDirParam, + char *cacheBaseDirParam, int cacheBlocksParam, int cacheFilesParam, + int cacheStatEntriesParam, int dCacheSizeParam, int vCacheSizeParam, + int chunkSizeParam, int closeSynchParam, int debugParam, + int nDaemonsParam, int cacheFlagsParam, char *logFile) +{ + int code; + int argc = 0; + char *argv[32]; + int freeargc = 0; + void *freeargv[32]; + char buf[1024]; + int i; + + code = uafs_Setup(mountDirParam); + usr_assert(code == 0); + + argv[argc++] = rn; + if (mountDirParam) { + argv[argc++] = "-mountdir"; + argv[argc++] = mountDirParam; + } + if (confDirParam) { + argv[argc++] = "-confdir"; + argv[argc++] = confDirParam; + } + if (cacheBaseDirParam) { + argv[argc++] = "-cachedir"; + argv[argc++] = cacheBaseDirParam; + } + if (cacheBlocksParam) { + snprintf(buf, sizeof(buf), "%d", cacheBlocksParam); + + argv[argc++] = "-blocks"; + argv[argc++] = freeargv[freeargc++] = strdup(buf); + } + if (cacheFilesParam) { + snprintf(buf, sizeof(buf), "%d", cacheFilesParam); + + argv[argc++] = "-files"; + argv[argc++] = freeargv[freeargc++] = strdup(buf); + } + if (cacheStatEntriesParam) { + snprintf(buf, sizeof(buf), "%d", cacheStatEntriesParam); + + argv[argc++] = "-stat"; + argv[argc++] = freeargv[freeargc++] = strdup(buf); + } + if (dCacheSizeParam) { + snprintf(buf, sizeof(buf), "%d", dCacheSizeParam); + + argv[argc++] = "-dcache"; + argv[argc++] = freeargv[freeargc++] = strdup(buf); + } + if (vCacheSizeParam) { + snprintf(buf, sizeof(buf), "%d", vCacheSizeParam); + + argv[argc++] = "-volumes"; + argv[argc++] = freeargv[freeargc++] = strdup(buf); + } + if (chunkSizeParam) { + snprintf(buf, sizeof(buf), "%d", chunkSizeParam); + + argv[argc++] = "-chunksize"; + argv[argc++] = freeargv[freeargc++] = strdup(buf); + } + if (closeSynchParam) { + argv[argc++] = "-waitclose"; + } + if (debugParam) { + argv[argc++] = "-debug"; + } + if (nDaemonsParam) { + snprintf(buf, sizeof(buf), "%d", nDaemonsParam); + + argv[argc++] = "-daemons"; + argv[argc++] = freeargv[freeargc++] = strdup(buf); + } + if (cacheFlagsParam) { + if (cacheFlagsParam & AFSCALL_INIT_MEMCACHE) { + argv[argc++] = "-memcache"; + } + } + if (logFile) { + argv[argc++] = "-logfile"; + argv[argc++] = logFile; + } + + argv[argc] = NULL; + + code = uafs_ParseArgs(argc, argv); + usr_assert(code == 0); + + for (i = 0; i < freeargc; i++) { + free(freeargv[i]); + } + + code = uafs_Run(); + usr_assert(code == 0); +} + void uafs_mount(void) { int rc;