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

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

?? dospartlibata.c

?? windriver 官方demo
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* dosPartLibAta.c - show & mount ATA HDD MSDOS partitions *//*modification history--------------------01c,15sep97,jkf   removed LCHS support.  Only useful for MSDOS versions                  before 3.3, not likely anyone needs LCHS support.                    Added support for big endian arches and arches without                  dynamic bus sizing, which involved byte swapping macro                  and reading sector data with macro offsets. Now supports                  80x86, 68k, SPARC, MIPS, PPC, i960, etc.)  Revised docs.01b,01sep97,jkf   fixed check for LBA support in dosPartRdLbaAta().                  fixed stdlib.h filename case for Unix.                  fixed args to ataDevCreate in example comments.                  fixed cosmetics in sector and show routines.  01a,01sep97,jkf   written.*//*DESCRIPTION:This library is provided by Wind River Systems CustomerSupport strictly as an educational example.This code supports both mounting and displaying partition tables written by MSDOS FDISK.exe or by any other MSDOS FDISK.exe compatible partitioning software.  The first partition table is contained within a hard drivesMaster Boot Record (MBR) sector, which is defined as sectorone, cylinder zero, head zero or logical block address zero.The mounting and displaying routines within this code will first parse the MBR partition tables entries (defined below)and also recursively parse any "extended" partition tables,which may reside within another Cylinder, Head, and Sector (CHS) combination further into the hard disk.   (Also knownas extended partition tables chained from the MBR's partitiontable.  MSDOS file systems within extended partitions are knownto those familiar with the MSDOS FDISK.exe utility as "Logical drives within the extended partition".Since MSDOS file systems have a fixed number of clusters, 64Kb,and clusters are the minimum allocation unit at the file systemlevel, using partitions can help optimize cluster size for a givenhard disk,  improving performance and resource usage.  For example, a 1-gigabyte hard disk with a single MSDOS file system has the following minimum allocation unit at the dosFsLib open/read/writelevel interface:    1GB/64KB = Minimum allocation unit.This may produce a minimum allocation unit that is larger thanwhat the developer desires (for cluster boundary buffer alignment,or other buffering, ect).One solution is to sub-divide the disk into smaller partitionsor "logical disks" on the single physical disk and format file systems over each of the partitions.  (Then using this code youmay mount them.)   If you used four equal sized partitions, thenthis method produces:    256MB/64KB = Minimum allocation unit.	    256MB/64KB = Minimum allocation unit.    256MB/64KB = Minimum allocation unit.    256MB/64KB = Minimum allocation unit.This produces a smaller minimum allocation unit and may be better suited for optimal application file system performance.Each partition contains its own unique file system.  As faras the file system level is concerned it is on a unique disk.Here is a picture showing the layout of a single disk containingmultiple MSDOS file systems:(Note, all ASCII pictures herein are best viewed with an 'equally sized characters' or 'fixed width' style font)  +---------------------------------------------------------+  |<---------------------The entire disk------------------->|  |M                                                        |  |B<---C:--->                                              |  |R           /---- First extended partition--------------\|  |           E<---D:---><-Rest of the ext part------------>|  |P          x                                             |  |A          t          E<---E:--->E<Rest of the ext part->|  |R                     x          x                       |  |T                     t          t<---------F:---------->|  +---------------------------------------------------------+  (Ext == extended partition sector)A MS-DOS partition table resides within one sector on a harddisk.  There is always one in the first sector of a hard diskpartitioned with FDISK.exe.  There first partition table maycontain references to "extended" partition tables residing onother sectors if there are multiple partitions.  The first sector of the disk is the starting point.  Partition tablesare of the format:Offset from     the beginning of the sector          Description-------------          -------------------------   0x1be               Partition 1 table entry  (16 bytes)   0x1ce               Partition 2 table entry  (16 bytes)   0x1de               Partition 3 table entry  (16 bytes)   0x1ee               Partition 4 table entry  (16 bytes)   0x1fe               Signature  (0x55aa, 2 bytes)Individual MSDOS partition table entries are of the format:Offset   Size      Description------   ----      ------------------------------ 0x0     8 bits    boot type 0x1     8 bits    beginning sector head value 0x2     8 bits    beginning sector (2 high bits of cylinder#) 0x3     8 bits    beginning cylinder# (low order bits of cylinder#) 0x4     8 bits    system indicator 0x5     8 bits    ending sector head value 0x6     8 bits    ending sector (2 high bits of cylinder#) 0x7     8 bits    ending cylinder# (low order bits of cylinder#) 0x8    32 bits    number of sectors preceding the partition 0xc    32 bits    number of sectors in the partition  In the partition table entry, the Sector/Cylinder (16bits)(offset 0x2 & 0x3) fields data are stored in the format: |7|6|5|4|3|2|1|0|  The first 8 bits of offset 0x2.  | | `------------ 6 least significant bit's contain the sector   | |               offset within cylinder.  sector == 6 bits.  | |  `-`-------------- Two most significant (high order) bits of the                     cylinder value. |7|6|5|4|3|2|1|0|  2nd 8 bits  (cylinder 0x3)  `---------------- Eight least significant (low order) bits of the                    cylinder value.This format restricts partition entries to 10 cylinder bits & 6 sectorbits and 8 head bits.  This is also the format used by the PC-AT BIOSInt13h functions, which is used by FDISK.exe dosPartLibAta/Scsi.c uses the following method of parsing the CHS valuesstored in the 0x2 & 0x3 partition table offsets into distinct values:Cyl = ((((dospt_startSec) & 0x00c0) << 2) |       (((dospt_startSec) & 0xff00) >> 8));Hd  = pPartTbl->dospt_startHead;Sec = (pPartTbl->dospt_startSec & 0x003f); (see DOS_PART_TBL struct typedef in dosFsLib.h)This produces individual CHS value from the values thatare contained within the MSDOS partition table entry.  Definitions of CHS terms:CHS - Cylinder/Head/Sector. L-CHS - Logical - CHS (used by INT 13 AxH/FDISK.exe)         256 heads, 1024 cylinders, 63 sectors. max.        LCHS allow ~8.4 GB addressable space.P-CHS - Physical CHS (used by physical ATA device)         16 heads, 65535 cylinders, 63 sectors.        PCHS allow ~137GB addressable space.        (VxWorks ataRawio() uses PCHS)LBA - Logical Block Address. ATA/SCSI absolute sector      numbering scheme.  LBA sector 0 == addresses the      first sector on a device by definition.  ATA devices      may also support LBA at the device interface. ATA      standard says that cylinder 0, head 0, sector 1 == LBA 0.      LBA allows (~137GB) on an ATA device. The  MSDOS "logical CHS" (LCHS) format combined with the Physical IDE/ATA CHS interface (PCHS) gives MSDOS the following addressing limitation:                  +------------+----------+----------------+                     | BIOS INT13 | IDE/ATA  | Combined Limit |+-----------------+------------+----------+----------------+   |Max Sectors/Track|  63        |    255   |     63         |+-----------------+------------+----------+----------------+|Max Heads        |  256       |     16   |     16         |+-----------------+------------+----------+----------------+|Max Cylinders    |  1024      |  65536   |    1024        |+-----------------+------------+----------+----------------+|Capacity         |  8.4GB     |  136.9GB |   528 MB       |+-----------------+------------+----------+----------------+1024 x 16 x 63 X 512 bytes/sector = 528.48 MB limit.Cylinder bits : 10 = 1024Head bits     :  4 = 16Sector bits   :  6 (-1) = 63 (by convention, CHS sector numbering begins at #1, not #0; LBA begins at zero, which is CHS#1) To overcome the limitation. PC BIOS/OS vendors perform what is oftenreferred to as geometric or "drive" CHS translation to address more than 528MB, and to "address" cylinders above 1024.BIOS vendors offer CHS translation extensions that are basedaround the format of the PC-AT BIOS call "INT 0x13 function 0x8"aka "Get Current Drive Parameters"  There are also two parametertables EDPT and FDPT set by the BIOS interfaces.  EDPT is sometimesnot supported depending on the system BIOS.  The FDPT is always supported on PC-AT compatible BIOS.  Code is available for the x86VxWorks BSP to call INT13h F8h romInit.s BIOS call, which returnsthe FDPT.  This is not needed when using LBA on newer systems.It is possible in the pc486/pc386 VxWorks BSP's to make anBIOS (INT13h F8H) call in romInit.s before the switch to protected mode.  Sample romInit.s code demonstrating this will be provided upon request, contact johnx@wrs.com.requesting "Int13h romInit.s x86 code".There exists also some 3rd party software based disk overlayprograms (Such as OnTrack's Disk Manager,TM.) which uses asemi-proprietary strategy to support drives over 528MB.  In most cases, the translated LCHS geometry is applied such thatall sectors are addressed at the same physical location as whenthe drive is used within an untranslated environment.  However,not in all cases, and then there is a breakdown.  Alas, there is not any standard for defining the altered geometry translationscheme, so compatibility issues will arise when moving drives fromone BIOS, Operating System, driver, and/or controller to another.VxWorks SCSI and ATA drivers communicate directly with thecontroller and do not use the BIOS.  The VxWorks ATA drivermay address the full 136.9GB offered by ATA, and the full rangeoffered by SCSI.  So this is not an issue for VxWorks.  It shouldbe noted however, since all the partition table data will be stored in LCHS format.Here is an example of a typical PCHS to LCHS translation.(Note, all ASCII pictures herein are best viewed with an 'equally sized characters'/'fixed width' style font)+----------------+------------+----------------+-------------+--------+|Actual Cylinders|Actual Heads|Altered Cylinder|Altered Heads|Max Size|+----------------+------------+----------------+-------------+--------+|  1<C<=1024     | 1<H<=16    |     C=C        |    H=H      |528 MB  |+----------------+------------+----------------+-------------+--------+| 1024<C<=2048   | 1<H<=16    |     C=C/2      |    H=H*2    |  1GB   |+----------------+------------+----------------+-------------+--------+| 2048<C<=4096   | 1<H<=16    |     C=C/4      |    H=H*4    | 2.1GB  |+----------------+------------+----------------+-------------+--------+| 4096<C<=8192   | 1<H<=16    |     C=C/8      |    H=H*8    | 4.2GB  |+----------------+------------+----------------+-------------+--------+| 8192<C<=16384  | 1<H<=16    |     C=C/16     |    H=H*16   | 8.4GB  |+----------------+------------+----------------+-------------+--------+| 16384<C<=32768 | 1<H<=8     |     C=C/32     |    H=H*32   | 8.4GB  |+----------------+------------+----------------+-------------+--------+| 32768<C<=65536 | 1<H<=4     |     C=C/64     |    H=H*64   | 8.4GB  |+----------------+------------+----------------+-------------+--------+Another type of translation always sets the sectors to 63, this produces different geometry than the above.+----------------+----------+---------+--------------+|Range           | Sectors  | Heads   | Cylinders    |+----------------+----------+---------+--------------+|  1<X<=528MB    |   63     |  16     | X/(63*16*512)|+----------------+----------+---------+--------------+| 528MB<X<=1GB   |   63     |  32     | X/(63*32*512)|+----------------+----------+---------+--------------+| 1GB<X<=2.1GB   |   63     |  64     | X/(63*64*512)|+----------------+----------+---------+--------------+| 2.1GB<X<=4.2GB |   63     |  128    |X/(63*128*512)|+----------------+----------+---------+--------------+| 4.2GB<X<=8.4GB |   63     |  256    |X/(63*255*512)|+----------------+----------+---------+--------------+There are several MSDOS utilities (from Phoenix, and Western Digital, and more, such as wdtblchk.exe, and chkbios.exe) whichcan be used on PC's to check translations.  These utilitiesuse BIOS calls to read the EPDT and FPDT to determine the PCHSand LCHS and LBA values for a given system.  TRANSLATION ALGORITHMS:----------------------The algorithm used in this code for LBA to PCHS translation (in dosPartRdLba[Ata/Scsi]) is:        PCHS_cylinder = LBA / (heads_per_cylinder * sectors_per_track)         temp = LBA % (heads_per_cylinder * sectors_per_track)PCHS_head     = temp / sectors_per_trackPCHS_sector   = temp % sectors_per_track + 1The reverse, PCHS to LBA, is not implement but shown hereshould anyone need to implement it:LBA = (((cylinder * heads_per_cylinder + heads )         * sectors_per_track ) + sector - 1)Both of these can also be used with either LCHS or PCHS.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产999精品久久久久久绿帽| 国产精品成人在线观看| 91视频一区二区三区| 国产成人综合在线| 国产精一区二区三区| 精品一区二区三区日韩| 激情综合网激情| 国内偷窥港台综合视频在线播放| 青娱乐精品视频在线| 国产一区二区三区四区在线观看| 亚洲福利视频导航| 另类小说欧美激情| 精品一区二区国语对白| 丁香婷婷综合激情五月色| 成人av先锋影音| 欧美亚洲一区三区| 欧美一区二区视频在线观看| 精品区一区二区| 中文字幕成人av| 亚洲视频一区在线观看| 偷偷要91色婷婷| 国产精品影音先锋| 色婷婷久久99综合精品jk白丝| 91成人在线免费观看| 日韩午夜激情av| 欧美韩国日本一区| 亚洲在线视频一区| 久久91精品久久久久久秒播| 国产精品91一区二区| 欧美专区日韩专区| 久久人人爽爽爽人久久久| 最新热久久免费视频| 青青草伊人久久| 成年人午夜久久久| 4438x成人网最大色成网站| 亚洲国产成人私人影院tom| 亚洲综合一区在线| 国产一区 二区| 在线中文字幕一区二区| 久久久三级国产网站| 亚洲一区二区三区影院| 国产成人av一区二区三区在线观看| 欧美曰成人黄网| 国产欧美一区二区精品久导航| 亚洲香肠在线观看| 成人免费毛片app| 欧美一区二区三区免费视频| 国产精品久久久久久久久搜平片 | 麻豆国产欧美日韩综合精品二区 | 亚洲制服丝袜av| 高清免费成人av| 欧美成va人片在线观看| 亚洲激情av在线| av毛片久久久久**hd| 精品国产乱码久久久久久老虎| 亚洲一级片在线观看| 99免费精品在线观看| 国产欧美日韩视频在线观看| 热久久一区二区| 欧美日韩精品免费| 玉米视频成人免费看| 波多野结衣欧美| 中文字幕不卡在线观看| 国产一区二区三区在线观看免费| 欧美一区二区三区视频| 亚洲成年人影院| 欧美日韩久久久| 亚洲国产综合在线| 日本韩国视频一区二区| 亚洲欧美激情小说另类| 一本到一区二区三区| 国产精品久久久久久久久免费樱桃 | 日韩av一级片| 欧美日韩国产经典色站一区二区三区| 一区精品在线播放| 成人少妇影院yyyy| 国产精品福利一区二区| 成人免费黄色在线| 亚洲三级电影网站| 91麻豆国产在线观看| 一级精品视频在线观看宜春院| 色综合久久中文综合久久97| 一区二区免费看| 欧美日韩免费一区二区三区视频| 亚洲一区二区在线视频| 8x福利精品第一导航| 青娱乐精品在线视频| 久久久美女毛片| 91在线无精精品入口| 亚洲视频图片小说| 欧美精品亚洲一区二区在线播放| 亚洲第一二三四区| 日韩欧美成人一区二区| 成人爽a毛片一区二区免费| 亚洲视频一区在线观看| 8x8x8国产精品| 国产福利精品一区二区| 一级女性全黄久久生活片免费| 91麻豆精品国产91久久久久久久久 | 日本伦理一区二区| 午夜在线成人av| 久久午夜羞羞影院免费观看| 成人福利视频网站| 丝袜a∨在线一区二区三区不卡| 88在线观看91蜜桃国自产| 国产成人自拍在线| 亚洲午夜国产一区99re久久| 精品美女一区二区| 91久久人澡人人添人人爽欧美| 午夜精品久久久久久久久久| 国产午夜亚洲精品羞羞网站| 在线观看免费成人| 国产麻豆成人传媒免费观看| 亚洲精品第一国产综合野| 欧美成人精精品一区二区频| www.综合网.com| 精品一区二区三区日韩| 亚洲资源中文字幕| 久久久精品日韩欧美| 欧美性极品少妇| 成人精品在线视频观看| 日本午夜一区二区| 亚洲精品美国一| 欧美国产亚洲另类动漫| 日韩精品资源二区在线| 在线亚洲一区观看| 成人avav影音| 国产主播一区二区三区| 日本在线不卡视频| 亚洲国产欧美在线| 亚洲精品欧美二区三区中文字幕| 久久一区二区三区四区| 日韩午夜激情av| 欧美浪妇xxxx高跟鞋交| 色婷婷精品大在线视频| 成人免费av在线| 国产一区二区三区精品视频| 欧美96一区二区免费视频| 亚洲一区二区视频在线| 亚洲精品中文字幕在线观看| 国产蜜臀97一区二区三区| 日韩精品一区二区三区视频| 欧美一区二区三区视频免费播放| 91免费视频网址| 91亚洲精品乱码久久久久久蜜桃| 国产精品一区二区x88av| 久久69国产一区二区蜜臀| 麻豆精品视频在线观看免费| 日本91福利区| 美腿丝袜在线亚洲一区| 日韩av在线免费观看不卡| 午夜伊人狠狠久久| 日韩中文字幕麻豆| 日本午夜精品视频在线观看| 人人狠狠综合久久亚洲| 美女看a上一区| 日本成人超碰在线观看| 久久66热re国产| 国产福利精品导航| 国产成人亚洲综合色影视| 国产乱码精品一品二品| 国产成人激情av| 不卡av免费在线观看| 国产**成人网毛片九色 | 色天天综合久久久久综合片| 91在线精品一区二区三区| 91麻豆蜜桃一区二区三区| 欧美日韩国产综合视频在线观看 | 国产成人精品一区二区三区网站观看| 国产精品一卡二卡在线观看| 成人性色生活片免费看爆迷你毛片| 国产一区二区剧情av在线| 成人动漫一区二区三区| 不卡的av电影| 欧美精品乱码久久久久久按摩| 884aa四虎影成人精品一区| 日韩视频在线观看一区二区| 久久久不卡网国产精品二区| 欧美国产一区二区| 亚洲国产精品久久艾草纯爱| 乱中年女人伦av一区二区| 成人性生交大片免费看中文| 91浏览器在线视频| 日韩精品一区在线| 亚洲视频一区二区在线观看| 日韩成人精品在线| 国产成人av福利| 欧美理论在线播放| 国产日产欧美一区二区三区| 亚洲一区二区av电影| 国产成人精品免费看| 欧美日韩视频在线一区二区 | 成人国产一区二区三区精品| 欧美亚洲综合在线| 337p日本欧洲亚洲大胆色噜噜| 亚洲男人电影天堂| 国产一区二区在线视频| 欧美日韩免费一区二区三区 | 精品视频资源站| 中文字幕第一区第二区|