Lines Matching defs:crle
56 genconfig(Crle_desc *crle)
73 Hash_tbl *stbl = crle->c_strtbl;
81 if (crle->c_hashstrnum) {
88 crle->c_hashstrnum++;
97 if (crle->c_hashstrnum > hashsize[ndx])
104 size += ((2 + hashbkts + crle->c_hashstrnum) * sizeof (Word));
112 size += (crle->c_hashstrnum *
119 size += S_ROUND((crle->c_filenum * sizeof (Rtc_file)),
126 size += S_ROUND((crle->c_dirnum * sizeof (Rtc_dir)),
133 if (crle->c_envnum) {
135 size += S_ROUND(((crle->c_envnum + 1) * sizeof (Rtc_env)),
143 if (crle->c_fltrnum) {
145 size += S_ROUND(((crle->c_fltrnum + 1) * sizeof (Rtc_fltr)),
148 size += S_ROUND((crle->c_fltenum * sizeof (Rtc_flte)),
156 if (crle->c_strsize) {
158 size += S_ROUND(crle->c_strsize, sizeof (Word));
162 if (crle->c_flags & CRLE_ADDID)
168 if (ftruncate(crle->c_tempfd, size) == -1) {
171 crle->c_name, crle->c_tempname, strerror(err));
172 (void) close(crle->c_tempfd);
176 crle->c_tempfd, 0)) == (Addr)-1) {
179 crle->c_name, crle->c_tempname, strerror(err));
180 (void) close(crle->c_tempfd);
187 crle->c_tempaddr = addr;
188 crle->c_tempsize = size;
196 if (crle->c_flags & CRLE_ADDID) {
209 crle->c_tempheadaddr = addr;
252 if (crle->c_flags & CRLE_ALTER)
254 if (crle->c_flags & CRLE_DUMP) {
256 head->ch_dlflags = crle->c_dlflags;
269 if (crle->c_hashstrnum) {
271 hashtbl[1] = crle->c_hashstrnum;
279 (void) memset(hashchn, 0, (crle->c_hashstrnum * sizeof (Word)));
518 if (crle->c_edlibpath) {
521 (void) strcpy(_strtbl, crle->c_edlibpath);
522 _strtbl += strlen((char *)crle->c_edlibpath) + 1;
526 if (crle->c_adlibpath) {
529 (void) strcpy(_strtbl, crle->c_adlibpath);
530 _strtbl += strlen((char *)crle->c_adlibpath) + 1;
534 if (crle->c_eslibpath) {
537 (void) strcpy(_strtbl, crle->c_eslibpath);
538 _strtbl += strlen((char *)crle->c_eslibpath) + 1;
542 if (crle->c_aslibpath) {
545 (void) strcpy(_strtbl, crle->c_aslibpath);
546 _strtbl += strlen((char *)crle->c_aslibpath) + 1;
553 if (crle->c_envnum) {
557 for (APLIST_TRAVERSE(crle->c_env, idx, env)) {
573 if (crle->c_fltrnum) {
577 for (APLIST_TRAVERSE(crle->c_flt, idx1, flt)) {
612 (void) close(crle->c_tempfd);
613 if (msync((void *)crle->c_tempaddr, crle->c_tempsize, MS_ASYNC) == -1) {
616 crle->c_name, crle->c_tempname, strerror(err));
629 updateconfig(Crle_desc * crle)
631 Rtc_head *head = (Rtc_head *)crle->c_tempheadaddr;
633 if (crle->c_flags & CRLE_DUMP) {
636 if (msync((void *)crle->c_tempaddr, crle->c_tempsize,
640 crle->c_name, crle->c_tempname, strerror(err));
648 if (crle->c_flags & CRLE_EXISTS)
649 (void) unlink(crle->c_confil);
655 if (crle->c_flags & CRLE_DIFFDEV) {
658 if ((fd = open(crle->c_confil, (O_RDWR | O_CREAT | O_TRUNC),
662 crle->c_name, crle->c_confil, strerror(err));
665 if (write(fd, (void *)crle->c_tempaddr, crle->c_tempsize) !=
666 crle->c_tempsize) {
669 crle->c_name, crle->c_confil, strerror(err));
673 (void) unlink(crle->c_tempname);
675 (void) rename(crle->c_tempname, crle->c_confil);