Changeset 449 for EcnlProtoTool/trunk


Ignore:
Timestamp:
Jul 22, 2020, 12:28:25 PM (4 years ago)
Author:
coas-nagasima
Message:

fdとidの扱いが間違っているのを修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/ntshell/src/stdio_stub.c

    r442 r449  
    380380}
    381381
    382 static void serial_rx_irq_handler(int fd)
    383 {
    384         struct SHELL_FILE *fp = fd_to_fp(fd);
     382static void serial_rx_irq_handler(struct SHELL_FILE *fp)
     383{
    385384        stdio_sio_t *uart = (stdio_sio_t *)((struct ntstdio_t *)fp->exinf)->exinf;
    386385        serial_t *serial = (serial_t *)&uart->serial;
     
    389388                unsigned char c = (unsigned char)serial_getc(serial);
    390389
    391                 if (fd != STDIN_FILENO) {
     390                if (fp->fd != STDIN_FILENO) {
    392391                        ER ret;
    393392                        FLGPTN flgptn = 0;
     
    399398                        if (fp->readevt_w == fp->readevt_r) fp->readevt_w++;
    400399
    401                         FD_SET(fd, (fd_set *)&flgptn);
     400                        FD_SET(fp->fd, (fd_set *)&flgptn);
    402401
    403402                        ret = set_flg(FLG_SELECT_WAIT, flgptn);
     
    475474}
    476475
    477 static void serial_tx_irq_handler(int fd)
    478 {
    479         struct SHELL_FILE *fp = fd_to_fp(fd);
     476static void serial_tx_irq_handler(struct SHELL_FILE *fp)
     477{
    480478        stdio_sio_t *uart = (stdio_sio_t *)((struct ntstdio_t *)fp->exinf)->exinf;
    481479        serial_t *serial = (serial_t *)&uart->serial;
     
    486484
    487485        FLGPTN flgptn = 0;
    488         FD_SET(fd, (fd_set *)&flgptn);
     486        FD_SET(fp->fd, (fd_set *)&flgptn);
    489487
    490488        ret = set_flg(FLG_SELECT_WAIT, flgptn);
     
    517515        switch (event) {
    518516        case RxIrq:
    519                 serial_rx_irq_handler(STDIN_FILENO);
     517                serial_rx_irq_handler(fd_to_fp(STDIN_FILENO));
    520518                break;
    521519        case TxIrq:
    522                 serial_tx_irq_handler(STDOUT_FILENO);
     520                serial_tx_irq_handler(fd_to_fp(STDOUT_FILENO));
    523521                break;
    524522        }
     
    527525void sio_serial_irq_handler(uint32_t id, SerialIrq event)
    528526{
    529         struct SHELL_FILE *fp = fd_to_fp(id);
    530         if ((fp == NULL) || (fp->type != &IO_TYPE_SIO))
     527        struct SHELL_FILE *fp = id_to_fd(&IO_TYPE_SIO, id);
     528        if (fp == NULL)
    531529                return;
    532530
    533531        switch (event) {
    534532        case RxIrq:
    535                 serial_rx_irq_handler(id);
     533                serial_rx_irq_handler(fp);
    536534                break;
    537535        case TxIrq:
    538                 serial_tx_irq_handler(id);
     536                serial_tx_irq_handler(fp);
    539537                break;
    540538        }
Note: See TracChangeset for help on using the changeset viewer.