Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset a1d89ad in mainline


Ignore:
Timestamp:
2009-04-13T20:34:25Z (13 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
37c312a
Parents:
3cc6a52
Message:

Prevent optimizing ia64's PIO away.
This solves the frequent hangs of HelenOS/ia64 in i8042_init().

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/include/asm.h

    r3cc6a52 ra1d89ad  
    4747        uintptr_t prt = (uintptr_t) port;
    4848
    49         *((uint8_t *)(IA64_IOSPACE_ADDRESS +
     49        *((ioport8_t *)(IA64_IOSPACE_ADDRESS +
    5050            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
    5151
     
    5757        uintptr_t prt = (uintptr_t) port;
    5858
    59         *((uint16_t *)(IA64_IOSPACE_ADDRESS +
     59        *((ioport16_t *)(IA64_IOSPACE_ADDRESS +
    6060            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
    6161
     
    6767        uintptr_t prt = (uintptr_t) port;
    6868
    69         *((uint32_t *)(IA64_IOSPACE_ADDRESS +
     69        *((ioport32_t *)(IA64_IOSPACE_ADDRESS +
    7070            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
    7171
     
    7979        asm volatile ("mf\n" ::: "memory");
    8080
    81         return *((uint8_t *)(IA64_IOSPACE_ADDRESS +
     81        return *((ioport8_t *)(IA64_IOSPACE_ADDRESS +
    8282            ((prt & 0xfff) | ((prt >> 2) << 12))));
    8383}
     
    8989        asm volatile ("mf\n" ::: "memory");
    9090
    91         return *((uint16_t *)(IA64_IOSPACE_ADDRESS +
     91        return *((ioport16_t *)(IA64_IOSPACE_ADDRESS +
    9292            ((prt & 0xfff) | ((prt >> 2) << 12))));
    9393}
     
    9999        asm volatile ("mf\n" ::: "memory");
    100100
    101         return *((uint32_t *)(IA64_IOSPACE_ADDRESS +
     101        return *((ioport32_t *)(IA64_IOSPACE_ADDRESS +
    102102            ((prt & 0xfff) | ((prt >> 2) << 12))));
    103103}
  • uspace/lib/libc/arch/ia64/include/ddi.h

    r3cc6a52 ra1d89ad  
    5454        uintptr_t prt = (uintptr_t) port;
    5555
    56         *((uint8_t *)(IA64_IOSPACE_ADDRESS +
     56        *((ioport8_t *)(IA64_IOSPACE_ADDRESS +
    5757            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
    5858
     
    6464        uintptr_t prt = (uintptr_t) port;
    6565
    66         *((uint16_t *)(IA64_IOSPACE_ADDRESS +
     66        *((ioport16_t *)(IA64_IOSPACE_ADDRESS +
    6767            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
    6868
     
    7474        uintptr_t prt = (uintptr_t) port;
    7575
    76         *((uint32_t *)(IA64_IOSPACE_ADDRESS +
     76        *((ioport32_t *)(IA64_IOSPACE_ADDRESS +
    7777            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
    7878
     
    8686        asm volatile ("mf\n" ::: "memory");
    8787
    88         return *((uint8_t *)(IA64_IOSPACE_ADDRESS +
     88        return *((ioport8_t *)(IA64_IOSPACE_ADDRESS +
    8989            ((prt & 0xfff) | ((prt >> 2) << 12))));
    9090}
     
    9696        asm volatile ("mf\n" ::: "memory");
    9797
    98         return *((uint16_t *)(IA64_IOSPACE_ADDRESS +
     98        return *((ioport16_t *)(IA64_IOSPACE_ADDRESS +
    9999            ((prt & 0xfff) | ((prt >> 2) << 12))));
    100100}
     
    106106        asm volatile ("mf\n" ::: "memory");
    107107
    108         return *((uint32_t *)(IA64_IOSPACE_ADDRESS +
     108        return *((ioport32_t *)(IA64_IOSPACE_ADDRESS +
    109109            ((prt & 0xfff) | ((prt >> 2) << 12))));
    110110}
Note: See TracChangeset for help on using the changeset viewer.