提交 dd56fdf2 编写于 作者: J jdl@freescale.com 提交者: Paul Mackerras

[PATCH] powerpc: Merge a few more include files

Merge a few asm-ppc and asm-ppc64 header files.
Note: the merge of setup.h intentionally does not carry
forward the m68k cruft.  That means this patch continues
to break the already broken amiga on the ppc32.
Signed-off-by: NJon Loeliger <jdl@freescale.com>
Signed-off-by: NKumar Gala <kumar.gala@freescale.com>
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 64807081
#ifndef _PPC_MSGBUF_H
#define _PPC_MSGBUF_H
#ifndef _ASM_POWERPC_MSGBUF_H
#define _ASM_POWERPC_MSGBUF_H
/*
* The msqid64_ds structure for the PPC architecture.
* The msqid64_ds structure for the PowerPC architecture.
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
*/
struct msqid64_ds {
struct ipc64_perm msg_perm;
#ifndef __powerpc64__
unsigned int __unused1;
#endif
__kernel_time_t msg_stime; /* last msgsnd time */
#ifndef __powerpc64__
unsigned int __unused2;
#endif
__kernel_time_t msg_rtime; /* last msgrcv time */
#ifndef __powerpc64__
unsigned int __unused3;
#endif
__kernel_time_t msg_ctime; /* last change time */
unsigned long msg_cbytes; /* current number of bytes on queue */
unsigned long msg_qnum; /* number of messages in queue */
......@@ -22,4 +30,4 @@ struct msqid64_ds {
unsigned long __unused5;
};
#endif /* _PPC_MSGBUF_H */
#endif /* _ASM_POWERPC_MSGBUF_H */
#ifndef _ASM_PPC_PARAM_H
#define _ASM_PPC_PARAM_H
#ifndef _ASM_POWERPC_PARAM_H
#define _ASM_POWERPC_PARAM_H
#include <linux/config.h>
#ifdef __KERNEL__
#define HZ CONFIG_HZ /* internal timer frequency */
#define HZ CONFIG_HZ /* internal kernel timer frequency */
#define USER_HZ 100 /* for user interfaces in "ticks" */
#define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */
#endif /* __KERNEL__ */
......@@ -21,4 +21,4 @@
#define MAXHOSTNAMELEN 64 /* max length of hostname */
#endif
#endif /* _ASM_POWERPC_PARAM_H */
#ifndef _ASM_POWERPC_SETUP_H
#define _ASM_POWERPC_SETUP_H
#ifdef __KERNEL__
#define COMMAND_LINE_SIZE 512
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_SETUP_H */
#ifndef _ASM_POWERPC_TIMEX_H
#define _ASM_POWERPC_TIMEX_H
#ifdef __KERNEL__
/*
* include/asm-ppc/timex.h
*
* ppc architecture timex specifications
* PowerPC architecture timex specifications
*/
#ifdef __KERNEL__
#ifndef _ASMppc_TIMEX_H
#define _ASMppc_TIMEX_H
#include <linux/config.h>
#include <asm/cputable.h>
......@@ -14,14 +14,21 @@
typedef unsigned long cycles_t;
/*
* For the "cycle" counter we use the timebase lower half.
* Currently only used on SMP.
*/
static inline cycles_t get_cycles(void)
{
cycles_t ret = 0;
cycles_t ret;
#ifdef __powerpc64__
__asm__ __volatile__("mftb %0" : "=r" (ret) : );
#else
/*
* For the "cycle" counter we use the timebase lower half.
* Currently only used on SMP.
*/
ret = 0;
__asm__ __volatile__(
"98: mftb %0\n"
......@@ -33,8 +40,10 @@ static inline cycles_t get_cycles(void)
" .long 99b\n"
".previous"
: "=r" (ret) : "i" (CPU_FTR_601));
#endif
return ret;
}
#endif
#endif /* __KERNEL__ */
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_TIMEX_H */
#ifndef _ASM_PPC64_TOPOLOGY_H
#define _ASM_PPC64_TOPOLOGY_H
#ifndef _ASM_POWERPC_TOPOLOGY_H
#define _ASM_POWERPC_TOPOLOGY_H
#include <linux/config.h>
#include <asm/mmzone.h>
#ifdef CONFIG_NUMA
#include <asm/mmzone.h>
static inline int cpu_to_node(int cpu)
{
int node;
......@@ -66,4 +67,4 @@ static inline int node_to_first_cpu(int node)
#endif /* CONFIG_NUMA */
#endif /* _ASM_PPC64_TOPOLOGY_H */
#endif /* _ASM_POWERPC_TOPOLOGY_H */
#ifdef __KERNEL__
#ifndef _PPC_USER_H
#define _PPC_USER_H
#ifndef _ASM_POWERPC_USER_H
#define _ASM_POWERPC_USER_H
/* Adapted from <asm-alpha/user.h> */
#ifdef __KERNEL__
#include <linux/ptrace.h>
#include <asm/ptrace.h>
#include <asm/page.h>
/*
* Adapted from <asm-alpha/user.h>
*
* Core file format: The core file is written in such a way that gdb
* can understand it and provide useful information to the user (under
* linux we use the `trad-core' bfd, NOT the osf-core). The file contents
......@@ -50,5 +51,5 @@ struct user {
#define HOST_DATA_START_ADDR (u.start_data)
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
#endif /* _PPC_USER_H */
#endif /* __KERNEL__ */
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_USER_H */
#ifdef __KERNEL__
#ifndef _PPC_SETUP_H
#define _PPC_SETUP_H
#define m68k_num_memory num_memory
#define m68k_memory memory
#include <asm-m68k/setup.h>
/* We have a bigger command line buffer. */
#undef COMMAND_LINE_SIZE
#define COMMAND_LINE_SIZE 512
#endif /* _PPC_SETUP_H */
#endif /* __KERNEL__ */
#ifndef _ASM_PPC_TOPOLOGY_H
#define _ASM_PPC_TOPOLOGY_H
#include <asm-generic/topology.h>
#endif /* _ASM_PPC_TOPOLOGY_H */
#ifndef _PPC64_MSGBUF_H
#define _PPC64_MSGBUF_H
/*
* The msqid64_ds structure for the PPC architecture.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
struct msqid64_ds {
struct ipc64_perm msg_perm;
__kernel_time_t msg_stime; /* last msgsnd time */
__kernel_time_t msg_rtime; /* last msgrcv time */
__kernel_time_t msg_ctime; /* last change time */
unsigned long msg_cbytes; /* current number of bytes on queue */
unsigned long msg_qnum; /* number of messages in queue */
unsigned long msg_qbytes; /* max number of bytes on queue */
__kernel_pid_t msg_lspid; /* pid of last msgsnd */
__kernel_pid_t msg_lrpid; /* last receive pid */
unsigned long __unused1;
unsigned long __unused2;
};
#endif /* _PPC64_MSGBUF_H */
#ifndef _ASM_PPC64_PARAM_H
#define _ASM_PPC64_PARAM_H
#include <linux/config.h>
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifdef __KERNEL__
# define HZ CONFIG_HZ /* Internal kernel timer frequency */
# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
#endif
#ifndef HZ
#define HZ 100
#endif
#define EXEC_PAGESIZE 4096
#ifndef NOGROUP
#define NOGROUP (-1)
#endif
#define MAXHOSTNAMELEN 64 /* max length of hostname */
#endif /* _ASM_PPC64_PARAM_H */
#ifndef _PPC_SETUP_H
#define _PPC_SETUP_H
#define COMMAND_LINE_SIZE 512
#endif /* _PPC_SETUP_H */
/*
* linux/include/asm-ppc/timex.h
*
* PPC64 architecture timex specifications
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifndef _ASMPPC64_TIMEX_H
#define _ASMPPC64_TIMEX_H
#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
typedef unsigned long cycles_t;
static inline cycles_t get_cycles(void)
{
cycles_t ret;
__asm__ __volatile__("mftb %0" : "=r" (ret) : );
return ret;
}
#endif
#ifndef _PPC_USER_H
#define _PPC_USER_H
/* Adapted from <asm-alpha/user.h>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <asm/ptrace.h>
#include <asm/page.h>
/*
* Core file format: The core file is written in such a way that gdb
* can understand it and provide useful information to the user (under
* linux we use the `trad-core' bfd, NOT the osf-core). The file contents
* are as follows:
*
* upage: 1 page consisting of a user struct that tells gdb
* what is present in the file. Directly after this is a
* copy of the task_struct, which is currently not used by gdb,
* but it may come in handy at some point. All of the registers
* are stored as part of the upage. The upage should always be
* only one page long.
* data: The data segment follows next. We use current->end_text to
* current->brk to pick up all of the user variables, plus any memory
* that may have been sbrk'ed. No attempt is made to determine if a
* page is demand-zero or if a page is totally unused, we just cover
* the entire range. All of the addresses are rounded in such a way
* that an integral number of pages is written.
* stack: We need the stack information in order to get a meaningful
* backtrace. We need to write the data from usp to
* current->start_stack, so we round each of these in order to be able
* to write an integer number of pages.
*/
struct user {
struct pt_regs regs; /* entire machine state */
size_t u_tsize; /* text size (pages) */
size_t u_dsize; /* data size (pages) */
size_t u_ssize; /* stack size (pages) */
unsigned long start_code; /* text starting address */
unsigned long start_data; /* data starting address */
unsigned long start_stack; /* stack starting address */
long int signal; /* signal causing core dump */
struct regs * u_ar0; /* help gdb find registers */
unsigned long magic; /* identifies a core file */
char u_comm[32]; /* user command name */
};
#define NBPG PAGE_SIZE
#define UPAGES 1
#define HOST_TEXT_START_ADDR (u.start_code)
#define HOST_DATA_START_ADDR (u.start_data)
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
#endif /* _PPC_USER_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册