Changeset 81685dd9 in mainline for uspace/srv/devman/client_conn.c


Ignore:
Timestamp:
2017-10-20T07:18:57Z (7 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
feab36ae
Parents:
04efacc
Message:

Add devctl unload-drv subcommand to manually unload a driver that is not in use.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/devman/client_conn.c

    r04efacc r81685dd9  
    726726}
    727727
     728/** Unload a driver by user request. */
     729static void devman_driver_unload(ipc_callid_t iid, ipc_call_t *icall)
     730{
     731        driver_t *drv;
     732        int rc;
     733       
     734        drv = driver_find(&drivers_list, IPC_GET_ARG1(*icall));
     735        if (drv == NULL) {
     736                async_answer_0(iid, ENOENT);
     737                return;
     738        }
     739       
     740        fibril_mutex_lock(&drv->driver_mutex);
     741        rc = stop_driver(drv);
     742        fibril_mutex_unlock(&drv->driver_mutex);
     743
     744        async_answer_0(iid, rc);
     745}
     746
    728747/** Function for handling connections from a client to the device manager. */
    729748void devman_connection_client(ipc_callid_t iid, ipc_call_t *icall, void *arg)
     
    794813                        devman_driver_load(callid, &call);
    795814                        break;
     815                case DEVMAN_DRIVER_UNLOAD:
     816                        devman_driver_unload(callid, &call);
     817                        break;
    796818                default:
    797819                        async_answer_0(callid, ENOENT);
Note: See TracChangeset for help on using the changeset viewer.