Subversion Repositories HelenOS

Rev

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

Rev 3507 Rev 3510
Line 211... Line 211...
211
 
211
 
212
void
212
void
213
fat_mark_cluster(dev_handle_t dev_handle, unsigned fatno, fat_cluster_t clst,
213
fat_mark_cluster(dev_handle_t dev_handle, unsigned fatno, fat_cluster_t clst,
214
    fat_cluster_t value)
214
    fat_cluster_t value)
215
{
215
{
-
 
216
    block_t *bb, *blk;
-
 
217
    uint16_t bps;
-
 
218
    uint16_t rscnt;
216
    /* TODO */
219
    uint16_t sf;
-
 
220
    uint8_t fatcnt;
-
 
221
    fat_cluster_t *cp;
-
 
222
 
-
 
223
    bb = block_get(dev_handle, BS_BLOCK, BS_SIZE);
-
 
224
    bps = uint16_t_le2host(FAT_BS(bb)->bps);
-
 
225
    rscnt = uint16_t_le2host(FAT_BS(bb)->rscnt);
-
 
226
    sf = uint16_t_le2host(FAT_BS(bb)->sec_per_fat);
-
 
227
    fatcnt = FAT_BS(bb)->fatcnt;
-
 
228
    block_put(bb);
-
 
229
 
-
 
230
    assert(fatno < fatcnt);
-
 
231
    blk = block_get(dev_handle, rscnt + sf * fatno +
-
 
232
        (clst * sizeof(fat_cluster_t)) / bps, bps);
-
 
233
    cp = (fat_cluster_t *)blk->data + clst % (bps / sizeof(fat_cluster_t));
-
 
234
    *cp = host2uint16_t_le(value);
-
 
235
    blk->dirty = true;      /* need to sync block */
-
 
236
    block_put(blk);
217
}
237
}
218
 
238
 
219
void fat_alloc_shadow_clusters(dev_handle_t dev_handle, fat_cluster_t *lifo,
239
void fat_alloc_shadow_clusters(dev_handle_t dev_handle, fat_cluster_t *lifo,
220
    unsigned nclsts)
240
    unsigned nclsts)
221
{
241
{