Changeset 32fffef0 in mainline for kernel/arch


Ignore:
Timestamp:
2006-08-29T11:06:57Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0fa6044
Parents:
c8ea4a8b
Message:

Define architecture-specific thread sub-constructors and sub-destructors on all architectures.
Define the THREAD_FLAG_USPACE which means that the thread runs in user space.
The forementioned changes allow for allocating of user window buffer on sparc64
threads that execute in userspace.

A lot of formatting and indentation fixes.

Location:
kernel/arch
Files:
1 added
17 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/include/proc/task.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup amd64proc
     29/** @addtogroup amd64proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __amd64_TASK_H__
    36 #define __amd64_TASK_H__
     35#ifndef KERN_amd64_TASK_H_
     36#define KERN_amd64_TASK_H_
    3737
    3838#include <typedefs.h>
     
    4747#endif
    4848
    49  /** @}
     49/** @}
    5050 */
    51 
  • kernel/arch/amd64/include/proc/thread.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup amd64proc
     29/** @addtogroup amd64proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __amd64_THREAD_H__
    36 #define __amd64_THREAD_H__
     35#ifndef KERN_amd64_THREAD_H_
     36#define KERN_amd64_THREAD_H_
    3737
    3838#include <arch/types.h>
     
    4242} thread_arch_t;
    4343
     44#define thr_constructor_arch(t)
     45#define thr_destructor_arch(t)
     46
    4447#endif
    4548
    46  /** @}
     49/** @}
    4750 */
    48 
  • kernel/arch/amd64/src/proc/thread.c

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup amd64proc
     29/** @addtogroup amd64proc
    3030 * @{
    3131 */
     
    4444}
    4545
    46  /** @}
     46/** @}
    4747 */
    48 
  • kernel/arch/ia32/include/proc/task.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ia32proc
     29/** @addtogroup ia32proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __ia32_TASK_H__
    36 #define __ia32_TASK_H__
     35#ifndef KERN_ia32_TASK_H_
     36#define KERN_ia32_TASK_H_
    3737
    3838#include <typedefs.h>
     
    4747#endif
    4848
    49  /** @}
     49/** @}
    5050 */
    51 
  • kernel/arch/ia32/include/proc/thread.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ia32proc
     29/** @addtogroup ia32proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __ia32_THREAD_H__
    36 #define __ia32_THREAD_H__
     35#ifndef KERN_ia32_THREAD_H_
     36#define KERN_ia32_THREAD_H_
    3737
    3838#include <arch/types.h>
     
    4242} thread_arch_t;
    4343
     44#define thr_constructor_arch(t)
     45#define thr_destructor_arch(t)
     46
    4447#endif
    4548
    46  /** @}
     49/** @}
    4750 */
    48 
  • kernel/arch/ia32/src/proc/scheduler.c

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ia32proc
     29/** @addtogroup ia32proc
    3030 * @{
    3131 */
     
    7878}
    7979
    80  /** @}
     80/** @}
    8181 */
    82 
  • kernel/arch/ia32/src/proc/task.c

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ia32proc
     29/** @addtogroup ia32proc
    3030 * @{
    3131 */
     
    5858}
    5959
    60  /** @}
     60/** @}
    6161 */
    62 
  • kernel/arch/ia32/src/proc/thread.c

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ia32proc
     29/** @addtogroup ia32proc
    3030 * @{
    3131 */
     
    4444}
    4545
    46  /** @}
     46/** @}
    4747 */
    4848
  • kernel/arch/ia64/include/proc/thread.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ia64proc
     29/** @addtogroup ia64proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __ia64_THREAD_H__
    36 #define __ia64_THREAD_H__
     35#ifndef KERN_ia64_THREAD_H_
     36#define KERN_ia64_THREAD_H_
    3737
    3838typedef struct {
    3939} thread_arch_t;
    4040
     41#define thr_constructor_arch(t)
     42#define thr_destructor_arch(t)
    4143#define thread_create_arch(t)
    4244
    4345#endif
    4446
    45  /** @}
     47/** @}
    4648 */
    47 
  • kernel/arch/mips32/include/proc/thread.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup mips32proc
     29/** @addtogroup mips32proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __mips32_THREAD_H__
    36 #define __mips32_THREAD_H__
     35#ifndef KERN_mips32_THREAD_H_
     36#define KERN_mips32_THREAD_H_
    3737
    3838typedef struct {
    3939} thread_arch_t;
    4040
     41#define thr_constructor_arch(t)
     42#define thr_destructor_arch(t)
    4143#define thread_create_arch(t)
    4244
    4345#endif
    4446
    45  /** @}
     47/** @}
    4648 */
    4749
  • kernel/arch/ppc32/include/proc/thread.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ppc32proc
     29/** @addtogroup ppc32proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __ppc32_THREAD_H__
    36 #define __ppc32_THREAD_H__
     35#ifndef KERN_ppc32_THREAD_H_
     36#define KERN_ppc32_THREAD_H_
    3737
    3838typedef struct {
    3939} thread_arch_t;
    4040
     41#define thr_constructor_arch(t)
     42#define thr_destructor_arch(t)
    4143#define thread_create_arch(t)
    4244
    4345#endif
    4446
    45  /** @}
     47/** @}
    4648 */
    47 
  • kernel/arch/ppc64/include/proc/thread.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup ppc64proc
     29/** @addtogroup ppc64proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __ppc64_THREAD_H__
    36 #define __ppc64_THREAD_H__
     35#ifndef KERN_ppc64_THREAD_H_
     36#define KERN_ppc64_THREAD_H_
    3737
    3838typedef struct {
    3939} thread_arch_t;
    4040
     41#define thr_constructor_arch(t)
     42#define thr_destructor_arch(t)
    4143#define thread_create_arch(t)
    4244
    4345#endif
    4446
    45  /** @}
     47/** @}
    4648 */
    4749
  • kernel/arch/sparc64/Makefile.inc

    rc8ea4a8b r32fffef0  
    9595        arch/$(ARCH)/src/start.S \
    9696        arch/$(ARCH)/src/proc/scheduler.c \
     97        arch/$(ARCH)/src/proc/thread.c \
    9798        arch/$(ARCH)/src/trap/trap_table.S \
    9899        arch/$(ARCH)/src/trap/trap.c \
  • kernel/arch/sparc64/include/arch.h

    rc8ea4a8b r32fffef0  
    3030 * @{
    3131 */
    32 /** @file
     32/**
     33 * @file
     34 * @brief       Various sparc64-specific macros.
    3335 */
    3436
     
    3941#define ASI_AIUS        0x11    /** Access to secondary context with user privileges. */
    4042
     43#define NWINDOW         8       /** Number of register window sets. */
     44
    4145#endif
    4246
    4347/** @}
    4448 */
    45 
  • kernel/arch/sparc64/include/barrier.h

    rc8ea4a8b r32fffef0  
    5252         * The FLUSH instruction takes address parameter.
    5353         * As such, it may trap if the address is not found in DTLB.
    54          * However, JPS1 implementations are free to ignore the trap.
     54         *
     55         * The entire kernel text is mapped by a locked ITLB and
     56         * DTLB entries. Therefore, when this function is called,
     57         * the %o7 register will always be in the range mapped by
     58         * DTLB.
    5559         */
    5660         
    57         __asm__ volatile ("flush %0\n" :: "r" (0x400000));
     61        __asm__ volatile ("flush %o7\n");
    5862}
    5963
  • kernel/arch/sparc64/include/proc/thread.h

    rc8ea4a8b r32fffef0  
    2727 */
    2828
    29  /** @addtogroup sparc64proc
     29/** @addtogroup sparc64proc
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef __sparc64_THREAD_H__
    36 #define __sparc64_THREAD_H__
     35#ifndef KERN_sparc64_THREAD_H_
     36#define KERN_sparc64_THREAD_H_
     37
     38#include <arch/types.h>
     39#include <arch/arch.h>
    3740
    3841typedef struct {
     42        /** Buffer for register windows with userspace content. */
     43        uint8_t *uspace_window_buffer;
    3944} thread_arch_t;
    40 
    41 #define thread_create_arch(t)
    4245
    4346#endif
    4447
    45  /** @}
     48/** @}
    4649 */
    47 
  • kernel/arch/sparc64/include/trap/regwin.h

    rc8ea4a8b r32fffef0  
    5151#define FILL_HANDLER_SIZE               REGWIN_HANDLER_SIZE
    5252
    53 #define NWINDOW         8
    54 
    5553/* Window Save Area offsets. */
    5654#define L0_OFFSET       0
     
    250248/** @}
    251249 */
    252 
Note: See TracChangeset for help on using the changeset viewer.