#ifndef _SYS_PATHNAME_H
#define _SYS_PATHNAME_H
#include <sys/vnode.h>
#include <sys/cred.h>
#include <sys/uio.h>
#include <sys/dirent.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct pathname {
char *pn_buf;
char *pn_path;
size_t pn_pathlen;
size_t pn_bufsize;
} pathname_t;
#define pn_pathleft(pnp) ((pnp)->pn_pathlen)
extern void pn_alloc(struct pathname *);
extern void pn_alloc_sz(struct pathname *, size_t);
extern int pn_get(const char *, enum uio_seg, struct pathname *);
extern int pn_get_buf(const char *, enum uio_seg, struct pathname *,
void *, size_t);
extern int pn_set(struct pathname *, const char *);
extern int pn_insert(struct pathname *, struct pathname *, size_t);
extern int pn_getsymlink(vnode_t *, struct pathname *, cred_t *);
extern int pn_getcomponent(struct pathname *, char *);
extern void pn_setlast(struct pathname *);
extern void pn_skipslash(struct pathname *);
extern int pn_fixslash(struct pathname *);
extern int pn_addslash(struct pathname *);
extern void pn_free(struct pathname *);
extern int lookupname(const char *, enum uio_seg, int follow,
vnode_t **, vnode_t **);
extern int lookupnameat(const char *, enum uio_seg, int follow,
vnode_t **, vnode_t **, vnode_t *);
extern int lookupnameatcred(const char *, enum uio_seg, int follow,
vnode_t **, vnode_t **, vnode_t *, cred_t *);
extern int lookuppn(struct pathname *, struct pathname *, int follow,
vnode_t **, vnode_t **);
extern int lookuppnat(struct pathname *, struct pathname *, int follow,
vnode_t **, vnode_t **, vnode_t *);
extern int lookuppnatcred(struct pathname *, struct pathname *, int follow,
vnode_t **, vnode_t **, vnode_t *, cred_t *);
extern int lookuppnvp(struct pathname *, struct pathname *, int follow,
vnode_t **, vnode_t **, vnode_t *, vnode_t *, cred_t *);
extern int traverse(vnode_t **);
extern int vnodetopath(vnode_t *, vnode_t *, char *, size_t, cred_t *);
extern int dogetcwd(char *, size_t);
extern int dirfindvp(vnode_t *, vnode_t *, vnode_t *, cred_t *, char *,
size_t, dirent64_t **);
#ifdef __cplusplus
}
#endif
#endif