Changeset 7d60cf5 in mainline for kernel/arch/ia64/include/asm.h


Ignore:
Timestamp:
2009-02-19T21:58:37Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5cb223f
Parents:
4b44099d
Message:

Introduce ioport8_t, ioport16_t and ioport32_t. These types are to be used with
pio_read_n() and pio_write_n() functions. This breaks everything.

File:
1 edited

Legend:

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

    r4b44099d r7d60cf5  
    4242#define IA64_IOSPACE_ADDRESS 0xE001000000000000ULL
    4343
    44 static inline void pio_write_8(ioport_t port, uint8_t v)
    45 {
     44static inline void pio_write_8(ioport8_t *port, uint8_t v)
     45{
     46        uintptr_t prt = (uintptr_t) port;
     47
    4648        *((uint8_t *)(IA64_IOSPACE_ADDRESS +
    47             ((port & 0xfff) | ((port >> 2) << 12)))) = v;
    48 
    49         asm volatile ("mf\n" ::: "memory");
    50 }
    51 
    52 static inline void pio_write_16(ioport_t port, uint16_t v)
    53 {
     49            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
     50
     51        asm volatile ("mf\n" ::: "memory");
     52}
     53
     54static inline void pio_write_16(ioport16_t *port, uint16_t v)
     55{
     56        uintptr_t prt = (uintptr_t) port;
     57
    5458        *((uint16_t *)(IA64_IOSPACE_ADDRESS +
    55             ((port & 0xfff) | ((port >> 2) << 12)))) = v;
    56 
    57         asm volatile ("mf\n" ::: "memory");
    58 }
    59 
    60 static inline void pio_write_32(ioport_t port, uint32_t v)
    61 {
     59            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
     60
     61        asm volatile ("mf\n" ::: "memory");
     62}
     63
     64static inline void pio_write_32(ioport32_t *port, uint32_t v)
     65{
     66        uintptr_t prt = (uintptr_t) port;
     67
    6268        *((uint32_t *)(IA64_IOSPACE_ADDRESS +
    63             ((port & 0xfff) | ((port >> 2) << 12)))) = v;
    64 
    65         asm volatile ("mf\n" ::: "memory");
    66 }
    67 
    68 static inline uint8_t pio_read_8(ioport_t port)
    69 {
     69            ((prt & 0xfff) | ((prt >> 2) << 12)))) = v;
     70
     71        asm volatile ("mf\n" ::: "memory");
     72}
     73
     74static inline uint8_t pio_read_8(ioport8_t *port)
     75{
     76        uintptr_t prt = (uintptr_t) port;
     77
    7078        asm volatile ("mf\n" ::: "memory");
    7179
    7280        return *((uint8_t *)(IA64_IOSPACE_ADDRESS +
    73             ((port & 0xfff) | ((port >> 2) << 12))));
    74 }
    75 
    76 static inline uint16_t pio_read_16(ioport_t port)
    77 {
     81            ((prt & 0xfff) | ((prt >> 2) << 12))));
     82}
     83
     84static inline uint16_t pio_read_16(ioport16_t *port)
     85{
     86        uintptr_t prt = (uintptr_t) port;
     87
    7888        asm volatile ("mf\n" ::: "memory");
    7989
    8090        return *((uint16_t *)(IA64_IOSPACE_ADDRESS +
    81             ((port & 0xffE) | ((port >> 2) << 12))));
    82 }
    83 
    84 static inline uint32_t pio_read_32(ioport_t port)
    85 {
     91            ((prt & 0xffE) | ((prt >> 2) << 12))));
     92}
     93
     94static inline uint32_t pio_read_32(ioport32_t *port)
     95{
     96        uintptr_t prt = (uintptr_t) port;
     97
    8698        asm volatile ("mf\n" ::: "memory");
    8799
    88100        return *((uint32_t *)(IA64_IOSPACE_ADDRESS +
    89             ((port & 0xfff) | ((port >> 2) << 12))));
     101            ((prt & 0xfff) | ((prt >> 2) << 12))));
    90102}
    91103
Note: See TracChangeset for help on using the changeset viewer.