Пример #1
0
/*
 * Internal version of mount system call for diskless setup.
 */
static int
nfs_mountdiskless(char *path,
    struct sockaddr_in *sin, struct nfs_args *args, struct thread *td,
    struct vnode **vpp, struct mount *mp)
{
	struct sockaddr *nam;
	int error;

	nam = sodupsockaddr((struct sockaddr *)sin, M_WAITOK);
	if ((error = mountnfs(args, mp, nam, path, vpp, td->td_ucred,
	    NFS_DEFAULT_NAMETIMEO, NFS_DEFAULT_NEGNAMETIMEO)) != 0) {
		printf("nfs_mountroot: mount %s on /: %d\n", path, error);
		return (error);
	}
	return (0);
}
Пример #2
0
static int
natm_usr_peeraddr(struct socket *so, struct sockaddr **nam)
{
	struct natmpcb *npcb;
	struct sockaddr_natm *snatm, ssnatm;

	npcb = (struct natmpcb *)so->so_pcb;
	KASSERT(npcb != NULL, ("natm_usr_peeraddr: npcb == NULL"));

	NATM_LOCK();
	snatm = &ssnatm;
	bzero(snatm, sizeof(*snatm));
	snatm->snatm_len = sizeof(*snatm);
	snatm->snatm_family = AF_NATM;
	strlcpy(snatm->snatm_if, npcb->npcb_ifp->if_xname,
	    sizeof(snatm->snatm_if));
	snatm->snatm_vci = npcb->npcb_vci;
	snatm->snatm_vpi = npcb->npcb_vpi;
	NATM_UNLOCK();
	*nam = sodupsockaddr((struct sockaddr *)snatm, M_WAITOK);
	return (0);
}