Changeset a6d4ceb in mainline


Ignore:
Timestamp:
2006-04-13T14:27:30Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
963074b3
Parents:
1ace9ea
Message:

Move arch/thread.h to arch/proc/thread.h on all architectures.
Replace ARCH_THREAD_DATA with new thread_arch_t arch on all architectures.
Similarily, add task_arch_t arch on all architectures.
On amd64 and ia32, grow the TSS segment by 64K + 1B to support IO port
permission bitmap. For the same reason, define per task IO port permission bitmaps
on ia32 and amd64.

Files:
7 added
11 edited
7 moved

Legend:

Unmodified
Added
Removed
  • arch/amd64/include/pm.h

    r1ace9ea ra6d4ceb  
    139139        __u64 reserve3;
    140140        __u16 reserve4;
    141         __u16 iomap;
     141        __u16 iomap_base;
     142        __u8 iomap[0x10000 + 1];        /* 64K + 1 terminating byte */
    142143} __attribute__ ((packed));
    143144
  • arch/amd64/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __amd64_THREAD_H__
    3131
    32 #define ARCH_THREAD_DATA __native tls;
     32#include <arch/types.h>
     33
     34typedef struct {
     35        __native tls;
     36} thread_arch_t;
    3337
    3438#endif
  • arch/amd64/src/amd64.c

    r1ace9ea ra6d4ceb  
    174174__native sys_tls_set(__native addr)
    175175{
    176         THREAD->tls = addr;
     176        THREAD->arch.tls = addr;
    177177        write_msr(AMD_MSR_FS, addr);
    178178        return 0;
  • arch/amd64/src/proc/scheduler.c

    r1ace9ea ra6d4ceb  
    4848
    4949        /* TLS support - set FS to thread local storage */
    50         write_msr(AMD_MSR_FS, THREAD->tls);
     50        write_msr(AMD_MSR_FS, THREAD->arch.tls);
    5151
    5252#ifdef CONFIG_DEBUG_AS_WATCHPOINT
  • arch/amd64/src/proc/thread.c

    r1ace9ea ra6d4ceb  
    3535void thread_create_arch(thread_t *t)
    3636{
    37         t->tls = 0;
     37        t->arch.tls = 0;
    3838}
  • arch/ia32/include/pm.h

    r1ace9ea ra6d4ceb  
    129129        unsigned : 16;
    130130        unsigned : 16;
    131         __u16 io_map_base;
     131        __u16 iomap_base;
     132        __u8 iomap[0x10000+1];  /* 64K + 1 terminating byte */
    132133} __attribute__ ((packed));
    133134
  • arch/ia32/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __ia32_THREAD_H__
    3131
    32 #define ARCH_THREAD_DATA __native tls;
     32#include <arch/types.h>
     33
     34typedef struct {
     35        __native tls;
     36} thread_arch_t;
    3337
    3438#endif
  • arch/ia32/src/ia32.c

    r1ace9ea ra6d4ceb  
    117117__native sys_tls_set(__native addr)
    118118{
    119         THREAD->tls = addr;
     119        THREAD->arch.tls = addr;
    120120        set_tls_desc(addr);
    121121
  • arch/ia32/src/proc/scheduler.c

    r1ace9ea ra6d4ceb  
    4141
    4242        /* Set up TLS in GS register */
    43         set_tls_desc(THREAD->tls);
     43        set_tls_desc(THREAD->arch.tls);
    4444
    4545#ifdef CONFIG_DEBUG_AS_WATCHPOINT
  • arch/ia32/src/proc/thread.c

    r1ace9ea ra6d4ceb  
    3535void thread_create_arch(thread_t *t)
    3636{
    37         t->tls = 0;
     37        t->arch.tls = 0;
    3838}
  • arch/ia64/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __ia64_THREAD_H__
    3131
    32 #define ARCH_THREAD_DATA struct { } arch_thread_data;
     32typedef struct {
     33} thread_arch_t;
    3334
    3435#define thread_create_arch(t)
  • arch/mips32/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __mips32_THREAD_H__
    3131
    32 #include <arch/exception.h>
    33 
    34 #define ARCH_THREAD_DATA
     32typedef struct {
     33} thread_arch_t;
    3534
    3635#define thread_create_arch(t)
  • arch/ppc32/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __ppc32_THREAD_H__
    3131
    32 #define ARCH_THREAD_DATA
     32typedef struct {
     33} thread_arch_t;
    3334
    3435#define thread_create_arch(t)
  • arch/ppc64/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __ppc64_THREAD_H__
    3131
    32 #define ARCH_THREAD_DATA
     32typedef struct {
     33} thread_arch_t;
    3334
    3435#define thread_create_arch(t)
  • arch/sparc64/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __sparc64_THREAD_H__
    3131
    32 #define ARCH_THREAD_DATA
     32typedef struct {
     33} thread_arch_t;
    3334
    3435#define thread_create_arch(t)
  • generic/include/proc/task.h

    r1ace9ea ra6d4ceb  
    3636#include <ipc/ipc.h>
    3737#include <security/cap.h>
     38#include <arch/proc/task.h>
    3839
    3940/** Task structure. */
     
    5152        phone_t phones[IPC_MAX_PHONES];
    5253        atomic_t active_calls;  /**< Active asynchronous messages */
     54       
     55        task_arch_t arch;
    5356};
    5457
  • generic/include/proc/thread.h

    r1ace9ea ra6d4ceb  
    3030#define __THREAD_H__
    3131
    32 #include <arch/thread.h>
     32#include <arch/proc/thread.h>
    3333#include <synch/spinlock.h>
    3434#include <arch/context.h>
     
    118118        __u32 tid;                              /**< Thread ID. */
    119119       
    120         ARCH_THREAD_DATA;                       /**< Architecture-specific data. */
     120        thread_arch_t arch;                     /**< Architecture-specific data. */
    121121
    122122        __u8 *kstack;                           /**< Thread's kernel stack. */
  • generic/src/proc/thread.c

    r1ace9ea ra6d4ceb  
    4646#include <typedefs.h>
    4747#include <time/clock.h>
    48 #include <adt/list.h>
    4948#include <config.h>
    5049#include <arch/interrupt.h>
Note: See TracChangeset for help on using the changeset viewer.