Lines Matching defs:cfp

106 dump_status(cfp_t *cfp, char *str)
111 cfp->cf_head->h_magic, cfp->cf_head->h_state);
114 cfp->cf_mapped, cfp->cf_head->h_parsesize,
115 cfp->cf_head->h_parseoff);
118 cfp->cf_head->h_cparse, cfp->cf_head->h_csize,
119 cfp->cf_head->h_acsize);
121 cfp->cf_head->h_ccopy1, cfp->cf_head->h_ccopy2);
124 cfp->cf_head->h_seq1, cfp->cf_head->h_seq2);
394 cfp_t *cfp;
456 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
457 if (!cfp->cf_fd) continue;
458 if (cfp->cf_head->h_state & CFG_HDR_INVALID) {
459 if (!cfg_read(cfp)) {
466 if ((*cfp->cf_pp->readcf)
467 (cfp, buf, table_offset, relnum - secnum) == NULL) {
484 if (cfp >= &cfg->cf[2]) {
688 cfp_t *cfp;
768 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
769 if (!cfp->cf_fd) continue;
770 if (cfp->cf_head->h_state & CFG_HDR_INVALID) {
771 if (!cfg_read(cfp)) {
779 if ((*cfp->cf_pp->readcf)
780 (cfp, tmpbuf, table_offset, relnum - secnum)
799 if (cfp >= &cfg->cf[2]) {
811 if ((rc = ((*cfp->cf_pp->remcf)
812 (cfp, table_index, relnum - secnum))) < 0)
843 (*cfp->cf_pp->replacecf)
844 (cfp, bufp, table_index, relnum - secnum);
861 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
862 if (!cfp->cf_fd) continue;
863 if (cfp->cf_head->h_state & CFG_HDR_INVALID) {
864 if (!cfg_read(cfp)) {
872 if ((*cfp->cf_pp->readcf)
873 (cfp, buf, table_offset, relnum - secnum)
892 if (cfp >= &cfg->cf[2]) {
925 (*cfp->cf_pp->replacecf)
926 (cfp, newbuf, table_index, relnum - secnum);
975 cfp = &cfg->cf[1];
977 cfp = &cfg->cf[0];
979 if (cfp->cf_head->h_state & CFG_HDR_INVALID) {
980 if (!cfg_read(cfp)) {
986 if (cfp->cf_head->h_csize + strlen(buf) > CFG_DEFAULT_SSIZE) {
991 (*cfp->cf_pp->addcf)(cfp, bufp, table_index);
1463 cfg_set_memorymap(cfp_t *cfp)
1465 cfgheader_t *hd = cfp->cf_head;
1482 cfg_init_header(cfp_t *cfp)
1485 cfgheader_t *hd = cfp->cf_head;
1509 cfg_read(cfp_t *cfp)
1518 if (!cfp->cf_head) {
1524 cfp->cf_head = hd;
1527 if ((*cfp->cf_pp->seek)(cfp, 0, SEEK_SET) < 0) {
1534 rc = (*cfp->cf_pp->read)(cfp, (char *)cfp->cf_head, 4);
1542 if ((*cfp->cf_pp->seek)(cfp, 0, SEEK_SET) < 0) {
1549 rc = (*cfp->cf_pp->read)(cfp, (char *)cfp->cf_head, sizeof (*hd));
1557 cfp->cf_head->h_cfgs = NULL;
1558 cfg_set_memorymap(cfp);
1559 if (cfp->cf_head->h_magic != CFG_NEW_MAGIC) {
1562 cfp->cf_head->h_magic);
1567 cfp->cf_head->h_state &= ~(CFG_HDR_INVALID);
1572 rc = (*cfp->cf_pp->read)
1573 (cfp, (char *)cfp->cf_mapped, CFG_DEFAULT_PARSE_SIZE);
1581 readsize = cfp->cf_head->h_csize;
1586 rc = (*cfp->cf_pp->read)
1587 (cfp, (char *)cfp->cf_head->h_ccopy1, readsize);
1596 if ((*cfp->cf_pp->seek)
1597 (cfp, CFG_DEFAULT_SSIZE - rc, SEEK_CUR) < 0) {
1608 rc = (*cfp->cf_pp->read)
1609 (cfp, (char *)cfp->cf_head->h_ccopy2, readsize);
1619 if ((*cfp->cf_pp->seek)
1620 (cfp, CFG_DEFAULT_SSIZE - rc, SEEK_CUR) < 0) {
1630 rc = (*cfp->cf_pp->read)
1631 (cfp, (int *)cfp->cf_head->h_sizes1, CFG_DEFAULT_PSIZE);
1639 rc = (*cfp->cf_pp->read)
1640 (cfp, (int *)cfp->cf_head->h_sizes2, CFG_DEFAULT_PSIZE);
1651 if ((cfp->cf_head->h_seq1 <= 0) && (cfp->cf_head->h_seq2 <= 0)) {
1652 cfp->cf_head->h_cparse = cfp->cf_head->h_ccopy1;
1653 cfp->cf_head->h_sizes = cfp->cf_head->h_sizes1;
1656 if (cfp->cf_head->h_seq1 >= cfp->cf_head->h_seq2) {
1657 cfp->cf_head->h_cparse = cfp->cf_head->h_ccopy1;
1658 cfp->cf_head->h_sizes = cfp->cf_head->h_sizes1;
1660 cfp->cf_head->h_cparse = cfp->cf_head->h_ccopy2;
1661 cfp->cf_head->h_sizes = cfp->cf_head->h_sizes2;
1665 dump_status(cfp, "cfg_read");
1681 cfp_t *cfp;
1735 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
1736 if (!cfp->cf_fd) continue;
1737 if ((cfp->cf_head) &&
1738 (cfp->cf_head->h_state & CFG_HDR_INVALID)) {
1739 if ((rc = cfg_hdrcmp(cfp)) == 0) {
1744 cfp->cf_head->h_state |= CFG_HDR_RDLOCK;
1746 cfp->cf_head->h_state |= CFG_HDR_WRLOCK;
1748 cfp->cf_head->h_state &= ~(CFG_HDR_INVALID);
1757 cfg_free_cfglist(cfp);
1760 if (cfp->cf_head->h_ccopy1) {
1761 free(cfp->cf_head->h_ccopy1);
1762 cfp->cf_head->h_ccopy1 = NULL;
1764 if (cfp->cf_head->h_ccopy2) {
1765 free(cfp->cf_head->h_ccopy2);
1766 cfp->cf_head->h_ccopy2 = NULL;
1768 if (cfp->cf_head->h_sizes1) {
1769 free(cfp->cf_head->h_sizes1);
1770 cfp->cf_head->h_sizes1 = NULL;
1772 if (cfp->cf_head->h_sizes2) {
1773 free(cfp->cf_head->h_sizes2);
1774 cfp->cf_head->h_sizes2 = NULL;
1777 if (cfp->cf_head)
1778 free(cfp->cf_head);
1779 cfp->cf_head = NULL;
1782 if (cfp->cf_head == NULL) {
1783 if (!cfg_read(cfp)) {
1784 if (cfp->cf_head != NULL)
1785 cfg_init_header(cfp);
1794 cfg_read_parser_config(cfp);
1798 cfp->cf_head->h_state |= CFG_HDR_RDLOCK;
1800 if (cfp->cf_head->h_seq1 >= cfp->cf_head->h_seq2) {
1805 memcpy(cfp->cf_head->h_ccopy2,
1806 cfp->cf_head->h_ccopy1,
1807 cfp->cf_head->h_csize);
1808 memcpy(cfp->cf_head->h_sizes2,
1809 cfp->cf_head->h_sizes1,
1812 cfp->cf_head->h_cparse = cfp->cf_head->h_ccopy2;
1813 cfp->cf_head->h_sizes = cfp->cf_head->h_sizes2;
1819 memcpy(cfp->cf_head->h_ccopy1,
1820 cfp->cf_head->h_ccopy2,
1821 cfp->cf_head->h_csize);
1822 memcpy(cfp->cf_head->h_sizes1,
1823 cfp->cf_head->h_sizes2,
1826 cfp->cf_head->h_cparse = cfp->cf_head->h_ccopy1;
1827 cfp->cf_head->h_sizes = cfp->cf_head->h_sizes1;
1830 cfp->cf_head->h_state |= CFG_HDR_WRLOCK;
1833 if (cfg_map_cfglists(cfp) < 0) {
1841 dump_status(cfp, "cfg_lock");
1860 cfp_unlock(cfp_t *cfp)
1874 (void) fcntl(cfp->cf_lock, F_SETLKW, &lk);
1877 if (cfp->cf_head != NULL) {
1878 cfp->cf_head->h_state &= ~(CFG_HDR_RDLOCK|CFG_HDR_WRLOCK);
1879 cfp->cf_head->h_state |= CFG_HDR_INVALID;
1902 cfp_t *cfp;
1911 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
1912 if (!cfp->cf_fd) continue;
1913 if (cfp->cf_head == NULL) {
1932 if ((cfp->cf_head->h_state & CFG_HDR_RDLOCK)
1955 cfp_t *cfp;
1964 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
1965 if (!cfp->cf_fd) continue;
1966 if (cfp->cf_head == NULL) {
1979 if ((cfp->cf_head->h_state & CFG_HDR_WRLOCK)
2077 cfp_t *cfp;
2093 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
2094 if (!cfp->cf_fd) continue;
2099 cfg_replace_lists(cfp);
2101 if ((*cfp->cf_pp->seek)(cfp, 0, SEEK_SET) < 0) {
2108 cfp->cf_head->h_size = cfp->cf_head->h_parsesize
2109 + cfp->cf_head->h_csize + cfp->cf_head->h_psize;
2110 cfp->cf_head->h_stamp = time(&tloc);
2113 if ((*cfp->cf_pp->seek)
2114 (cfp, sizeof (cfgheader_t), SEEK_CUR) < 0)
2117 if (cfp->cf_head->h_ccopy1 == cfp->cf_head->h_cparse) {
2118 if (cfp->cf_head->h_seq1 < 0)
2119 cfp->cf_head->h_seq1 = 1;
2121 cfp->cf_head->h_seq1 = cfp->cf_head->h_seq2 + 1;
2124 if (cfp->cf_head->h_seq2 < 0)
2125 cfp->cf_head->h_seq2 = 1;
2127 cfp->cf_head->h_seq2 = cfp->cf_head->h_seq1 + 1;
2131 dump_status(cfp, "cfg_commit");
2133 rc = (*cfp->cf_pp->write)
2134 (cfp, cfp->cf_mapped, CFG_DEFAULT_PARSE_SIZE);
2139 rc, cfp->cf_head->h_parsesize);
2143 rc = (*cfp->cf_pp->write)
2144 (cfp, cfp->cf_head->h_ccopy1,
2145 cfp->cf_head->h_csize);
2150 rc, cfp->cf_head->h_csize);
2153 if ((*cfp->cf_pp->seek)
2154 (cfp, (2 * CFG_DEFAULT_SSIZE) - rc, SEEK_CUR) < 0)
2160 ip = cfp->cf_head->h_sizes1;
2164 rc = (*cfp->cf_pp->write)(cfp,
2165 cfp->cf_head->h_sizes1, wrsize * sizeof (int));
2173 if ((*cfp->cf_pp->seek)(cfp,
2177 rc = (*cfp->cf_pp->write)(cfp,
2178 cfp->cf_head->h_ccopy2, cfp->cf_head->h_csize);
2183 rc, cfp->cf_head->h_csize);
2186 if ((*cfp->cf_pp->seek)
2187 (cfp, (CFG_DEFAULT_SSIZE + CFG_DEFAULT_PSIZE) - rc,
2194 ip = cfp->cf_head->h_sizes2;
2198 rc = (*cfp->cf_pp->write)(cfp, cfp->cf_head->h_sizes2,
2212 "writing h_csize %d\n", cfp->cf_head->h_csize);
2214 if ((*cfp->cf_pp->seek)(cfp, 0, SEEK_SET) < 0)
2217 cfp->cf_head->h_size = cfp->cf_head->h_parsesize +
2218 cfp->cf_head->h_csize + cfp->cf_head->h_psize;
2220 rc = (*cfp->cf_pp->write)
2221 (cfp, cfp->cf_head, sizeof (cfgheader_t));
2369 cfp_t *cfp;
2383 cfp = FP_SUN_CLUSTER(cfg);
2406 if (chead_loaded && (chead_loaded != cfp->cf_fd)) {
2420 if ((size + cfp->cf_head->h_parseoff) > CFG_DEFAULT_PARSE_SIZE) {
2427 size, cfp->cf_head->h_parseoff, cfp->cf_head->h_parsesize);
2432 bcopy(buf, (cfp->cf_mapped + cfp->cf_head->h_parseoff), size);
2433 cfp->cf_head->h_parseoff += size;
2434 cfp->cf_head->h_state |= CFG_HDR_INVALID;
2435 if (cfp->cf_mapped[cfp->cf_head->h_parseoff - 1] != '\n') {
2436 cfp->cf_mapped[cfp->cf_head->h_parseoff] = '\n';
2437 cfp->cf_head->h_parseoff++;
2439 cfp->cf_head->h_parsesize = cfp->cf_head->h_parseoff;
2440 cfg_read_parser_config(cfp);
2452 cfg_read_parser_config(cfp_t *cfp)
2472 while (c = cfp->cf_mapped[foff++]) {
2518 chead_loaded = cfp->cf_fd;
2527 if ((cfp->cf_head->h_cfgs == NULL) ||
2528 (cfp->cf_head->h_cfgs[n-1].l_entry == NULL)) {
2529 cfp->cf_head->h_cfgs = (cfglist_t *)calloc(MAX_CFG,
2536 if (cfp->cf_head->h_cfgs) {
2541 for (cfp->cf_head->h_ncfgs = n + 1;
2542 i < min(cfp->cf_head->h_ncfgs, MAX_CFG); i++) {
2543 cfp->cf_head->h_cfgs[i].l_name = '\0';
2544 cfp->cf_head->h_cfgs[i].l_name =
2546 cfp->cf_head->h_cfgs[i].l_index = i;
2547 cfp->cf_head->h_cfgs[i].l_entry =
2549 cfp->cf_head->h_cfgs[i].l_nentry = 0;
2550 cfp->cf_head->h_cfgs[i].l_esiz =
2552 cfp->cf_head->h_cfgs[i].l_size = 0;
2553 cfp->cf_head->h_cfgs[i].l_free = DEFAULT_ENTRY_SIZE;
2554 if ((cfp->cf_head->h_cfgs[i].l_entry == NULL) ||
2555 (cfp->cf_head->h_cfgs[i].l_esiz == NULL)) {
2573 cfg_map_cfglists(cfp_t *cfp)
2583 ch = cfp->cf_head;
2661 cfg_replace_lists(cfp_t *cfp)
2671 cf = cfp->cf_head;
2673 if ((cfl = cfp->cf_head->h_cfgs) == NULL)
2744 cfg_free_cfglist(cfp_t *cfp)
2748 if (!cfp->cf_head || !cfp->cf_head->h_cfgs)
2751 for (i = 0; cfp->cf_head && i < MAX_CFG; i++) {
2752 if (cfp->cf_head->h_cfgs[i].l_entry) {
2753 free(cfp->cf_head->h_cfgs[i].l_entry);
2754 cfp->cf_head->h_cfgs[i].l_entry = NULL;
2757 if (cfp->cf_head->h_cfgs[i].l_name) {
2758 free(cfp->cf_head->h_cfgs[i].l_name);
2759 cfp->cf_head->h_cfgs[i].l_entry = NULL;
2762 if (cfp->cf_head->h_cfgs[i].l_esiz) {
2763 free(cfp->cf_head->h_cfgs[i].l_esiz);
2764 cfp->cf_head->h_cfgs[i].l_esiz = NULL;
2768 if (cfp->cf_head) {
2769 free(cfp->cf_head->h_cfgs);
2770 cfp->cf_head->h_cfgs = NULL;
2799 cfp_t *cfp;
2808 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
2809 if (!cfp->cf_fd) continue;
2811 (*cfp->cf_pp->close)(cfp);
2815 cfg_free_cfglist(cfp);
2818 (void) fprintf(stderr, "freeing cfp->cf_mapped\n");
2820 free(cfp->cf_mapped);
2821 cfp->cf_mapped = NULL;
2827 if (cfp->cf_head) {
2828 if (cfp->cf_head->h_ccopy1) {
2829 free(cfp->cf_head->h_ccopy1);
2830 cfp->cf_head->h_ccopy1 = NULL;
2832 if (cfp->cf_head->h_ccopy2) {
2833 free(cfp->cf_head->h_ccopy2);
2834 cfp->cf_head->h_ccopy2 = NULL;
2836 if (cfp->cf_head->h_sizes1) {
2837 free(cfp->cf_head->h_sizes1);
2838 cfp->cf_head->h_sizes1 = NULL;
2840 if (cfp->cf_head->h_sizes2) {
2841 free(cfp->cf_head->h_sizes2);
2842 cfp->cf_head->h_sizes2 = NULL;
2846 if (cfp->cf_head)
2847 free(cfp->cf_head);
2913 cfp_t *cfp;
2930 cfp = &cfg->cf[0];
2935 cfp->cf_name = name;
2936 cfp->cf_pp = (strstr(cfp->cf_name, "/rdsk/") == NULL)
2940 cfp->cf_name = cfg_location(NULL, CFG_LOC_GET_LOCAL, NULL);
2941 cfp->cf_pp = cfg_block_io_provider();
2947 cfp = &cfg->cf[1];
2948 cfp->cf_name =
2950 if (cfp->cf_name) {
2951 cfp->cf_pp = cfg_raw_io_provider();
2959 for (cfp = &cfg->cf[0]; cfp->cf_name && (cfp <= &cfg->cf[1]); cfp++) {
2960 if ((*cfp->cf_pp->open)(cfp, cfp->cf_name) == NULL) {
2968 rc = (*cfp->cf_pp->read)(cfp, &magic, sizeof (magic));
2976 if ((*cfp->cf_pp->seek)(cfp, 0, SEEK_SET) < 0) {
2994 if (cfp->cf_size < needed) {
3002 cfp->cf_mapped = (char *)malloc(CFG_DEFAULT_PARSE_SIZE);
3003 if (cfp->cf_mapped == NULL) {
3010 bzero(cfp->cf_mapped, CFG_DEFAULT_PARSE_SIZE);
3011 cfp->cf_lock = -1;
3014 /* Processing errors, take care of one or more cfp pointers */
3015 if (cfg_severity && (cfp <= &cfg->cf[1])) {
3016 cfp = &cfg->cf[0];
3017 if (cfp->cf_fd)
3018 (*cfp->cf_pp->close)(cfp);
3019 cfp = &cfg->cf[1];
3020 if (cfp->cf_fd)
3021 (*cfp->cf_pp->close)(cfp);
3074 cfp_t *cfp;
3082 cfp = FP_SUN_CLUSTER(cfg);
3083 if (cfp->cf_head->h_csize == 0)
3099 cfp_t *cfp;
3113 for (cfp = &cfg->cf[0]; cfp->cf_fd && (cfp <= &cfg->cf[1]); cfp++)
3114 count += cfp->cf_head->h_cfgs[table_offset].l_nentry;
3135 cfp_t *cfp;
3150 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
3151 if (!cfp->cf_fd) continue;
3152 if (cfp->cf_head->h_state & CFG_HDR_INVALID) {
3153 if (!cfg_read(cfp)) {
3160 cfl = &cfp->cf_head->h_cfgs[table_offset];
3251 cfp_t *cfp = FP_SUN_CLUSTER(cfg);
3253 rc = (cfp->cf_pp->read)(cfp, &magic, sizeof (magic));
3335 cfp_t *cfp;
3360 for (cfp = &cfg->cf[0]; cfp <= &cfg->cf[1]; cfp++) {
3361 if (!cfp->cf_fd) continue;
3362 if (cfp->cf_head->h_state & CFG_HDR_INVALID) {
3363 if (!cfg_read(cfp)) {
3370 cfl = &cfp->cf_head->h_cfgs[table_offset];
3545 cfg_hdrcmp(cfp_t *cfp)
3555 if ((*cfp->cf_pp->seek)(cfp, 0, SEEK_SET) < 0) {
3562 rc = (*cfp->cf_pp->read)(cfp, (char *)dskhdr, sizeof (*dskhdr));
3570 memhdr = cfp->cf_head;