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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smbutil.c

?? Sanos Operating System Kernel ----------------------------- Sanos is an OS kernel for use in PC base
?? C
字號:
//
// smbutil.c
//
// SMB utility functions
//
// Copyright (C) 2002 Michael Ringgaard. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 
// 1. Redistributions of source code must retain the above copyright 
//    notice, this list of conditions and the following disclaimer.  
// 2. Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the distribution.  
// 3. Neither the name of the project nor the names of its contributors
//    may be used to endorse or promote products derived from this software
//    without specific prior written permission. 
// 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
// SUCH DAMAGE.
// 

#include <os/krnl.h>
#include "smb.h"

int recv_fully(struct socket *s, char *buf, int size, int flags)
{
  int bytes;
  int left;

  left = size;
  while (left > 0)
  {
    bytes = recv(s, buf, left, flags);
    if (bytes <= 0) return bytes;

    buf += bytes;
    left -= bytes;
  }

  return size;
}

char *addstr(char *p, char *s)
{
  while (*s) *p++ = *s++;
  return p;
}

char *addstrz(char *p, char *s)
{
  while (*s) *p++ = *s++;
  *p++ = 0;
  return p;
}

time_t ft2time(smb_time filetime)
{
  return (time_t) ((filetime - EPOC) / SECTIMESCALE);
}

smb_time time2ft(time_t time)
{
  return (smb_time) time * SECTIMESCALE + EPOC;
}

int smb_convert_filename(char *name)
{
  char *p;

  for (p = name; *p; p++)  if (*p == '/') *p = '\\';
  return 0;
}

