Add arch/amd64
PRO MEMORIA: in arch/amd64/include/ureg.h the commented registers are preserved.
They were removed at 6ab2e16c9f
but apparently the es register is used by vesavga (386 version) in both Plan9, 9front and 9atom.
This commit is contained in:
parent
a634ef3b34
commit
fc42b02a28
5
arch/amd64/bin/auth/disable
Executable file
5
arch/amd64/bin/auth/disable
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/rc
|
||||
if(test -e /mnt/keys/$1)
|
||||
echo -n disabled > /mnt/keys/$1/status
|
||||
if(test -e /mnt/netkeys/$1)
|
||||
echo -n disabled > /mnt/netkeys/$1/status
|
5
arch/amd64/bin/auth/enable
Executable file
5
arch/amd64/bin/auth/enable
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/rc
|
||||
if(test -e /mnt/keys/$1)
|
||||
echo -n ok > /mnt/keys/$1/status
|
||||
if(test -e /mnt/netkeys/$1)
|
||||
echo -n ok > /mnt/netkeys/$1/status
|
36
arch/amd64/bin/auth/status
Executable file
36
arch/amd64/bin/auth/status
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/rc
|
||||
cd /mnt/keys/$1 > /dev/null >[2=1] && {
|
||||
stat=`{cat status}
|
||||
exp=`{cat expire}
|
||||
switch($exp){
|
||||
case never 0
|
||||
exp='never expires'
|
||||
case *
|
||||
exp=(expires on `{date $exp})
|
||||
}
|
||||
switch($stat){
|
||||
case expired
|
||||
echo user $1: plan 9 key has expired
|
||||
case *
|
||||
echo user $1: plan 9 key status is $stat and $exp
|
||||
}
|
||||
grep '^'$1'[ ]' /adm/keys.who | tail -1
|
||||
}
|
||||
cd /mnt/netkeys/$1 > /dev/null >[2=1] && {
|
||||
stat=`{cat status}
|
||||
exp=`{cat expire}
|
||||
switch($exp){
|
||||
case never 0
|
||||
exp='never expires'
|
||||
case *
|
||||
exp=(expires on `{date $exp})
|
||||
}
|
||||
switch($stat){
|
||||
case expired
|
||||
echo user $1: network key has expired
|
||||
case *
|
||||
echo user $1: network key status is $stat and $exp
|
||||
auth/printnetkey $1
|
||||
}
|
||||
grep '^'$1'[ ]' /adm/netkeys.who | tail -1
|
||||
}
|
28
arch/amd64/include/cflags.json
Normal file
28
arch/amd64/include/cflags.json
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"buildflags": {
|
||||
"Cflags": [
|
||||
"-std=c11",
|
||||
"-c",
|
||||
"-I/$JEHANNE/arch/$ARCH/include",
|
||||
"-I/$JEHANNE/sys/include",
|
||||
"-I.",
|
||||
"-ffreestanding",
|
||||
"-fno-builtin",
|
||||
"-fno-omit-frame-pointer",
|
||||
"-fplan9-extensions",
|
||||
"-fvar-tracking",
|
||||
"-fvar-tracking-assignments",
|
||||
"-g",
|
||||
"-gdwarf-2",
|
||||
"-ggdb",
|
||||
"-mcmodel=small",
|
||||
"-mno-red-zone",
|
||||
"-O0",
|
||||
"-static",
|
||||
"-Wall",
|
||||
"-Wno-missing-braces",
|
||||
"-Wno-parentheses",
|
||||
"-Wno-unknown-pragmas"
|
||||
]
|
||||
}
|
||||
}
|
97
arch/amd64/include/u.h
Normal file
97
arch/amd64/include/u.h
Normal file
@ -0,0 +1,97 @@
|
||||
/*
|
||||
* This file is part of the UCB release of Plan 9. It is subject to the license
|
||||
* terms in the LICENSE file found in the top-level directory of this
|
||||
* distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
|
||||
* part of the UCB release of Plan 9, including this file, may be copied,
|
||||
* modified, propagated, or distributed except according to the terms contained
|
||||
* in the LICENSE file.
|
||||
*/
|
||||
|
||||
#define nil ((void*)0)
|
||||
typedef unsigned char uint8_t;
|
||||
typedef signed char int8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef signed short int16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned int uint;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
typedef long long int64_t;
|
||||
typedef uint64_t uintptr;
|
||||
typedef uint64_t uintptr_t;
|
||||
typedef uint32_t usize;
|
||||
typedef int64_t size_t;
|
||||
typedef uint32_t Rune;
|
||||
typedef union FPdbleword FPdbleword;
|
||||
typedef uintptr jmp_buf[10]; // for registers.
|
||||
|
||||
#define JMPBUFSP 6
|
||||
#define JMPBUFPC 7
|
||||
#define JMPBUFARG1 8
|
||||
#define JMPBUFARG2 9
|
||||
|
||||
#define JMPBUFDPC 0
|
||||
typedef unsigned int mpdigit; /* for /sys/include/mp.h */
|
||||
|
||||
/* MXCSR */
|
||||
/* fcr */
|
||||
#define FPFTZ (1<<15) /* amd64 */
|
||||
#define FPINEX (1<<12)
|
||||
#define FPUNFL (1<<11)
|
||||
#define FPOVFL (1<<10)
|
||||
#define FPZDIV (1<<9)
|
||||
#define FPDNRM (1<<8) /* amd64 */
|
||||
#define FPINVAL (1<<7)
|
||||
#define FPDAZ (1<<6) /* amd64 */
|
||||
#define FPRNR (0<<13)
|
||||
#define FPRZ (3<<13)
|
||||
#define FPRPINF (2<<13)
|
||||
#define FPRNINF (1<<13)
|
||||
#define FPRMASK (3<<13)
|
||||
#define FPPEXT 0
|
||||
#define FPPSGL 0
|
||||
#define FPPDBL 0
|
||||
#define FPPMASK 0
|
||||
/* fsr */
|
||||
#define FPAINEX (1<<5)
|
||||
#define FPAUNFL (1<<4)
|
||||
#define FPAOVFL (1<<3)
|
||||
#define FPAZDIV (1<<2)
|
||||
#define FPADNRM (1<<1) /* not in plan 9 */
|
||||
#define FPAINVAL (1<<0)
|
||||
union FPdbleword
|
||||
{
|
||||
double x;
|
||||
struct { /* little endian */
|
||||
uint lo;
|
||||
uint hi;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
#if 0
|
||||
typedef char* va_list;
|
||||
#define va_start(list, start) list =\
|
||||
(sizeof(start) < 8?\
|
||||
(char*)((int64_t*)&(start)+1):\
|
||||
(char*)(&(start)+1))
|
||||
#define va_end(list)\
|
||||
USED(list)
|
||||
#define va_arg(list, mode)\
|
||||
((sizeof(mode) == 1)?\
|
||||
((list += 8), (mode*)list)[-8]:\
|
||||
(sizeof(mode) == 2)?\
|
||||
((list += 8), (mode*)list)[-4]:\
|
||||
(sizeof(mode) == 4)?\
|
||||
((list += 8), (mode*)list)[-2]:\
|
||||
((list += sizeof(mode)), (mode*)list)[-1])
|
||||
#endif
|
||||
*/
|
||||
|
||||
typedef __builtin_va_list va_list;
|
||||
|
||||
#define va_start(v,l) __builtin_va_start(v,l)
|
||||
#define va_end(v) __builtin_va_end(v)
|
||||
#define va_arg(v,l) __builtin_va_arg(v,l)
|
||||
#define va_copy(v,l) __builtin_va_copy(v,l)
|
||||
|
42
arch/amd64/include/ureg.h
Normal file
42
arch/amd64/include/ureg.h
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* This file is part of the UCB release of Plan 9. It is subject to the license
|
||||
* terms in the LICENSE file found in the top-level directory of this
|
||||
* distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
|
||||
* part of the UCB release of Plan 9, including this file, may be copied,
|
||||
* modified, propagated, or distributed except according to the terms contained
|
||||
* in the LICENSE file.
|
||||
*/
|
||||
|
||||
struct Ureg {
|
||||
uint64_t ax;
|
||||
uint64_t bx;
|
||||
uint64_t cx;
|
||||
uint64_t dx;
|
||||
uint64_t si;
|
||||
uint64_t di;
|
||||
uint64_t bp;
|
||||
uint64_t r8;
|
||||
uint64_t r9;
|
||||
uint64_t r10;
|
||||
uint64_t r11;
|
||||
uint64_t r12;
|
||||
uint64_t r13;
|
||||
uint64_t r14;
|
||||
uint64_t r15;
|
||||
|
||||
// these are pointless and I don't want to waste a second on them.
|
||||
// I'm sure it will break something but let's see.
|
||||
// Not pushing them simplifies the interrupt handler a lot.
|
||||
// uint16_t ds;
|
||||
// uint16_t es;
|
||||
// uint16_t fs;
|
||||
// uint16_t gs;
|
||||
|
||||
uint64_t type;
|
||||
uint64_t error; /* error code (or zero) */
|
||||
uint64_t ip; /* pc */
|
||||
uint64_t cs; /* old context */
|
||||
uint64_t flags; /* old flags */
|
||||
uint64_t sp; /* sp */
|
||||
uint64_t ss; /* old stack segment */
|
||||
};
|
Loading…
Reference in New Issue
Block a user