Changeset 8fb1bf82 in mainline for kernel/arch/abs32le/include


Ignore:
Timestamp:
2010-11-25T13:42:50Z (15 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8df8415
Parents:
a93d79a (diff), eb667613 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes.

Location:
kernel/arch/abs32le/include
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/abs32le/include/interrupt.h

    ra93d79a r8fb1bf82  
    3737
    3838#include <typedefs.h>
    39 #include <verify.h>
    40 #include <trace.h>
     39#include <arch/istate.h>
    4140
    4241#define IVT_ITEMS  0
     
    4544#define VECTOR_TLB_SHOOTDOWN_IPI  0
    4645
    47 /*
    48  * On real hardware this stores the registers which
    49  * need to be preserved during interupts.
    50  */
    51 typedef struct istate {
    52         uintptr_t ip;
    53         uintptr_t fp;
    54         uint32_t stack[];
    55 } istate_t;
    56 
    57 NO_TRACE static inline int istate_from_uspace(istate_t *istate)
    58     REQUIRES_EXTENT_MUTABLE(istate)
    59 {
    60         /* On real hardware this checks whether the interrupted
    61            context originated from user space. */
    62        
    63         return !(istate->ip & 0x80000000);
    64 }
    65 
    66 NO_TRACE static inline void istate_set_retaddr(istate_t *istate,
    67     uintptr_t retaddr)
    68     WRITES(&istate->ip)
    69 {
    70         /* On real hardware this sets the instruction pointer. */
    71        
    72         istate->ip = retaddr;
    73 }
    74 
    75 NO_TRACE static inline unative_t istate_get_pc(istate_t *istate)
    76     REQUIRES_EXTENT_MUTABLE(istate)
    77 {
    78         /* On real hardware this returns the instruction pointer. */
    79        
    80         return istate->ip;
    81 }
    82 
    83 NO_TRACE static inline unative_t istate_get_fp(istate_t *istate)
    84     REQUIRES_EXTENT_MUTABLE(istate)
    85 {
    86         /* On real hardware this returns the frame pointer. */
    87        
    88         return istate->fp;
    89 }
    90 
    9146#endif
    9247
  • kernel/arch/abs32le/include/mm/as.h

    ra93d79a r8fb1bf82  
    3838#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  0
    3939
    40 #define KERNEL_ADDRESS_SPACE_START_ARCH  ((unsigned long) 0x80000000)
    41 #define KERNEL_ADDRESS_SPACE_END_ARCH    ((unsigned long) 0xffffffff)
    42 #define USER_ADDRESS_SPACE_START_ARCH    ((unsigned long) 0x00000000)
    43 #define USER_ADDRESS_SPACE_END_ARCH      ((unsigned long) 0x7fffffff)
     40#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT32_C(0x80000000)
     41#define KERNEL_ADDRESS_SPACE_END_ARCH    UINT32_C(0xffffffff)
     42#define USER_ADDRESS_SPACE_START_ARCH    UINT32_C(0x00000000)
     43#define USER_ADDRESS_SPACE_END_ARCH      UINT32_C(0x7fffffff)
    4444
    4545#define USTACK_ADDRESS_ARCH  (USER_ADDRESS_SPACE_END_ARCH - (PAGE_SIZE - 1))
  • kernel/arch/abs32le/include/mm/page.h

    ra93d79a r8fb1bf82  
    4444#ifdef KERNEL
    4545
    46 #define KA2PA(x)  (((uintptr_t) (x)) - 0x80000000)
    47 #define PA2KA(x)  (((uintptr_t) (x)) + 0x80000000)
     46#define KA2PA(x)  (((uintptr_t) (x)) - UINT32_C(0x80000000))
     47#define PA2KA(x)  (((uintptr_t) (x)) + UINT32_C(0x80000000))
    4848
    4949/*
     
    6565
    6666/* Macros calculating indices for each level. */
    67 #define PTL0_INDEX_ARCH(vaddr)  (((vaddr) >> 22) & 0x3ff)
     67#define PTL0_INDEX_ARCH(vaddr)  (((vaddr) >> 22) & 0x3ffU)
    6868#define PTL1_INDEX_ARCH(vaddr)  0
    6969#define PTL2_INDEX_ARCH(vaddr)  0
    70 #define PTL3_INDEX_ARCH(vaddr)  (((vaddr) >> 12) & 0x3ff)
     70#define PTL3_INDEX_ARCH(vaddr)  (((vaddr) >> 12) & 0x3ffU)
    7171
    7272/* Get PTE address accessors for each level. */
  • kernel/arch/abs32le/include/types.h

    ra93d79a r8fb1bf82  
    5353} fncptr_t;
    5454
    55 #define PRIp  "x"  /**< Format for uintptr_t. */
    56 #define PRIs  "u"  /**< Format for size_t. */
    57 
    58 #define PRId8   "d"    /**< Format for int8_t. */
    59 #define PRId16  "d"    /**< Format for int16_t. */
    60 #define PRId32  "d"    /**< Format for int32_t. */
    61 #define PRId64  "lld"  /**< Format for int64_t. */
    62 #define PRIdn   "d"    /**< Format for native_t. */
    63 
    64 #define PRIu8   "u"    /**< Format for uint8_t. */
    65 #define PRIu16  "u"    /**< Format for uint16_t. */
    66 #define PRIu32  "u"    /**< Format for uint32_t. */
    67 #define PRIu64  "llu"  /**< Format for uint64_t. */
    68 #define PRIun   "u"    /**< Format for unative_t. */
    69 
    70 #define PRIx8   "x"    /**< Format for hexadecimal (u)int8_t. */
    71 #define PRIx16  "x"    /**< Format for hexadecimal (u)int16_t. */
    72 #define PRIx32  "x"    /**< Format for hexadecimal (u)uint32_t. */
    73 #define PRIx64  "llx"  /**< Format for hexadecimal (u)int64_t. */
    74 #define PRIxn   "x"    /**< Format for hexadecimal (u)native_t. */
     55#define PRIp   PRIx32  /**< Format for uintptr_t. */
     56#define PRIs   PRIu32  /**< Format for size_t. */
     57#define PRIdn  PRId32  /**< Format for native_t. */
     58#define PRIun  PRIu32  /**< Format for unative_t. */
     59#define PRIxn  PRIx32  /**< Format for hexadecimal unative_t. */
    7560
    7661#endif
Note: See TracChangeset for help on using the changeset viewer.