Changeset cd0dce3 in mainline for uspace/lib


Ignore:
Timestamp:
2026-02-11T23:17:49Z (5 weeks ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
00d26202
Parents:
f9c30b9a
Message:

Create new directory (Navigator + command line utility).

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

Legend:

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

    rf9c30b9a rcd0dce3  
    4545#include "fmgt/flist.h"
    4646#include "fmgt/move.h"
     47#include "fmgt/newdir.h"
    4748#include "fmgt/newfile.h"
    4849#include "fmgt/verify.h"
  • uspace/lib/fmgt/meson.build

    rf9c30b9a rcd0dce3  
    3333        'src/fsops.c',
    3434        'src/move.c',
     35        'src/newdir.c',
    3536        'src/newfile.c',
    3637        'src/verify.c',
     
    4546        'test/main.c',
    4647        'test/move.c',
     48        'test/newdir.c',
    4749        'test/newfile.c',
    4850        'test/verify.c',
  • uspace/lib/fmgt/private/fsops.h

    rf9c30b9a rcd0dce3  
    4545errno_t fmgt_open(fmgt_t *, const char *, int *);
    4646errno_t fmgt_create_file(fmgt_t *, const char *, int *, fmgt_exists_action_t *);
    47 errno_t fmgt_create_dir(fmgt_t *, const char *);
     47errno_t fmgt_create_dir(fmgt_t *, const char *, bool);
    4848errno_t fmgt_remove(fmgt_t *, const char *);
    4949errno_t fmgt_read(fmgt_t *, int, const char *, aoff64_t *, void *, size_t,
  • uspace/lib/fmgt/src/copy.c

    rf9c30b9a rcd0dce3  
    6464
    6565        (void)dest;
    66         return fmgt_create_dir(fmgt, dest);
     66        return fmgt_create_dir(fmgt, dest, false);
    6767}
    6868
  • uspace/lib/fmgt/src/fsops.c

    rf9c30b9a rcd0dce3  
    135135 * @param fmgt File management object
    136136 * @param dname Directory name
    137  * @return EOK on success or an error code
    138  */
    139 errno_t fmgt_create_dir(fmgt_t *fmgt, const char *dname)
     137 * @param exclusive If @c true, directory must not exist.
     138 * @return EOK on success or an error code
     139 */
     140errno_t fmgt_create_dir(fmgt_t *fmgt, const char *dname, bool exclusive)
    140141{
    141142        fmgt_io_error_t err;
     
    146147                rc = vfs_link_path(dname, KIND_DIRECTORY, NULL);
    147148
    148                 /* It is okay if the directory exists. */
    149149                if (rc == EOK || rc == EEXIST)
    150150                        break;
     
    160160        } while (action == fmgt_er_retry);
    161161
    162         if (rc == EEXIST)
     162        if (rc == EEXIST && !exclusive)
    163163                return EOK;
    164164
  • uspace/lib/fmgt/src/move.c

    rf9c30b9a rcd0dce3  
    6666
    6767        (void)dest;
    68         return fmgt_create_dir(fmgt, dest);
     68        return fmgt_create_dir(fmgt, dest, false);
    6969}
    7070
  • uspace/lib/fmgt/test/fsops.c

    rf9c30b9a rcd0dce3  
    122122        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    123123
    124         rc = fmgt_create_dir(fmgt, p);
     124        rc = fmgt_create_dir(fmgt, p, true);
    125125        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    126126
Note: See TracChangeset for help on using the changeset viewer.