Changeset aa537a5a in mainline for uspace/lib/c/arch


Ignore:
Timestamp:
2017-11-01T20:33:08Z (8 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d0cbfd3
Parents:
315130c
Message:

Add 64-bit PIO functions

Location:
uspace/lib/c/arch
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/abs32le/include/libarch/ddi.h

    r315130c raa537a5a  
    5050}
    5151
     52static inline void arch_pio_write_64(ioport64_t *port, uint64_t v)
     53{
     54        *port = v;
     55}
     56
    5257static inline uint8_t arch_pio_read_8(const ioport8_t *port)
    5358{
     
    6570}
    6671
     72static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     73{
     74        return *port;
     75}
     76
    6777#endif
  • uspace/lib/c/arch/arm32/include/libarch/ddi.h

    r315130c raa537a5a  
    5151}
    5252
     53static inline void arch_pio_write_64(ioport64_t *port, uint64_t v)
     54{
     55        *port = v;
     56}
     57
    5358static inline uint8_t arch_pio_read_8(const ioport8_t *port)
    5459{
     
    6671}
    6772
     73static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     74{
     75        return *port;
     76}
     77
    6878#endif
  • uspace/lib/c/arch/ia32/include/libarch/ddi.h

    r315130c raa537a5a  
    8686}
    8787
     88static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     89{
     90        return (uint64_t) *port;
     91}
     92
    8893static inline void arch_pio_write_8(ioport8_t *port, uint8_t val)
    8994{
     
    119124}
    120125
     126static inline void arch_pio_write_64(ioport64_t *port, uint64_t val)
     127{
     128        *port = val;
     129}
     130
    121131#endif
  • uspace/lib/c/arch/ia64/include/libarch/ddi.h

    r315130c raa537a5a  
    9494}
    9595
     96static inline void arch_pio_write_64(ioport64_t *port, uint64_t v)
     97{
     98        *port = v;
     99
     100        asm volatile ("mf\n" ::: "memory");
     101        asm volatile ("mf.a\n" ::: "memory");
     102}
     103
    96104static inline uint8_t arch_pio_read_8(const ioport8_t *port)
    97105{
     
    154162}
    155163
     164static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     165{
     166        uint64_t v;
     167
     168        asm volatile ("mf\n" ::: "memory");
     169
     170        v = *port;
     171
     172        asm volatile ("mf.a\n" ::: "memory");
     173
     174        return v;
     175}
     176
    156177#endif
    157178
  • uspace/lib/c/arch/mips32/include/libarch/ddi.h

    r315130c raa537a5a  
    5151}
    5252
     53static inline void arch_pio_write_64(ioport64_t *port, uint64_t v)
     54{
     55        *port = v;
     56}
     57
    5358static inline uint8_t arch_pio_read_8(const ioport8_t *port)
    5459{
     
    6671}
    6772
     73static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     74{
     75        return *port;
     76}
     77
    6878#endif
  • uspace/lib/c/arch/ppc32/include/libarch/ddi.h

    r315130c raa537a5a  
    5151}
    5252
     53static inline void arch_pio_write_64(ioport64_t *port, uint64_t v)
     54{
     55        *port = v;
     56}
     57
    5358static inline uint8_t arch_pio_read_8(const ioport8_t *port)
    5459{
     
    6671}
    6772
     73static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     74{
     75        return *port;
     76}
     77
    6878#endif
  • uspace/lib/c/arch/riscv64/include/libarch/ddi.h

    r315130c raa537a5a  
    5050}
    5151
     52static inline void arch_pio_write_64(ioport64_t *port, uint64_t v)
     53{
     54        *port = v;
     55}
     56
    5257static inline uint8_t arch_pio_read_8(const ioport8_t *port)
    5358{
     
    6570}
    6671
     72static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     73{
     74        return *port;
     75}
     76
    6777#endif
  • uspace/lib/c/arch/sparc64/include/libarch/ddi.h

    r315130c raa537a5a  
    6262}
    6363
     64static inline void arch_pio_write_64(ioport64_t *port, uint64_t v)
     65{
     66        *port = v;
     67        memory_barrier();
     68}
     69
     70
    6471static inline uint8_t arch_pio_read_8(const ioport8_t *port)
    6572{
     
    9299}
    93100
     101static inline uint64_t arch_pio_read_64(const ioport64_t *port)
     102{
     103        uint64_t rv;
     104
     105        rv = *port;
     106        memory_barrier();
     107
     108        return rv;
     109}
     110
    94111#endif
Note: See TracChangeset for help on using the changeset viewer.