Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/char_mouse/chardev.c

    r9934f7d rffa2c8ef  
    3636#include <ipc/char.h>
    3737#include <async.h>
    38 #include <async_obsolete.h>
    3938#include <vfs/vfs.h>
    4039#include <fcntl.h>
    4140#include <errno.h>
    42 #include <devmap.h>
    43 #include <devmap_obsolete.h>
     41
    4442#include <char_mouse.h>
    4543#include <mouse_port.h>
    4644
    47 static void chardev_events(ipc_callid_t iid, ipc_call_t *icall, void *arg);
     45static void chardev_events(ipc_callid_t iid, ipc_call_t *icall);
    4846
    4947static int dev_phone;
     
    5351int mouse_port_init(void)
    5452{
    55         devmap_handle_t handle;
    56         int rc = devmap_device_get_handle("char/ps2b", &handle,
    57             IPC_FLAG_BLOCKING);
    58        
    59         if (rc != EOK) {
    60                 printf("%s: Failed resolving PS/2\n", NAME);
    61                 return rc;
     53        const char *input = "/dev/char/ps2b";
     54        int input_fd;
     55
     56        printf(NAME ": open %s\n", input);
     57
     58        input_fd = open(input, O_RDONLY);
     59        if (input_fd < 0) {
     60                printf(NAME ": Failed opening %s (%d)\n", input, input_fd);
     61                return false;
    6262        }
    63        
    64         dev_phone = devmap_obsolete_device_connect(handle, IPC_FLAG_BLOCKING);
     63
     64        dev_phone = fd_phone(input_fd);
    6565        if (dev_phone < 0) {
    66                 printf("%s: Failed connecting to PS/2\n", NAME);
    67                 return ENOENT;
     66                printf(NAME ": Failed to connect to device\n");
     67                return false;
    6868        }
    69        
     69
    7070        /* NB: The callback connection is slotted for removal */
    71         if (async_obsolete_connect_to_me(dev_phone, 0, 0, 0, chardev_events,
    72             NULL) != 0) {
     71        if (async_connect_to_me(dev_phone, 0, 0, 0, chardev_events) != 0) {
    7372                printf(NAME ": Failed to create callback from device\n");
    7473                return false;
    7574        }
    76        
     75
    7776        return 0;
    7877}
     
    8887void mouse_port_write(uint8_t data)
    8988{
    90         async_obsolete_msg_1(dev_phone, CHAR_WRITE_BYTE, data);
     89        async_msg_1(dev_phone, CHAR_WRITE_BYTE, data);
    9190}
    9291
    93 static void chardev_events(ipc_callid_t iid, ipc_call_t *icall, void *arg)
     92static void chardev_events(ipc_callid_t iid, ipc_call_t *icall)
    9493{
    9594        /* Ignore parameters, the connection is already opened */
     
    10099
    101100                int retval;
    102                
    103                 if (!IPC_GET_IMETHOD(call)) {
     101
     102                switch (IPC_GET_IMETHOD(call)) {
     103                case IPC_M_PHONE_HUNGUP:
    104104                        /* TODO: Handle hangup */
    105105                        return;
    106                 }
    107 
    108                 switch (IPC_GET_IMETHOD(call)) {
    109106                case IPC_FIRST_USER_METHOD:
    110107                        mouse_handle_byte(IPC_GET_ARG1(call));
Note: See TracChangeset for help on using the changeset viewer.