Lines Matching defs:dcp

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