Commit 6b9269ab authored by Jon Loeliger's avatar Jon Loeliger Committed by Paul Mackerras

[PATCH] ppc/ppc64: Merge more include files

This patch merges several include files from
asm-ppc and asm-ppc64 into the new asm-powerpc.
Signed-off-by: default avatarJon Loeliger <jdl@freescale.com>
Signed-off-by: default avatarKumar Gala <kumar.gala@freescale.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent ad6571a7
#ifndef _POWERPC_BUGS_H
#define _POWERPC_BUGS_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.
*/
/*
* This file is included by 'init/main.c' to check for
* architecture-dependent bugs.
*/
extern void check_bugs(void);
#endif /* _POWERPC_BUGS_H */
#ifndef _POWERPC_MC146818RTC_H
#define _POWERPC_MC146818RTC_H
/* /*
* Machine dependent access functions for RTC registers. * Machine dependent access functions for RTC registers.
* *
...@@ -6,8 +9,8 @@ ...@@ -6,8 +9,8 @@
* as published by the Free Software Foundation; either version * as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
#ifndef __ASM_PPC64_MC146818RTC_H
#define __ASM_PPC64_MC146818RTC_H #ifdef __KERNEL__
#include <asm/io.h> #include <asm/io.h>
...@@ -29,4 +32,5 @@ outb_p((addr),RTC_PORT(0)); \ ...@@ -29,4 +32,5 @@ outb_p((addr),RTC_PORT(0)); \
outb_p((val),RTC_PORT(1)); \ outb_p((val),RTC_PORT(1)); \
}) })
#endif /* __ASM_PPC64_MC146818RTC_H */ #endif /* __KERNEL__ */
#endif /* _POWERPC_MC146818RTC_H */
#ifndef _POWERPC_MODULE_H
#define _POWERPC_MODULE_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 <linux/list.h>
#include <asm/bug.h>
#ifndef __powerpc64__
/*
* Thanks to Paul M for explaining this.
*
* PPC can only do rel jumps += 32MB, and often the kernel and other
* modules are furthur away than this. So, we jump to a table of
* trampolines attached to the module (the Procedure Linkage Table)
* whenever that happens.
*/
struct ppc_plt_entry {
/* 16 byte jump instruction sequence (4 instructions) */
unsigned int jump[4];
};
#endif /* __powerpc64__ */
struct mod_arch_specific {
#ifdef __powerpc64__
unsigned int stubs_section; /* Index of stubs section in module */
unsigned int toc_section; /* What section is the TOC? */
#else
/* Indices of PLT sections within module. */
unsigned int core_plt_section;
unsigned int init_plt_section;
#endif
/* List of BUG addresses, source line numbers and filenames */
struct list_head bug_list;
struct bug_entry *bug_table;
unsigned int num_bugs;
};
extern struct bug_entry *module_find_bug(unsigned long bugaddr);
/*
* Select ELF headers.
* Make empty section for module_frob_arch_sections to expand.
*/
#ifdef __powerpc64__
# define Elf_Shdr Elf64_Shdr
# define Elf_Sym Elf64_Sym
# define Elf_Ehdr Elf64_Ehdr
# ifdef MODULE
asm(".section .stubs,\"ax\",@nobits; .align 3; .previous");
# endif
#else
# define Elf_Shdr Elf32_Shdr
# define Elf_Sym Elf32_Sym
# define Elf_Ehdr Elf32_Ehdr
# ifdef MODULE
asm(".section .plt,\"ax\",@nobits; .align 3; .previous");
asm(".section .init.plt,\"ax\",@nobits; .align 3; .previous");
# endif /* MODULE */
#endif
struct exception_table_entry;
void sort_ex_table(struct exception_table_entry *start,
struct exception_table_entry *finish);
#endif /* _POWERPC_MODULE_H */
#ifndef _PPC64_SEMBUF_H #ifndef _POWERPC_SEMBUF_H
#define _PPC64_SEMBUF_H #define _POWERPC_SEMBUF_H
/* /*
* The semid64_ds structure for PPC architecture.
*
*
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version * as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/
/*
* The semid64_ds structure for PPC architecture.
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
* *
* Pad space is left for: * Pad space is left for:
* - 2 miscellaneous 64-bit values * - 64-bit time_t to solve y2038 problem
* - 2 miscellaneous 32-bit values
*/ */
struct semid64_ds { struct semid64_ds {
struct ipc64_perm sem_perm; /* permissions .. see ipc.h */ struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
#ifndef __powerpc64__
unsigned long __unused1;
#endif
__kernel_time_t sem_otime; /* last semop time */ __kernel_time_t sem_otime; /* last semop time */
#ifndef __powerpc64__
unsigned long __unused2;
#endif
__kernel_time_t sem_ctime; /* last change time */ __kernel_time_t sem_ctime; /* last change time */
unsigned long sem_nsems; /* no. of semaphores in array */ unsigned long sem_nsems; /* no. of semaphores in array */
unsigned long __unused3;
unsigned long __unused1; unsigned long __unused4;
unsigned long __unused2;
}; };
#endif /* _PPC64_SEMBUF_H */ #endif /* _POWERPC_SEMBUF_H */
#ifndef _PPC64_SHMBUF_H #ifndef _POWERPC_SHMBUF_H
#define _PPC64_SHMBUF_H #define _POWERPC_SHMBUF_H
/* /*
* The shmid64_ds structure for PPC64 architecture.
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
*
* Pad space is left for:
* - 2 miscellaneous 64-bit values
*
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version * as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
/*
* The shmid64_ds structure for PPC architecture.
*
* Note extra padding because this structure is passed back and forth
* between kernel and user space.
*
* Pad space is left for:
* - 64-bit time_t to solve y2038 problem
* - 2 miscellaneous 32-bit values
*/
struct shmid64_ds { struct shmid64_ds {
struct ipc64_perm shm_perm; /* operation perms */ struct ipc64_perm shm_perm; /* operation perms */
#ifndef __power64__
unsigned long __unused1;
#endif
__kernel_time_t shm_atime; /* last attach time */ __kernel_time_t shm_atime; /* last attach time */
#ifndef __power64__
unsigned long __unused2;
#endif
__kernel_time_t shm_dtime; /* last detach time */ __kernel_time_t shm_dtime; /* last detach time */
#ifndef __power64__
unsigned long __unused3;
#endif
__kernel_time_t shm_ctime; /* last change time */ __kernel_time_t shm_ctime; /* last change time */
#ifndef __power64__
unsigned long __unused4;
#endif
size_t shm_segsz; /* size of segment (bytes) */ size_t shm_segsz; /* size of segment (bytes) */
__kernel_pid_t shm_cpid; /* pid of creator */ __kernel_pid_t shm_cpid; /* pid of creator */
__kernel_pid_t shm_lpid; /* pid of last operator */ __kernel_pid_t shm_lpid; /* pid of last operator */
unsigned long shm_nattch; /* no. of current attaches */ unsigned long shm_nattch; /* no. of current attaches */
unsigned long __unused1; unsigned long __unused5;
unsigned long __unused2; unsigned long __unused6;
}; };
struct shminfo64 { struct shminfo64 {
...@@ -40,4 +56,4 @@ struct shminfo64 { ...@@ -40,4 +56,4 @@ struct shminfo64 {
unsigned long __unused4; unsigned long __unused4;
}; };
#endif /* _PPC64_SHMBUF_H */ #endif /* _POWERPC_SHMBUF_H */
#ifndef _PPC64_SIGINFO_H #ifndef _POWERPC_SIGINFO_H
#define _PPC64_SIGINFO_H #define _POWERPC_SIGINFO_H
/* /*
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -8,9 +8,11 @@ ...@@ -8,9 +8,11 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) #ifdef __powerpc64__
#define SI_PAD_SIZE32 ((SI_MAX_SIZE/sizeof(int)) - 3) # define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
# define SI_PAD_SIZE32 ((SI_MAX_SIZE/sizeof(int)) - 3)
#endif
#include <asm-generic/siginfo.h> #include <asm-generic/siginfo.h>
#endif /* _PPC64_SIGINFO_H */ #endif /* _POWERPC_SIGINFO_H */
#ifndef _ASM_SOCKET_H #ifndef _POWERPC_SOCKET_H
#define _ASM_SOCKET_H #define _POWERPC_SOCKET_H
/* /*
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include <asm/sockios.h> #include <asm/sockios.h>
/* For setsockoptions(2) */ /* For setsockopt(2) */
#define SOL_SOCKET 1 #define SOL_SOCKET 1
#define SO_DEBUG 1 #define SO_DEBUG 1
...@@ -56,4 +56,4 @@ ...@@ -56,4 +56,4 @@
#define SO_PEERSEC 31 #define SO_PEERSEC 31
#endif /* _ASM_SOCKET_H */ #endif /* _POWERPC_SOCKET_H */
#ifndef _ASM_PPC64_SOCKIOS_H #ifndef _POWERPC_SOCKIOS_H
#define _ASM_PPC64_SOCKIOS_H #define _POWERPC_SOCKIOS_H
/* /*
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -16,4 +16,4 @@ ...@@ -16,4 +16,4 @@
#define SIOCATMARK 0x8905 #define SIOCATMARK 0x8905
#define SIOCGSTAMP 0x8906 /* Get stamp */ #define SIOCGSTAMP 0x8906 /* Get stamp */
#endif /* _ASM_PPC64_SOCKIOS_H */ #endif /* _POWERPC_SOCKIOS_H */
/*
* This file is included by 'init/main.c'
*/
extern void
check_bugs(void);
/*
* Machine dependent access functions for RTC registers.
*/
#ifdef __KERNEL__
#ifndef __ASM_PPC_MC146818RTC_H
#define __ASM_PPC_MC146818RTC_H
#include <asm/io.h>
#ifndef RTC_PORT
#define RTC_PORT(x) (0x70 + (x))
#define RTC_ALWAYS_BCD 1 /* RTC operates in binary mode */
#endif
/*
* The yet supported machines all access the RTC index register via
* an ISA port access but the way to access the date register differs ...
*/
#define CMOS_READ(addr) ({ \
outb_p((addr),RTC_PORT(0)); \
inb_p(RTC_PORT(1)); \
})
#define CMOS_WRITE(val, addr) ({ \
outb_p((addr),RTC_PORT(0)); \
outb_p((val),RTC_PORT(1)); \
})
#define RTC_IRQ 8
#endif /* __ASM_PPC_MC146818RTC_H */
#endif /* __KERNEL__ */
#ifndef _ASM_PPC_MODULE_H
#define _ASM_PPC_MODULE_H
/* Module stuff for PPC. (C) 2001 Rusty Russell */
#include <linux/list.h>
#include <asm/bug.h>
/* Thanks to Paul M for explaining this.
PPC can only do rel jumps += 32MB, and often the kernel and other
modules are furthur away than this. So, we jump to a table of
trampolines attached to the module (the Procedure Linkage Table)
whenever that happens.
*/
struct ppc_plt_entry
{
/* 16 byte jump instruction sequence (4 instructions) */
unsigned int jump[4];
};
struct mod_arch_specific
{
/* Indices of PLT sections within module. */
unsigned int core_plt_section, init_plt_section;
/* List of BUG addresses, source line numbers and filenames */
struct list_head bug_list;
struct bug_entry *bug_table;
unsigned int num_bugs;
};
extern struct bug_entry *module_find_bug(unsigned long bugaddr);
#define Elf_Shdr Elf32_Shdr
#define Elf_Sym Elf32_Sym
#define Elf_Ehdr Elf32_Ehdr
/* Make empty sections for module_frob_arch_sections to expand. */
#ifdef MODULE
asm(".section .plt,\"ax\",@nobits; .align 3; .previous");
asm(".section .init.plt,\"ax\",@nobits; .align 3; .previous");
#endif
#endif /* _ASM_PPC_MODULE_H */
#ifndef _PPC_SEMBUF_H
#define _PPC_SEMBUF_H
/*
* The semid64_ds structure for PPC architecture.
*/
struct semid64_ds {
struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
unsigned int __unused1;
__kernel_time_t sem_otime; /* last semop time */
unsigned int __unused2;
__kernel_time_t sem_ctime; /* last change time */
unsigned long sem_nsems; /* no. of semaphores in array */
unsigned long __unused3;
unsigned long __unused4;
};
#endif /* _PPC_SEMBUF_H */
#ifndef _PPC_SHMBUF_H
#define _PPC_SHMBUF_H
/*
* The shmid64_ds structure for PPC architecture.
*/
struct shmid64_ds {
struct ipc64_perm shm_perm; /* operation perms */
unsigned int __unused1;
__kernel_time_t shm_atime; /* last attach time */
unsigned int __unused2;
__kernel_time_t shm_dtime; /* last detach time */
unsigned int __unused3;
__kernel_time_t shm_ctime; /* last change time */
unsigned int __unused4;
size_t shm_segsz; /* size of segment (bytes) */
__kernel_pid_t shm_cpid; /* pid of creator */
__kernel_pid_t shm_lpid; /* pid of last operator */
unsigned long shm_nattch; /* no. of current attaches */
unsigned long __unused5;
unsigned long __unused6;
};
struct shminfo64 {
unsigned long shmmax;
unsigned long shmmin;
unsigned long shmmni;
unsigned long shmseg;
unsigned long shmall;
unsigned long __unused1;
unsigned long __unused2;
unsigned long __unused3;
unsigned long __unused4;
};
#endif /* _PPC_SHMBUF_H */
#ifndef _PPC_SIGINFO_H
#define _PPC_SIGINFO_H
#include <asm-generic/siginfo.h>
#endif
#ifndef _ASM_SOCKET_H
#define _ASM_SOCKET_H
/* Socket-level I/O control calls. */
#define FIOSETOWN 0x8901
#define SIOCSPGRP 0x8902
#define FIOGETOWN 0x8903
#define SIOCGPGRP 0x8904
#define SIOCATMARK 0x8905
#define SIOCGSTAMP 0x8906 /* Get stamp */
/* For setsockopt(2) */
#define SOL_SOCKET 1
#define SO_DEBUG 1
#define SO_REUSEADDR 2
#define SO_TYPE 3
#define SO_ERROR 4
#define SO_DONTROUTE 5
#define SO_BROADCAST 6
#define SO_SNDBUF 7
#define SO_RCVBUF 8
#define SO_SNDBUFFORCE 32
#define SO_RCVBUFFORCE 33
#define SO_KEEPALIVE 9
#define SO_OOBINLINE 10
#define SO_NO_CHECK 11
#define SO_PRIORITY 12
#define SO_LINGER 13
#define SO_BSDCOMPAT 14
/* To add :#define SO_REUSEPORT 15 */
#define SO_RCVLOWAT 16
#define SO_SNDLOWAT 17
#define SO_RCVTIMEO 18
#define SO_SNDTIMEO 19
#define SO_PASSCRED 20
#define SO_PEERCRED 21
/* Security levels - as per NRL IPv6 - don't actually do anything */
#define SO_SECURITY_AUTHENTICATION 22
#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
#define SO_SECURITY_ENCRYPTION_NETWORK 24
#define SO_BINDTODEVICE 25
/* Socket filtering */
#define SO_ATTACH_FILTER 26
#define SO_DETACH_FILTER 27
#define SO_PEERNAME 28
#define SO_TIMESTAMP 29
#define SCM_TIMESTAMP SO_TIMESTAMP
#define SO_ACCEPTCONN 30
#define SO_PEERSEC 31
#endif /* _ASM_SOCKET_H */
#ifndef _ASM_PPC_SOCKIOS_H
#define _ASM_PPC_SOCKIOS_H
#if 0 /* These are defined this way on Alpha - maybe later. */
/* Socket-level I/O control calls. */
#define FIOGETOWN _IOR('f', 123, int)
#define FIOSETOWN _IOW('f', 124, int)
#define SIOCATMARK _IOR('s', 7, int)
#define SIOCSPGRP _IOW('s', 8, pid_t)
#define SIOCGPGRP _IOR('s', 9, pid_t)
#define SIOCGSTAMP 0x8906 /* Get stamp - linux-specific */
#endif
#endif /* _ASM_PPC_SOCKIOS_H */
/*
* This file is included by 'init/main.c' to check for architecture-dependent
* bugs.
*
*/
#ifndef _ASM_PPC64_BUGS_H
#define _ASM_PPC64_BUGS_H
static void check_bugs(void) {
}
#endif /* _ASM_PPC64_BUGS_H */
#ifndef _ASM_PPC64_MODULE_H
#define _ASM_PPC64_MODULE_H
#include <linux/list.h>
#include <asm/bug.h>
struct mod_arch_specific
{
/* Index of stubs section within module. */
unsigned int stubs_section;
/* What section is the TOC? */
unsigned int toc_section;
/* List of BUG addresses, source line numbers and filenames */
struct list_head bug_list;
struct bug_entry *bug_table;
unsigned int num_bugs;
};
extern struct bug_entry *module_find_bug(unsigned long bugaddr);
#define Elf_Shdr Elf64_Shdr
#define Elf_Sym Elf64_Sym
#define Elf_Ehdr Elf64_Ehdr
/* Make empty section for module_frob_arch_sections to expand. */
#ifdef MODULE
asm(".section .stubs,\"ax\",@nobits; .align 3; .previous");
#endif
struct exception_table_entry;
void sort_ex_table(struct exception_table_entry *start,
struct exception_table_entry *finish);
#endif /* _ASM_PPC64_MODULE_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment