Lines Matching defs:db

110 	struct db_info *db;
133 if ((db = libc_realloc(db_info,
138 db_info = db;
142 db = &db_info[i];
143 db->flag = 0;
144 (void) strcpy(db->db_name, catname);
145 db->saved_locale = libc_strdup(curloc);
146 if (db->saved_locale == NULL) {
150 db->flag = DB_OPEN;
153 db->saved_locale, db->db_name) >= sizeof (pathname)) {
165 db->flag |= DB_EXIST;
166 db->addr = (uintptr_t)addr;
167 db->length = (size_t)sb.st_size;
171 return (db);
178 unload_db(struct db_info *db)
180 if ((db->flag & (DB_OPEN|DB_EXIST)) ==
182 (void) munmap((caddr_t)db->addr, db->length);
184 db->flag = 0;
185 if (db->saved_locale)
186 libc_free(db->saved_locale);
187 db->saved_locale = NULL;
193 * If db is not NULL, then search will start from top of the array,
194 * otherwise it will start from the next of given db.
199 lookup_cache(struct db_info *db, const char *curloc, const char *catname)
204 if (db == NULL)
205 db = db_info;
207 db++;
209 for (; db < &db_info[db_count]; db++) {
210 if (db->flag == 0)
212 if (strcmp(db->db_name, catname) == 0) {
214 (db->saved_locale != NULL &&
215 strcmp(db->saved_locale, curloc) == 0)) {
216 return (db);
224 valid_msg(struct db_info *db, int id)
226 if (db == NULL || (db->flag & DB_EXIST) == 0)
230 if (id != 0 && id <= *(int *)(db->addr))
238 msg(struct db_info *db, int id)
240 return ((char *)(db->addr + *(int *)(db->addr +
259 struct db_info *db;
287 db = lookup_cache(NULL, curloc, catname);
288 if (db != NULL) {
293 if (valid_msg(db, id))
294 return (msg(db, id));
301 db = lookup_cache(NULL, def_locale, catname);
302 if (db == NULL) {
307 db = load_db(def_locale, catname, &err);
311 if (valid_msg(db, id))
312 return (msg(db, id));
322 db = NULL;
323 while ((db = lookup_cache(db, NULL, catname)) != NULL)
324 unload_db(db);
329 db = load_db(curloc, catname, &err);
332 if (valid_msg(db, id))
333 return (msg(db, id));
339 db = load_db(def_locale, catname, &err);
343 if (valid_msg(db, id))
344 return (msg(db, id));