Changeset b61d47d in mainline for uspace/srv


Ignore:
Timestamp:
2007-12-02T20:00:14Z (18 years ago)
Author:
Josef Cejka <malyzelenyhnus@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
90c35436
Parents:
8df2eab
Message:

Function ipc_connect_me_to sends 3 user defined arguments now.
One argument added also to ipc_forward_fast.
Fixed devmap and improved its test.

Location:
uspace/srv
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/console/console.c

    r8df2eab rb61d47d  
    483483        /* Connect to keyboard driver */
    484484
    485         kbd_phone = ipc_connect_me_to(PHONE_NS, SERVICE_KEYBOARD, 0);
     485        kbd_phone = ipc_connect_me_to(PHONE_NS, SERVICE_KEYBOARD, 0, 0);
    486486        while (kbd_phone < 0) {
    487487                usleep(10000);
    488                 kbd_phone = ipc_connect_me_to(PHONE_NS, SERVICE_KEYBOARD, 0);
     488                kbd_phone = ipc_connect_me_to(PHONE_NS, SERVICE_KEYBOARD, 0, 0);
    489489        }
    490490       
     
    495495        /* Connect to framebuffer driver */
    496496       
    497         fb_info.phone = ipc_connect_me_to(PHONE_NS, SERVICE_VIDEO, 0);
     497        fb_info.phone = ipc_connect_me_to(PHONE_NS, SERVICE_VIDEO, 0, 0);
    498498        while (fb_info.phone < 0) {
    499499                usleep(10000);
    500                 fb_info.phone = ipc_connect_me_to(PHONE_NS, SERVICE_VIDEO, 0);
     500                fb_info.phone = ipc_connect_me_to(PHONE_NS, SERVICE_VIDEO, 0, 0);
    501501        }
    502502       
  • uspace/srv/devmap/devmap.c

    r8df2eab rb61d47d  
    449449 * Find device driver owning requested device and forward
    450450 * the message to it.
    451  *
    452  *
    453451 */
    454452static void devmap_forward(ipc_callid_t callid, ipc_call_t *call)
     
    460458         * Get handle from request
    461459         */
    462         handle = IPC_GET_ARG1(*call);
     460        handle = IPC_GET_ARG2(*call);
    463461        dev = devmap_device_find_handle(handle);
    464462
     
    470468        }
    471469
    472         /* FIXME: is this correct method how to pass argument on forwarding ?*/
    473470        ipc_forward_fast(callid, dev->driver->phone, (ipcarg_t)(dev->handle),
    474             0, IPC_FF_NONE);
     471            IPC_GET_ARG3(*call), 0, IPC_FF_NONE);
    475472        return;
    476473}
     
    670667                        continue; /* Exit thread */
    671668
    672                 case DEVMAP_DEVICE_CONNECT_ME_TO:
    673                         /* Connect client to selected device */
    674                         printf("DEVMAP: connect to device %d.\n",
    675                             IPC_GET_ARG1(call));
    676                         devmap_forward(callid, &call);
    677                         break;
    678 
    679669                case DEVMAP_DEVICE_GET_HANDLE:
    680670                        devmap_get_handle(callid, &call);
     
    710700                devmap_connection_client(iid, icall);
    711701                break;
     702        case DEVMAP_CONNECT_TO_DEVICE:
     703                        /* Connect client to selected device */
     704                printf("DEVMAP: connect to device %d.\n",
     705                    IPC_GET_ARG2(*icall));
     706                devmap_forward(iid, icall);
     707                break;
    712708        default:
    713709                ipc_answer_0(iid, ENOENT); /* No such interface */
  • uspace/srv/devmap/devmap.h

    r8df2eab rb61d47d  
    4242        DEVMAP_DRIVER_REGISTER = IPC_FIRST_USER_METHOD,
    4343        DEVMAP_DRIVER_UNREGISTER,
    44         DEVMAP_DEVICE_CONNECT_ME_TO,
    4544        DEVMAP_DEVICE_REGISTER,
    4645        DEVMAP_DEVICE_UNREGISTER,
     
    8382} devmap_device_t;
    8483
    85 /** Interface provided by DevMap.
    86  *
     84/** Interface provided by devmap.
     85 * Every process that connects to devmap must ask one of following
     86 * interfaces otherwise connection will be refused.
    8787 */
    8888typedef enum {
    89         DEVMAP_DRIVER = 1,
    90         DEVMAP_CLIENT
     89                /** Connect as device driver */
     90        DEVMAP_DRIVER = 1,     
     91                /** Connect as client */
     92        DEVMAP_CLIENT,
     93                /** Create new connection to instance of device that
     94                 * is specified by second argument of call. */
     95        DEVMAP_CONNECT_TO_DEVICE
    9196} devmap_interface_t;
    9297
  • uspace/srv/fs/fat/fat.c

    r8df2eab rb61d47d  
    127127        printf("FAT: HelenOS FAT file system server.\n");
    128128
    129         vfs_phone = ipc_connect_me_to(PHONE_NS, SERVICE_VFS, 0);
     129        vfs_phone = ipc_connect_me_to(PHONE_NS, SERVICE_VFS, 0, 0);
    130130        while (vfs_phone < EOK) {
    131131                usleep(10000);
    132                 vfs_phone = ipc_connect_me_to(PHONE_NS, SERVICE_VFS, 0);
     132                vfs_phone = ipc_connect_me_to(PHONE_NS, SERVICE_VFS, 0, 0);
    133133        }
    134134       
  • uspace/srv/ns/ns.c

    r8df2eab rb61d47d  
    213213        }
    214214        hs = hash_table_get_instance(hlp, hashed_service_t, link);
    215         return ipc_forward_fast(callid, hs->phone, IPC_GET_ARG2(*call), 0,
    216             IPC_FF_NONE);
     215        return ipc_forward_fast(callid, hs->phone, IPC_GET_ARG2(*call),
     216                IPC_GET_ARG3(*call), 0, IPC_FF_NONE);
    217217}
    218218
  • uspace/srv/vfs/vfs_read.c

    r8df2eab rb61d47d  
    9797         */
    9898        ipc_forward_fast(callid, fs_phone, IPC_GET_METHOD(call),
    99             IPC_GET_ARG1(call), IPC_FF_ROUTE_FROM_ME);
     99            IPC_GET_ARG1(call), 0, IPC_FF_ROUTE_FROM_ME);
    100100
    101101        vfs_release_phone(fs_phone);
Note: See TracChangeset for help on using the changeset viewer.