Ignore:
File:
1 edited

Legend:

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

    r64d2b10 r0b5a4131  
    2828 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2929 */
    30 
    31 /** @addtogroup libc
     30 
     31 /** @addtogroup libc
    3232 * @{
    3333 */
     
    3737#include <str.h>
    3838#include <stdio.h>
     39#include <ipc/ipc.h>
    3940#include <ipc/services.h>
    4041#include <ipc/devman.h>
    4142#include <devman.h>
    4243#include <async.h>
    43 #include <fibril_synch.h>
    4444#include <errno.h>
    4545#include <malloc.h>
     
    5050static int devman_phone_client = -1;
    5151
    52 static FIBRIL_MUTEX_INITIALIZE(devman_phone_mutex);
    53 
    5452int devman_get_phone(devman_interface_t iface, unsigned int flags)
    5553{
    5654        switch (iface) {
    5755        case DEVMAN_DRIVER:
    58                 fibril_mutex_lock(&devman_phone_mutex);
    59                 if (devman_phone_driver >= 0) {
    60                         fibril_mutex_unlock(&devman_phone_mutex);
     56                if (devman_phone_driver >= 0)
    6157                        return devman_phone_driver;
    62                 }
    6358               
    6459                if (flags & IPC_FLAG_BLOCKING)
    65                         devman_phone_driver = async_connect_me_to_blocking(
    66                             PHONE_NS, SERVICE_DEVMAN, DEVMAN_DRIVER, 0);
     60                        devman_phone_driver = ipc_connect_me_to_blocking(PHONE_NS,
     61                            SERVICE_DEVMAN, DEVMAN_DRIVER, 0);
    6762                else
    68                         devman_phone_driver = async_connect_me_to(PHONE_NS,
     63                        devman_phone_driver = ipc_connect_me_to(PHONE_NS,
    6964                            SERVICE_DEVMAN, DEVMAN_DRIVER, 0);
    7065               
    71                 fibril_mutex_unlock(&devman_phone_mutex);
    7266                return devman_phone_driver;
    7367        case DEVMAN_CLIENT:
    74                 fibril_mutex_lock(&devman_phone_mutex);
    75                 if (devman_phone_client >= 0) {
    76                         fibril_mutex_unlock(&devman_phone_mutex);
     68                if (devman_phone_client >= 0)
    7769                        return devman_phone_client;
    78                 }
    79                
    80                 if (flags & IPC_FLAG_BLOCKING) {
    81                         devman_phone_client = async_connect_me_to_blocking(
    82                             PHONE_NS, SERVICE_DEVMAN, DEVMAN_CLIENT, 0);
    83                 } else {
    84                         devman_phone_client = async_connect_me_to(PHONE_NS,
     70               
     71                if (flags & IPC_FLAG_BLOCKING)
     72                        devman_phone_client = ipc_connect_me_to_blocking(PHONE_NS,
    8573                            SERVICE_DEVMAN, DEVMAN_CLIENT, 0);
    86                 }
    87                
    88                 fibril_mutex_unlock(&devman_phone_mutex);
     74                else
     75                        devman_phone_client = ipc_connect_me_to(PHONE_NS,
     76                            SERVICE_DEVMAN, DEVMAN_CLIENT, 0);
     77               
    8978                return devman_phone_client;
    9079        default:
     
    10695        aid_t req = async_send_2(phone, DEVMAN_DRIVER_REGISTER, 0, 0, &answer);
    10796       
    108         sysarg_t retval = async_data_write_start(phone, name, str_size(name));
     97        ipcarg_t retval = async_data_write_start(phone, name, str_size(name));
    10998        if (retval != EOK) {
    11099                async_wait_for(req, NULL);
     
    115104        async_set_client_connection(conn);
    116105       
    117         async_connect_to_me(phone, 0, 0, 0, NULL);
     106        ipcarg_t callback_phonehash;
     107        ipc_connect_to_me(phone, 0, 0, 0, &callback_phonehash);
    118108        async_wait_for(req, &retval);
    119109       
     
    126116{
    127117        ipc_call_t answer;
    128         aid_t req = async_send_1(phone, DEVMAN_ADD_MATCH_ID, match_id->score, &answer);
     118        async_send_1(phone, DEVMAN_ADD_MATCH_ID, match_id->score, &answer);
    129119        int retval = async_data_write_start(phone, match_id->id, str_size(match_id->id));
    130         async_wait_for(req, NULL);
    131         return retval;
     120        return retval; 
    132121}
    133122
     
    165154        aid_t req = async_send_2(phone, DEVMAN_ADD_CHILD_DEVICE, parent_handle, match_count, &answer);
    166155
    167         sysarg_t retval = async_data_write_start(phone, name, str_size(name));
     156        ipcarg_t retval = async_data_write_start(phone, name, str_size(name));
    168157        if (retval != EOK) {
    169158                async_wait_for(req, NULL);
     
    202191        aid_t req = async_send_1(phone, DEVMAN_ADD_DEVICE_TO_CLASS, devman_handle, &answer);
    203192       
    204         sysarg_t retval = async_data_write_start(phone, class_name, str_size(class_name));
     193        ipcarg_t retval = async_data_write_start(phone, class_name, str_size(class_name));
    205194        if (retval != EOK) {
    206195                async_wait_for(req, NULL);
     
    220209        case DEVMAN_DRIVER:
    221210                if (devman_phone_driver >= 0) {
    222                         async_hangup(devman_phone_driver);
     211                        ipc_hangup(devman_phone_driver);
    223212                        devman_phone_driver = -1;
    224213                }
     
    226215        case DEVMAN_CLIENT:
    227216                if (devman_phone_client >= 0) {
    228                         async_hangup(devman_phone_client);
     217                        ipc_hangup(devman_phone_client);
    229218                        devman_phone_client = -1;
    230219                }
     
    240229       
    241230        if (flags & IPC_FLAG_BLOCKING) {
    242                 phone = async_connect_me_to_blocking(PHONE_NS, SERVICE_DEVMAN,
     231                phone = ipc_connect_me_to_blocking(PHONE_NS, SERVICE_DEVMAN,
    243232                    DEVMAN_CONNECT_TO_DEVICE, handle);
    244233        } else {
    245                 phone = async_connect_me_to(PHONE_NS, SERVICE_DEVMAN,
     234                phone = ipc_connect_me_to(PHONE_NS, SERVICE_DEVMAN,
    246235                    DEVMAN_CONNECT_TO_DEVICE, handle);
    247236        }
     
    255244       
    256245        if (flags & IPC_FLAG_BLOCKING) {
    257                 phone = async_connect_me_to_blocking(PHONE_NS, SERVICE_DEVMAN,
     246                phone = ipc_connect_me_to_blocking(PHONE_NS, SERVICE_DEVMAN,
    258247                    DEVMAN_CONNECT_TO_PARENTS_DEVICE, handle);
    259248        } else {
    260                 phone = async_connect_me_to(PHONE_NS, SERVICE_DEVMAN,
     249                phone = ipc_connect_me_to(PHONE_NS, SERVICE_DEVMAN,
    261250                    DEVMAN_CONNECT_TO_PARENTS_DEVICE, handle);
    262251        }
     
    278267            &answer);
    279268       
    280         sysarg_t retval = async_data_write_start(phone, pathname, str_size(pathname));
     269        ipcarg_t retval = async_data_write_start(phone, pathname, str_size(pathname));
    281270        if (retval != EOK) {
    282271                async_wait_for(req, NULL);
Note: See TracChangeset for help on using the changeset viewer.