Remove support for Solaris pre-8
[openafs.git] / src / afs / afs_init.c
index 1d35f45..2352262 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright 2000, International Business Machines Corporation and others.
  * All Rights Reserved.
- * 
+ *
  * This software has been released under the terms of the IBM Public
  * License.  For details, see the LICENSE file in the top-level source
  * directory or online at http://www.openafs.org/dl/license10.html
@@ -32,7 +32,7 @@
 /* Exported variables */
 struct osi_dev cacheDev;       /*Cache device */
 afs_int32 cacheInfoModTime;    /*Last time cache info modified */
-#if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
+#if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV) || defined(AFS_NBSD_ENV)
 struct mount *afs_cacheVfsp = 0;
 #elif defined(AFS_LINUX20_ENV)
 struct super_block *afs_cacheSBp = 0;
@@ -100,8 +100,8 @@ afs_CacheInit(afs_int32 astatSize, afs_int32 afiles, afs_int32 ablocks,
              afs_int32 aflags, afs_int32 ninodes, afs_int32 nusers,
              afs_int32 dynamic_vcaches)
 {
-    register afs_int32 i;
-    register struct volume *tv;
+    afs_int32 i;
+    struct volume *tv;
 
     AFS_STATCNT(afs_CacheInit);
     /*
@@ -135,15 +135,16 @@ afs_CacheInit(afs_int32 astatSize, afs_int32 afiles, afs_int32 ablocks,
     QInit(&afs_disconShadow);
     osi_dnlc_init();
 
-    /* 
-     * create volume list structure 
+    /*
+     * create volume list structure
      */
     if (aVolumes < 50)
        aVolumes = 50;
     else if (aVolumes > 32767)
        aVolumes = 32767;
 
-    tv = (struct volume *)afs_osi_Alloc(aVolumes * sizeof(struct volume));
+    tv = afs_osi_Alloc(aVolumes * sizeof(struct volume));
+    osi_Assert(tv != NULL);
     for (i = 0; i < aVolumes - 1; i++)
        tv[i].next = &tv[i + 1];
     tv[aVolumes - 1].next = NULL;
@@ -208,7 +209,7 @@ afs_CacheInit(afs_int32 astatSize, afs_int32 afiles, afs_int32 ablocks,
 void
 afs_ComputeCacheParms(void)
 {
-    register afs_int32 i;
+    afs_int32 i;
     afs_int32 afs_maxCacheDirty;
 
     /*
@@ -282,7 +283,7 @@ afs_InitCellInfo(char *afile)
 {
     afs_dcache_id_t inode;
     int code = 0;
-    
+
     code = afs_LookupInodeByPath(afile, &inode.ufs, NULL);
     return afs_cellname_init(&inode, code);
 }
@@ -345,7 +346,7 @@ afs_InitVolumeInfo(char *afile)
  * Parameters:
  *     afile : Name of the file assumed to be the cache info file
  *             for the Cache Manager; it will be used as such.
- * Side Effects:  This sets afs_fragsize, which is used in the cache usage 
+ * Side Effects:  This sets afs_fragsize, which is used in the cache usage
  *                calculations such as in afs_adjustsize()
  *
  * Environment:
@@ -360,11 +361,11 @@ afs_InitVolumeInfo(char *afile)
  *
  */
 int
-afs_InitCacheInfo(register char *afile)
+afs_InitCacheInfo(char *afile)
 {
-    register afs_int32 code;
+    afs_int32 code;
     struct osi_stat tstat;
-    register struct osi_file *tfile;
+    struct osi_file *tfile;
     struct afs_fheader theader;
 #ifndef AFS_LINUX22_ENV
     struct vnode *filevp;
@@ -383,17 +384,17 @@ afs_InitCacheInfo(register char *afile)
     if (code || !filevp)
        return ENOENT;
     {
-#if    defined(AFS_SUN56_ENV)
+#if    defined(AFS_SUN5_ENV)
        struct statvfs64 st;
 #elif  defined(AFS_HPUX102_ENV)
        struct k_statvfs st;
-#elif  defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV) || defined(AFS_HPUX100_ENV) || defined(AFS_NBSD40_ENV)
+#elif  defined(AFS_SGI_ENV) || defined(AFS_HPUX100_ENV) || defined(AFS_NBSD40_ENV)
        struct statvfs st;
 #elif defined(AFS_DARWIN80_ENV)
        struct vfsstatfs st;
 #else
        struct statfs st;
-#endif /* SUN56 */
+#endif /* SUN5 */
 
 #if    defined(AFS_SGI_ENV)
 #ifdef AFS_SGI65_ENV
@@ -419,6 +420,8 @@ afs_InitCacheInfo(register char *afile)
        if (afs_cacheVfsp && ((st = *(vfs_statfs(afs_cacheVfsp))),1))
 #elif defined(AFS_FBSD80_ENV)
        if (!VFS_STATFS(filevp->v_mount, &st))
+#elif defined(AFS_NBSD50_ENV)
+       if (!VFS_STATVFS(filevp->v_vfsp, &st))
 #elif defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
        if (!VFS_STATFS(filevp->v_mount, &st, osi_curproc()))
 #else
@@ -511,7 +514,7 @@ int afs_resourceinit_flag = 0;
 int
 afs_ResourceInit(int preallocs)
 {
-    register afs_int32 i;
+    afs_int32 i;
     static struct rx_securityClass *secobj;
 
     AFS_STATCNT(afs_ResourceInit);
@@ -522,7 +525,7 @@ afs_ResourceInit(int preallocs)
     AFS_RWLOCK_INIT(&afs_icl_lock, "afs_icl_lock");
     AFS_RWLOCK_INIT(&afs_xinterface, "afs_xinterface");
     LOCK_INIT(&afs_puttofileLock, "afs_puttofileLock");
-#ifndef AFS_FBSD_ENV
+#ifndef AFS_PRIVATE_OSI_ALLOCSPACES
     LOCK_INIT(&osi_fsplock, "osi_fsplock");
     LOCK_INIT(&osi_flplock, "osi_flplock");
 #endif
@@ -535,8 +538,10 @@ afs_ResourceInit(int preallocs)
        afs_resourceinit_flag = 1;
        for (i = 0; i < NFENTRIES; i++)
            fvTable[i] = 0;
-       for (i = 0; i < MAXNUMSYSNAMES; i++)
+       for (i = 0; i < MAXNUMSYSNAMES; i++) {
            afs_sysnamelist[i] = afs_osi_Alloc(MAXSYSNAME);
+           osi_Assert(afs_sysnamelist[i] != NULL);
+       }
        afs_sysname = afs_sysnamelist[0];
        strcpy(afs_sysname, SYS_NAME);
        afs_sysnamecount = 1;
@@ -723,11 +728,6 @@ shutdown_cache(void)
 void
 shutdown_vnodeops(void)
 {
-#if !defined(AFS_SGI_ENV) && !defined(AFS_SUN5_ENV)
-    struct buf *afs_bread_freebp = 0;
-#endif
-
-
     AFS_STATCNT(shutdown_vnodeops);
     if (afs_cold_shutdown) {
 #ifndef        AFS_SUN5_ENV            /* XXX */
@@ -736,9 +736,6 @@ shutdown_vnodeops(void)
 #ifndef AFS_LINUX20_ENV
        afs_rd_stash_i = 0;
 #endif
-#if !defined(AFS_SGI_ENV) && !defined(AFS_SUN5_ENV)
-       afs_bread_freebp = 0;
-#endif
        shutdown_mariner();
     }
 }
@@ -748,7 +745,6 @@ static void
 shutdown_server(void)
 {
     int i;
-    struct afs_conn *tc, *ntc;
     struct afs_cbr *tcbrp, *tbrp;
     struct srvAddr *sa;
 
@@ -760,22 +756,11 @@ shutdown_server(void)
            next = ts->next;
            for (sa = ts->addr; sa; sa = sa->next_sa) {
                if (sa->conns) {
-                   /*
-                    * Free all server's connection structs
-                    */
-                   tc = sa->conns;
-                   while (tc) {
-                       ntc = tc->next;
-#if 0
-                       /* we should destroy all connections
-                          when shutting down Rx, not here */
-                       AFS_GUNLOCK();
-                       rx_DestroyConnection(tc->id);
-                       AFS_GLOCK();
-#endif
-                       afs_osi_Free(tc, sizeof(struct afs_conn));
-                       tc = ntc;
-                   }
+                    /* afs_ReleaseConns has been updated to
+                     * defer rx_DestroyConnection to Rx
+                     * shutdown, as most recently was done
+                     * here */
+                    afs_ReleaseConns(sa->conns);
                }
            }
            for (tcbrp = ts->cbrs; tcbrp; tcbrp = tbrp) {
@@ -830,8 +815,8 @@ shutdown_AFS(void)
 
        shutdown_volume();
 
-       /* 
-        * Free FreeVolList allocations 
+       /*
+        * Free FreeVolList allocations
         */
        afs_osi_Free(Initialafs_freeVolList,
                     afs_memvolumes * sizeof(struct volume));
@@ -843,16 +828,16 @@ shutdown_AFS(void)
         * we simply malloc more; we won't be able to free those additional volumes.
         */
 
-       /* 
-        * Free Users table allocation 
+       /*
+        * Free Users table allocation
         */
        {
            struct unixuser *tu, *ntu;
            for (i = 0; i < NUSERS; i++) {
                for (tu = afs_users[i]; tu; tu = ntu) {
                    ntu = tu->next;
-                   if (tu->stp)
-                       afs_osi_Free(tu->stp, tu->stLen);
+                   if (tu->tokens)
+                       afs_FreeTokens(&tu->tokens);
                    if (tu->exporter)
                        EXP_RELE(tu->exporter);
                    afs_osi_Free(tu, sizeof(struct unixuser));