Changes in / [3272be1:91d860d] in mainline


Ignore:
Files:
5 added
11 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/sysinst/sysinst.c

    r3272be1 r91d860d  
    423423{
    424424        sysinst_t *sysinst = (sysinst_t *)arg;
     425
    425426        (void)sysinst;
    426427        (void)exists->fname;
    427         // XXX Do not overwrite configuration files.
    428         return fmgt_exr_overwrite;
     428
     429        sysinst_action(sysinst, exists->fname);
     430
     431        /*
     432         * Before starting fmgt operation, the caller would specify
     433         * whether to overwrite existing files.
     434         */
     435        if (sysinst->overwrite)
     436                return fmgt_exr_overwrite;
     437        else
     438                return fmgt_exr_skip;
    429439}
    430440
     
    841851                goto error;
    842852
     853        /* Do not overwrite configuration files. */
     854        sysinst->overwrite = false;
    843855        rc = fmgt_copy(sysinst->fmgt, flist, CFG_FILES_DEST);
    844856        if (rc != EOK) {
     
    879891                goto error;
    880892
     893        /* Overwrite boot files with new ones during upgrade. */
     894        sysinst->overwrite = true;
    881895        rc = fmgt_copy(sysinst->fmgt, flist, MOUNT_POINT);
    882896        if (rc != EOK) {
  • uspace/app/sysinst/sysinst.h

    r3272be1 r91d860d  
    8686        bool quit;
    8787        char errmsg[128];
     88        /** Allow overwriting files in current copy operation. */
     89        bool overwrite;
    8890} sysinst_t;
    8991
  • uspace/app/uidemo/uidemo.c

    r3272be1 r91d860d  
    11/*
    2  * Copyright (c) 2024 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3333 */
    3434
     35#include <fibril_synch.h>
    3536#include <gfx/bitmap.h>
    3637#include <gfx/coord.h>
     
    6061#include "uidemo.h"
    6162
     63enum {
     64        scrollbar_update_interval_ms = 1000,
     65        ui_demo_progress_step = 17
     66};
     67
    6268static errno_t bitmap_moire(gfx_bitmap_t *, gfx_coord_t, gfx_coord_t);
    6369
     
    714720        (void) demo;
    715721        ui_msg_dialog_destroy(dialog);
     722}
     723
     724static void ui_demo_timer_fun(void *arg)
     725{
     726        ui_demo_t *demo = (ui_demo_t *) arg;
     727
     728        if (demo->progress_value < 100) {
     729                demo->progress_value += ui_demo_progress_step;
     730                if (demo->progress_value > 100)
     731                        demo->progress_value = 100;
     732        } else {
     733                demo->progress_value = 0;
     734        }
     735
     736        ui_progress_set_value(demo->progress, demo->progress_value);
     737
     738        if (ui_tab_is_selected(demo->tbars)) {
     739                ui_lock(demo->ui);
     740                ui_progress_paint(demo->progress);
     741                ui_unlock(demo->ui);
     742        }
     743
     744        fibril_timer_set(demo->timer, 1000 * scrollbar_update_interval_ms,
     745            ui_demo_timer_fun, (void *)demo);
    716746}
    717747
     
    956986        }
    957987
     988        rc = ui_tab_create(demo.tabset, "Bars", &demo.tbars);
     989        if (rc != EOK) {
     990                printf("Error creating tab.\n");
     991                return rc;
     992        }
     993
    958994        rc = ui_fixed_add(demo.fixed, ui_tab_set_ctl(demo.tabset));
    959995        if (rc != EOK) {
     
    14291465        ui_tab_add(demo.tlists, ui_fixed_ctl(demo.lfixed));
    14301466
     1467        rc = ui_fixed_create(&demo.bars_fixed);
     1468        if (rc != EOK) {
     1469                printf("Error creating fixed layout.\n");
     1470                return rc;
     1471        }
     1472
     1473        rc = ui_progress_create(ui_res, 0, &demo.progress);
     1474        if (rc != EOK) {
     1475                printf("Error creating entry.\n");
     1476                return rc;
     1477        }
     1478
     1479        /* FIXME: Auto layout */
     1480        if (ui_is_textmode(ui)) {
     1481                rect.p0.x = 4;
     1482                rect.p0.y = 5;
     1483                rect.p1.x = 42;
     1484                rect.p1.y = 6;
     1485        } else {
     1486                rect.p0.x = 15;
     1487                rect.p0.y = 88;
     1488                rect.p1.x = 243;
     1489                rect.p1.y = 113;
     1490        }
     1491
     1492        ui_progress_set_rect(demo.progress, &rect);
     1493
     1494        rc = ui_fixed_add(demo.bars_fixed, ui_progress_ctl(demo.progress));
     1495        if (rc != EOK) {
     1496                printf("Error adding control to layout.\n");
     1497                return rc;
     1498        }
     1499
     1500        ui_tab_add(demo.tbars, ui_fixed_ctl(demo.bars_fixed));
     1501
    14311502        ui_window_add(window, ui_fixed_ctl(demo.fixed));
    14321503
     1504        demo.timer = fibril_timer_create(NULL);
     1505        if (demo.timer == NULL) {
     1506                printf("Error creating timer.\n");
     1507                return ENOMEM;
     1508        }
     1509
     1510        fibril_timer_set(demo.timer, 1000 * scrollbar_update_interval_ms,
     1511            ui_demo_timer_fun, (void *)&demo);
     1512
    14331513        rc = ui_window_paint(window);
    14341514        if (rc != EOK) {
     
    14381518
    14391519        ui_run(ui);
     1520
     1521        fibril_timer_clear(demo.timer);
     1522        fibril_timer_destroy(demo.timer);
    14401523
    14411524        ui_window_destroy(window);
  • uspace/app/uidemo/uidemo.h

    r3272be1 r91d860d  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3838
    3939#include <display.h>
     40#include <fibril_synch.h>
    4041#include <ui/checkbox.h>
    4142#include <ui/entry.h>
     
    4647#include <ui/menubar.h>
    4748#include <ui/pbutton.h>
     49#include <ui/progress.h>
    4850#include <ui/rbutton.h>
    4951#include <ui/scrollbar.h>
     
    6163        ui_fixed_t *bfixed;
    6264        ui_fixed_t *lfixed;
     65        ui_fixed_t *bars_fixed;
    6366        ui_menu_bar_t *mbar;
    6467        ui_menu_t *mfile;
     
    6972        ui_tab_t *tbasic;
    7073        ui_tab_t *tlists;
     74        ui_tab_t *tbars;
    7175        ui_entry_t *entry;
    7276        ui_image_t *image;
     
    8387        ui_scrollbar_t *vscrollbar;
    8488        ui_list_t *list;
     89        ui_progress_t *progress;
     90        unsigned progress_value;
     91        fibril_timer_t *timer;
    8592} ui_demo_t;
    8693
  • uspace/lib/ui/meson.build

    r3272be1 r91d860d  
    11#
    2 # Copyright (c) 2023 Jiri Svoboda
     2# Copyright (c) 2026 Jiri Svoboda
    33# All rights reserved.
    44#
     
    4949        'src/pbutton.c',
    5050        'src/popup.c',
     51        'src/progress.c',
    5152        'src/promptdialog.c',
    5253        'src/rbutton.c',
     
    8586        'test/popup.c',
    8687        'test/promptdialog.c',
     88        'test/progress.c',
    8789        'test/rbutton.c',
    8890        'test/resource.c',
  • uspace/lib/ui/src/wdecor.c

    r3272be1 r91d860d  
    13691369        fmt.valign = gfx_valign_top;
    13701370
    1371         rc = gfx_puttext(&pbutton->rect.p0, &fmt, "[\u25a0]");
     1371        rc = gfx_puttext(&pbutton->rect.p0, &fmt, "[X]");
    13721372        if (rc != EOK)
    13731373                return rc;
  • uspace/srv/fs/cdfs/cdfs_ops.c

    r3272be1 r91d860d  
    11/*
    2  * Copyright (c) 2024 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * Copyright (c) 2011 Martin Decky
    44 * All rights reserved.
     
    341341
    342342        ht_link_t *link = hash_table_find(&nodes, &key);
    343         if (link) {
    344                 cdfs_node_t *node =
    345                     hash_table_get_inst(link, cdfs_node_t, nh_link);
    346 
    347                 *rfn = FS_NODE(node);
    348         } else
     343        if (!link) {
    349344                *rfn = NULL;
    350 
     345                return EBADF;
     346        }
     347
     348        cdfs_node_t *node = hash_table_get_inst(link, cdfs_node_t, nh_link);
     349        *rfn = FS_NODE(node);
    351350        return EOK;
    352351}
     
    395394        errno_t rc = cdfs_root_get(&rootfn, fs->service_id);
    396395
    397         assert(rc == EOK);
     396        assert(rc == EOK || rc == EBADF);
    398397
    399398        if (!rootfn)
     
    13541353                cdfs_node_t *node = hash_table_get_inst(item, cdfs_node_t, nh_link);
    13551354
    1356                 if (!node->opened) {
     1355                /* Remove closed, but root node is always in memory. */
     1356                if (!node->opened && node->index != 0) {
    13571357                        hash_table_remove_item(&nodes, item);
    13581358
  • uspace/srv/fs/exfat/exfat_ops.c

    r3272be1 r91d860d  
    11/*
    2  * Copyright (c) 2024 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * Copyright (c) 2008 Jakub Jermar
    44 * Copyright (c) 2011 Oleg Romanenko
     
    573573        if (!idxp) {
    574574                *rfn = NULL;
    575                 return EOK;
     575                return EBADF;
    576576        }
    577577        /* idxp->lock held */
  • uspace/srv/fs/fat/fat_ops.c

    r3272be1 r91d860d  
    11/*
    2  * Copyright (c) 2024 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * Copyright (c) 2008 Jakub Jermar
    44 * Copyright (c) 2011 Oleg Romanenko
     
    436436        if (!idxp) {
    437437                *rfn = NULL;
    438                 return EOK;
     438                return EBADF;
    439439        }
    440440        /* idxp->lock held */
  • uspace/srv/fs/tmpfs/tmpfs_ops.c

    r3272be1 r91d860d  
    11/*
     2 * Copyright (c) 2026 Jiri Svoboda
    23 * Copyright (c) 2008 Jakub Jermar
    34 * All rights reserved.
     
    276277        ht_link_t *lnk = hash_table_find(&nodes, &key);
    277278
    278         if (lnk) {
    279                 tmpfs_node_t *nodep;
    280                 nodep = hash_table_get_inst(lnk, tmpfs_node_t, nh_link);
    281                 *rfn = FS_NODE(nodep);
    282         } else {
     279        if (lnk == NULL) {
    283280                *rfn = NULL;
    284         }
     281                return EBADF;
     282        }
     283
     284        tmpfs_node_t *nodep;
     285        nodep = hash_table_get_inst(lnk, tmpfs_node_t, nh_link);
     286        *rfn = FS_NODE(nodep);
    285287        return EOK;
    286288}
     
    320322
    321323        rc = tmpfs_root_get(&rootfn, service_id);
    322         assert(rc == EOK);
    323         if (!rootfn)
     324        assert(rc == EOK || rc == EBADF);
     325        if (rootfn == NULL)
    324326                nodep->index = TMPFS_SOME_ROOT;
    325327        else
  • version

    r3272be1 r91d860d  
    3030HELENOS_RELEASE = 0.14.1
    3131HELENOS_CODENAME = Aladar
    32 HELENOS_COPYRIGHT = Copyright (c) 2001-2024 HelenOS project
     32HELENOS_COPYRIGHT = Copyright (c) 2001-2026 HelenOS project
Note: See TracChangeset for help on using the changeset viewer.