Changes in / [153fbf9:68acf21] in mainline


Ignore:
Location:
kernel/arch/sparc64
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/sun4v/hypercall.h

    r153fbf9 r68acf21  
    7575
    7676/* return codes */
    77 #define HV_EOK                  0       /**< Successful return */
    78 #define HV_ENOCPU               1       /**< Invalid CPU id */
    79 #define HV_ENORADDR             2       /**< Invalid real address */
    80 #define HV_ENOINTR              3       /**< Invalid interrupt id */
    81 #define HV_EBADPGSZ             4       /**< Invalid pagesize encoding */
    82 #define HV_EBADTSB              5       /**< Invalid TSB description */
    83 #define HV_EINVAL               6       /**< Invalid argument */
    84 #define HV_EBADTRAP             7       /**< Invalid function number */
    85 #define HV_EBADALIGN            8       /**< Invalid address alignment */
    86 #define HV_EWOULDBLOCK          9       /**< Cannot complete operation without blocking */
    87 #define HV_ENOACCESS            10      /**< No access to specified resource */
    88 #define HV_EIO                  11      /**< I/O Error */
    89 #define HV_ECPUERROR            12      /**< CPU is in error state */
    90 #define HV_ENOTSUPPORTED        13      /**< Function not supported */
    91 #define HV_ENOMAP               14      /**< No mapping found */
    92 #define HV_ETOOMANY             15      /**< Too many items specified / limit reached */
    93 #define HV_ECHANNEL             16      /**< Invalid LDC channel */
    94 #define HV_EBUSY                17      /**< Operation failed as resource is otherwise busy */
     77#define EOK             0       /**< Successful return */
     78#define ENOCPU          1       /**< Invalid CPU id */
     79#define ENORADDR        2       /**< Invalid real address */
     80#define ENOINTR         3       /**< Invalid interrupt id */
     81#define EBADPGSZ        4       /**< Invalid pagesize encoding */
     82#define EBADTSB         5       /**< Invalid TSB description */
     83#define HV_EINVAL       6       /**< Invalid argument */
     84#define EBADTRAP        7       /**< Invalid function number */
     85#define EBADALIGN       8       /**< Invalid address alignment */
     86#define EWOULDBLOCK     9       /**< Cannot complete operation without blocking */
     87#define ENOACCESS       10      /**< No access to specified resource */
     88#define EIO             11      /**< I/O Error */
     89#define ECPUERROR       12      /**< CPU is in error state */
     90#define ENOTSUPPORTED   13      /**< Function not supported */
     91#define ENOMAP          14      /**< No mapping found */
     92#define ETOOMANY        15      /**< Too many items specified / limit reached */
     93#define ECHANNEL        16      /**< Invalid LDC channel */
     94#define HV_EBUSY        17      /**< Operation failed as resource is otherwise busy */
    9595
    9696
     
    190190__hypercall_fast_ret1(const uint64_t p1, const uint64_t p2, const uint64_t p3,
    191191    const uint64_t p4, const uint64_t p5, const uint64_t function_number,
    192     uint64_t *ret1)
     192    uint64_t * const ret1)
    193193{
    194         register uint64_t a6 asm("o5") = function_number;
    195         register uint64_t a1 asm("o0") = p1;
    196         register uint64_t a2 asm("o1") = p2;
    197         register uint64_t a3 asm("o2") = p3;
    198         register uint64_t a4 asm("o3") = p4;
    199         register uint64_t a5 asm("o4") = p5;
    200        
    201         asm volatile (
    202                 "ta %8\n"
    203                 : "=r" (a1), "=r" (a2)
    204                 : "r" (a1), "r" (a2), "r" (a3), "r" (a4), "r" (a5), "r" (a6),
    205                   "i" (FAST_TRAP)
    206                 : "memory"
    207         );
    208 
    209         if (ret1)
    210                 *ret1 = a2;
    211 
    212         return a1;
     194        uint64_t errno = __hypercall_fast(p1, p2, p3, p4, p5, function_number);
     195        if (ret1 != NULL) {
     196                asm volatile ("mov %%o1, %0\n" : "=r" (*ret1));
     197        }
     198        return errno;
    213199}
    214200
  • kernel/arch/sparc64/src/drivers/niagara.c

    r153fbf9 r68acf21  
    104104static inline void do_putchar(const char c) {
    105105        /* repeat until the buffer is non-full */
    106         while (__hypercall_fast1(CONS_PUTCHAR, c) == HV_EWOULDBLOCK)
     106        while (__hypercall_fast1(CONS_PUTCHAR, c) == EWOULDBLOCK)
    107107                ;
    108108}
     
    139139
    140140        /* read character from keyboard, send it to upper layers of HelenOS */
    141         if (__hypercall_fast_ret1(0, 0, 0, 0, 0, CONS_GETCHAR, &c) == HV_EOK) {
     141        if (__hypercall_fast_ret1(0, 0, 0, 0, 0, CONS_GETCHAR, &c) == EOK) {
    142142                if (!silent) {
    143143                        /* kconsole active, send the character to kernel */
  • kernel/arch/sparc64/src/mm/sun4v/tlb.c

    r153fbf9 r68acf21  
    406406        uint64_t errno =  __hypercall_fast3(MMU_DEMAP_ALL, 0, 0,
    407407                MMU_FLAG_DTLB | MMU_FLAG_ITLB);
    408         if (errno != HV_EOK) {
     408        if (errno != EOK) {
    409409                panic("Error code = %d.\n", errno);
    410410        }
  • kernel/arch/sparc64/src/sun4v/md.c

    r153fbf9 r68acf21  
    104104static md_element_t *get_element(element_idx_t idx)
    105105{
    106         return (md_element_t *) (mach_desc +
    107             sizeof(md_header_t) + idx * sizeof(md_element_t));
     106        return (md_element_t *) (
     107                mach_desc + sizeof(md_header_t) + idx * sizeof(md_element_t));
    108108}
    109109
     
    114114        uintptr_t name_offset = get_element(idx)->name_offset;
    115115        return (char *) mach_desc + sizeof(md_header_t) +
    116             md_header->node_blk_sz + name_offset;
     116                md_header->node_blk_sz + name_offset;
    117117}
    118118
     
    137137                md_element_t *element = get_element(idx);
    138138                if (element->tag == PROP_VAL &&
    139                     str_cmp(key, get_element_name(idx)) == 0) {
     139                                str_cmp(key, get_element_name(idx)) == 0) {
    140140                        *result = element->d.val;
    141141                        return true;
     
    161161                md_element_t *element = get_element(idx);
    162162                if (element->tag == PROP_DATA &&
    163                     str_cmp(key, get_element_name(idx)) == 0) {
     163                                str_cmp(key, get_element_name(idx)) == 0) {
    164164                        *result = (char *) mach_desc + sizeof(md_header_t) +
    165                             md_header->node_blk_sz + md_header->name_blk_sz +
    166                             element->d.y.data_offset;
     165                                md_header->node_blk_sz + md_header->name_blk_sz +
     166                                element->d.y.data_offset;
    167167                        return true;
    168168                }
     
    186186                md_element_t *element = get_element(*it);
    187187                if (element->tag == PROP_ARC &&
    188                     str_cmp("fwd", get_element_name(*it)) == 0) {
     188                                str_cmp("fwd", get_element_name(*it)) == 0) {
    189189                        return true;
    190190                }
     
    289289
    290290                if (element->tag == NODE &&
    291                     str_cmp(name, get_element_name(*node)) == 0) {
     291                                str_cmp(name, get_element_name(*node)) == 0) {
    292292                        return true;
    293293                }
     
    306306{
    307307        uint64_t retval = __hypercall_fast2(MACH_DESC, KA2PA(mach_desc),
    308             MD_MAX_SIZE);
     308                MD_MAX_SIZE);
    309309
    310310        retval = retval;
    311         if (retval != HV_EOK) {
     311        if (retval != EOK) {
    312312                printf("Could not retrieve machine description, error = %d.\n",
    313                     retval);
     313                        retval);
    314314        }
    315315}
  • kernel/arch/sparc64/src/trap/sun4v/interrupt.c

    r153fbf9 r68acf21  
    8686                CPU_MONDO_QUEUE_ID,
    8787                KA2PA(cpu_mondo_queues[CPU->id]),
    88                 CPU_MONDO_NENTRIES) != HV_EOK)
     88                CPU_MONDO_NENTRIES) != EOK)
    8989                        panic("Initializing mondo queue failed on CPU %d.\n",
    9090                            CPU->arch.id);
Note: See TracChangeset for help on using the changeset viewer.