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

Changeset e4d96e9 in mainline


Ignore:
Timestamp:
2013-03-10T22:35:19Z (9 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
b4df8db
Parents:
40a0e3bd
Message:

Improvements of stack and istate_get() definitions.

  • Make sure each architecture has arch/stack.h in kernel.
  • Make each architecture define MEM_STACK_SIZE
  • istate_get() uses MEM_STACK_SIZE to allow for a greater flexibility in computing the address of the bottom of the memory stack.
  • This fixes istate_get() on ia64.
Files:
4 added
8 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/include/arch/stack.h

    r40a0e3bd re4d96e9  
    3737#define KERN_arm32_STACK_H_
    3838
     39#include <config.h>
     40
     41#define MEM_STACK_SIZE  STACK_SIZE
     42
    3943#define STACK_ITEM_SIZE         4
    4044
  • kernel/arch/ia64/include/arch/stack.h

    r40a0e3bd re4d96e9  
    3636#define KERN_ia64_STACK_H_
    3737
     38#include <config.h>
     39
     40#define MEM_STACK_SIZE  (STACK_SIZE / 2)
     41
    3842#define STACK_ITEM_SIZE                 8
    3943#define STACK_ALIGNMENT                 16
  • kernel/arch/mips32/include/arch/stack.h

    r40a0e3bd re4d96e9  
    3636#define KERN_mips32_STACK_H_
    3737
     38#include <config.h>
     39
     40#define MEM_STACK_SIZE  STACK_SIZE
     41
    3842#define STACK_ITEM_SIZE  4
    3943#define STACK_ALIGNMENT  8
  • kernel/arch/mips64/include/arch/stack.h

    r40a0e3bd re4d96e9  
    3636#define KERN_mips64_STACK_H_
    3737
     38#include <config.h>
     39
     40#define MEM_STACK_SIZE  STACK_SIZE
     41
    3842#define STACK_ITEM_SIZE  8
    3943#define STACK_ALIGNMENT  8
  • kernel/arch/sparc64/include/arch/stack.h

    r40a0e3bd re4d96e9  
    3636#define KERN_sparc64_STACK_H_
    3737
     38#include <config.h>
     39
     40#define MEM_STACK_SIZE  STACK_SIZE
     41
    3842#define STACK_ITEM_SIZE                 8
    3943
  • kernel/generic/src/interrupt/interrupt.c

    r40a0e3bd re4d96e9  
    5454#include <proc/thread.h>
    5555#include <arch/cycle.h>
     56#include <arch/stack.h>
    5657#include <str.h>
    5758#include <trace.h>
     
    222223        /*
    223224         * The istate structure should be right at the bottom of the kernel
    224          * stack.
     225         * memory stack.
    225226         */
    226         return (istate_t *) ((uint8_t *)
    227             thread->kstack + STACK_SIZE - sizeof(istate_t));
     227        return (istate_t *) &thread->kstack[MEM_STACK_SIZE - sizeof(istate_t)];
    228228}
    229229
  • uspace/lib/c/arch/mips32/include/libarch/stack.h

    • Property mode changed from 120000 to 100644
    r40a0e3bd re4d96e9  
    1 ../../../../../../../kernel/arch/mips32/include/arch/stack.h
     1/*
     2 * Copyright (c) 2006 Josef Cejka
     3 * All rights reserved.
     4 *
     5 * Redistribution and use in source and binary forms, with or without
     6 * modification, are permitted provided that the following conditions
     7 * are met:
     8 *
     9 * - Redistributions of source code must retain the above copyright
     10 *   notice, this list of conditions and the following disclaimer.
     11 * - Redistributions in binary form must reproduce the above copyright
     12 *   notice, this list of conditions and the following disclaimer in the
     13 *   documentation and/or other materials provided with the distribution.
     14 * - The name of the author may not be used to endorse or promote products
     15 *   derived from this software without specific prior written permission.
     16 *
     17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 */
     28
     29/** @addtogroup libcmips32
     30 * @{
     31 */
     32/** @file
     33 */
     34
     35#ifndef LIBC_mips32_STACK_H_
     36#define LIBC_mips32_STACK_H_
     37
     38#define STACK_ITEM_SIZE  4
     39#define STACK_ALIGNMENT  8
     40#define ABI_STACK_FRAME  32
     41
     42#endif
     43
     44/** @}
     45 */
  • uspace/lib/c/arch/mips64/include/libarch/stack.h

    • Property mode changed from 120000 to 100644
    r40a0e3bd re4d96e9  
    1 ../../../../../../../kernel/arch/mips64/include/arch/stack.h
     1/*
     2 * Copyright (c) 2006 Josef Cejka
     3 * All rights reserved.
     4 *
     5 * Redistribution and use in source and binary forms, with or without
     6 * modification, are permitted provided that the following conditions
     7 * are met:
     8 *
     9 * - Redistributions of source code must retain the above copyright
     10 *   notice, this list of conditions and the following disclaimer.
     11 * - Redistributions in binary form must reproduce the above copyright
     12 *   notice, this list of conditions and the following disclaimer in the
     13 *   documentation and/or other materials provided with the distribution.
     14 * - The name of the author may not be used to endorse or promote products
     15 *   derived from this software without specific prior written permission.
     16 *
     17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 */
     28
     29/** @addtogroup libcmips64
     30 * @{
     31 */
     32/** @file
     33 */
     34
     35#ifndef LIBC_mips64_STACK_H_
     36#define LIBC_mips64_STACK_H_
     37
     38#define STACK_ITEM_SIZE  8
     39#define STACK_ALIGNMENT  8
     40#define ABI_STACK_FRAME  64
     41
     42#endif
     43
     44/** @}
     45 */
Note: See TracChangeset for help on using the changeset viewer.