Changeset 96ef0d1e in mainline for uspace/lib


Ignore:
Timestamp:
2026-03-07T19:50:50Z (12 days ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
01cd15bc
Parents:
a927af7a
Message:

Rename file (Navigator and command line).

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

Legend:

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

    ra927af7a r96ef0d1e  
    4848#include "fmgt/newdir.h"
    4949#include "fmgt/newfile.h"
     50#include "fmgt/rename.h"
    5051#include "fmgt/verify.h"
    5152#include "fmgt/walk.h"
  • uspace/lib/fmgt/include/types/fmgt.h

    ra927af7a r96ef0d1e  
    7373        fmgt_io_create,
    7474        /** Delete */
    75         fmgt_io_delete
     75        fmgt_io_delete,
     76        /** Rename */
     77        fmgt_io_rename
    7678} fmgt_io_op_type_t;
    7779
  • uspace/lib/fmgt/meson.build

    ra927af7a r96ef0d1e  
    3636        'src/newdir.c',
    3737        'src/newfile.c',
     38        'src/rename.c',
    3839        'src/verify.c',
    3940        'src/walk.c'
     
    4950        'test/newdir.c',
    5051        'test/newfile.c',
     52        'test/rename.c',
    5153        'test/verify.c',
    5254        'test/walk.c'
  • uspace/lib/fmgt/private/fsops.h

    ra927af7a r96ef0d1e  
    3838#define PRIVATE_FSOPS_H
    3939
     40#include <offset.h>
    4041#include <stddef.h>
    4142#include <stdio.h>
     
    4748errno_t fmgt_create_dir(fmgt_t *, const char *, bool);
    4849errno_t fmgt_remove(fmgt_t *, const char *);
     50errno_t fmgt_rename_entry(fmgt_t *, const char *, const char *);
    4951errno_t fmgt_read(fmgt_t *, int, const char *, aoff64_t *, void *, size_t,
    5052    size_t *);
  • uspace/lib/fmgt/src/fsops.c

    ra927af7a r96ef0d1e  
    283283}
    284284
     285/** Rename file or directory.
     286 *
     287 * @param fmgt File management object
     288 * @param old_path Original filesystem path
     289 * @param new_name New name (does not need to be a full path)
     290 * @return EOK on success or an error code
     291 */
     292errno_t fmgt_rename_entry(fmgt_t *fmgt, const char *old_path,
     293    const char *new_name)
     294{
     295        fmgt_io_error_t err;
     296        fmgt_error_action_t action;
     297        errno_t rc;
     298
     299        do {
     300                rc = vfs_rename_path(old_path, new_name);
     301
     302                if (rc == EOK)
     303                        break;
     304
     305                /* I/O error */
     306                err.fname = old_path;
     307                err.optype = fmgt_io_rename;
     308                err.rc = rc;
     309
     310                fmgt_timer_stop(fmgt);
     311                action = fmgt_io_error_query(fmgt, &err);
     312                fmgt_timer_start(fmgt);
     313        } while (action == fmgt_er_retry);
     314
     315        return rc;
     316}
     317
    285318/** @}
    286319 */
  • uspace/lib/fmgt/test/main.c

    ra927af7a r96ef0d1e  
    3737PCUT_IMPORT(move);
    3838PCUT_IMPORT(newfile);
     39PCUT_IMPORT(rename);
    3940PCUT_IMPORT(verify);
    4041PCUT_IMPORT(walk);
Note: See TracChangeset for help on using the changeset viewer.