Home | History | Annotate | Download | only in mount_qemufwcfg

Lines Matching refs:tp

55 mkdirs(virtdir_t *tp, const char *path, size_t size)
64 if ((ep = virtdir_find(tp, name, strlen(name))) == NULL) {
65 virtdir_add(tp, name, strlen(name), 'd', NULL, 0, 0);
104 virtdir_init(virtdir_t *tp, const char *rootdir, const struct stat *d,
107 tp->dir = *d;
108 tp->dir.st_mode = S_IFDIR | 0755;
109 tp->dir.st_nlink = 2;
110 tp->file = *f;
111 tp->file.st_mode = S_IFREG | 0644;
112 tp->file.st_nlink = 1;
113 tp->lnk = *l;
114 tp->lnk.st_mode = S_IFLNK | 0644;
115 tp->lnk.st_nlink = 1;
117 tp->rootdir = estrdup(rootdir);
124 virtdir_add(virtdir_t *tp, const char *name, size_t size, uint8_t type,
131 if (virtdir_find(tp, path, pathlen) != NULL) {
135 if (tp->c == tp->size || tp->size == 0) {
136 tp->size += 10;
137 tp->v = erealloc(tp->v, tp->size * sizeof(*tp->v));
139 tp->v[tp->c].namelen = pathlen;
140 tp->v[tp->c].name = estrndup(path, pathlen);
141 tp->v[tp->c].d_name = strrchr(tp->v[tp->c].name, '/') + 1;
142 tp->v[tp->c].type = type;
143 tp->v[tp->c].ino = (ino_t) random() & 0xfffff;
144 tp->v[tp->c].tgtlen = tgtlen;
146 tp->v[tp->c].tgt = estrndup(tgt, tgtlen);
148 tp->v[tp->c].select = select;
149 tp->c += 1;
150 qsort(tp->v, tp->c, sizeof(tp->v[0]), compare);
151 mkdirs(tp, path, pathlen);
157 virtdir_find(virtdir_t *tp, const char *name, size_t namelen)
165 return bsearch(&e, tp->v, tp->c, sizeof(tp->v[0]), compare);
170 virtdir_offset(const virtdir_t *tp, const virt_dirent_t *dp)
172 return dp - tp->v;
178 openvirtdir(virtdir_t *tp, const char *d)
185 dirp->tp = tp;
197 for ( ; dirp->i < dirp->tp->c; dirp->i++) {
199 &dirp->tp->v[dirp->i].name[1] :
200 &dirp->tp->v[dirp->i].name[dirp->dirnamelen + 1];
201 if (strncmp(dirp->tp->v[dirp->i].name, dirp->dirname,
204 return &dirp->tp->v[dirp->i++];