|
From: <ga...@us...> - 2009-07-24 15:22:10
|
Revision: 5620
http://jnode.svn.sourceforge.net/jnode/?rev=5620&view=rev
Author: galatnm
Date: 2009-07-24 15:22:04 +0000 (Fri, 24 Jul 2009)
Log Message:
-----------
Print partition informations should now print number of blocks correctly.
Modified Paths:
--------------
trunk/fs/src/fs/org/jnode/partitions/command/FdiskCommand.java
Modified: trunk/fs/src/fs/org/jnode/partitions/command/FdiskCommand.java
===================================================================
--- trunk/fs/src/fs/org/jnode/partitions/command/FdiskCommand.java 2009-07-23 15:26:00 UTC (rev 5619)
+++ trunk/fs/src/fs/org/jnode/partitions/command/FdiskCommand.java 2009-07-24 15:22:04 UTC (rev 5620)
@@ -162,7 +162,8 @@
}
BlockDeviceAPI api = dev.getAPI(BlockDeviceAPI.class);
IDEDriveDescriptor descriptor = ideDev.getDescriptor();
- ByteBuffer MBR = ByteBuffer.allocate(IDEConstants.SECTOR_SIZE);
+ int sectorSize = IDEConstants.SECTOR_SIZE;
+ ByteBuffer MBR = ByteBuffer.allocate(sectorSize);
api.read(0, MBR);
if (IBMPartitionTable.containsPartitionTable(MBR.array())) {
IBMPartitionTable partitionTable =
@@ -175,14 +176,25 @@
int i = 0;
for (IBMPartitionTableEntry entry : partitionTable) {
- //IBMPartitionTableEntry entry = (IBMPartitionTableEntry)partitionTable.getEntry(i);
IBMPartitionTypes si = entry.getSystemIndicator();
if (si != IBMPartitionTypes.PARTTYPE_EMPTY) {
+ // Calculate number of blocks
+ long sectors = entry.getNrSectors();
+ long blocks = sectors;
+ long odd = 0;
+
+ if (sectorSize < 1024) {
+ blocks /= (1024 / sectorSize);
+ odd = sectors % (1024 / sectorSize);
+ } else {
+ blocks *= (sectorSize / 1024);
+ }
+
out.println("ID " + i + " " +
(entry.getBootIndicator() ? "Boot" : "No") + " " +
entry.getStartLba() + " " +
- (entry.getStartLba() + entry.getNrSectors()) + " " +
- entry.getNrSectors() + " " + si);
+ (entry.getStartLba() + sectors) + " " +
+ blocks + ((odd!=0)?"+":"") + " " + si);
}
if (entry.isExtended()) {
final List<IBMPartitionTableEntry> exPartitions = partitionTable.getExtendedPartitions();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|