Changeset f9c30b9a in mainline for uspace/lib


Ignore:
Timestamp:
2026-02-11T18:02:17Z (5 weeks ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
cd0dce3
Parents:
59ed424e
Message:

Moving files (Navigator and command line utility).

Location:
uspace/lib/fmgt
Files:
3 added
8 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/fmgt/include/fmgt.h

    r59ed424e rf9c30b9a  
    11/*
    2  * Copyright (c) 2025 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4444#include "fmgt/copy.h"
    4545#include "fmgt/flist.h"
     46#include "fmgt/move.h"
    4647#include "fmgt/newfile.h"
    4748#include "fmgt/verify.h"
  • uspace/lib/fmgt/include/types/fmgt.h

    r59ed424e rf9c30b9a  
    6969        fmgt_io_open,
    7070        /** Create */
    71         fmgt_io_create
     71        fmgt_io_create,
     72        /** Delete */
     73        fmgt_io_delete
    7274} fmgt_io_op_type_t;
    7375
  • uspace/lib/fmgt/meson.build

    r59ed424e rf9c30b9a  
    3232        'src/fmgt.c',
    3333        'src/fsops.c',
     34        'src/move.c',
    3435        'src/newfile.c',
    3536        'src/verify.c',
     
    4344        'test/fsops.c',
    4445        'test/main.c',
     46        'test/move.c',
    4547        'test/newfile.c',
    4648        'test/verify.c',
  • uspace/lib/fmgt/private/fsops.h

    r59ed424e rf9c30b9a  
    4646errno_t fmgt_create_file(fmgt_t *, const char *, int *, fmgt_exists_action_t *);
    4747errno_t fmgt_create_dir(fmgt_t *, const char *);
     48errno_t fmgt_remove(fmgt_t *, const char *);
    4849errno_t fmgt_read(fmgt_t *, int, const char *, aoff64_t *, void *, size_t,
    4950    size_t *);
  • uspace/lib/fmgt/src/fsops.c

    r59ed424e rf9c30b9a  
    166166}
    167167
     168/** Remove file or empty directory.
     169 *
     170 * @param fmgt File management object
     171 * @param fame File or directory name
     172 * @return EOK on success or an error code
     173 */
     174errno_t fmgt_remove(fmgt_t *fmgt, const char *fname)
     175{
     176        fmgt_io_error_t err;
     177        fmgt_error_action_t action;
     178        errno_t rc;
     179
     180        do {
     181                rc = vfs_unlink_path(fname);
     182                if (rc == EOK)
     183                        break;
     184
     185                /* I/O error */
     186                err.fname = fname;
     187                err.optype = fmgt_io_delete;
     188                err.rc = rc;
     189
     190                fmgt_timer_stop(fmgt);
     191                action = fmgt_io_error_query(fmgt, &err);
     192                fmgt_timer_start(fmgt);
     193        } while (action == fmgt_er_retry);
     194
     195        return rc;
     196}
     197
    168198/** Read data from file.
    169199 *
  • uspace/lib/fmgt/test/copy.c

    r59ed424e rf9c30b9a  
    11/*
    2  * Copyright (c) 2025 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    167167        char *fname;
    168168        char *dname;
     169        char *rname;
    169170        FILE *f;
    170171        char *p;
     
    181182        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    182183
    183         rv = asprintf(&fname, "%s/%s", p, "a");
    184         PCUT_ASSERT_TRUE(rv >= 0);
    185 
    186         rv = asprintf(&dname, "%s/%s", p, "b");
     184        rv = asprintf(&fname, "%s/a", p);
     185        PCUT_ASSERT_TRUE(rv >= 0);
     186
     187        rv = asprintf(&dname, "%s/b", p);
     188        PCUT_ASSERT_TRUE(rv >= 0);
     189
     190        rv = asprintf(&rname, "%s/b/a", p);
    187191        PCUT_ASSERT_TRUE(rv >= 0);
    188192
     
    208212        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    209213
    210         rc = fmgt_flist_append(flist, dname);
    211         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    212 
    213214        rc = fmgt_copy(fmgt, flist, dname);
    214215        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     
    217218
    218219        rv = remove(fname);
     220        PCUT_ASSERT_INT_EQUALS(0, rv);
     221
     222        rv = remove(rname);
    219223        PCUT_ASSERT_INT_EQUALS(0, rv);
    220224
  • uspace/lib/fmgt/test/fsops.c

    r59ed424e rf9c30b9a  
    131131}
    132132
     133/** Remove file. */
     134PCUT_TEST(remove)
     135{
     136        fmgt_t *fmgt = NULL;
     137        char buf[L_tmpnam];
     138        FILE *f;
     139        char *p;
     140        int rv;
     141        errno_t rc;
     142
     143        /* Create name for temporary file */
     144        p = tmpnam(buf);
     145        PCUT_ASSERT_NOT_NULL(p);
     146
     147        f = fopen(p, "wb");
     148        PCUT_ASSERT_NOT_NULL(f);
     149
     150        rv = fprintf(f, "X");
     151        PCUT_ASSERT_TRUE(rv >= 0);
     152
     153        rv = fclose(f);
     154        PCUT_ASSERT_INT_EQUALS(0, rv);
     155
     156        rc = fmgt_create(&fmgt);
     157        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     158
     159        rc = fmgt_remove(fmgt, p);
     160        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     161
     162        fmgt_destroy(fmgt);
     163}
     164
    133165/** Read data from file. */
    134166PCUT_TEST(read)
  • uspace/lib/fmgt/test/main.c

    r59ed424e rf9c30b9a  
    3131PCUT_INIT;
    3232
     33PCUT_IMPORT(copy);
    3334PCUT_IMPORT(flist);
    3435PCUT_IMPORT(fmgt);
    3536PCUT_IMPORT(fsops);
     37PCUT_IMPORT(move);
    3638PCUT_IMPORT(newfile);
    3739PCUT_IMPORT(verify);
Note: See TracChangeset for help on using the changeset viewer.