mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 21:47:45 +00:00
arm-linux-20080115
LICENSE IPL10 make an arm linux port.
This commit is contained in:
parent
110d5702ea
commit
08d71812fe
@ -118,6 +118,38 @@ case $AFS_SYSNAME in
|
||||
SHLIB_LINKER="${MT_CC} -shared"
|
||||
;;
|
||||
|
||||
arm_linux24)
|
||||
CCOBJ="${CC} -fPIC"
|
||||
KERN_OPTMZ=-O2
|
||||
LEX="flex -l"
|
||||
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
|
||||
MT_LIBS="-lpthread"
|
||||
PAM_OPTMZ=-O2
|
||||
PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_LDFLAGS="-shared -Xlinker -x"
|
||||
TXLIBS="-lncurses"
|
||||
XCFLAGS="-D_LARGEFILE64_SOURCE"
|
||||
YACC="bison -y"
|
||||
SHLIB_LINKER="${MT_CC} -shared"
|
||||
;;
|
||||
|
||||
arm_linux26)
|
||||
CCOBJ="${CC} -fPIC"
|
||||
KERN_OPTMZ=-O2
|
||||
LEX="flex -l"
|
||||
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
|
||||
MT_LIBS="-lpthread"
|
||||
PAM_OPTMZ=-O2
|
||||
PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
|
||||
SHLIB_CFLAGS="-fPIC"
|
||||
SHLIB_LDFLAGS="-shared -Xlinker -x"
|
||||
TXLIBS="-lncurses"
|
||||
XCFLAGS="-D_LARGEFILE64_SOURCE"
|
||||
YACC="bison -y"
|
||||
SHLIB_LINKER="${MT_CC} -shared"
|
||||
;;
|
||||
|
||||
hp_ux102)
|
||||
AS="/usr/ccs/bin/as"
|
||||
CC="/opt/ansic/bin/cc -Ae"
|
||||
|
@ -263,6 +263,11 @@
|
||||
|
||||
#define SYS_NAME_ID_i64_w2k 3500
|
||||
|
||||
#define SYS_NAME_ID_arm_linux2 3800
|
||||
#define SYS_NAME_ID_arm_linux22 3801
|
||||
#define SYS_NAME_ID_arm_linux24 3802
|
||||
#define SYS_NAME_ID_arm_linux26 3803
|
||||
|
||||
/*
|
||||
* Placeholder to keep system-wide standard flags since this file is included by all
|
||||
* files (i.e in afs/param.h)
|
||||
|
33
src/config/param.arm_linux24.h
Normal file
33
src/config/param.arm_linux24.h
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright 2000, International Business Machines Corporation and others.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This software has been released under the terms of the IBM Public
|
||||
* License. For details, see the LICENSE file in the top-level source
|
||||
* directory or online at http://www.openafs.org/dl/license10.html
|
||||
*/
|
||||
|
||||
#ifndef AFS_PARAM_H
|
||||
#define AFS_PARAM_H
|
||||
|
||||
#ifndef UKERNEL
|
||||
|
||||
/* This section for kernel libafs compiles only */
|
||||
#define AFS_ARM_LINUX20_ENV 1
|
||||
#define AFS_ARM_LINUX22_ENV 1
|
||||
#define AFS_ARM_LINUX24_ENV 1
|
||||
|
||||
#else /* !defined(UKERNEL) */
|
||||
|
||||
/* This section for user space compiles only */
|
||||
#define UKERNEL 1 /* user space kernel */
|
||||
|
||||
#endif /* !defined(UKERNEL) */
|
||||
|
||||
/* Machine / Operating system information */
|
||||
#define SYS_NAME "arm_linux24"
|
||||
#define SYS_NAME_ID SYS_NAME_ID_arm_linux24
|
||||
#define AFSLITTLE_ENDIAN 1
|
||||
#define AFS_SYSCALL 137
|
||||
|
||||
#endif /* AFS_PARAM_H */
|
34
src/config/param.arm_linux26.h
Normal file
34
src/config/param.arm_linux26.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright 2000, International Business Machines Corporation and others.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This software has been released under the terms of the IBM Public
|
||||
* License. For details, see the LICENSE file in the top-level source
|
||||
* directory or online at http://www.openafs.org/dl/license10.html
|
||||
*/
|
||||
|
||||
#ifndef AFS_PARAM_H
|
||||
#define AFS_PARAM_H
|
||||
|
||||
#ifndef UKERNEL
|
||||
|
||||
/* This section for kernel libafs compiles only */
|
||||
#define AFS_ARM_LINUX20_ENV 1
|
||||
#define AFS_ARM_LINUX22_ENV 1
|
||||
#define AFS_ARM_LINUX24_ENV 1
|
||||
#define AFS_ARM_LINUX26_ENV 1
|
||||
|
||||
#else /* !defined(UKERNEL) */
|
||||
|
||||
/* This section for user space compiles only */
|
||||
#define UKERNEL 1 /* user space kernel */
|
||||
|
||||
#endif /* !defined(UKERNEL) */
|
||||
|
||||
/* Machine / Operating system information */
|
||||
#define SYS_NAME "arm_linux26"
|
||||
#define SYS_NAME_ID SYS_NAME_ID_arm_linux26
|
||||
#define AFSLITTLE_ENDIAN 1
|
||||
#define AFS_SYSCALL 137
|
||||
|
||||
#endif /* AFS_PARAM_H */
|
@ -82,7 +82,11 @@
|
||||
#ifdef AFS_PPC64_LINUX20_ENV
|
||||
#include "conf-ppc64-linux.h"
|
||||
#else
|
||||
#ifdef AFS_ARM_LINUX20_ENV
|
||||
#include "conf-arm-linux.h"
|
||||
#else
|
||||
#include "conf-i386-linux.h"
|
||||
#endif /* AFS_ARM_LINUX20_ENV */
|
||||
#endif /* AFS_PPC64_LINUX20_ENV */
|
||||
#endif /* AFS_AMD64_LINUX20_ENV */
|
||||
#endif /* AFS_IA64_LINUX20_ENV */
|
||||
|
14
src/des/conf-arm-linux.h
Normal file
14
src/des/conf-arm-linux.h
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright 1988 by the Massachusetts Institute of Technology.
|
||||
*
|
||||
* For copying and distribution information, please see the file
|
||||
* <mit-copyright.h>.
|
||||
*
|
||||
* Machine-type definitions: Linux on Intel
|
||||
*/
|
||||
|
||||
#include <mit-cpyright.h>
|
||||
|
||||
#define BITS32
|
||||
#define BIG
|
||||
#define LSBFIRST
|
@ -47,11 +47,13 @@ extern char *getenv();
|
||||
extern void *malloc(int size);
|
||||
extern void *realloc(void *ptr, int size);
|
||||
#endif
|
||||
#ifndef AFS_ARM_LINUX20_ENV
|
||||
#if defined(AFS_OSF_ENV) || defined(AFS_S390_LINUX20_ENV)
|
||||
extern int PRE_Block; /* from preempt.c */
|
||||
#else
|
||||
extern char PRE_Block; /* from preempt.c */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define ON 1
|
||||
#define OFF 0
|
||||
@ -367,11 +369,13 @@ LWP_CreateProcess(int (*ep) (), int stacksize, int priority, void *parm,
|
||||
Initialize_PCB(temp, priority, stackmemory, stacksize, ep, parm, name);
|
||||
insert(temp, &runnable[priority]);
|
||||
temp2 = lwp_cpptr;
|
||||
#ifndef AFS_ARM_LINUX20_ENV
|
||||
if (PRE_Block != 0)
|
||||
Abort_LWP("PRE_Block not 0");
|
||||
|
||||
/* Gross hack: beware! */
|
||||
PRE_Block = 1;
|
||||
#endif
|
||||
lwp_cpptr = temp;
|
||||
#if defined(AFS_PARISC_LINUX24_ENV)
|
||||
savecontext(Create_Process_Part2, &temp2->context,
|
||||
@ -460,11 +464,13 @@ LWP_CreateProcess2(int (*ep) (), int stacksize, int priority, void *parm,
|
||||
Initialize_PCB(temp, priority, stackptr, stacksize, ep, parm, name);
|
||||
insert(temp, &runnable[priority]);
|
||||
temp2 = lwp_cpptr;
|
||||
#ifndef AFS_ARM_LINUX20_ENV
|
||||
if (PRE_Block != 0)
|
||||
Abort_LWP("PRE_Block not 0");
|
||||
|
||||
/* Gross hack: beware! */
|
||||
PRE_Block = 1;
|
||||
#endif
|
||||
lwp_cpptr = temp;
|
||||
savecontext(Create_Process_Part2, &temp2->context,
|
||||
stackptr + stacksize - sizeof(void *));
|
||||
@ -956,8 +962,10 @@ Dispatcher(void)
|
||||
printf("Dispatch %d [PCB at 0x%x] \"%s\"\n", ++dispatch_count,
|
||||
runnable[i].head, runnable[i].head->name);
|
||||
#endif
|
||||
#ifndef AFS_ARM_LINUX20_ENV
|
||||
if (PRE_Block != 1)
|
||||
Abort_LWP("PRE_Block not 1");
|
||||
#endif
|
||||
lwp_cpptr = runnable[i].head;
|
||||
|
||||
returnto(&lwp_cpptr->context);
|
||||
|
@ -10,8 +10,63 @@
|
||||
#define IGNORE_STDS_H 1
|
||||
#include <afs/param.h>
|
||||
|
||||
#if defined(RIOS)
|
||||
#if defined(__arm32__) || defined(__arm__)
|
||||
/* register definitions */
|
||||
fp .req r11
|
||||
ip .req r12
|
||||
sp .req r13
|
||||
lp .req r14
|
||||
pc .req r15
|
||||
|
||||
/*
|
||||
savecontext(f, area1, newsp)
|
||||
int (*f)()#if defined(RIOS);
|
||||
struct savearea *area1;
|
||||
char *newsp;
|
||||
*/
|
||||
|
||||
/* Arguments appear as: f in r0, area1 in r1, newsp in r2 */
|
||||
|
||||
.text
|
||||
.align 0
|
||||
.globl savecontext
|
||||
.type savecontext, #function
|
||||
savecontext:
|
||||
@ build the frame
|
||||
mov ip, sp
|
||||
stmfd sp!, {fp, ip, lr, pc}
|
||||
sub fp, ip, #4
|
||||
@ stack r0 - r10, current fp
|
||||
stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, fp}
|
||||
str sp, [r1, #0]
|
||||
@ check if newsp is zero
|
||||
movs r2, r2
|
||||
movne sp, r2
|
||||
@ call function ...
|
||||
mov pc, r0
|
||||
|
||||
/* should never get here ... */
|
||||
/* bl EXT(abort) */
|
||||
|
||||
/*
|
||||
returnto(area2)
|
||||
struct savearea *area2;
|
||||
*/
|
||||
|
||||
/* area2 is in r0. */
|
||||
|
||||
.globl returnto
|
||||
.type returnto, #function
|
||||
returnto:
|
||||
@ restore r0-r10, fp
|
||||
ldr r0, [r0, #0]
|
||||
ldmfd r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, fp}
|
||||
@ return from function call
|
||||
ldmea fp, {fp, sp, pc}
|
||||
|
||||
#endif /* __arm32__ or __arm__ */
|
||||
|
||||
#if defined(RIOS)
|
||||
/* I don't know if we have to save the TOC (R2) or not...
|
||||
* Note that stack-frame is supposed to be aligned on
|
||||
* a double-word boundary.
|
||||
|
Loading…
x
Reference in New Issue
Block a user