2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
11 #define __CELL_H_ENV_ 1
13 #include "cm_server.h"
15 /* a cell structure */
16 typedef struct cm_cell {
17 long cellID; /* cell ID */
18 struct cm_cell *nextp; /* locked by cm_cellLock */
19 char *namep; /* cell name; never changes */
20 struct cm_serverRef *vlServersp; /* locked by cm_serverLock */
21 osi_mutex_t mx; /* mutex locking fields (flags) */
22 long flags; /* locked by mx */
23 long timeout; /* if dns, time at which the server addrs expire */
26 /* These are bit flag values */
27 #define CM_CELLFLAG_SUID 1 /* setuid flag; not yet used */
28 #define CM_CELLFLAG_DNS 2 /* cell servers are from DNS */
29 #define CM_CELLFLAG_VLSERVER_INVALID 4 /* cell servers are invalid */
31 extern void cm_InitCell(void);
33 extern cm_cell_t *cm_GetCell(char *namep, long flags);
35 extern cm_cell_t *cm_GetCell_Gen(char *namep, char *newnamep, long flags);
37 extern cm_cell_t *cm_FindCellByID(long cellID);
39 extern void cm_ChangeRankCellVLServer(cm_server_t *tsp);
41 extern osi_rwlock_t cm_cellLock;
43 extern cm_cell_t *cm_allCellsp;
45 #endif /* __CELL_H_ENV_ */