Lines Matching refs:dcp

89 dconf_init(dumpconf_t *dcp, int dcmode)  in dconf_init()  argument
98 (void) strcpy(dcp->dc_device, DC_STR_SWAP); in dconf_init()
99 (void) strcpy(dcp->dc_savdir, "/var/crash"); in dconf_init()
102 (void) strcat(dcp->dc_savdir, "/"); in dconf_init()
103 (void) strcat(dcp->dc_savdir, ut.nodename); in dconf_init()
110 dcp->dc_cflags = DUMP_KERNEL; in dconf_init()
111 dcp->dc_enable = DC_ON; in dconf_init()
112 dcp->dc_csave = DC_COMPRESSED; in dconf_init()
114 dcp->dc_mode = dcmode; in dconf_init()
115 dcp->dc_conf_fp = NULL; in dconf_init()
116 dcp->dc_conf_fd = -1; in dconf_init()
117 dcp->dc_dump_fd = -1; in dconf_init()
118 dcp->dc_readonly = B_FALSE; in dconf_init()
122 dconf_open(dumpconf_t *dcp, const char *dpath, const char *fpath, int dcmode) in dconf_open() argument
128 dconf_init(dcp, dcmode); in dconf_open()
130 if ((dcp->dc_dump_fd = open(dpath, O_RDWR)) == -1) { in dconf_open()
135 if ((dcp->dc_conf_fd = open(fpath, O_RDWR | O_CREAT, DC_PERM)) == -1) { in dconf_open()
139 if ((dcp->dc_conf_fd = open(fpath, O_RDONLY)) == -1) { in dconf_open()
144 dcp->dc_readonly = B_TRUE; in dconf_open()
148 if ((dcp->dc_conf_fp = fdopen(dcp->dc_conf_fd, fpmode)) == NULL) { in dconf_open()
158 (void) dconf_getdev(dcp); in dconf_open()
160 for (line = 1; fgets(buf, BUFSIZ, dcp->dc_conf_fp) != NULL; line++) { in dconf_open()
182 if (tokp->tok_parse(dcp, value) == -1) { in dconf_open()
211 return (dconf_getdev(dcp)); in dconf_open()
217 dconf_getdev(dumpconf_t *dcp) in dconf_getdev() argument
221 if ((dcp->dc_cflags = ioctl(dcp->dc_dump_fd, DIOCGETCONF, 0)) == -1) { in dconf_getdev()
226 if (ioctl(dcp->dc_dump_fd, DIOCGETDEV, dcp->dc_device) == -1) { in dconf_getdev()
231 dcp->dc_device[0] = '\0'; in dconf_getdev()
238 dconf_close(dumpconf_t *dcp) in dconf_close() argument
240 if (fclose(dcp->dc_conf_fp) == 0) { in dconf_close()
241 (void) close(dcp->dc_dump_fd); in dconf_close()
248 dconf_write(dumpconf_t *dcp) in dconf_write() argument
252 if (fseeko(dcp->dc_conf_fp, (off_t)0, SEEK_SET) == -1) { in dconf_write()
257 if (ftruncate(dcp->dc_conf_fd, (off_t)0) == -1) { in dconf_write()
265 "#\n", dcp->dc_conf_fp); in dconf_write()
268 if (fprintf(dcp->dc_conf_fp, "%s=", tokp->tok_name) == -1 || in dconf_write()
269 tokp->tok_print(dcp, dcp->dc_conf_fp) == -1) { in dconf_write()
275 if (fflush(dcp->dc_conf_fp) != 0) in dconf_write()
278 if (fsync(dcp->dc_conf_fd) == -1) in dconf_write()
281 if (fchmod(dcp->dc_conf_fd, DC_PERM) == -1) in dconf_write()
284 if (fchown(dcp->dc_conf_fd, DC_OWNER, DC_GROUP) == -1) in dconf_write()
341 dconf_dev_ioctl(dumpconf_t *dcp, int cmd) in dconf_dev_ioctl() argument
343 if (ioctl(dcp->dc_dump_fd, cmd, dcp->dc_device) == 0) in dconf_dev_ioctl()
348 warn(gettext("dumps not supported on %s\n"), dcp->dc_device); in dconf_dev_ioctl()
351 warn(gettext("device %s is already in use\n"), dcp->dc_device); in dconf_dev_ioctl()
356 "a dump device\n"), dcp->dc_device); in dconf_dev_ioctl()
364 warn(gettext("cannot use %s as dump device"), dcp->dc_device); in dconf_dev_ioctl()
370 dconf_update(dumpconf_t *dcp, int checkinuse) in dconf_update() argument
378 if (checkinuse && (dm_inuse(dcp->dc_device, &msg, DM_WHO_DUMP, in dconf_update()
382 " in use"), dcp->dc_device); in dconf_update()
393 if ((oconf = ioctl(dcp->dc_dump_fd, DIOCGETCONF, 0)) == -1) { in dconf_update()
399 dcp->dc_cflags &= DUMP_CONTENT; in dconf_update()
401 if (ioctl(dcp->dc_dump_fd, DIOCSETCONF, dcp->dc_cflags) == -1) { in dconf_update()
406 if (strcmp(dcp->dc_device, DC_STR_SWAP) == 0) { in dconf_update()
427 if (ioctl(dcp->dc_dump_fd, DIOCSETDEV, in dconf_update()
429 (void) strcpy(dcp->dc_device, in dconf_update()
443 } else if (strcmp(dcp->dc_device, DC_STR_NONE) == 0) { in dconf_update()
444 if (ioctl(dcp->dc_dump_fd, DIOCRMDEV, NULL) == -1) { in dconf_update()
448 } else if (dcp->dc_device[0] != '\0') { in dconf_update()
454 if (dcp->dc_mode == DC_CURRENT) { in dconf_update()
458 if (dconf_dev_ioctl(dcp, DIOCTRYDEV) == -1) in dconf_update()
461 if (open_stat64(dcp->dc_device, &st) == -1) { in dconf_update()
463 dcp->dc_device); in dconf_update()
468 dcp->dc_device)) > 0) in dconf_update()
470 if (ioctl(dcp->dc_dump_fd, DIOCGETDUMPSIZE, &d) == -1) { in dconf_update()
479 dcp->dc_device, d, st.st_size); in dconf_update()
484 if (dconf_dev_ioctl(dcp, DIOCSETDEV) == -1) in dconf_update()
493 if ((dcp->dc_cflags = ioctl(dcp->dc_dump_fd, DIOCGETCONF, 0)) == -1) { in dconf_update()
501 (void) ioctl(dcp->dc_dump_fd, DIOCSETCONF, oconf); in dconf_update()
506 dconf_write_uuid(dumpconf_t *dcp) in dconf_write_uuid() argument
515 err = ioctl(dcp->dc_dump_fd, DIOCSETUUID, uuidstr); in dconf_write_uuid()
524 dconf_get_dumpsize(dumpconf_t *dcp) in dconf_get_dumpsize() argument
529 if (ioctl(dcp->dc_dump_fd, DIOCGETDUMPSIZE, &d) == -1) { in dconf_get_dumpsize()
541 dconf_print(dumpconf_t *dcp, FILE *fp) in dconf_print() argument
546 if (dcp->dc_cflags & DUMP_ALL) in dconf_print()
548 else if (dcp->dc_cflags & DUMP_CURPROC) in dconf_print()
555 if (dcp->dc_device[0] != '\0') { in dconf_print()
557 dcp->dc_device, (dcp->dc_cflags & DUMP_EXCL) ? in dconf_print()
564 (void) fprintf(fp, gettext("Savecore directory: %s"), dcp->dc_savdir); in dconf_print()
566 if (minfree_read(dcp->dc_savdir, &min) == 0) { in dconf_print()
577 (dcp->dc_enable == DC_OFF) ? gettext("no") : gettext("yes")); in dconf_print()
579 (dcp->dc_csave == DC_UNCOMPRESSED) ? gettext("off") : in dconf_print()
584 dconf_str2device(dumpconf_t *dcp, char *buf) in dconf_str2device() argument
587 (void) strcpy(dcp->dc_device, DC_STR_SWAP); in dconf_str2device()
592 (void) strcpy(dcp->dc_device, DC_STR_NONE); in dconf_str2device()
597 (void) strcpy(dcp->dc_device, buf); in dconf_str2device()
605 dconf_str2savdir(dumpconf_t *dcp, char *buf) in dconf_str2savdir() argument
608 (void) strcpy(dcp->dc_savdir, buf); in dconf_str2savdir()
616 dconf_str2content(dumpconf_t *dcp, char *buf) in dconf_str2content() argument
619 dcp->dc_cflags = (dcp->dc_cflags & ~DUMP_CONTENT) | DUMP_KERNEL; in dconf_str2content()
624 dcp->dc_cflags = (dcp->dc_cflags & ~DUMP_CONTENT) | in dconf_str2content()
630 dcp->dc_cflags = (dcp->dc_cflags & ~DUMP_CONTENT) | DUMP_ALL; in dconf_str2content()
639 dconf_str2enable(dumpconf_t *dcp, char *buf) in dconf_str2enable() argument
642 dcp->dc_enable = DC_ON; in dconf_str2enable()
647 dcp->dc_enable = DC_OFF; in dconf_str2enable()
656 dconf_str2csave(dumpconf_t *dcp, char *buf) in dconf_str2csave() argument
659 dcp->dc_csave = DC_COMPRESSED; in dconf_str2csave()
664 dcp->dc_csave = DC_UNCOMPRESSED; in dconf_str2csave()
673 print_content(const dumpconf_t *dcp, FILE *fp) in print_content() argument
677 if (dcp->dc_cflags & DUMP_ALL) in print_content()
679 else if (dcp->dc_cflags & DUMP_CURPROC) in print_content()
688 print_device(const dumpconf_t *dcp, FILE *fp) in print_device() argument
690 return (fprintf(fp, "%s\n", (dcp->dc_device[0] != '\0') ? in print_device()
691 dcp->dc_device : DC_STR_SWAP)); in print_device()
695 print_enable(const dumpconf_t *dcp, FILE *fp) in print_enable() argument
697 return (fprintf(fp, "%s\n", (dcp->dc_enable == DC_OFF) ? in print_enable()
702 print_csave(const dumpconf_t *dcp, FILE *fp) in print_csave() argument
704 return (fprintf(fp, "%s\n", (dcp->dc_csave == DC_COMPRESSED) ? in print_csave()
709 print_savdir(const dumpconf_t *dcp, FILE *fp) in print_savdir() argument
711 return (fprintf(fp, "%s\n", dcp->dc_savdir)); in print_savdir()