Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/exfat/exfat_bitmap.c

    re738d56 rff0c270  
    4545#include <assert.h>
    4646#include <fibril_synch.h>
     47#include <malloc.h>
    4748#include <mem.h>
    4849
    4950
    50 int exfat_bitmap_is_free(exfat_bs_t *bs, service_id_t service_id,
     51int bitmap_is_free(exfat_bs_t *bs, service_id_t service_id,
    5152    exfat_cluster_t clst)
    5253{
     
    8990}
    9091
    91 int exfat_bitmap_set_cluster(exfat_bs_t *bs, service_id_t service_id,
     92int bitmap_set_cluster(exfat_bs_t *bs, service_id_t service_id,
    9293    exfat_cluster_t clst)
    9394{
     
    124125}
    125126
    126 int exfat_bitmap_clear_cluster(exfat_bs_t *bs, service_id_t service_id,
     127int bitmap_clear_cluster(exfat_bs_t *bs, service_id_t service_id,
    127128    exfat_cluster_t clst)
    128129{
     
    160161}
    161162
    162 int exfat_bitmap_set_clusters(exfat_bs_t *bs, service_id_t service_id,
     163int bitmap_set_clusters(exfat_bs_t *bs, service_id_t service_id,
    163164    exfat_cluster_t firstc, exfat_cluster_t count)
    164165{
     
    168169
    169170        while (clst < firstc + count ) {
    170                 rc = exfat_bitmap_set_cluster(bs, service_id, clst);
     171                rc = bitmap_set_cluster(bs, service_id, clst);
    171172                if (rc != EOK) {
    172173                        if (clst - firstc > 0)
    173                                 (void) exfat_bitmap_clear_clusters(bs, service_id,
     174                                (void) bitmap_clear_clusters(bs, service_id,
    174175                                    firstc, clst - firstc);
    175176                        return rc;
     
    180181}
    181182
    182 int exfat_bitmap_clear_clusters(exfat_bs_t *bs, service_id_t service_id,
     183int bitmap_clear_clusters(exfat_bs_t *bs, service_id_t service_id,
    183184    exfat_cluster_t firstc, exfat_cluster_t count)
    184185{
     
    188189
    189190        while (clst < firstc + count) {
    190                 rc = exfat_bitmap_clear_cluster(bs, service_id, clst);
     191                rc = bitmap_clear_cluster(bs, service_id, clst);
    191192                if (rc != EOK)
    192193                        return rc;
     
    196197}
    197198
    198 int exfat_bitmap_alloc_clusters(exfat_bs_t *bs, service_id_t service_id,
     199int bitmap_alloc_clusters(exfat_bs_t *bs, service_id_t service_id,
    199200    exfat_cluster_t *firstc, exfat_cluster_t count)
    200201{
     
    204205        while (startc < DATA_CNT(bs) + 2) {
    205206                endc = startc;
    206                 while (exfat_bitmap_is_free(bs, service_id, endc) == EOK) {
     207                while (bitmap_is_free(bs, service_id, endc) == EOK) {
    207208                        if ((endc - startc) + 1 == count) {
    208209                                *firstc = startc;
    209                                 return exfat_bitmap_set_clusters(bs, service_id, startc, count);
     210                                return bitmap_set_clusters(bs, service_id, startc, count);
    210211                        } else
    211212                                endc++;
     
    217218
    218219
    219 int exfat_bitmap_append_clusters(exfat_bs_t *bs, exfat_node_t *nodep,
     220int bitmap_append_clusters(exfat_bs_t *bs, exfat_node_t *nodep,
    220221    exfat_cluster_t count)
    221222{
    222223        if (nodep->firstc == 0) {
    223                 return exfat_bitmap_alloc_clusters(bs, nodep->idx->service_id,
     224                return bitmap_alloc_clusters(bs, nodep->idx->service_id,
    224225                    &nodep->firstc, count);
    225226        } else {
     
    228229
    229230                clst = lastc + 1;
    230                 while (exfat_bitmap_is_free(bs, nodep->idx->service_id, clst) == EOK) {
     231                while (bitmap_is_free(bs, nodep->idx->service_id, clst) == EOK) {
    231232                        if (clst - lastc == count){
    232                                 return exfat_bitmap_set_clusters(bs, nodep->idx->service_id,
     233                                return bitmap_set_clusters(bs, nodep->idx->service_id,
    233234                                    lastc + 1, count);
    234235                        } else
     
    240241
    241242
    242 int exfat_bitmap_free_clusters(exfat_bs_t *bs, exfat_node_t *nodep,
     243int bitmap_free_clusters(exfat_bs_t *bs, exfat_node_t *nodep,
    243244    exfat_cluster_t count)
    244245{
     
    247248        lastc -= count;
    248249
    249         return exfat_bitmap_clear_clusters(bs, nodep->idx->service_id, lastc + 1, count);
    250 }
    251 
    252 
    253 int exfat_bitmap_replicate_clusters(exfat_bs_t *bs, exfat_node_t *nodep)
     250        return bitmap_clear_clusters(bs, nodep->idx->service_id, lastc + 1, count);
     251}
     252
     253
     254int bitmap_replicate_clusters(exfat_bs_t *bs, exfat_node_t *nodep)
    254255{
    255256        int rc;
Note: See TracChangeset for help on using the changeset viewer.