Lines Matching refs:dyntp

36 	scfga_recur_t (*devlink_to_dyncomp_p)(dyn_t *dyntp);
37 scfga_recur_t (*dyncomp_to_devlink_p)(dyn_t *dyntp);
65 static scfga_recur_t disk_dyncomp_to_devlink(dyn_t *dyntp);
66 static scfga_recur_t tape_dyncomp_to_devlink(dyn_t *dyntp);
67 static scfga_recur_t def_dyncomp_to_devlink(dyn_t *dyntp);
71 static scfga_recur_t disk_devlink_to_dyncomp(dyn_t *dyntp);
72 static scfga_recur_t tape_devlink_to_dyncomp(dyn_t *dyntp);
73 static scfga_recur_t def_devlink_to_dyncomp(dyn_t *dyntp);
762 disk_devlink_to_dyncomp(dyn_t *dyntp)
766 assert(dyntp->devlink != NULL);
768 dyntp->l_errno = 0;
770 if (dyntp->dyncomp != NULL) {
775 if (strncmp(dyntp->devlink, DEV_DSK SLASH, strlen(DEV_DSK SLASH)) &&
776 strncmp(dyntp->devlink, DEV_RDSK SLASH, strlen(DEV_RDSK SLASH))) {
780 cp = dyntp->devlink + strlen(DEV_DIR SLASH);
782 if ((dyntp->dyncomp = strdup(cp)) == NULL) {
783 dyntp->l_errno = errno;
788 cp1 = strrchr(dyntp->dyncomp, '/');
791 dyntp->ret = SCFGA_OK;
797 S_FREE(dyntp->dyncomp);
798 dyntp->ret = SCFGA_ERR;
804 dyntp->ret = SCFGA_LIB_ERR;
810 disk_dyncomp_to_devlink(dyn_t *dyntp)
817 assert(dyntp->dyncomp != NULL);
819 dyntp->l_errno = 0;
821 if (dyntp->devlink != NULL) {
822 dyntp->ret = SCFGA_LIB_ERR;
827 if (strncmp(dyntp->dyncomp, DSK_DIR SLASH, strlen(DSK_DIR SLASH)) != 0)
831 dyntp->dyncomp);
845 if ((dyntp->devlink = strdup(buf)) == NULL) {
846 dyntp->l_errno = errno;
847 dyntp->ret = SCFGA_LIB_ERR;
850 dyntp->ret = SCFGA_OK;
856 dyntp->ret = SCFGA_APID_NOEXIST;
862 tape_devlink_to_dyncomp(dyn_t *dyntp)
866 assert(dyntp->devlink != NULL);
868 dyntp->l_errno = 0;
870 if (dyntp->dyncomp != NULL) {
874 if (strncmp(dyntp->devlink, DEV_RMT SLASH, strlen(DEV_RMT SLASH))) {
878 cp = dyntp->devlink + strlen(DEV_DIR SLASH);
879 if ((dyntp->dyncomp = strdup(cp)) == NULL) {
880 dyntp->l_errno = errno;
885 cp = strrchr(dyntp->dyncomp, '/');
893 dyntp->ret = SCFGA_OK;
897 dyntp->ret = SCFGA_LIB_ERR;
902 tape_dyncomp_to_devlink(dyn_t *dyntp)
909 assert(dyntp->dyncomp != NULL);
911 dyntp->l_errno = 0;
913 if (dyntp->devlink != NULL) {
917 if (strncmp(dyntp->dyncomp, RMT_DIR SLASH, strlen(RMT_DIR SLASH))) {
923 dyntp->dyncomp);
933 if ((dyntp->devlink = strdup(buf)) == NULL) {
934 dyntp->l_errno = errno;
937 dyntp->ret = SCFGA_OK;
942 dyntp->ret = SCFGA_APID_NOEXIST;
946 dyntp->ret = SCFGA_LIB_ERR;
955 def_devlink_to_dyncomp(dyn_t *dyntp)
960 assert(dyntp->devlink != NULL);
962 dyntp->l_errno = 0;
964 if (dyntp->dyncomp != NULL) {
965 dyntp->ret = SCFGA_LIB_ERR;
971 if (strncmp(dyntp->devlink, DEV_DIR SLASH, len)) {
976 if (strchr(dyntp->devlink + len, '/') != NULL) {
978 cp = dyntp->devlink + len;
981 cp = dyntp->devlink;
984 if ((dyntp->dyncomp = strdup(cp)) == NULL) {
985 dyntp->l_errno = errno;
986 dyntp->ret = SCFGA_LIB_ERR;
988 dyntp->ret = SCFGA_OK;
996 def_dyncomp_to_devlink(dyn_t *dyntp)
1002 assert(dyntp->dyncomp != NULL);
1004 dyntp->l_errno = 0;
1006 if (dyntp->devlink != NULL) {
1011 linklen = strlen(dyntp->dyncomp) + 1;
1017 if (strncmp(dyntp->dyncomp, DEV_DIR SLASH, prelen) == 0) {
1019 } else if (*dyntp->dyncomp != '/' && linklen > 1 &&
1020 strchr(dyntp->dyncomp + 1, '/') != NULL) {
1028 if ((dyntp->devlink = calloc(1, linklen)) == NULL) {
1029 dyntp->l_errno = errno;
1033 *dyntp->devlink = '\0';
1035 (void) strcpy(dyntp->devlink, DEV_DIR SLASH);
1037 (void) strcat(dyntp->devlink, dyntp->dyncomp);
1039 if (lstat(dyntp->devlink, &sbuf) != -1 && S_ISLNK(sbuf.st_mode)) {
1040 dyntp->ret = SCFGA_OK;
1045 S_FREE(dyntp->devlink);
1049 dyntp->ret = SCFGA_LIB_ERR;