Subversion Repositories HelenOS

Rev

Rev 3541 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3541 Rev 3545
Line 53... Line 53...
53
    files = 2
53
    files = 2
54
   
54
   
55
    for name in os.listdir(root):
55
    for name in os.listdir(root):
56
        canon = os.path.join(root, name)
56
        canon = os.path.join(root, name)
57
       
57
       
58
        if (os.path.isfile(canon)):
58
        if (os.path.isfile(canon) and (not name in exclude_names)):
59
            size += align_up(os.path.getsize(canon), cluster_size)
59
            size += align_up(os.path.getsize(canon), cluster_size)
60
            files += 1
60
            files += 1
61
       
61
       
62
        if (os.path.isdir(canon)):
62
        if (os.path.isdir(canon) and (not name in exclude_names)):
63
            size += subtree_size(canon, cluster_size, dirent_size)
63
            size += subtree_size(canon, cluster_size, dirent_size)
64
            files += 1
64
            files += 1
65
   
65
   
66
    return size + align_up(files * dirent_size, cluster_size)
66
    return size + align_up(files * dirent_size, cluster_size)
67
 
67
 
Line 351... Line 351...
351
    if (not os.path.isdir(path)):
351
    if (not os.path.isdir(path)):
352
        print "<PATH> must be a directory"
352
        print "<PATH> must be a directory"
353
        return
353
        return
354
   
354
   
355
    fat16_clusters = 4096
355
    fat16_clusters = 4096
356
    min_cluster_size = 1024
-
 
357
   
356
   
358
    sector_size = 512
357
    sector_size = 512
359
    cluster_size = 4096
358
    cluster_size = 4096
360
    dirent_size = 32
359
    dirent_size = 32
361
    fatent_size = 2
360
    fatent_size = 2
Line 363... Line 362...
363
    reserved_clusters = 2
362
    reserved_clusters = 2
364
   
363
   
365
    # Make sure the filesystem is large enought for FAT16
364
    # Make sure the filesystem is large enought for FAT16
366
    size = subtree_size(path, cluster_size, dirent_size) + reserved_clusters * cluster_size
365
    size = subtree_size(path, cluster_size, dirent_size) + reserved_clusters * cluster_size
367
    while (size / cluster_size < fat16_clusters):
366
    while (size / cluster_size < fat16_clusters):
368
        if (cluster_size > min_cluster_size):
367
        if (cluster_size > sector_size):
369
            cluster_size /= 2
368
            cluster_size /= 2
370
            size = subtree_size(path, cluster_size, dirent_size) + reserved_clusters * cluster_size
369
            size = subtree_size(path, cluster_size, dirent_size) + reserved_clusters * cluster_size
371
        else:
370
        else:
372
            size = fat16_clusters * cluster_size + reserved_clusters * cluster_size
371
            size = fat16_clusters * cluster_size + reserved_clusters * cluster_size
373
   
372