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

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

?? eeprom.c

?? 傳感器網絡中的嵌入式操作系統源代碼
?? C
字號:
// $Id: eeprom.c,v 1.1.14.2 2003/08/18 22:09:50 cssharp Exp $/*									tab:4 * "Copyright (c) 2000-2003 The Regents of the University  of California.   * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice, the following * two paragraphs and the author appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * * Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE      * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,  * 94704.  Attention:  Intel License Inquiry. *//* * * Authors:             Philip Levis * *//* *   FILE: eeprom.c * AUTHOR: Philip Levis <pal@cs.berkeley.edu> *   DESC: A flat, segmented address space for LOGGER emulation. */#include <string.h> // For memcpy(3)#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <sys/mman.h>#include <errno.h>static char* filename;static int numMotes = 0;static int moteSize = 0;static int initialized = 0;static int fd = -1;int createEEPROM(char* file, int motes, int eempromBytes) {  int rval;  char val = 0;    filename = file;  numMotes = motes;  moteSize = eempromBytes;    if (initialized) {    dbg(DBG_ERROR, "ERROR: Trying to initialize EEPROM twice.\n");    return -1;  }  fd = open(file, O_RDWR | O_CREAT, S_IRWXU | S_IRGRP | S_IROTH);  if (fd < 0) {    dbg(DBG_ERROR, "ERROR: Unable to create EEPROM backing store file.\n");    return -1;  }  rval = (int)lseek(fd, (moteSize * numMotes), SEEK_SET);  if (rval < 0) {    dbg(DBG_ERROR, "ERROR: Unable to establish EEPROM of correct size.\n");  }  rval = write(fd, &val, 1);  if (rval < 0) {    dbg(DBG_ERROR, "ERROR: Unable to establish EEPROM of correct size.\n");  }  initialized = 1;    return fd;}int anonymousEEPROM(int fnumMotes, int eepromSize) {  int filedes;  filedes = createEEPROM("/tmp/anonymous", fnumMotes, eepromSize);  if (filedes >= 0) {    unlink("/tmp/anonymous");    return 0;  }  else {    dbg(DBG_ERROR, "ERROR: Unable to create anonymous EEPROM region.\n");    return -1;  }}int namedEEPROM(char* name, int fnumMotes, int eepromSize) {  int filedes = createEEPROM(name, fnumMotes, eepromSize);  if (filedes >= 0) {    return 0;  }  else {    dbg(DBG_ERROR, "ERROR: Unable to create named EEPROM region: %s.\n", name);    return -1;  }}int readEEPROM(char* buffer, int mote, int offset, int length) {  // Sanity check arguments; don't want to corrupt data.  if (mote > numMotes || mote < 0) {    dbg(DBG_ERROR, "ERROR: Tried to read EEPROM of mote %i when it was initialized for only %i motes.\n", mote, numMotes);    return -1;  }  else if ((offset + length) > moteSize) {    dbg(DBG_ERROR, "ERROR: Tried to read EEPROM address 0x%x of mote when its max EEPROM address is 0x%x.\n", (offset + length), moteSize);    return -1;  }  else if (length < 0 || offset < 0) {    dbg(DBG_ERROR, "ERROR: Both length and offset for EEPROM reads must be > 0.\n");    return -1;  }  else {    int rval;    int startOffset = mote * moteSize;    int seekedOffset = startOffset + offset;    rval = lseek(fd, seekedOffset, SEEK_SET);    if (rval < 0) {      dbg(DBG_ERROR, "ERROR: Seek in EEPROM for read failed.\n");    }    rval = read(fd, buffer, length);    if (rval <= 0) {      dbg(DBG_ERROR, "ERROR: Read for %i from EEPROM failed: %s.\n", length, strerror(errno));    }    return 0;  }}int writeEEPROM(char* buffer, int mote, int offset, int length) {  // Sanity check arguments; don't want to corrupt data.  if (mote > numMotes || mote < 0) {    dbg(DBG_ERROR, "ERROR: Tried to write EEPROM of mote %i when it was initialized for only %i motes.\n", mote, numMotes);    return -1;  }  else if ((offset + length) > moteSize) {    dbg(DBG_ERROR, "ERROR: Tried to write EEPROM address 0x%x of mote when its max EEPROM address is 0x%x.\n", (offset + length), moteSize);    return -1;  }  else if (length < 0 || offset < 0) {    dbg(DBG_ERROR, "ERROR: Both length and offset for EEPROM write must be > 0.\n");    return -1;  }  else {    int rval;    int startOffset = mote * moteSize;    int seekedOffset = startOffset + offset;    rval = lseek(fd, seekedOffset, SEEK_SET);    if (rval < 0) {      dbg(DBG_ERROR, "ERROR: Seek in EEPROM for write failed: %s.\n", strerror(errno));    }    rval = write(fd, buffer, length);    if (rval <= 0) {      dbg(DBG_ERROR, "ERROR: Write to EEPROM failed: %s.\n", strerror(errno));    }    return 0;  }}int syncEEPROM() {  return fsync(fd);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品人人做人人爽人人添| 国产sm精品调教视频网站| 欧美日韩在线直播| 午夜日韩在线电影| 日韩免费在线观看| 紧缚捆绑精品一区二区| 欧美国产精品中文字幕| 在线观看日韩一区| 免费成人深夜小野草| 久久久精品黄色| 91在线精品秘密一区二区| 亚洲一二三四在线| 欧美变态tickling挠脚心| 国产99久久久国产精品免费看| 亚洲精品成人悠悠色影视| 91.com视频| 成人丝袜18视频在线观看| 亚洲制服欧美中文字幕中文字幕| 欧美肥胖老妇做爰| 国产suv精品一区二区三区| 亚洲一区二区视频在线观看| 日韩欧美激情在线| 91免费国产在线| 日韩一区欧美二区| 国产亚洲制服色| 欧美日韩精品免费观看视频| 国产乱人伦偷精品视频不卡| 亚洲一级二级在线| 久久精品欧美日韩| 88在线观看91蜜桃国自产| 国产成人亚洲综合a∨婷婷 | 蜜桃一区二区三区在线观看| 欧美国产精品一区二区三区| 欧美日韩一区视频| 国产成人综合自拍| 午夜精品一区二区三区电影天堂| 国产三级欧美三级| 欧美日韩激情一区二区| 成人黄色777网| 久久69国产一区二区蜜臀| 亚洲女人****多毛耸耸8| 久久伊人中文字幕| 91精品中文字幕一区二区三区| 99久久国产综合色|国产精品| 久久精品国产第一区二区三区| 一区二区三区小说| 国产精品亲子伦对白| 欧美成人欧美edvon| 欧美色涩在线第一页| 99re这里只有精品首页| 国产乱国产乱300精品| 日日夜夜免费精品| 夜夜精品视频一区二区| 国产精品乱人伦中文| 久久精品一区蜜桃臀影院| 精品入口麻豆88视频| 久久九九久精品国产免费直播| 欧美视频一区二区在线观看| 成人小视频免费在线观看| 免费人成精品欧美精品| 亚洲一区二区中文在线| 成人免费在线观看入口| 久久精品夜夜夜夜久久| 精品久久人人做人人爰| 欧美电影免费观看完整版| 这里只有精品视频在线观看| 欧美揉bbbbb揉bbbbb| 欧美在线视频你懂得| 91蝌蚪国产九色| 色婷婷综合久久久久中文一区二区 | 亚洲精品老司机| 亚洲欧美另类在线| 中文字幕中文字幕在线一区| 国产精品伦一区| 中文字幕一区二区三区精华液| 亚洲国产高清aⅴ视频| 国产精品免费丝袜| 亚洲柠檬福利资源导航| 亚洲精品高清在线观看| 亚洲成av人片一区二区| 欧美亚洲精品一区| 综合色中文字幕| 捆绑变态av一区二区三区| 色综合久久中文字幕| 久久99久久久久| 国产婷婷一区二区| 国产午夜精品在线观看| 日韩欧美一级二级三级| 日韩欧美在线影院| 日韩天堂在线观看| 日韩免费视频一区| 欧美在线观看禁18| 国产午夜精品一区二区三区视频| 国产精品免费观看视频| 18涩涩午夜精品.www| 亚洲免费在线视频| 亚洲bt欧美bt精品| 精品一区二区在线免费观看| 国产成人精品aa毛片| 91在线视频免费91| 欧美揉bbbbb揉bbbbb| 精品久久久久久久久久久久久久久 | 国产亚洲一区二区三区四区| 国产色婷婷亚洲99精品小说| 伊人色综合久久天天人手人婷| 亚洲五码中文字幕| 蜜桃视频在线观看一区| 成人性生交大合| 欧美日韩不卡一区二区| 亚洲精品一线二线三线无人区| 中文字幕欧美日韩一区| 亚洲午夜一区二区三区| 国内精品免费**视频| 91国模大尺度私拍在线视频| 日韩免费视频一区二区| 亚洲色图丝袜美腿| 九色综合狠狠综合久久| 色综合久久99| 精品91自产拍在线观看一区| 亚洲乱码一区二区三区在线观看| 日本不卡一二三区黄网| 色综合久久99| 国产亚洲精品7777| 亚洲国产人成综合网站| 国产成a人亚洲| 欧美精品视频www在线观看| 国产日韩欧美a| 免费精品视频最新在线| 色综合久久久久综合99| 亚洲精品一区二区三区福利| 樱花影视一区二区| 成人永久免费视频| 日韩欧美国产综合| 亚洲国产成人高清精品| 91在线无精精品入口| 国产三区在线成人av| 青青青伊人色综合久久| 91黄色在线观看| 欧美高清在线精品一区| 久久精品99久久久| 欧美二区乱c少妇| 亚洲综合男人的天堂| 97国产一区二区| 欧美激情一区三区| 国产激情91久久精品导航| 日韩欧美在线一区二区三区| 亚洲18色成人| 欧美日韩国产经典色站一区二区三区 | 亚洲国产欧美另类丝袜| 91免费小视频| 亚洲色图视频网| 91在线观看高清| **网站欧美大片在线观看| 91老司机福利 在线| 91精品国产综合久久久久久久久久| 国产精品毛片高清在线完整版| 国产福利精品导航| 欧美mv日韩mv国产| 久久se这里有精品| 日韩一区国产二区欧美三区| 日韩在线观看一区二区| 9191久久久久久久久久久| 午夜精品福利一区二区三区av| 在线观看亚洲精品视频| 一区二区三区四区五区视频在线观看| 99久久综合国产精品| 中文字幕一区二区在线观看| 成人免费视频一区二区| 国产欧美精品一区二区色综合朱莉| 国产乱对白刺激视频不卡| 国产拍欧美日韩视频二区| 成人免费毛片嘿嘿连载视频| 国产欧美日韩在线看| 99久久免费视频.com| 亚洲美腿欧美偷拍| 欧美丰满少妇xxxxx高潮对白| 日韩av午夜在线观看| 久久五月婷婷丁香社区| 成人国产精品免费观看动漫| 有码一区二区三区| 91精品一区二区三区久久久久久 | 日韩一级欧美一级| 免费观看一级欧美片| 久久亚洲春色中文字幕久久久| 国产麻豆视频一区二区| 国产精品久99| 欧美色爱综合网| 久久99久久精品欧美| 国产精品乱人伦一区二区| 91免费看`日韩一区二区| 丝袜脚交一区二区| 久久综合久久99| 97精品久久久久中文字幕| 视频一区二区中文字幕| 久久午夜国产精品| 在线中文字幕一区二区| 美女性感视频久久| 中文字幕一区免费在线观看| 欧美日本一道本在线视频| 国产精品正在播放|