int smb_errno(struct smb *smb)
{
  int errcls = smb->error_class;
  int error  = smb->error;

  //kprintf("smb: error %d class: %d\n", error, errcls);

  if (errcls == SMB_ERRDOS)
  {
    switch (error)
    {
      case ERRbadfunc: return -EINVAL;
      case ERRbadfile: return -ENOENT;
      case ERRbadpath: return -ENOENT;
      case ERRnofids: return -EMFILE;
      case ERRnoaccess: return -EACCES;
      case ERRbadfid: return -EBADF;
      case ERRbadmcb: return -EREMOTEIO;
      case ERRnomem: return -ENOMEM;
      case ERRbadmem: return -EFAULT;
      case ERRbadenv: return -EREMOTEIO;
      case ERRbadformat: return -EREMOTEIO;
      case ERRbadaccess: return -EACCES;
      case ERRbaddata: return -E2BIG;
      case ERRbaddrive: return -ENXIO;
      case ERRremcd: return -EREMOTEIO;
      case ERRdiffdevice: return -EXDEV;
      case ERRnofiles: return 0;
      case ERRbadshare: return -ETXTBSY;
      case ERRlock: return -EDEADLK;
      case ERRfilexists: return -EEXIST;
      case 87: return 0;
      case 123: return -ENOENT;
      case 145: return -ENOTEMPTY;
      case 183: return -EEXIST;
      default: return -EIO;
    }
  } 
  else if (errcls == SMB_ERRSRV)
  {
    switch (error)
    {
      case ERRerror: return -ENFILE;
      case ERRbadpw: return -EINVAL;
      case ERRbadtype: return -EIO;
      case ERRaccess: return -EACCES;
      case ERRinvnid: return -EBADSLT;
      default: return -EIO;
    }
  } 
  else if (errcls == SMB_ERRHRD)
  {
    switch (error)
    {
      case ERRnowrite: return -EROFS;
      case ERRbadunit: return -ENODEV;
      case ERRnotready: return -EUCLEAN;
      case ERRbadcmd: return -EIO;
      case ERRdata: return -EIO;
      case ERRbadreq: return -ERANGE;
      case ERRbadshare: return -ETXTBSY;
      case ERRlock: return -EDEADLK;
      default: return -EIO;
    }
  } 
  else if (errcls == SMB_ERRCMD)
    return -EIO;

  return -EIO;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人丝袜18视频在线观看| 粉嫩一区二区三区性色av| 国产一区二区福利| 色999日韩国产欧美一区二区| 欧美午夜一区二区| 国产精品欧美经典| 麻豆视频一区二区| 色婷婷久久综合| 久久久久久久综合色一本| 亚洲成精国产精品女| 99久久精品国产网站| 日本国产一区二区| 日韩不卡免费视频| 51久久夜色精品国产麻豆| 国产日韩综合av| 免费人成精品欧美精品| 欧美日韩一区二区在线观看视频| 欧美激情一区二区三区四区| 精品写真视频在线观看| 337p亚洲精品色噜噜| 亚洲电影欧美电影有声小说| 成人一道本在线| 国产午夜精品美女毛片视频| 美国三级日本三级久久99| 5566中文字幕一区二区电影| 亚洲一级二级在线| 欧洲激情一区二区| 一个色妞综合视频在线观看| 91蝌蚪国产九色| 亚洲人成网站在线| 91片黄在线观看| 亚洲精品视频观看| 色综合中文字幕| 亚洲精品视频在线观看免费| 色综合天天视频在线观看 | 色婷婷综合久久| 国产精品国产三级国产aⅴ中文 | 五月婷婷综合激情| 欧美日本在线视频| 三级一区在线视频先锋| 7777精品伊人久久久大香线蕉的| 亚洲电影激情视频网站| 91精品欧美福利在线观看| 日本美女一区二区三区| 精品日韩在线一区| 国产成人久久精品77777最新版本| 久久精品人人做| 成人va在线观看| 亚洲激情在线播放| 欧美亚洲日本国产| 麻豆91免费观看| 中文字幕不卡在线观看| 97久久超碰精品国产| 蜜桃传媒麻豆第一区在线观看| 欧美日韩国产首页| 日本麻豆一区二区三区视频| 日韩女优视频免费观看| 国产成人综合在线观看| 亚洲人妖av一区二区| 在线观看91精品国产入口| 日韩av电影天堂| 国产午夜精品福利| 欧美在线视频日韩| 黄一区二区三区| 亚洲欧美日韩一区二区三区在线观看| 欧美性色黄大片| 国产中文字幕精品| 一区二区三区欧美在线观看| 91精品欧美一区二区三区综合在| 国产一区二区中文字幕| 依依成人综合视频| xf在线a精品一区二区视频网站| www.在线欧美| 久久精品国产久精国产爱| 国产精品免费视频网站| 宅男噜噜噜66一区二区66| 天天av天天翘天天综合网| 欧洲日韩一区二区三区| 久久激情五月婷婷| 亚洲天堂a在线| 精品国产亚洲在线| 欧美无砖砖区免费| 成人国产亚洲欧美成人综合网 | 国产女人18水真多18精品一级做| 91小宝寻花一区二区三区| 青青青伊人色综合久久| 亚洲另类中文字| 久久久久久久久伊人| 欧美色综合影院| 不卡的av在线播放| 免费亚洲电影在线| 亚洲小少妇裸体bbw| 国产精品色哟哟网站| 精品久久久久久久久久久久久久久 | 中文无字幕一区二区三区| 在线免费观看成人短视频| 国产毛片精品一区| 日本aⅴ免费视频一区二区三区| 亚洲欧美日韩一区| 国产精品污www在线观看| 欧美videofree性高清杂交| 在线观看精品一区| 在线看国产一区二区| 9人人澡人人爽人人精品| 国产成人亚洲精品狼色在线 | 自拍偷拍欧美精品| 国产精品嫩草影院com| 国产日韩欧美精品一区| 欧美成人aa大片| 欧美一级理论性理论a| 在线91免费看| 在线不卡免费av| 在线成人午夜影院| 91精品久久久久久久99蜜桃| 精品1区2区3区| 欧美三级电影网站| 欧美视频一区二区在线观看| 欧美伊人久久久久久久久影院 | 亚洲品质自拍视频网站| 亚洲人一二三区| 一区二区三区在线播放| 亚洲一区二区三区四区五区中文| 亚洲精品视频自拍| 天天操天天干天天综合网| 日本在线不卡一区| 麻豆91精品91久久久的内涵| 精品综合久久久久久8888| 久久er精品视频| 国产黑丝在线一区二区三区| 高清不卡一区二区| 99久精品国产| 精品视频全国免费看| 日韩美一区二区三区| 国产亚洲综合色| 久久麻豆一区二区| 成人小视频免费在线观看| 韩国女主播一区| 国产成人av电影| 一本久道中文字幕精品亚洲嫩| 色综合中文综合网| 精品一二线国产| 不卡欧美aaaaa| 亚洲免费观看高清完整版在线观看熊 | 欧美一区二区三级| 26uuu亚洲| 国产精品美女一区二区三区| 伊人一区二区三区| 久久激情五月婷婷| 99久久久久免费精品国产| 欧美理论片在线| 国产三级欧美三级日产三级99| 国产精品久久免费看| 五月天网站亚洲| 国产69精品久久久久777| 在线观看精品一区| 久久免费午夜影院| 亚洲一区二区3| 国产不卡视频一区| 欧美另类高清zo欧美| 无吗不卡中文字幕| 国产一区久久久| 欧美影院一区二区三区| 国产午夜精品一区二区三区四区| 亚洲国产日日夜夜| 国产91丝袜在线观看| 国产亚洲综合在线| 精品久久久久久久久久久久久久久| 久久精品无码一区二区三区| 亚洲一区二区三区免费视频| 激情文学综合网| 欧美体内she精高潮| 国产精品美女一区二区在线观看| 视频一区视频二区中文| 91亚洲精品乱码久久久久久蜜桃| 日韩一区二区三区免费看| 怡红院av一区二区三区| 成人开心网精品视频| 欧美成人女星排名| 日韩成人午夜精品| 欧美亚洲国产怡红院影院| 国产精品久久久久国产精品日日| 久久成人av少妇免费| 欧美人妖巨大在线| 亚洲一区二区三区四区在线 | 亚洲与欧洲av电影| 成人免费va视频| 精品国产露脸精彩对白| 日韩国产在线一| 欧美美女直播网站| 精品国一区二区三区| 亚洲免费av高清| 国产成都精品91一区二区三| 欧美日韩一区二区三区四区五区 | 国产一区在线看| 日韩色在线观看| 日韩不卡手机在线v区| 欧美日韩一区精品| 日韩精品三区四区| 制服丝袜中文字幕一区| 奇米精品一区二区三区四区|