亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mountlib.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
    if(mountPoints == NULL || lstCount(mountPoints) == 0)       {      if(exportList != NULL)         {	KHEAP_FREE((char *)exportList);	exportList = NULL;        }      return (&exportList);    }    if (exportList == NULL)	{	exportList = KHEAP_ALLOC((mountdNExports * 			(sizeof (exportnode) + nfsMaxPath)));	if (exportList == NULL)	    {	    return (&exportList);	    }	else	    {	    bzero ((char *)exportList,(mountdNExports *                        (sizeof (exportnode) + nfsMaxPath)));	    }	}    strTbl = (char *) &exportList[mountdNExports];        /* Bogus group information */    aGroup.gr_name = NULL;    aGroup.gr_next = NULL;    semTake (mountSem, WAIT_FOREVER);    for (exportEntry =  (NFS_EXPORT_ENTRY *) lstFirst (mountPoints);	 exportEntry != NULL;	 exportEntry = (NFS_EXPORT_ENTRY *) lstNext ((NODE *) exportEntry))	{	nextEntry = (NFS_EXPORT_ENTRY *) lstNext ((NODE *) exportEntry);	exportList [lstPos].ex_dir = strTbl;	strncpy (strTbl, exportEntry->dirName, nfsMaxPath - 1);	strTbl += strlen (strTbl);	*strTbl++ = EOS;	exportList [lstPos].ex_groups = NULL;	if (nextEntry != NULL)	    exportList [lstPos].ex_next = &exportList [lstPos + 1];	else	    exportList [lstPos].ex_next = NULL;	lstPos++;	}        semGive (mountSem);    return ((exports *) &exportList);    }/******************************************************************************** nfsExport - specify a file system to be NFS exported** This routine makes a file system available for mounting by a client.* The client should be in the local host table (see hostAdd()),* although this is not required.* * The <id> parameter can either be set to a specific value, or to 0.* If it is set to 0, an ID number is assigned sequentially.* Every time a file system is exported, it must have the same ID* number, or clients currently mounting the file system will not be* able to access files.** To display a list of exported file systems, use:* .CS*     -> nfsExportShow "localhost"* .CE* * RETURNS: OK, or ERROR if the file system could not be exported.** SEE ALSO: nfsLib, nfsExportShow(), nfsUnexport()*/STATUS nfsExport    (    char * directory,	 /* Directory to export - FS must support NFS */    int    id,   	 /* ID number for file system */    BOOL   readOnly,     /* TRUE if file system is exported read-only */    int    options	 /* Reserved for future use - set to 0 */    )    {    NFS_EXPORT_ENTRY * exportFs; /* The file system to be exported */    int		       exportDirFd; /* File descriptor for the exported dir */    struct stat statInfo;	/* information from fstat() call */    if (strlen (directory) >= nfsMaxPath)	return (ERROR);    /* Create the export point */        if ((exportFs = KHEAP_ALLOC (sizeof (*exportFs) + nfsMaxPath)) == NULL)        return (ERROR);    if ((exportDirFd = open (directory, O_RDONLY, 0666)) == ERROR)        {	KHEAP_FREE ((char *)exportFs);        return (ERROR);	}    /* Set up the NFS_EXPORT_ENTRY structure */        strncpy (exportFs->dirName, directory, nfsMaxPath - 1);    exportFs->dirFd = exportDirFd;    /* Set the ID number for the exported system */        if (id == 0)        exportFs->volumeId = fsIdNumber++;    else        exportFs->volumeId = id;    exportFs->readOnly = readOnly;    /* Add it to the list */    semTake (mountSem, WAIT_FOREVER);    lstAdd (mountPoints, (NODE *)exportFs);    semGive (mountSem);    if (fstat (exportDirFd, &statInfo) != OK)	{	semTake (mountSem, WAIT_FOREVER);	lstDelete (mountPoints, (NODE *)exportFs);	semGive (mountSem);        KHEAP_FREE ((char *) exportFs);	close (exportDirFd);        return (ERROR);	}    else	{        nfsHashTblSet (exportFs->dirName, exportFs->volumeId, statInfo.st_dev);	}    if ((exportFs->fsId = nameToInode (exportFs->volumeId, directory)) == ERROR)	{	semTake (mountSem, WAIT_FOREVER);	lstDelete (mountPoints, (NODE *) exportFs);	semGive (mountSem);        nfsHashTblUnset (exportFs->dirName, exportFs->volumeId);  	KHEAP_FREE ((char *)exportFs);	close (exportDirFd);        return (ERROR);	}    return (OK);    }/******************************************************************************** nfsUnexport - remove a file system from the list of exported file systems** This routine removes a file system from the list of file systems* exported from the target.  Any client attempting to mount a file* system that is not exported will receive an error (NFSERR_ACCESS).* * RETURNS: OK, or ERROR if the file system could not be removed from* the exports list.* * ERRNO: ENOENT** SEE ALSO: nfsLib, nfsExportShow(), nfsExport()*/STATUS nfsUnexport    (    char * dirName		/* Name of the directory to unexport */    )    {    NFS_EXPORT_ENTRY * mntPoint; /* Mount point from mountPoints list */    /* Make sure the directory name is mentioned */    if ((dirName == NULL) || (strlen (dirName) >= nfsMaxPath))	return(ERROR);        /* Make sure there's a list of file systems */    if (mountPoints == NULL)        return (ERROR);    /* Find it and take it off the list */    if ((mntPoint = nfsExportFindByName (dirName)) != NULL)        {	semTake (mountSem, WAIT_FOREVER);	lstDelete (mountPoints, (NODE *) mntPoint);        nfsHashTblUnset (mntPoint->dirName, mntPoint->volumeId);	semGive (mountSem);	close(mntPoint->dirFd);        KHEAP_FREE ((char *)mntPoint);	return (OK);	}    else	{	/* Didn't find it, set errno and return ERROR */	semGive (mountSem);	errno = ENOENT;	return (ERROR);	}    }/******************************************************************************** nfsExportFindByName - find a pointer to an exported file system** Given a directory name, return a pointer to the corresponding* NFS_EXPORT_ENTRY structure.* * RETURNS:  OK, or NULL if the file system could not be found.* * NOMANUAL */NFS_EXPORT_ENTRY * nfsExportFindByName    (    char * dirName		/* name of file system to find */    )    {    NFS_EXPORT_ENTRY * mntPoint = NULL;	/* mount point from mountPoints list */    char *             matchName;       /* fs name to find */    /* Make sure the list exists */    if (mountPoints == NULL)        return (NULL);        if ((matchName = (char *) alloca (nfsMaxPath)) == NULL)	return (NULL);    /* Make sure matchName doesn't have ending slash */    strcpy (matchName, dirName);    if (matchName[strlen (matchName) - 1] == '/')        matchName[strlen (matchName) - 1] = EOS;        /* Search through the list */    semTake (mountSem, WAIT_FOREVER);    for (mntPoint = (NFS_EXPORT_ENTRY *) lstFirst (mountPoints);	 mntPoint != NULL;	 mntPoint = (NFS_EXPORT_ENTRY *) lstNext ((NODE *) mntPoint))	{	if (strcmp(mntPoint->dirName, matchName) == 0)	    {	    /* Found it, give the semaphore and return */	    semGive (mountSem);	    return (mntPoint);	    }	}    /* Didn't find a match, return NULL */    semGive (mountSem);    return (NULL);    }/******************************************************************************** nfsExportFindById - find a pointer to an exported file system* * Given a directory ID number, return a pointer to the corresponding* NFS_EXPORT_ENTRY structure.* * RETURNS:  OK, or NULL if the file system could not be found.* * NOMANUAL*/NFS_EXPORT_ENTRY * nfsExportFindById    (    int volumeId		/* volume ID number */    )    {    NFS_EXPORT_ENTRY * mntPoint; /* mount point from mountPoints list */    /* Make sure the list exists */    if (mountPoints == NULL)        return (NULL);        /* Search through the list */    semTake (mountSem, WAIT_FOREVER);    for (mntPoint = (NFS_EXPORT_ENTRY *) lstFirst (mountPoints);	 mntPoint != NULL;	 mntPoint = (NFS_EXPORT_ENTRY *) lstNext ((NODE *) mntPoint))	{	if (volumeId == mntPoint->volumeId)	    {	    /* Found it, give the semaphore and return */	    semGive (mountSem);	    return (mntPoint);	    }	}    /* Didn't find a match, return NULL */    semGive (mountSem);    return (NULL);    }/******************************************************************************** nameToInode - file name to inode number* * Given a file name, return the inode number associated with it.* * RETURNS: the inode number for the file descriptor, or ERROR.** NOMANUAL*/int nameToInode    (    int    mntId,               /* mount id */    char * fileName		/* name of the file */    )    {    int    fd;			/* File descriptor */    int    inode;		/* inode of file */        if ((fd = open (fileName, O_RDONLY, 0)) == ERROR)        return (ERROR);    else	{	inode = nfsNmLkupIns (mntId, fileName);	}    close (fd);    return (inode);    }/******************************************************************************** svc_reqToHostName - convert svc_req struct to host name* * Given a pointer to a svc_req structure, fill in a string with the* host name of the client associated with that svc_req structure.* The calling routine is responsible for allocating space for the* name string, which should be NAME_MAX characters long.** RETURNS:  A pointer to the name of the client.* * NOMANUAL*/LOCAL char * svc_reqToHostName    (    struct svc_req * rqstp,	/* Client information */    char *           hostName	/* String to fill in with client name */    )    {    /* Convert the callers address to a host name.  If hostGetByAddr()     * returns ERROR, convert the address to a numeric string     */    if (hostGetByAddr (rqstp->rq_xprt->xp_raddr.sin_addr.s_addr, hostName)!= OK)        inet_ntoa_b (rqstp->rq_xprt->xp_raddr.sin_addr, hostName);    return (hostName);    }/******************************************************************************** mountListFind - find an entry in the NFS mount list** Given a pointer to a svc_req structure and a path name, search* the client mount list to see if the client already has this* particular path mounted.** RETURNS:  A pointer to the mount list entry which we found,*           or NULL if there was no match.* * NOMANUAL*/LOCAL MOUNT_CLIENT * mountListFind    (    struct svc_req * rqstp,	/* Client information */    dirpath *        path	/* path to search for */    )    {    MOUNT_CLIENT *   clientEntry;    char             clientName [MAXHOSTNAMELEN + 1];    semTake (clientsSem, WAIT_FOREVER);    for (clientEntry = (MOUNT_CLIENT *) lstFirst (nfsClients);         clientEntry != NULL;         clientEntry = (MOUNT_CLIENT *) lstNext ((NODE *) clientEntry))        {        svc_reqToHostName (rqstp, clientName);        if ((strncmp(clientName, clientEntry->clientName, MAXHOSTNAMELEN) == 0)            && strncmp (*path, clientEntry->directory, PATH_MAX) == 0)            {            semGive (clientsSem);            return (clientEntry);            }        }    semGive (clientsSem);    return(NULL);    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡视频一区| 99在线精品一区二区三区| 欧美激情一二三区| 欧美色精品在线视频| 国产精品综合二区| 日本aⅴ免费视频一区二区三区| 国产欧美日韩精品a在线观看| 欧美系列亚洲系列| jiyouzz国产精品久久| 蜜桃av一区二区在线观看| 亚洲欧美另类小说| 国产欧美日韩不卡免费| 日韩一区二区中文字幕| 欧美性三三影院| 成人a级免费电影| 国产一区二区在线视频| 五月开心婷婷久久| 亚洲宅男天堂在线观看无病毒| 欧美激情在线观看视频免费| 精品伦理精品一区| 在线综合亚洲欧美在线视频 | 91免费精品国自产拍在线不卡| 久久99精品久久久| 日本三级亚洲精品| 同产精品九九九| 一区二区三区四区视频精品免费| 欧美韩日一区二区三区四区| 久久影院午夜片一区| 日韩视频一区在线观看| 欧美绝品在线观看成人午夜影视| 91亚洲精华国产精华精华液| 成人在线视频首页| 高清久久久久久| 国产成人精品一区二| 国产精品综合av一区二区国产馆| 久久成人麻豆午夜电影| 美国一区二区三区在线播放| 亚瑟在线精品视频| 日韩在线观看一区二区| 三级欧美在线一区| 免费欧美在线视频| 奇米影视在线99精品| 亚洲 欧美综合在线网络| 亚洲高清三级视频| 亚洲制服丝袜av| 亚洲精品福利视频网站| 亚洲午夜一区二区| 日韩精品视频网| 奇米一区二区三区| 国内精品第一页| 国产高清精品在线| 国产福利精品导航| kk眼镜猥琐国模调教系列一区二区| 国产91丝袜在线18| 色系网站成人免费| 欧美日韩一区二区三区四区 | 天天综合色天天综合| 美洲天堂一区二卡三卡四卡视频| 久久精品国产久精国产| 久久99国产精品久久99果冻传媒| 狠狠色2019综合网| 9人人澡人人爽人人精品| 91麻豆精品一区二区三区| 在线影院国内精品| 777午夜精品视频在线播放| 日韩精品一区二区三区swag| 国产无一区二区| 亚洲三级电影网站| 午夜精品成人在线| 国产伦理精品不卡| 91色九色蝌蚪| 91精品国产欧美一区二区18 | 色先锋久久av资源部| 欧美日本一区二区三区四区 | 精品国产乱码久久久久久图片| 久久婷婷久久一区二区三区| 中文字幕亚洲精品在线观看 | 成人一级视频在线观看| 色婷婷激情久久| 日韩精品专区在线影院重磅| 国产欧美日韩在线看| 亚洲精品日韩综合观看成人91| 丝袜亚洲另类欧美| 国产精品自产自拍| 欧美日韩二区三区| 欧美激情中文字幕一区二区| 午夜久久久影院| www.欧美.com| 日韩欧美一区二区免费| 亚洲视频香蕉人妖| 国产一区二区三区最好精华液| 一本大道av伊人久久综合| 日韩久久久久久| 亚洲一区二区中文在线| 国产一区二区在线电影| 欧美日韩国产中文| 国产精品国产自产拍在线| 人人超碰91尤物精品国产| www.色综合.com| 26uuu另类欧美| 亚洲va韩国va欧美va精品| 粉嫩蜜臀av国产精品网站| 欧美精品日韩综合在线| 欧美激情在线免费观看| 日本aⅴ免费视频一区二区三区| 91猫先生在线| 国产精品久久久久久久久搜平片 | 色婷婷综合久久久久中文一区二区| 欧美一区二区三区四区五区| 1000部国产精品成人观看| 久久99精品久久久久久久久久久久 | 日韩国产在线观看一区| 99re视频这里只有精品| 国产清纯白嫩初高生在线观看91 | 日韩视频不卡中文| 亚洲动漫第一页| 91视频com| 中文字幕在线观看不卡| 国产乱色国产精品免费视频| 日韩一卡二卡三卡国产欧美| 亚洲aaa精品| 欧美日韩成人激情| 午夜影视日本亚洲欧洲精品| 99国产一区二区三精品乱码| 国产丝袜欧美中文另类| 久久不见久久见免费视频1| 884aa四虎影成人精品一区| 亚洲成a人v欧美综合天堂| 日本久久电影网| 亚洲欧美欧美一区二区三区| 91免费视频观看| 一区二区三区蜜桃| 在线观看亚洲一区| 亚洲国产综合91精品麻豆| 91传媒视频在线播放| 亚洲国产sm捆绑调教视频| 91成人网在线| 亚洲一区二区三区中文字幕| 91国模大尺度私拍在线视频| 樱桃国产成人精品视频| 欧美在线观看你懂的| 午夜精品久久久久影视| 欧美丰满嫩嫩电影| 美女任你摸久久| 久久久久久久久久久99999| 国产精品自拍三区| 国产精品无码永久免费888| 成人激情开心网| 亚洲黄色录像片| 这里只有精品视频在线观看| 免费观看91视频大全| 亚洲精品一区二区三区在线观看| 激情都市一区二区| 中文字幕乱码亚洲精品一区 | 日韩精品中文字幕一区二区三区| 青青草一区二区三区| 欧美tk丨vk视频| 国产成人精品免费一区二区| 亚洲欧洲三级电影| 欧美又粗又大又爽| 美女性感视频久久| 国产欧美日韩另类视频免费观看| 99久久99久久精品免费看蜜桃| 亚洲男人的天堂在线观看| 欧美羞羞免费网站| 蜜桃在线一区二区三区| 中文字幕欧美区| 欧美综合色免费| 久久成人久久爱| 中文字幕日韩一区| 91精品久久久久久久99蜜桃 | 成人自拍视频在线观看| 亚洲狠狠丁香婷婷综合久久久| 欧美精品免费视频| 国产一二精品视频| 亚洲免费三区一区二区| 欧美一级欧美一级在线播放| 国产成人精品在线看| 亚洲综合免费观看高清在线观看| 日韩亚洲电影在线| 99r国产精品| 韩国精品主播一区二区在线观看| 最新中文字幕一区二区三区| 7777精品伊人久久久大香线蕉的 | 欧美一区午夜精品| 99综合电影在线视频| 免费成人在线视频观看| 自拍偷拍国产亚洲| 日韩你懂的电影在线观看| hitomi一区二区三区精品| 三级不卡在线观看| 亚洲欧洲av一区二区三区久久| 91精品国产综合久久精品麻豆| 成人av在线一区二区三区| 七七婷婷婷婷精品国产| 亚洲美腿欧美偷拍| 久久精品一区二区三区不卡| 欧美色国产精品| 91欧美一区二区| 国产精品1区2区3区在线观看|