Changeset 7cce333 in mainline


Ignore:
Timestamp:
2019-08-07T10:22:06Z (5 years ago)
Author:
Matthieu Riolo <matthieu.riolo@…>
Children:
5353f50
Parents:
a097c50
git-author:
Michal Koutný <xm.koutny+hos@…> (2015-11-10 21:19:03)
git-committer:
Matthieu Riolo <matthieu.riolo@…> (2019-08-07 10:22:06)
Message:

sysman: Refined semantics of IPC_FLAG_AUTOSTART

IPC_FLAG_AUTOSTART_ is for internal use in brokers (added underscore).
IPC_AUTOSTART is a flag macro (not a _single_ flag) to be used by clients.

Conflicts:

uspace/lib/c/generic/loc.c
uspace/lib/gui/window.c
uspace/srv/vfs/vfs_ops.c

Location:
uspace
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/loc.c

    ra097c50 r7cce333  
    329329        async_exch_t *exch;
    330330
    331         if ((flags & IPC_FLAG_BLOCKING) || flags & IPC_FLAG_AUTOSTART)
     331        if ((flags & IPC_FLAG_BLOCKING))
    332332                exch = loc_exchange_begin_blocking(INTERFACE_LOC_CONSUMER);
    333333        else {
  • uspace/lib/c/include/ipc/common.h

    ra097c50 r7cce333  
    4343
    4444#define IPC_FLAG_BLOCKING   0x01
    45 // TODO autostart flag may be united with blocking, this should be later made
    46 //      implicit, documented or refactor pairs of xxx and xxx_blocking methods
    47 #define IPC_FLAG_AUTOSTART  0x02
     45
     46/**
     47 * IPC_FLAG_AUTOSTART_ is for use in brokers only. In clinet code use
     48 * IPC_AUTOSTART that includes implies blocking behavior. */
     49#define IPC_FLAG_AUTOSTART_  0x02
     50
     51/**
     52 * Similar to blocking IPC_FLAG_BLOCKING behavior, broker will attempt to
     53 * start the server.
     54 */
     55#define IPC_AUTOSTART (IPC_FLAG_BLOCKING | IPC_FLAG_AUTOSTART_)
    4856
    4957typedef ipc_data_t ipc_call_t;
  • uspace/lib/gui/window.c

    ra097c50 r7cce333  
    615615        win->focus = NULL;
    616616        win->surface = NULL;
    617 
    618         unsigned int ipc_flags = IPC_FLAG_AUTOSTART;
     617       
     618        unsigned int ipc_flags = IPC_AUTOSTART;
    619619        service_id_t reg_dsid;
    620620        errno_t rc = loc_service_get_id(winreg, &reg_dsid, ipc_flags);
  • uspace/srv/hid/compositor/compositor.c

    ra097c50 r7cce333  
    21832183        async_sess_t *sess;
    21842184        service_id_t dsid;
    2185         unsigned int flags = IPC_FLAG_AUTOSTART;
     2185        unsigned int flags = IPC_AUTOSTART;
    21862186
    21872187        errno_t rc = loc_service_get_id(svc, &dsid, flags);
  • uspace/srv/locsrv/locsrv.c

    ra097c50 r7cce333  
    855855        if (svc == NULL) {
    856856                /* TODO:
    857                  * consider non-blocking service start, return
    858                  * some dummy id and block only after connection
    859                  * request (actually makes more sense as those who asks
    860                  * for ID might be someone else than those connecting)
     857                 * Consider non-blocking service start, return some dummy id
     858                 * and block only after connection request (actually makes more
     859                 * sense as those who asks for ID might be someone else than
     860                 * those connecting)
     861                 *
    861862                 * Note:
    862863                 * service_list_mutex is released as we don't need to keep it
    863864                 * while waiting for start request to finish.
    864865                 */
    865                 if ((flags & IPC_FLAG_AUTOSTART) && !start_requested) {
     866                if ((flags & IPC_FLAG_AUTOSTART_) && !start_requested) {
    866867                        fibril_mutex_unlock(&services_list_mutex);
    867868                        rc = loc_service_request_start(ns_name, name);
     
    876877                }
    877878
    878                 if ((flags & IPC_FLAG_BLOCKING) || flags & IPC_FLAG_AUTOSTART) {
     879                if ((flags & IPC_FLAG_BLOCKING) || flags & IPC_FLAG_AUTOSTART_) {
    879880                        fibril_condvar_wait(&services_list_cv,
    880881                            &services_list_mutex);
  • uspace/srv/sysman/units/unit_mnt.c

    ra097c50 r7cce333  
    210210
    211211        mnt_data.flags |= u_mnt->blocking ? IPC_FLAG_BLOCKING : 0;
    212         mnt_data.flags |= u_mnt->autostart ? IPC_FLAG_AUTOSTART : 0;
     212        mnt_data.flags |= u_mnt->autostart ? IPC_AUTOSTART : 0;
    213213        mnt_data.unit = unit;
    214214
  • uspace/srv/sysman/units/unit_mnt.h

    ra097c50 r7cce333  
    3939        char *device;
    4040
    41         /** Should be underlying units (FS server, device) be autostarted */
     41        /** Should be underlying units (FS server, device) be autostarted
     42         * (implies blocking) */
    4243        bool autostart;
    4344
  • uspace/srv/vfs/vfs_ops.c

    ra097c50 r7cce333  
    138138                fs_handle = fs_name_to_handle(fsname, instance, false);
    139139                if (!fs_handle) {
    140                         if ((flags & IPC_FLAG_AUTOSTART)) {
     140                        if ((flags & IPC_FLAG_AUTOSTART_)) {
    141141                                /*
    142142                                 * Temporarily release the lock, we don't need it while
Note: See TracChangeset for help on using the changeset viewer.