Lines Matching refs:dcp

92 dconf_init(dumpconf_t *dcp, int dcmode)  in dconf_init()  argument
101 (void) strcpy(dcp->dc_device, DC_STR_SWAP); in dconf_init()
102 (void) strcpy(dcp->dc_savdir, "/var/crash"); in dconf_init()
105 (void) strcat(dcp->dc_savdir, "/"); in dconf_init()
106 (void) strcat(dcp->dc_savdir, ut.nodename); in dconf_init()
113 dcp->dc_cflags = DUMP_KERNEL; in dconf_init()
114 dcp->dc_enable = DC_ON; in dconf_init()
115 dcp->dc_csave = DC_COMPRESSED; in dconf_init()
117 dcp->dc_mode = dcmode; in dconf_init()
118 dcp->dc_conf_fp = NULL; in dconf_init()
119 dcp->dc_conf_fd = -1; in dconf_init()
120 dcp->dc_dump_fd = -1; in dconf_init()
121 dcp->dc_readonly = false; in dconf_init()
122 dcp->dc_parsable = false; in dconf_init()
123 dcp->dc_headers = true; in dconf_init()
127 dconf_open(dumpconf_t *dcp, const char *dpath, const char *fpath, int dcmode) in dconf_open() argument
133 dconf_init(dcp, dcmode); in dconf_open()
135 if ((dcp->dc_dump_fd = open(dpath, O_RDWR)) == -1) { in dconf_open()
140 if ((dcp->dc_conf_fd = open(fpath, O_RDWR | O_CREAT, DC_PERM)) == -1) { in dconf_open()
144 if ((dcp->dc_conf_fd = open(fpath, O_RDONLY)) == -1) { in dconf_open()
149 dcp->dc_readonly = true; in dconf_open()
153 if ((dcp->dc_conf_fp = fdopen(dcp->dc_conf_fd, fpmode)) == NULL) { in dconf_open()
163 (void) dconf_getdev(dcp); in dconf_open()
165 for (line = 1; fgets(buf, BUFSIZ, dcp->dc_conf_fp) != NULL; line++) { in dconf_open()
187 if (tokp->tok_parse(dcp, value) == -1) { in dconf_open()
216 return (dconf_getdev(dcp)); in dconf_open()
222 dconf_getdev(dumpconf_t *dcp) in dconf_getdev() argument
226 if ((dcp->dc_cflags = ioctl(dcp->dc_dump_fd, DIOCGETCONF, 0)) == -1) { in dconf_getdev()
231 if (ioctl(dcp->dc_dump_fd, DIOCGETDEV, dcp->dc_device) == -1) { in dconf_getdev()
236 dcp->dc_device[0] = '\0'; in dconf_getdev()
243 dconf_close(dumpconf_t *dcp) in dconf_close() argument
245 if (fclose(dcp->dc_conf_fp) == 0) { in dconf_close()
246 (void) close(dcp->dc_dump_fd); in dconf_close()
253 dconf_write(dumpconf_t *dcp) in dconf_write() argument
257 if (fseeko(dcp->dc_conf_fp, (off_t)0, SEEK_SET) == -1) { in dconf_write()
262 if (ftruncate(dcp->dc_conf_fd, (off_t)0) == -1) { in dconf_write()
270 "#\n", dcp->dc_conf_fp); in dconf_write()
273 if (fprintf(dcp->dc_conf_fp, "%s=", tokp->tok_name) == -1 || in dconf_write()
274 tokp->tok_print(dcp, dcp->dc_conf_fp) == -1) { in dconf_write()
280 if (fflush(dcp->dc_conf_fp) != 0) in dconf_write()
283 if (fsync(dcp->dc_conf_fd) == -1) in dconf_write()
286 if (fchmod(dcp->dc_conf_fd, DC_PERM) == -1) in dconf_write()
289 if (fchown(dcp->dc_conf_fd, DC_OWNER, DC_GROUP) == -1) in dconf_write()
346 dconf_dev_ioctl(dumpconf_t *dcp, int cmd) in dconf_dev_ioctl() argument
348 if (ioctl(dcp->dc_dump_fd, cmd, dcp->dc_device) == 0) in dconf_dev_ioctl()
353 warn(gettext("dumps not supported on %s\n"), dcp->dc_device); in dconf_dev_ioctl()
356 warn(gettext("device %s is already in use\n"), dcp->dc_device); in dconf_dev_ioctl()
361 "a dump device\n"), dcp->dc_device); in dconf_dev_ioctl()
369 warn(gettext("cannot use %s as dump device"), dcp->dc_device); in dconf_dev_ioctl()
375 dconf_update(dumpconf_t *dcp, int checkinuse) in dconf_update() argument
383 if (checkinuse && (dm_inuse(dcp->dc_device, &msg, DM_WHO_DUMP, in dconf_update()
387 " in use"), dcp->dc_device); in dconf_update()
398 if ((oconf = ioctl(dcp->dc_dump_fd, DIOCGETCONF, 0)) == -1) { in dconf_update()
404 dcp->dc_cflags &= DUMP_CONTENT; in dconf_update()
406 if (ioctl(dcp->dc_dump_fd, DIOCSETCONF, dcp->dc_cflags) == -1) { in dconf_update()
411 if (strcmp(dcp->dc_device, DC_STR_SWAP) == 0) { in dconf_update()
432 if (ioctl(dcp->dc_dump_fd, DIOCSETDEV, in dconf_update()
434 (void) strcpy(dcp->dc_device, in dconf_update()
448 } else if (strcmp(dcp->dc_device, DC_STR_NONE) == 0) { in dconf_update()
449 if (ioctl(dcp->dc_dump_fd, DIOCRMDEV, NULL) == -1) { in dconf_update()
453 } else if (dcp->dc_device[0] != '\0') { in dconf_update()
459 if (dcp->dc_mode == DC_CURRENT) { in dconf_update()
463 if (dconf_dev_ioctl(dcp, DIOCTRYDEV) == -1) in dconf_update()
466 if (open_stat64(dcp->dc_device, &st) == -1) { in dconf_update()
468 dcp->dc_device); in dconf_update()
473 dcp->dc_device)) > 0) in dconf_update()
475 if (ioctl(dcp->dc_dump_fd, DIOCGETDUMPSIZE, &d) == -1) { in dconf_update()
484 dcp->dc_device, d, st.st_size); in dconf_update()
489 if (dconf_dev_ioctl(dcp, DIOCSETDEV) == -1) in dconf_update()
498 if ((dcp->dc_cflags = ioctl(dcp->dc_dump_fd, DIOCGETCONF, 0)) == -1) { in dconf_update()
506 (void) ioctl(dcp->dc_dump_fd, DIOCSETCONF, oconf); in dconf_update()
511 dconf_write_uuid(dumpconf_t *dcp) in dconf_write_uuid() argument
520 err = ioctl(dcp->dc_dump_fd, DIOCSETUUID, uuidstr); in dconf_write_uuid()
529 dconf_get_dumpsize(dumpconf_t *dcp) in dconf_get_dumpsize() argument
534 if (ioctl(dcp->dc_dump_fd, DIOCGETDUMPSIZE, &d) == -1) { in dconf_get_dumpsize()
539 if (dcp->dc_parsable) in dconf_get_dumpsize()
544 if (dcp->dc_headers) in dconf_get_dumpsize()
551 dconf_print(dumpconf_t *dcp, FILE *fp) in dconf_print() argument
556 if (dcp->dc_cflags & DUMP_ALL) in dconf_print()
558 else if (dcp->dc_cflags & DUMP_CURPROC) in dconf_print()
565 if (dcp->dc_device[0] != '\0') { in dconf_print()
567 dcp->dc_device, (dcp->dc_cflags & DUMP_EXCL) ? in dconf_print()
574 (void) fprintf(fp, gettext("Savecore directory: %s"), dcp->dc_savdir); in dconf_print()
576 if (minfree_read(dcp->dc_savdir, &min) == 0) { in dconf_print()
587 (dcp->dc_enable == DC_OFF) ? gettext("no") : gettext("yes")); in dconf_print()
589 (dcp->dc_csave == DC_UNCOMPRESSED) ? gettext("off") : in dconf_print()
594 dconf_str2device(dumpconf_t *dcp, char *buf) in dconf_str2device() argument
597 (void) strcpy(dcp->dc_device, DC_STR_SWAP); in dconf_str2device()
602 (void) strcpy(dcp->dc_device, DC_STR_NONE); in dconf_str2device()
607 (void) strcpy(dcp->dc_device, buf); in dconf_str2device()
615 dconf_str2savdir(dumpconf_t *dcp, char *buf) in dconf_str2savdir() argument
618 (void) strcpy(dcp->dc_savdir, buf); in dconf_str2savdir()
626 dconf_str2content(dumpconf_t *dcp, char *buf) in dconf_str2content() argument
629 dcp->dc_cflags = (dcp->dc_cflags & ~DUMP_CONTENT) | DUMP_KERNEL; in dconf_str2content()
634 dcp->dc_cflags = (dcp->dc_cflags & ~DUMP_CONTENT) | in dconf_str2content()
640 dcp->dc_cflags = (dcp->dc_cflags & ~DUMP_CONTENT) | DUMP_ALL; in dconf_str2content()
649 dconf_str2enable(dumpconf_t *dcp, char *buf) in dconf_str2enable() argument
652 dcp->dc_enable = DC_ON; in dconf_str2enable()
657 dcp->dc_enable = DC_OFF; in dconf_str2enable()
666 dconf_str2csave(dumpconf_t *dcp, char *buf) in dconf_str2csave() argument
669 dcp->dc_csave = DC_COMPRESSED; in dconf_str2csave()
674 dcp->dc_csave = DC_UNCOMPRESSED; in dconf_str2csave()
683 print_content(const dumpconf_t *dcp, FILE *fp) in print_content() argument
687 if (dcp->dc_cflags & DUMP_ALL) in print_content()
689 else if (dcp->dc_cflags & DUMP_CURPROC) in print_content()
698 print_device(const dumpconf_t *dcp, FILE *fp) in print_device() argument
700 return (fprintf(fp, "%s\n", (dcp->dc_device[0] != '\0') ? in print_device()
701 dcp->dc_device : DC_STR_SWAP)); in print_device()
705 print_enable(const dumpconf_t *dcp, FILE *fp) in print_enable() argument
707 return (fprintf(fp, "%s\n", (dcp->dc_enable == DC_OFF) ? in print_enable()
712 print_csave(const dumpconf_t *dcp, FILE *fp) in print_csave() argument
714 return (fprintf(fp, "%s\n", (dcp->dc_csave == DC_COMPRESSED) ? in print_csave()
719 print_savdir(const dumpconf_t *dcp, FILE *fp) in print_savdir() argument
721 return (fprintf(fp, "%s\n", dcp->dc_savdir)); in print_savdir()