remove our own copy of klibc

Signed-off-by: Kay Sievers <kay.sievers@suse.de>
This commit is contained in:
Kay Sievers 2005-11-09 15:42:07 +01:00
parent accff72685
commit a8349b33e5
532 changed files with 25 additions and 30176 deletions

View file

@ -1,3 +1,6 @@
Summary of changes from v74 to v075
============================================
Summary of changes from v73 to v074
============================================

View file

@ -122,7 +122,6 @@ configdir = ${etcdir}/udev
udevdir = /dev
udevdb = ${udevdir}/.udevdb
LOCAL_CFG_DIR = etc/udev
KERNEL_DIR = /lib/modules/${shell uname -r}/build
DESTDIR =
INSTALL = /usr/bin/install -c
@ -177,8 +176,7 @@ endif
# if our own version of klibc is used, we need to build it
ifeq ($(strip $(USE_KLIBC)),true)
KLIBC_INSTALL = $(PWD)/klibc/.install
KLCC = $(KLIBC_INSTALL)/bin/$(CROSS)klcc
KLCC = /usr/bin/$(CROSS)klcc
CC = $(KLCC)
LD = $(KLCC)
V = true
@ -203,7 +201,7 @@ else
HOST_PROGS=
endif
all: $(KLCC) $(PROGRAMS) $(MAN_PAGES)
all: $(PROGRAMS) $(MAN_PAGES)
@extras="$(EXTRAS)"; for target in $$extras; do \
echo $$target; \
$(MAKE) CC="$(CC)" \
@ -214,7 +212,6 @@ all: $(KLCC) $(PROGRAMS) $(MAN_PAGES)
LIB_OBJS="$(LIB_OBJS)" \
LIBUDEV="$(PWD)/$(LIBUDEV)" \
LIBSYSFS="$(PWD)/$(LIBSYSFS)" \
KERNEL_DIR="$(KERNEL_DIR)" \
QUIET="$(QUIET)" \
-C $$target $@; \
done;
@ -229,28 +226,19 @@ all: $(KLCC) $(PROGRAMS) $(MAN_PAGES)
$(QUIET) $(CC) -c $(CFLAGS) $< -o $@
# "Static Pattern Rule" to build all programs
$(PROGRAMS): %: $(HOST_PROGS) $(KLCC) $(HEADERS) $(GEN_HEADERS) $(LIBSYSFS) $(LIBUDEV) %.o
$(PROGRAMS): %: $(HOST_PROGS) $(HEADERS) $(GEN_HEADERS) $(LIBSYSFS) $(LIBUDEV) %.o
$(QUIET) $(LD) $(LDFLAGS) $@.o -o $@ $(LIBUDEV) $(LIBSYSFS) $(LIB_OBJS)
ifneq ($(STRIPCMD),)
$(QUIET) $(STRIPCMD) $@
endif
# our own copy of klibc, it is not used if KLCC is given
$(KLCC):
$(MAKE) -C klibc KRNLSRC=$(KERNEL_DIR) SUBDIRS=klibc TESTS= \
SHLIBDIR=$(KLIBC_INSTALL)/lib \
INSTALLDIR=$(KLIBC_INSTALL) \
bindir=$(KLIBC_INSTALL)/bin \
mandir=$(KLIBC_INSTALL)/man all install
.NOTPARALLEL: $(KLCC)
$(UDEV_OBJS): $(KLCC)
$(UDEV_OBJS):
$(LIBUDEV): $(HOST_PROGS) $(HEADERS) $(GEN_HEADERS) $(UDEV_OBJS)
@rm -f $@
$(QUIET) $(AR) cq $@ $(UDEV_OBJS)
$(QUIET) $(RANLIB) $@
$(SYSFS_OBJS): $(KLCC)
$(SYSFS_OBJS):
$(LIBSYSFS): $(HOST_PROGS) $(SYSFS_OBJS)
@rm -f $@
$(QUIET) $(AR) cq $@ $(SYSFS_OBJS)
@ -288,13 +276,10 @@ clean:
- rm -f udev_gcov.txt
- rm -f core $(PROGRAMS) $(GEN_HEADERS) $(GEN_CONFIGS)
- rm -f udev-$(VERSION).tar.gz
$(MAKE) -C klibc SUBDIRS=klibc clean
@extras="$(EXTRAS)"; for target in $$extras; do \
echo $$target; \
$(MAKE) -C $$target $@; \
done;
$(MAKE) -C klibc SUBDIRS=klibc spotless
rm -rf klibc/.install
.PHONY: clean
release:

17
README
View file

@ -45,9 +45,7 @@ Setting which are used for building udev:
USE_LOG
if set to 'true', udev will emit messages to the syslog when
it creates or removes device nodes. This is helpful to see
what udev is doing. This is enabled by default. Note, if you
are building udev against klibc it is recommended that you
disable this option (due to klibc's syslog implementation.)
what udev is doing. This is enabled by default.
DEBUG
if set to 'true', verbose debugging messages will be compiled into
the udev binaries. Default value is 'false'.
@ -55,20 +53,13 @@ Setting which are used for building udev:
if set to 'true', udev will be built with SELinux support
enabled. This is disabled by default.
USE_KLIBC
if set to 'true', udev is built and linked against the
included version of klibc. Default value is 'false'.
KERNEL_DIR
If this is not set it will default to /lib/modules/`uname -r`/build
This is used if USE_KLIBC=true to find the kernel include
directory that klibc needs to build against. This must be set
if you are not building udev while running a 2.6 kernel.
if set to 'true', udev is built and linked against klibc.
Default value is 'false'. KLCC specifies the klibc compiler
wrapper, usually in /usr/bin/klcc
EXTRAS
if set, will build the "extra" helper programs as specified
as listed (see below for an example.)
if you want to build udev using klibc with debugging messages:
make USE_KLIBC=true DEBUG=true
if you want to build the udev helper program cdrom_id and scsi_id:
make EXTRAS="extras/cdrom_id extras/scsi_id"

View file

@ -1,3 +1,8 @@
udev 075
========
The copy of klibc is removed. A systemwide installed version of klibc
can be used to buil a klibc udev.
udev 074
========
NAME="" will not create any nodes, but execute RUN keys. To completely

View file

@ -1,98 +0,0 @@
# -*- makefile -*-
#
# Makefile configuration, without explicit rules
#
# CROSS is the prefix used for system tools like gcc, ld etc.
CROSS =
# KCROSS is the prefix we use for klibc installations. This is usually
# the same as CROSS, but may be different, e.g. to install an i386
# cross-compilation suite on an x86-64 system, using the same gcc/binutils.
KCROSS ?= $(CROSS)
# Location for installation
prefix = /usr
bindir = $(prefix)/bin
libdir = $(prefix)/lib
mandir = $(prefix)/man
INSTALLDIR = $(prefix)/lib/klibc
INSTALLROOT =
INSTALL_EXEC = install -m 755
INSTALL_DATA = install -m 644
# Eventually support separate compilation, but we don't have it yet...
OBJROOT = $(SRCROOT)
# Kernel trees (source and obj) - can potentially be different
KRNLSRC = $(SRCROOT)/linux
KRNLOBJ = $(SRCROOT)/linux
# klibc version information
KLIBCVER = -D__KLIBC__=$(shell cut -d. -f1 < $(SRCROOT)/version) \
-D__KLIBC_MINOR__=$(shell cut -d. -f2 < $(SRCROOT)/version)
ARCH = $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/parisc.*/parisc/)
CC = $(CROSS)gcc
LD = $(CROSS)ld
KLIBSRC = $(SRCROOT)/klibc
KLIBOBJ = $(OBJROOT)/klibc
INCLUDE = -I$(SRCROOT)/include/arch/$(ARCH) \
-I$(SRCROOT)/include/bits$(BITSIZE) \
-I$(SRCROOT)/include \
-I$(KRNLOBJ)/include -I$(KRNLOBJ)/include2 -I$(KRNLSRC)/include
REQFLAGS = $(ARCHREQFLAGS) $(KLIBCVER) -nostdlib -nostdinc -iwithprefix include \
$(INCLUDE)
LDFLAGS =
AR = $(CROSS)ar
RANLIB = $(CROSS)ranlib
NM = $(CROSS)nm
PERL = perl
OBJCOPY = $(CROSS)objcopy
STRIP = $(CROSS)strip
STRIPFLAGS = --strip-all -R .comment -R .note
STRIPCMD = $(STRIP) $(STRIPFLAGS)
HOST_CC = gcc
HOST_CFLAGS = -g -O
HOST_LDFLAGS =
HOST_LIBS =
# Static library paths
CRT0 = $(KLIBOBJ)/crt0.o
KLIBC = $(KLIBOBJ)/libc.a
LIBGCC = $(shell $(CC) $(REQFLAGS) $(OPTFLAGS) --print-libgcc)
# Shared library paths
CRTSHARED = $(KLIBOBJ)/interp.o
LIBSHARED = $(KLIBOBJ)/libc.so
#
# This indicates the location of the final version of the shared library.
# THIS MUST BE AN ABSOLUTE PATH WITH NO FINAL SLASH.
# Leave this empty to make it the root.
#
SHLIBDIR = /lib
# Enable this to make perror/strerror return real error messages
# This makes klibc.so and any static binary which uses these functions
# about 4K bigger.
ERRLIST = 1
# Include zlib in klibc. This roughly triples the size of klibc!
ZLIB = 0
#
# Include arch-specific rule fragments
#
include $(KLIBSRC)/arch/$(ARCH)/MCONFIG
ifeq ($(DEBUG),y)
STRIP = /bin/true -Since_we_are_debugging
OPTFLAGS += -O1 -g
endif
# How to tell the linker main() is the entrypoint
EMAIN ?= -e main

View file

@ -1,45 +0,0 @@
# -*- makefile -*-
#
# Standard pattern rules
#
.SUFFIXES: .c .o .a .so .lo .i .S .s .ls .ss .lss
% : %.c # Cancel default rule
% : %.S
.c.o:
$(CC) $(CFLAGS) -c -o $@ $<
.c.i:
$(CC) $(CFLAGS) -E -o $@ $<
.c.s:
$(CC) $(CFLAGS) -S -o $@ $<
.S.o:
$(CC) $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $<
.S.s:
$(CC) $(CFLAGS) -D__ASSEMBLY__ -E -o $@ $<
.S.lo:
$(CC) $(CFLAGS) $(SOFLAGS) -D__ASSEMBLY__ -c -o $@ $<
.S.ls:
$(CC) $(CFLAGS) $(SOFLAGS) -D__ASSEMBLY__ -E -o $@ $<
.s.o:
$(CC) $(CFLAGS) -x assembler -c -o $@ $<
.ls.lo:
$(CC) $(CFLAGS) $(SOFLAGS) -x assembler -c -o $@ $<
.c.lo:
$(CC) $(CFLAGS) $(SOFLAGS) -c -o $@ $<
.c.ls:
$(CC) $(CFLAGS) $(SOFLAGS) -S -o $@ $<

View file

@ -1,77 +0,0 @@
VERSION := $(shell cat version)
SUBDIRS = klibc ash ipconfig nfsmount utils kinit gzip
SRCROOT = .
all:
rpmbuild = $(shell which rpmbuild 2>/dev/null || which rpm)
klibc.spec: klibc.spec.in version
sed -e 's/@@VERSION@@/$(VERSION)/g' < $< > $@
.PHONY: rpm
rpm: klibc.spec
+$(rpmbuild) -bb klibc.spec --target=$(ARCH)
$(CROSS)klibc.config: Makefile
rm -f $@
echo 'ARCH=$(ARCH)' >> $@
echo 'CROSS=$(CROSS)' >> $@
echo 'KCROSS=$(KCROSS)' >> $@
echo 'CC=$(CC)' >> $@
echo 'LD=$(LD)' >> $@
echo 'REQFLAGS=$(filter-out -I%,$(REQFLAGS))' >> $@
echo 'OPTFLAGS=$(OPTFLAGS)' >> $@
echo 'LDFLAGS=$(LDFLAGS)' >> $@
echo 'STRIP=$(STRIP)' >> $@
echo 'STRIPFLAGS=$(STRIPFLAGS)' >> $@
echo 'EMAIN=$(EMAIN)' >> $@
echo 'BITSIZE=$(BITSIZE)' >> $@
echo 'prefix=$(INSTALLDIR)' >> $@
echo 'bindir=$(INSTALLDIR)/$(KCROSS)bin' >> $@
echo 'libdir=$(INSTALLDIR)/$(KCROSS)lib' >> $@
echo 'includedir=$(INSTALLDIR)/$(KCROSS)include' >> $@
$(CROSS)klcc: klcc.in $(CROSS)klibc.config makeklcc.pl
$(PERL) makeklcc.pl klcc.in $(CROSS)klibc.config \
$(shell bash -c 'type -p $(PERL)') > $@ || ( rm -f $@ ; exit 1 )
chmod a+x $@
%: local-%
@set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
local-all: $(CROSS)klcc
local-clean:
rm -f klibc.config klcc
local-spotless: local-clean
rm -f klibc.spec *~ tags
local-install: $(CROSS)klcc
mkdir -p $(INSTALLROOT)$(bindir)
mkdir -p $(INSTALLROOT)$(mandir)/man1
mkdir -p $(INSTALLROOT)$(SHLIBDIR)
mkdir -p $(INSTALLROOT)$(INSTALLDIR)
-rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
set -xe ; for d in linux scsi asm-$(ARCH) asm-generic $(ASMARCH); do \
mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d ; \
for r in $(KRNLSRC)/include $(KRNLOBJ)/include $(KRNLOBJ)/include2 ; do \
[ ! -d $$r/$$d ] || \
cp -rfL $$r/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \
done ; \
done
cd $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include && ln -sf asm-$(ARCH) asm
cp -rf include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/.
$(INSTALL_DATA) klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1
$(INSTALL_EXEC) $(KCROSS)klcc $(INSTALLROOT)$(bindir)
# This does all the prep work needed to turn a freshly exported git repository
# into a release tarball tree
release: klibc.spec
rm -f maketar.sh
-include MCONFIG

View file

@ -1,21 +0,0 @@
Please see klibc/README for build instructions and for the status of
various platforms.
klibc is archived at:
ftp://ftp.kernel.org/pub/linux/libs/klibc/
There is a mailing list for klibc and early-userspace issues at:
http://www.zytor.com/mailman/listinfo/klibc/
There is also a cvsweb repository at:
http://www.zytor.com/cvsweb.cgi/klibc/
There is no direct public CVS access yet, however, the CVS repository
is available for rsync from:
rsync://rsync.kernel.org/pub/linux/libs/klibc/cvsroot/

View file

@ -1,13 +0,0 @@
/*
* alloca.h
*
* Just call the builtin alloca() function
*/
#ifndef _ALLOCA_H
#define _ALLOCA_H
#define alloca(size) __builtin_alloca(size)
#endif /* _ALLOCA_H */

View file

@ -1,33 +0,0 @@
/*
* arch/alpha/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __s0;
unsigned long __s1;
unsigned long __s2;
unsigned long __s3;
unsigned long __s4;
unsigned long __s5;
unsigned long __fp;
unsigned long __ra;
unsigned long __gp;
unsigned long __sp;
unsigned long __f2;
unsigned long __f3;
unsigned long __f4;
unsigned long __f5;
unsigned long __f6;
unsigned long __f7;
unsigned long __f8;
unsigned long __f9;
};
/* Must be an array so it will decay to a pointer when a function is called */
typedef struct __jmp_buf jmp_buf[1];
#endif /* _KLIBC_ARCHSETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/alpha/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,26 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned long st_dev;
unsigned long st_ino;
unsigned long st_rdev;
long st_size;
unsigned long st_blocks;
unsigned int st_mode;
unsigned int st_uid;
unsigned int st_gid;
unsigned int st_blksize;
unsigned int st_nlink;
unsigned int __pad0;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
long __unused[3];
};
#endif

View file

@ -1,53 +0,0 @@
/*
* arch/alpha/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* Alpha has some bizarre Tru64-derived system calls which return two
different values in $0 and $20(!), respectively. The standard
macros can't deal with these; even the ones that give the right
return value have the wrong clobbers. */
#define _syscall0_dual0(type, name) \
type name(void) \
{ \
long _sc_ret, _sc_err; \
{ \
register long _sc_0 __asm__("$0"); \
register long _sc_19 __asm__("$19"); \
register long _sc_20 __asm__("$20"); \
\
_sc_0 = __NR_##name; \
__asm__("callsys" \
: "=r"(_sc_0), "=r"(_sc_19), "=r" (_sc_20) \
: "0"(_sc_0) \
: _syscall_clobbers); \
_sc_ret = _sc_0, _sc_err = _sc_19; (void)(_sc_20); \
} \
_syscall_return(type); \
}
#define _syscall0_dual1(type, name) \
type name(void) \
{ \
long _sc_ret, _sc_err; \
{ \
register long _sc_0 __asm__("$0"); \
register long _sc_19 __asm__("$19"); \
register long _sc_20 __asm__("$20"); \
\
_sc_0 = __NR_##name; \
__asm__("callsys" \
: "=r"(_sc_0), "=r"(_sc_19), "=r" (_sc_20) \
: "0"(_sc_0) \
: _syscall_clobbers); \
_sc_ret = _sc_20, _sc_err = _sc_19; (void)(_sc_0); \
} \
_syscall_return(type); \
}
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,44 +0,0 @@
/*
* machine/asm.h
*/
#ifndef _MACHINE_ASM_H
#define _MACHINE_ASM_H
/* Standard aliases for Alpha register names */
#define v0 $0
#define t0 $1
#define t1 $2
#define t2 $3
#define t3 $4
#define t4 $5
#define t5 $6
#define t6 $7
#define t7 $8
#define s0 $9
#define s1 $10
#define s2 $11
#define s3 $12
#define s4 $13
#define s5 $14
#define fp $15
#define a0 $16
#define a1 $17
#define a2 $18
#define a3 $19
#define a4 $20
#define a5 $21
#define t8 $22
#define t9 $23
#define t10 $24
#define t11 $25
#define ra $26
#define t12 $27 /* t12 and pv are both used for $27 */
#define pv $27 /* t12 and pv are both used for $27 */
#define at $28
#define gp $29
#define sp $30
#define zero $31
#endif /* _MACHINE_ASM_H */

View file

@ -1,14 +0,0 @@
/*
* arch/i386/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned int regs[10];
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/arm/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,45 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#include <endian.h>
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
* Note: The kernel zero's the padded region because glibc might read them
* in the hope that the kernel has stretched to using larger sizes.
*/
struct stat {
unsigned long long st_dev;
unsigned char __pad0[4];
unsigned long __st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned long st_uid;
unsigned long st_gid;
unsigned long long st_rdev;
unsigned char __pad3[4];
long long st_size;
unsigned long st_blksize;
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned long __pad4; /* Future possible st_blocks hi bits */
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
#else /* Must be little */
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
unsigned long __pad4; /* Future possible st_blocks hi bits */
#endif
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long long st_ino;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/cris/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,24 +0,0 @@
/*
* arch/cris/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __r0;
unsigned long __r1;
unsigned long __r2;
unsigned long __r3;
unsigned long __r4;
unsigned long __r5;
unsigned long __r6;
unsigned long __r7;
unsigned long __r8;
unsigned long __sp;
unsigned long __srp;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _KLIBC_ARCHSETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/cris/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,37 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
*/
struct stat {
unsigned long long st_dev;
unsigned char __pad0[4];
unsigned long __st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned long st_uid;
unsigned long st_gid;
unsigned long long st_rdev;
unsigned char __pad3[4];
long long st_size;
unsigned long st_blksize;
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
unsigned long __pad4; /* future possible st_blocks high bits */
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long long st_ino;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/cris/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,19 +0,0 @@
/*
* arch/i386/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned int __ebx;
unsigned int __esp;
unsigned int __ebp;
unsigned int __esi;
unsigned int __edi;
unsigned int __eip;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/i386/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,37 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
*/
struct stat {
unsigned long long st_dev;
unsigned char __pad0[4];
unsigned long __st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned long st_uid;
unsigned long st_gid;
unsigned long long st_rdev;
unsigned char __pad3[4];
long long st_size;
unsigned long st_blksize;
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
unsigned long __pad4; /* future possible st_blocks high bits */
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long long st_ino;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/cris/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,16 +0,0 @@
/*
* arch/i386/include/klibc/diverr.h
*/
#ifndef _KLIBC_DIVERR_H
#define _KLIBC_DIVERR_H
#include <signal.h>
static __inline__ void
__divide_error(void)
{
asm volatile("divl %0" :: "rm" (0) : "eax", "edx");
}
#endif /* _KLIBC_DIVERR_H */

View file

@ -1,126 +0,0 @@
#ident "$Id: io.h,v 1.2 2004/01/25 07:49:39 hpa Exp $"
/* ----------------------------------------------------------------------- *
*
* Copyright 2004 H. Peter Anvin - All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall
* be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* ----------------------------------------------------------------------- */
/*
* sys/io.h for the i386 architecture
*
* Basic I/O macros
*/
#ifndef _SYS_IO_H
#define _SYS_IO_H 1
/* I/O-related system calls */
int iopl(int);
int ioperm(unsigned long, unsigned long, int);
/* Basic I/O macros */
static __inline__ void
outb(unsigned char __v, unsigned short __p)
{
asm volatile("outb %0,%1" : : "a" (__v), "dN" (__p));
}
static __inline__ void
outw(unsigned short __v, unsigned short __p)
{
asm volatile("outw %0,%1" : : "a" (__v), "dN" (__p));
}
static __inline__ void
outl(unsigned int __v, unsigned short __p)
{
asm volatile("outl %0,%1" : : "a" (__v), "dN" (__p));
}
static __inline__ unsigned char
inb(unsigned short __p)
{
unsigned char __v;
asm volatile("inb %1,%0" : "=a" (__v) : "dN" (__p));
return __v;
}
static __inline__ unsigned short
inw(unsigned short __p)
{
unsigned short __v;
asm volatile("inw %1,%0" : "=a" (__v) : "dN" (__p));
return __v;
}
static __inline__ unsigned int
inl(unsigned short __p)
{
unsigned int __v;
asm volatile("inl %1,%0" : "=a" (__v) : "dN" (__p));
return __v;
}
/* String I/O macros */
static __inline__ void
outsb (unsigned short __p, const void *__d, unsigned long __n)
{
asm volatile("cld; rep; outsb" : "+S" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
outsw (unsigned short __p, const void *__d, unsigned long __n)
{
asm volatile("cld; rep; outsw" : "+S" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
outsl (unsigned short __p, const void *__d, unsigned long __n)
{
asm volatile("cld; rep; outsl" : "+S" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
insb (unsigned short __p, void *__d, unsigned long __n)
{
asm volatile("cld; rep; insb" : "+D" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
insw (unsigned short __p, void *__d, unsigned long __n)
{
asm volatile("cld; rep; insw" : "+D" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
insl (unsigned short __p, void *__d, unsigned long __n)
{
asm volatile("cld; rep; insl" : "+D" (__d), "+c" (__n) : "d" (__p));
}
#endif /* _SYS_IO_H */

View file

@ -1,41 +0,0 @@
#ident "$Id: vm86.h,v 1.1 2004/01/25 01:34:28 hpa Exp $"
/* ----------------------------------------------------------------------- *
*
* Copyright 2004 H. Peter Anvin - All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall
* be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* ----------------------------------------------------------------------- */
/*
* sys/vm86.h for i386
*/
#ifndef _SYS_VM86_H
#define _SYS_VM86_H 1
#include <asm/vm86.h>
/* Actual system call */
int vm86(struct vm86_struct *);
#endif

View file

@ -1,17 +0,0 @@
/*
* arch/ia64/include/klibc/archsetjmp.h
*
* Code borrowed from the FreeBSD kernel.
*
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
/* User code must not depend on the internal representation of jmp_buf. */
#define _JBLEN 0x200
/* guaranteed 128-bit alignment! */
typedef char jmp_buf[_JBLEN] __attribute__ ((aligned (16)));
#endif

View file

@ -1,31 +0,0 @@
/*
* arch/ia64/include/klibc/archsignal.h
*
* Architecture-specific signal definitions.
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
#define _NSIG 64
#define _NSIG_BPW 64
#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
typedef struct {
unsigned long sig[_NSIG_WORDS];
} sigset_t;
struct sigaction {
union {
__sighandler_t _sa_handler;
void (*_sa_sigaction)(int, struct siginfo *, void *);
} _u;
sigset_t sa_mask;
int sa_flags;
};
#define sa_handler _u._sa_handler
#define sa_sigaction _u._sa_sigaction
#endif

View file

@ -1,24 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned long st_dev;
unsigned long st_ino;
unsigned long st_nlink;
unsigned int st_mode;
unsigned int st_uid;
unsigned int st_gid;
unsigned int __pad0;
unsigned long st_rdev;
unsigned long st_size;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long st_blksize;
long st_blocks;
unsigned long __unused[3];
};
#endif

View file

@ -1,218 +0,0 @@
/*
* arch/ia64/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
#define __IA64_BREAK "break 0x100000;;\n\t"
#define _syscall0(type,name) \
type \
name (void) \
{ \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = __NR_##name; \
long _retval; \
__asm __volatile (__IA64_BREAK \
: "=r" (_r8), "=r" (_r10), "=r" (_r15) \
: "2" (_r15) ASM_ARGS_0 \
: "memory" ASM_CLOBBERS_0); \
_retval = _r8; \
if (_r10 == -1) { \
errno = (_retval); \
_retval = -1; \
} \
return (type)_retval; \
}
#define _syscall1(type,name,type1,arg1) \
type \
name (type1 arg1) \
{ \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = __NR_##name; \
long _retval; \
LOAD_ARGS_1(arg1); \
__asm __volatile (__IA64_BREAK \
: "=r" (_r8), "=r" (_r10), "=r" (_r15), \
ASM_OUTARGS_1 \
: "2" (_r15) ASM_ARGS_1 \
: "memory" ASM_CLOBBERS_1); \
_retval = _r8; \
if (_r10 == -1) { \
errno = (_retval); \
_retval = -1; \
} \
return (type)_retval; \
}
#define _syscall2(type,name,type1,arg1,type2,arg2) \
type \
name (type1 arg1, type2 arg2) \
{ \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = __NR_##name; \
long _retval; \
LOAD_ARGS_2(arg1, arg2); \
__asm __volatile (__IA64_BREAK \
: "=r" (_r8), "=r" (_r10), "=r" (_r15), \
ASM_OUTARGS_2 \
: "2" (_r15) ASM_ARGS_2 \
: "memory" ASM_CLOBBERS_2); \
_retval = _r8; \
if (_r10 == -1) { \
errno = (_retval); \
_retval = -1; \
} \
return (type)_retval; \
}
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
type \
name (type1 arg1, type2 arg2, type3 arg3) \
{ \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = __NR_##name; \
long _retval; \
LOAD_ARGS_3(arg1, arg2, arg3); \
__asm __volatile (__IA64_BREAK \
: "=r" (_r8), "=r" (_r10), "=r" (_r15), \
ASM_OUTARGS_3 \
: "2" (_r15) ASM_ARGS_3 \
: "memory" ASM_CLOBBERS_3); \
_retval = _r8; \
if (_r10 == -1) { \
errno = (_retval); \
_retval = -1; \
} \
return (type)_retval; \
}
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
type \
name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = __NR_##name; \
long _retval; \
LOAD_ARGS_4(arg1, arg2, arg3, arg4); \
__asm __volatile (__IA64_BREAK \
: "=r" (_r8), "=r" (_r10), "=r" (_r15), \
ASM_OUTARGS_4 \
: "2" (_r15) ASM_ARGS_4 \
: "memory" ASM_CLOBBERS_4); \
_retval = _r8; \
if (_r10 == -1) { \
errno = (_retval); \
_retval = -1; \
} \
return (type)_retval; \
}
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
type \
name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
{ \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = __NR_##name; \
long _retval; \
LOAD_ARGS_5(arg1, arg2, arg3, arg4, arg5); \
__asm __volatile (__IA64_BREAK \
: "=r" (_r8), "=r" (_r10), "=r" (_r15), \
ASM_OUTARGS_5 \
: "2" (_r15) ASM_ARGS_5 \
: "memory" ASM_CLOBBERS_5); \
_retval = _r8; \
if (_r10 == -1) { \
errno = (_retval); \
_retval = -1; \
} \
return (type)_retval; \
}
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \
type \
name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \
{ \
register long _r8 asm ("r8"); \
register long _r10 asm ("r10"); \
register long _r15 asm ("r15") = __NR_##name; \
long _retval; \
LOAD_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6); \
__asm __volatile (__IA64_BREAK \
: "=r" (_r8), "=r" (_r10), "=r" (_r15), \
ASM_OUTARGS_6 \
: "2" (_r15) ASM_ARGS_6 \
: "memory" ASM_CLOBBERS_6); \
_retval = _r8; \
if (_r10 == -1) { \
errno = (_retval); \
_retval = -1; \
} \
return (type)_retval; \
}
#define LOAD_ARGS_0() do { } while (0)
#define LOAD_ARGS_1(out0) \
register long _out0 asm ("out0") = (long) (out0); \
LOAD_ARGS_0 ()
#define LOAD_ARGS_2(out0, out1) \
register long _out1 asm ("out1") = (long) (out1); \
LOAD_ARGS_1 (out0)
#define LOAD_ARGS_3(out0, out1, out2) \
register long _out2 asm ("out2") = (long) (out2); \
LOAD_ARGS_2 (out0, out1)
#define LOAD_ARGS_4(out0, out1, out2, out3) \
register long _out3 asm ("out3") = (long) (out3); \
LOAD_ARGS_3 (out0, out1, out2)
#define LOAD_ARGS_5(out0, out1, out2, out3, out4) \
register long _out4 asm ("out4") = (long) (out4); \
LOAD_ARGS_4 (out0, out1, out2, out3)
#define LOAD_ARGS_6(out0, out1, out2, out3, out4, out5) \
register long _out5 asm ("out5") = (long) (out5); \
LOAD_ARGS_5 (out0, out1, out2, out3, out4)
#define ASM_OUTARGS_1 "=r" (_out0)
#define ASM_OUTARGS_2 ASM_OUTARGS_1, "=r" (_out1)
#define ASM_OUTARGS_3 ASM_OUTARGS_2, "=r" (_out2)
#define ASM_OUTARGS_4 ASM_OUTARGS_3, "=r" (_out3)
#define ASM_OUTARGS_5 ASM_OUTARGS_4, "=r" (_out4)
#define ASM_OUTARGS_6 ASM_OUTARGS_5, "=r" (_out5)
#define ASM_ARGS_0
#define ASM_ARGS_1 ASM_ARGS_0, "3" (_out0)
#define ASM_ARGS_2 ASM_ARGS_1, "4" (_out1)
#define ASM_ARGS_3 ASM_ARGS_2, "5" (_out2)
#define ASM_ARGS_4 ASM_ARGS_3, "6" (_out3)
#define ASM_ARGS_5 ASM_ARGS_4, "7" (_out4)
#define ASM_ARGS_6 ASM_ARGS_5, "8" (_out5)
#define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0"
#define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1"
#define ASM_CLOBBERS_2 ASM_CLOBBERS_3, "out2"
#define ASM_CLOBBERS_3 ASM_CLOBBERS_4, "out3"
#define ASM_CLOBBERS_4 ASM_CLOBBERS_5, "out4"
#define ASM_CLOBBERS_5 ASM_CLOBBERS_6, "out5"
#define ASM_CLOBBERS_6 , "out6", "out7", \
/* Non-stacked integer registers, minus r8, r10, r15. */ \
"r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18", \
"r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", \
"r28", "r29", "r30", "r31", \
/* Predicate registers. */ \
"p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \
/* Non-rotating fp registers. */ \
"f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
/* Branch registers. */ \
"b6", "b7"
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,21 +0,0 @@
/*
* arch/m32r/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __r8;
unsigned long __r9;
unsigned long __r10;
unsigned long __r11;
unsigned long __r12;
unsigned long __r13;
unsigned long __r14;
unsigned long __r15;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _KLIBC_ARCHSETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/m32r/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,37 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
*/
struct stat {
unsigned long long st_dev;
unsigned char __pad0[4];
unsigned long __st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned long st_uid;
unsigned long st_gid;
unsigned long long st_rdev;
unsigned char __pad3[4];
long long st_size;
unsigned long st_blksize;
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
unsigned long __pad4; /* future possible st_blocks high bits */
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long long st_ino;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/m32r/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,13 +0,0 @@
/*
* arch/m68k/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,37 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
*/
struct stat {
unsigned long long st_dev;
unsigned char __pad1[2];
unsigned long __st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned long st_uid;
unsigned long st_gid;
unsigned long long st_rdev;
unsigned char __pad3[2];
long long st_size;
unsigned long st_blksize;
unsigned long __pad4; /* future possible st_blocks high bits */
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long long st_ino;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/m68k/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,87 +0,0 @@
/*
* arch/mips/include/klibc/archfcntl.h
*
* On MIPS, <asm/fcntl.h> isn't usable (compiling struct stat with
* the correct definitions doesn't "just work"), so we need to provide
* our own definitions.
*/
#ifndef _KLIBC_ARCHFCNTL_H
#define _KLIBC_ARCHFCNTL_H
#ifdef _ASM_FCNTL_H /* We were too late! */
# error "<asm/fcntl.h> included before <klibc/archfcntl.h>"
#endif
#define _ASM_FCNTL_H /* Keep <asm/fcntl.h> from getting included */
#define O_ACCMODE 0x0003
#define O_RDONLY 0x0000
#define O_WRONLY 0x0001
#define O_RDWR 0x0002
#define O_APPEND 0x0008
#define O_SYNC 0x0010
#define O_NONBLOCK 0x0080
#define O_CREAT 0x0100
#define O_TRUNC 0x0200
#define O_EXCL 0x0400
#define O_NOCTTY 0x0800
#define FASYNC 0x1000
#define O_LARGEFILE 0x2000
#define O_DIRECT 0x8000
#define O_DIRECTORY 0x10000
#define O_NOFOLLOW 0x20000
#define O_NOATIME 0x40000
#define O_NDELAY O_NONBLOCK
#define F_DUPFD 0
#define F_GETFD 1
#define F_SETFD 2
#define F_GETFL 3
#define F_SETFL 4
#define F_GETLK 14
#define F_SETLK 6
#define F_SETLKW 7
#define F_SETOWN 24
#define F_GETOWN 23
#define F_SETSIG 10
#define F_GETSIG 11
#define F_GETLK64 33
#define F_SETLK64 34
#define F_SETLKW64 35
#define FD_CLOEXEC 1
#define F_RDLCK 0
#define F_WRLCK 1
#define F_UNLCK 2
#define F_EXLCK 4
#define F_SHLCK 8
#define F_INPROGRESS 16
#define LOCK_SH 1
#define LOCK_EX 2
#define LOCK_NB 4
#define LOCK_UN 8
#define LOCK_MAND 32
#define LOCK_READ 64
#define LOCK_WRITE 128
#define LOCK_RW 192
typedef struct flock {
short l_type;
short l_whence;
loff_t l_start;
loff_t l_len;
pid_t l_pid;
} flock_t;
#define F_LINUX_SPECIFIC_BASE 1024
#endif /* _KLIBC_ARCHFCNTL_H */

View file

@ -1,39 +0,0 @@
/*
* arch/mips/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __s0;
unsigned long __s1;
unsigned long __s2;
unsigned long __s3;
unsigned long __s4;
unsigned long __s5;
unsigned long __s6;
unsigned long __s7;
unsigned long __gp;
unsigned long __sp;
unsigned long __s8;
unsigned long __ra;
unsigned long __f20;
unsigned long __f21;
unsigned long __f22;
unsigned long __f23;
unsigned long __f24;
unsigned long __f25;
unsigned long __f26;
unsigned long __f27;
unsigned long __f28;
unsigned long __f29;
unsigned long __f30;
unsigned long __f31;
unsigned long __fcr31;
unsigned long __unused;
} __attribute__((aligned(8)));
typedef struct __jmp_buf jmp_buf[1];
#endif /* _KLIBC_ARCHSETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/mips/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,39 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
/*
* This matches struct stat64 in glibc2.1, hence the absolutely insane
* amounts of padding around dev_t's. The memory layout is the same as of
* struct stat of the 64-bit kernel.
*/
struct stat {
unsigned long st_dev;
unsigned long st_pad0[3]; /* Reserved for st_dev expansion */
unsigned long long st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
unsigned long st_rdev;
unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */
long long st_size;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long st_blksize;
unsigned long st_pad2;
long long st_blocks;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/mips/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,11 +0,0 @@
/*
* arch/mips/include/machine/asm.h
*/
#ifndef _MACHINE_ASM_H
#define _MACHINE_ASM_H
#include <asm/regdef.h>
#include <asm/asm.h>
#endif /* _MACHINE_ASM_H */

View file

@ -1,20 +0,0 @@
/*
* arch/mips/include/sgidefs.h
*/
/* Some ABI constants */
#ifndef _SGIDEFS_H
#define _SGIDEFS_H
#define _MIPS_ISA_MIPS1 1
#define _MIPS_ISA_MIPS2 2
#define _MIPS_ISA_MIPS3 3
#define _MIPS_ISA_MIPS4 4
#define _MIPS_ISA_MIPS5 5
#define _MIPS_SIM_ABI32 1
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
#endif /* _SGIDEFS_H */

View file

@ -1 +0,0 @@
/* Included by <asm/page.h> but not actually needed */

View file

@ -1,13 +0,0 @@
/*
* arch/mips64/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,33 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned int st_dev;
unsigned int st_pad0[3]; /* Reserved for st_dev expansion */
unsigned long st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
unsigned int st_rdev;
unsigned int st_pad1[3]; /* Reserved for st_rdev expansion */
off_t st_size;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned int st_blksize;
unsigned int st_pad2;
unsigned long st_blocks;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/mips64/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,14 +0,0 @@
/*
* arch/parisc/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
double regs[21];
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,24 +0,0 @@
/*
* arch/parisc/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
#define _NSIG 64
#define _NSIG_SZ (_NSIG / LONG_BIT)
typedef struct {
unsigned long sig[_NSIG_SZ];
} sigset_t;
struct sigaction {
__sighandler_t sa_handler;
unsigned long sa_flags;
sigset_t sa_mask;
};
#endif

View file

@ -1,27 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned long long st_dev;
unsigned int __pad1;
unsigned int __st_ino; /* Not actually filled in */
unsigned int st_mode;
unsigned int st_nlink;
unsigned int st_uid;
unsigned int st_gid;
unsigned long long st_rdev;
unsigned int __pad2;
signed long long st_size;
signed int st_blksize;
signed long long st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long long st_ino;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/parisc/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,36 +0,0 @@
/*
* arch/ppc/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __r2;
unsigned long __sp;
unsigned long __lr;
unsigned long __cr;
unsigned long __r13;
unsigned long __r14;
unsigned long __r15;
unsigned long __r16;
unsigned long __r17;
unsigned long __r18;
unsigned long __r19;
unsigned long __r20;
unsigned long __r21;
unsigned long __r22;
unsigned long __r23;
unsigned long __r24;
unsigned long __r25;
unsigned long __r26;
unsigned long __r27;
unsigned long __r28;
unsigned long __r29;
unsigned long __r30;
unsigned long __r31;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/ppc/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,28 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1.
*/
struct stat {
unsigned long long st_dev; /* Device. */
unsigned long long st_ino; /* File serial number. */
unsigned int st_mode; /* File mode. */
unsigned int st_nlink; /* Link count. */
unsigned int st_uid; /* User ID of the file's owner. */
unsigned int st_gid; /* Group ID of the file's group. */
unsigned long long st_rdev; /* Device number, if device. */
unsigned short int __pad2;
long long st_size; /* Size of file, in bytes. */
long st_blksize; /* Optimal block size for I/O. */
long long st_blocks; /* Number 512-byte blocks allocated. */
struct timespec st_atim; /* Time of last access. */
struct timespec st_mtim; /* Time of last modification. */
struct timespec st_ctim; /* Time of last status change. */
unsigned long int __unused4;
unsigned long int __unused5;
};
#endif

View file

@ -1,61 +0,0 @@
/*
* arch/ppc/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* PowerPC seems to lack _syscall6() in its headers */
/* This seems to work on both 32- and 64-bit ppc */
#ifndef _syscall6
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
type5,arg5,type6,arg6) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \
{ \
unsigned long __sc_ret, __sc_err; \
{ \
register unsigned long __sc_0 __asm__ ("r0"); \
register unsigned long __sc_3 __asm__ ("r3"); \
register unsigned long __sc_4 __asm__ ("r4"); \
register unsigned long __sc_5 __asm__ ("r5"); \
register unsigned long __sc_6 __asm__ ("r6"); \
register unsigned long __sc_7 __asm__ ("r7"); \
register unsigned long __sc_8 __asm__ ("r8"); \
\
__sc_3 = (unsigned long) (arg1); \
__sc_4 = (unsigned long) (arg2); \
__sc_5 = (unsigned long) (arg3); \
__sc_6 = (unsigned long) (arg4); \
__sc_7 = (unsigned long) (arg5); \
__sc_8 = (unsigned long) (arg6); \
__sc_0 = __NR_##name; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %1 " \
: "+r" (__sc_3), \
"+r" (__sc_0), \
"+r" (__sc_4), \
"+r" (__sc_5), \
"+r" (__sc_6), \
"+r" (__sc_7), \
"+r" (__sc_8) \
: : "cr0", "ctr", "memory", \
"r9", "r10", "r11", "r12"); \
__sc_ret = __sc_3; \
__sc_err = __sc_0; \
} \
if (__sc_err & 0x10000000) \
{ \
errno = (int)__sc_ret; \
__sc_ret = -1; \
} \
return (type)__sc_ret; \
}
#endif /* _syscall6() missing */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,36 +0,0 @@
/*
* arch/ppc64/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __r2;
unsigned long __sp;
unsigned long __lr;
unsigned long __cr;
unsigned long __r13;
unsigned long __r14;
unsigned long __r15;
unsigned long __r16;
unsigned long __r17;
unsigned long __r18;
unsigned long __r19;
unsigned long __r20;
unsigned long __r21;
unsigned long __r22;
unsigned long __r23;
unsigned long __r24;
unsigned long __r25;
unsigned long __r26;
unsigned long __r27;
unsigned long __r28;
unsigned long __r29;
unsigned long __r30;
unsigned long __r31;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/ppc64/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,25 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned long st_dev;
ino_t st_ino;
nlink_t st_nlink;
mode_t st_mode;
uid_t st_uid;
gid_t st_gid;
unsigned long st_rdev;
off_t st_size;
unsigned long st_blksize;
unsigned long st_blocks;
struct timespec st_atim; /* Time of last access. */
struct timespec st_mtim; /* Time of last modification. */
struct timespec st_ctim; /* Time of last status change. */
unsigned long __unused4;
unsigned long __unused5;
unsigned long __unused6;
};
#endif

View file

@ -1,52 +0,0 @@
/*
* arch/ppc64/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
#ifndef _syscall6
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
type5,arg5,type6,arg6) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \
{ \
unsigned long __sc_ret, __sc_err; \
{ \
register unsigned long __sc_0 __asm__ ("r0"); \
register unsigned long __sc_3 __asm__ ("r3"); \
register unsigned long __sc_4 __asm__ ("r4"); \
register unsigned long __sc_5 __asm__ ("r5"); \
register unsigned long __sc_6 __asm__ ("r6"); \
register unsigned long __sc_7 __asm__ ("r7"); \
register unsigned long __sc_8 __asm__ ("r8"); \
\
__sc_3 = (unsigned long) (arg1); \
__sc_4 = (unsigned long) (arg2); \
__sc_5 = (unsigned long) (arg3); \
__sc_6 = (unsigned long) (arg4); \
__sc_7 = (unsigned long) (arg5); \
__sc_8 = (unsigned long) (arg6); \
__sc_0 = __NR_##name; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %1 " \
: "=&r" (__sc_3), "=&r" (__sc_0) \
: "0" (__sc_3), "1" (__sc_0), \
"r" (__sc_4), \
"r" (__sc_5), \
"r" (__sc_6), \
"r" (__sc_7), \
"r" (__sc_8) \
: __syscall_clobbers); \
__sc_ret = __sc_3; \
__sc_err = __sc_0; \
} \
__syscall_return (type); \
}
#endif /* _syscall6() missing */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,15 +0,0 @@
/*
* arch/s390/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
uint32_t __gregs[10]; /* general registers r6-r15 */
uint64_t __fpregs[2]; /* fp registers f4 and f6 */
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/s390/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,31 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
*/
struct stat {
unsigned long long st_dev;
unsigned int __pad1;
#define STAT64_HAS_BROKEN_ST_INO 1
unsigned long __st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned long st_uid;
unsigned long st_gid;
unsigned long long st_rdev;
unsigned int __pad3;
long long st_size;
unsigned long st_blksize;
unsigned char __pad4[4];
unsigned long __pad5; /* future possible st_blocks high bits */
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long long st_ino;
};
#endif

View file

@ -1,41 +0,0 @@
/*
* arch/s390/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* S/390 only has five syscall parameters, and uses a structure for
6-argument syscalls. */
#ifndef _syscall6
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,\
type4,arg4,type5,arg5,type6,arg6) \
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \
type5 arg5, type6 arg6) { \
unsigned long __arg[6] = { \
(unsigned long) arg1, \
(unsigned long) arg2, \
(unsigned long) arg3, \
(unsigned long) arg4, \
(unsigned long) arg5, \
(unsigned long) arg6 \
}; \
register void *__argp asm("2") = &__arg; \
long __res; \
__asm__ __volatile__ ( \
" svc %b1\n" \
" lr %0,2" \
: "=d" (__res) \
: "i" (__NR_##name), \
"d" (__argp) \
: _svc_clobber); \
__syscall_return(type, __res); \
}
#endif /* _syscall6() missing */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,15 +0,0 @@
/*
* arch/s390x/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
uint64_t __gregs[10]; /* general registers r6-r15 */
uint64_t __fpregs[4]; /* fp registers f1, f3, f5, f7 */
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/s390x/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,24 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned long st_dev;
unsigned long st_ino;
unsigned long st_nlink;
unsigned int st_mode;
unsigned int st_uid;
unsigned int st_gid;
unsigned int __pad1;
unsigned long st_rdev;
unsigned long st_size;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long st_blksize;
long st_blocks;
unsigned long __unused[3];
};
#endif

View file

@ -1,41 +0,0 @@
/*
* arch/s390x/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* S/390X only has five syscall parameters, and uses a structure for
6-argument syscalls. */
#ifndef _syscall6
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,\
type4,arg4,type5,arg5,type6,arg6) \
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \
type5 arg5, type6 arg6) { \
unsigned long __arg[6] = { \
(unsigned long) arg1, \
(unsigned long) arg2, \
(unsigned long) arg3, \
(unsigned long) arg4, \
(unsigned long) arg5, \
(unsigned long) arg6 \
}; \
register void *__argp asm("2") = &__arg; \
long __res; \
__asm__ __volatile__ ( \
" svc %b1\n" \
" lgr %0,2" \
: "=d" (__res) \
: "i" (__NR_##name), \
"d" (__argp) \
: _svc_clobber); \
__syscall_return(type, __res); \
}
#endif /* _syscall6() missing */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,22 +0,0 @@
/*
* arch/sh/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long r8;
unsigned long r9;
unsigned long r10;
unsigned long r11;
unsigned long r12;
unsigned long r13;
unsigned long r14;
unsigned long r15;
unsigned long pr;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _KLIBC_ARCHSETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/sh/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,45 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#include <endian.h>
#define _STATBUF_ST_NSEC
/* This matches struct stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
*/
struct stat64 {
unsigned long long st_dev;
unsigned char __pad0[4];
unsigned long st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned long st_uid;
unsigned long st_gid;
unsigned long long st_rdev;
unsigned char __pad3[4];
long long st_size;
unsigned long st_blksize;
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned long __pad4; /* Future possible st_blocks hi bits */
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
#else /* Must be little */
unsigned long st_blocks; /* Number 512-byte blocks allocated. */
unsigned long __pad4; /* Future possible st_blocks hi bits */
#endif
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long __unused1;
unsigned long __unused2;
};
#endif

View file

@ -1,12 +0,0 @@
/*
* arch/sh/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* No special syscall definitions for this architecture */
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,16 +0,0 @@
/*
* arch/sparc/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __sp;
unsigned long __fp;
unsigned long __pc;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,38 +0,0 @@
/*
* arch/sparc/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* Hidden definitions */
struct __new_sigaction {
__sighandler_t sa_handler;
unsigned long sa_flags;
void (*sa_restorer)(void); /* Not used by Linux/SPARC */
__new_sigset_t sa_mask;
};
struct k_sigaction {
struct __new_sigaction sa;
void __user *ka_restorer;
};
struct __old_sigaction {
__sighandler_t sa_handler;
__old_sigset_t sa_mask;
unsigned long sa_flags;
void (*sa_restorer) (void); /* not used by Linux/SPARC */
};
typedef struct sigaltstack {
void __user *ss_sp;
int ss_flags;
size_t ss_size;
} stack_t;
#endif

View file

@ -1,35 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned long long st_dev;
unsigned long long st_ino;
unsigned int st_mode;
unsigned int st_nlink;
unsigned int st_uid;
unsigned int st_gid;
unsigned long long st_rdev;
unsigned char __pad3[8];
long long st_size;
unsigned int st_blksize;
unsigned char __pad4[8];
unsigned int st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned int __unused4;
unsigned int __unused5;
};
#endif

View file

@ -1,10 +0,0 @@
/*
* arch/sparc/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,192 +0,0 @@
/* $NetBSD: asm.h,v 1.14 2002/07/20 08:37:30 mrg Exp $ */
/*
* Copyright (c) 1994 Allen Briggs
* All rights reserved.
*
* Gleaned from locore.s and sun3 asm.h which had the following copyrights:
* locore.s:
* Copyright (c) 1988 University of Utah.
* Copyright (c) 1982, 1990 The Regents of the University of California.
* sun3/include/asm.h:
* Copyright (c) 1993 Adam Glass
* Copyright (c) 1990 The Regents of the University of California.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _ASM_H_
#define _ASM_H_
/* Pull in CCFSZ, CC64FSZ, and BIAS from frame.h */
#ifndef _LOCORE
#define _LOCORE
#endif
#include <machine/frame.h>
#ifdef __ELF__
#define _C_LABEL(name) name
#else
#ifdef __STDC__
#define _C_LABEL(name) _ ## name
#else
#define _C_LABEL(name) _/**/name
#endif
#endif
#define _ASM_LABEL(name) name
#ifdef PIC
/*
* PIC_PROLOGUE() is akin to the compiler generated function prologue for
* PIC code. It leaves the address of the Global Offset Table in DEST,
* clobbering register TMP in the process.
*
* We can use two code sequences. We can read the %pc or use the call
* instruction that saves the pc in %o7. Call requires the branch unit and
* IEU1, and clobbers %o7 which needs to be restored. This instruction
* sequence takes about 4 cycles due to instruction interdependence. Reading
* the pc takes 4 cycles to dispatch and is always dispatched alone. That
* sequence takes 7 cycles.
*/
#ifdef __arch64__
#define PIC_PROLOGUE(dest,tmp) \
mov %o7, tmp; \
sethi %hi(_GLOBAL_OFFSET_TABLE_-4),dest; \
call 0f; \
or dest,%lo(_GLOBAL_OFFSET_TABLE_+4),dest; \
0: \
add dest,%o7,dest; \
mov tmp, %o7
#else
#define PIC_PROLOGUE(dest,tmp) \
mov %o7,tmp; 3: call 4f; nop; 4: \
sethi %hi(_C_LABEL(_GLOBAL_OFFSET_TABLE_)-(3b-.)),dest; \
or dest,%lo(_C_LABEL(_GLOBAL_OFFSET_TABLE_)-(3b-.)),dest; \
add dest,%o7,dest; mov tmp,%o7
#endif
/*
* PICCY_SET() does the equivalent of a `set var, %dest' instruction in
* a PIC-like way, but without involving the Global Offset Table. This
* only works for VARs defined in the same file *and* in the text segment.
*/
#ifdef __arch64__
#define PICCY_SET(var,dest,tmp) \
3: rd %pc, tmp; add tmp,(var-3b),dest
#else
#define PICCY_SET(var,dest,tmp) \
mov %o7,tmp; 3: call 4f; nop; 4: \
add %o7,(var-3b),dest; mov tmp,%o7
#endif
#else
#define PIC_PROLOGUE(dest,tmp)
#define PICCY_OFFSET(var,dest,tmp)
#endif
#define FTYPE(x) .type x,@function
#define OTYPE(x) .type x,@object
#define _ENTRY(name) \
.align 4; .globl name; .proc 1; FTYPE(name); name:
#ifdef GPROF
/* see _MCOUNT_ENTRY in profile.h */
#ifdef __ELF__
#ifdef __arch64__
#define _PROF_PROLOGUE \
.data; .align 8; 1: .uaword 0; .uaword 0; \
.text; save %sp,-CC64FSZ,%sp; sethi %hi(1b),%o0; call _mcount; \
or %o0,%lo(1b),%o0; restore
#else
#define _PROF_PROLOGUE \
.data; .align 4; 1: .long 0; \
.text; save %sp,-96,%sp; sethi %hi(1b),%o0; call _mcount; \
or %o0,%lo(1b),%o0; restore
#endif
#else
#ifdef __arch64__
#define _PROF_PROLOGUE \
.data; .align 8; 1: .uaword 0; .uaword 0; \
.text; save %sp,-CC64FSZ,%sp; sethi %hi(1b),%o0; call mcount; \
or %o0,%lo(1b),%o0; restore
#else
#define _PROF_PROLOGUE \
.data; .align 4; 1: .long 0; \
.text; save %sp,-96,%sp; sethi %hi(1b),%o0; call mcount; \
or %o0,%lo(1b),%o0; restore
#endif
#endif
#else
#define _PROF_PROLOGUE
#endif
#define ENTRY(name) _ENTRY(_C_LABEL(name)); _PROF_PROLOGUE
#define ENTRY_NOPROFILE(name) _ENTRY(_C_LABEL(name))
#define ASENTRY(name) _ENTRY(_ASM_LABEL(name)); _PROF_PROLOGUE
#define FUNC(name) ASENTRY(name)
#define RODATA(name) .align 4; .text; .globl _C_LABEL(name); \
OTYPE(_C_LABEL(name)); _C_LABEL(name):
#define ASMSTR .asciz
#define RCSID(name) .asciz name
#ifdef __ELF__
#define WEAK_ALIAS(alias,sym) \
.weak alias; \
alias = sym
#endif
/*
* WARN_REFERENCES: create a warning if the specified symbol is referenced.
*/
#ifdef __ELF__
#ifdef __STDC__
#define WARN_REFERENCES(_sym,_msg) \
.section .gnu.warning. ## _sym ; .ascii _msg ; .text
#else
#define WARN_REFERENCES(_sym,_msg) \
.section .gnu.warning./**/_sym ; .ascii _msg ; .text
#endif /* __STDC__ */
#else
#ifdef __STDC__
#define __STRING(x) #x
#define WARN_REFERENCES(sym,msg) \
.stabs msg ## ,30,0,0,0 ; \
.stabs __STRING(_ ## sym) ## ,1,0,0,0
#else
#define __STRING(x) "x"
#define WARN_REFERENCES(sym,msg) \
.stabs msg,30,0,0,0 ; \
.stabs __STRING(_/**/sym),1,0,0,0
#endif /* __STDC__ */
#endif /* __ELF__ */
#endif /* _ASM_H_ */

View file

@ -1,138 +0,0 @@
/* $NetBSD: frame.h,v 1.4 2001/12/04 00:05:05 darrenr Exp $ */
/*
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
*
* This software was developed by the Computer Systems Engineering group
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
* contributed to Berkeley.
*
* All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Lawrence Berkeley Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)frame.h 8.1 (Berkeley) 6/11/93
*/
#if defined(_KERNEL_OPT)
#include "opt_sparc_arch.h"
#endif
/*
* Sparc stack frame format.
*
* Note that the contents of each stack frame may be held only in
* machine register windows. In order to get an accurate picture
* of the frame, you must first force the kernel to write any such
* windows to the stack.
*/
#ifndef _LOCORE
#ifndef SUN4U
struct frame {
int32_t fr_local[8]; /* space to save locals (%l0..%l7) */
int32_t fr_arg[6]; /* space to save arguments (%i0..%i5) */
struct frame *fr_fp; /* space to save frame pointer (%i6) */
int32_t fr_pc; /* space to save return pc (%i7) */
/*
* SunOS reserves another 8 words here; this is pointless
* but we do it for compatibility.
*/
int32_t fr_xxx; /* `structure return pointer' (unused) */
int32_t fr_argd[6]; /* `arg dump area' (lunacy) */
int32_t fr_argx[1]; /* arg extension (args 7..n; variable size) */
};
#else
struct frame32 {
int32_t fr_local[8]; /* space to save locals (%l0..%l7) */
int32_t fr_arg[6]; /* space to save arguments (%i0..%i5) */
u_int32_t fr_fp; /* space to save frame pointer (%i6) */
u_int32_t fr_pc; /* space to save return pc (%i7) */
/*
* SunOS reserves another 8 words here; this is pointless
* but we do it for compatibility.
*/
int32_t fr_xxx; /* `structure return pointer' (unused) */
int32_t fr_argd[6]; /* `arg dump area' (lunacy) */
int32_t fr_argx[1]; /* arg extension (args 7..n; variable size) */
};
#endif
#endif
/*
* CCFSZ (C Compiler Frame SiZe) is the size of a stack frame required if
* a function is to call C code. It should be just 64, but Sun defined
* their frame with space to hold arguments 0 through 5 (plus some junk),
* and varargs routines (such as kprintf) demand this, and gcc uses this
* area at times anyway.
*/
#define CCFSZ 96
/*
* Sparc v9 stack frame format.
*
* Note that the contents of each stack frame may be held only in
* machine register windows. In order to get an accurate picture
* of the frame, you must first force the kernel to write any such
* windows to the stack.
*
* V9 frames have an odd bias, so you can tall a v9 frame from
* a v8 frame by testing the stack pointer's lsb.
*/
#if !defined(_LOCORE) && !defined(_LIBC)
struct frame64 {
int64_t fr_local[8]; /* space to save locals (%l0..%l7) */
int64_t fr_arg[6]; /* space to save arguments (%i0..%i5) */
u_int64_t fr_fp; /* space to save frame pointer (%i6) */
u_int64_t fr_pc; /* space to save return pc (%i7) */
/*
* SVR4 reserves a bunch of extra stuff.
*/
int64_t fr_argd[6]; /* `register save area' (lunacy) */
int64_t fr_argx[0]; /* arg extension (args 7..n; variable size) */
};
#define v9next_frame(f) ((struct frame64*)(f->fr_fp+BIAS))
#endif
/*
* CC64FSZ (C Compiler 64-bit Frame SiZe) is the size of a stack frame used
* by the compiler in 64-bit mode. It is (16)*8; space for 8 ins, 8 outs.
*/
#define CC64FSZ 176
/*
* v9 stacks all have a bias of 2047 added to the %sp and %fp, so you can easily
* detect it by testing the register for an odd value. Why 2K-1 I don't know.
*/
#define BIAS (2048-1)

View file

@ -1,141 +0,0 @@
/* $NetBSD: trap.h,v 1.11 1999/01/20 00:15:08 pk Exp $ */
/*
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
*
* This software was developed by the Computer Systems Engineering group
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
* contributed to Berkeley.
*
* All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Lawrence Berkeley Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)trap.h 8.1 (Berkeley) 6/11/93
*/
/*
* Sun4m support by Aaron Brown, Harvard University.
* Changes Copyright (c) 1995 The President and Fellows of Harvard College.
* All rights reserved.
*/
#ifndef _MACHINE_TRAP_H
#define _MACHINE_TRAP_H
/* trap vec (pri) description */
#define T_RESET 0x00 /* (1) not actually vectored; jumps to 0 */
#define T_TEXTFAULT 0x01 /* (2) address fault during instr fetch */
#define T_ILLINST 0x02 /* (3) illegal instruction */
#define T_PRIVINST 0x03 /* (4) privileged instruction */
#define T_FPDISABLED 0x04 /* (5) fp instr while fp disabled */
#define T_WINOF 0x05 /* (6) register window overflow */
#define T_WINUF 0x06 /* (7) register window underflow */
#define T_ALIGN 0x07 /* (8) address not properly aligned */
#define T_FPE 0x08 /* (9) floating point exception */
#define T_DATAFAULT 0x09 /* (10) address fault during data fetch */
#define T_TAGOF 0x0a /* (11) tag overflow */
/* 0x0b unused */
/* 0x0c unused */
/* 0x0d unused */
/* 0x0e unused */
/* 0x0f unused */
/* 0x10 unused */
#define T_L1INT 0x11 /* (27) level 1 interrupt */
#define T_L2INT 0x12 /* (26) level 2 interrupt */
#define T_L3INT 0x13 /* (25) level 3 interrupt */
#define T_L4INT 0x14 /* (24) level 4 interrupt */
#define T_L5INT 0x15 /* (23) level 5 interrupt */
#define T_L6INT 0x16 /* (22) level 6 interrupt */
#define T_L7INT 0x17 /* (21) level 7 interrupt */
#define T_L8INT 0x18 /* (20) level 8 interrupt */
#define T_L9INT 0x19 /* (19) level 9 interrupt */
#define T_L10INT 0x1a /* (18) level 10 interrupt */
#define T_L11INT 0x1b /* (17) level 11 interrupt */
#define T_L12INT 0x1c /* (16) level 12 interrupt */
#define T_L13INT 0x1d /* (15) level 13 interrupt */
#define T_L14INT 0x1e /* (14) level 14 interrupt */
#define T_L15INT 0x1f /* (13) level 15 interrupt */
/* 0x20 unused */
/* through 0x23 unused */
#define T_CPDISABLED 0x24 /* (5) coprocessor instr while disabled */
#define T_UNIMPLFLUSH 0x25 /* Unimplemented FLUSH */
/* through 0x27 unused */
#define T_CPEXCEPTION 0x28 /* (9) coprocessor exception */
/* 0x29 unused */
#define T_IDIV0 0x2a /* divide by zero (from hw [su]div instr) */
#define T_STOREBUFFAULT 0x2b /* SuperSPARC: Store buffer copy-back fault */
/* 0x2c unused */
/* through 0x7f unused */
/* beginning of `user' vectors (from trap instructions) - all priority 12 */
#define T_SUN_SYSCALL 0x80 /* system call */
#define T_BREAKPOINT 0x81 /* breakpoint `instruction' */
#define T_DIV0 0x82 /* division routine was handed 0 */
#define T_FLUSHWIN 0x83 /* flush windows */
#define T_CLEANWIN 0x84 /* provide clean windows */
#define T_RANGECHECK 0x85 /* ? */
#define T_FIXALIGN 0x86 /* fix up unaligned accesses */
#define T_INTOF 0x87 /* integer overflow ? */
#define T_SVR4_SYSCALL 0x88 /* SVR4 system call */
#define T_BSD_SYSCALL 0x89 /* BSD system call */
#define T_KGDB_EXEC 0x8a /* for kernel gdb */
/* 0x8b..0xff are currently unallocated, except the following */
#define T_SVR4_GETCC 0xa0
#define T_SVR4_SETCC 0xa1
#define T_SVR4_GETPSR 0xa2
#define T_SVR4_SETPSR 0xa3
#define T_SVR4_GETHRTIME 0xa4
#define T_SVR4_GETHRVTIME 0xa5
#define T_SVR4_GETHRESTIME 0xa7
#ifdef _KERNEL /* pseudo traps for locore.s */
#define T_RWRET -1 /* need first user window for trap return */
#define T_AST -2 /* no-op, just needed reschedule or profile */
#endif
/* flags to system call (flags in %g1 along with syscall number) */
#define SYSCALL_G2RFLAG 0x400 /* on success, return to %g2 rather than npc */
#define SYSCALL_G7RFLAG 0x800 /* use %g7 as above (deprecated) */
/*
* `software trap' macros to keep people happy (sparc v8 manual says not
* to set the upper bits).
*/
#define ST_BREAKPOINT (T_BREAKPOINT & 0x7f)
#define ST_DIV0 (T_DIV0 & 0x7f)
#define ST_FLUSHWIN (T_FLUSHWIN & 0x7f)
#define ST_SYSCALL (T_SUN_SYSCALL & 0x7f)
#endif /* _MACHINE_TRAP_H_ */

View file

@ -1,16 +0,0 @@
/*
* arch/sparc64/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __sp;
unsigned long __fp;
unsigned long __pc;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,13 +0,0 @@
/*
* arch/sparc64/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* No special stuff for this architecture */
#endif

View file

@ -1,22 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
/* No nsec fields?! */
struct stat {
unsigned st_dev;
ino_t st_ino;
mode_t st_mode;
short st_nlink;
uid_t st_uid;
gid_t st_gid;
unsigned st_rdev;
off_t st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
off_t st_blksize;
off_t st_blocks;
unsigned long __unused4[2];
};
#endif

View file

@ -1,10 +0,0 @@
/*
* arch/sparc64/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,21 +0,0 @@
/*
* arch/x86_64/include/klibc/archsetjmp.h
*/
#ifndef _KLIBC_ARCHSETJMP_H
#define _KLIBC_ARCHSETJMP_H
struct __jmp_buf {
unsigned long __rbx;
unsigned long __rsp;
unsigned long __rbp;
unsigned long __r12;
unsigned long __r13;
unsigned long __r14;
unsigned long __r15;
unsigned long __rip;
};
typedef struct __jmp_buf jmp_buf[1];
#endif /* _SETJMP_H */

View file

@ -1,17 +0,0 @@
/*
* arch/x86_64/include/klibc/archsignal.h
*
* Architecture-specific signal definitions
*
*/
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
/* The x86-64 headers defines NSIG 32, but it's actually 64 */
#undef _NSIG
#undef NSIG
#define _NSIG 64
#define NSIG _NSIG
#endif

View file

@ -1,26 +0,0 @@
#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H
#define _STATBUF_ST_NSEC
struct stat {
unsigned long st_dev;
unsigned long st_ino;
unsigned long st_nlink;
unsigned int st_mode;
unsigned int st_uid;
unsigned int st_gid;
unsigned int __pad0;
unsigned long st_rdev;
long st_size;
long st_blksize;
long st_blocks; /* Number 512-byte blocks allocated. */
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
long __unused[3];
};
#endif

View file

@ -1,109 +0,0 @@
/*
* arch/x86_64/include/klibc/archsys.h
*
* Architecture-specific syscall definitions
*/
#ifndef _KLIBC_ARCHSYS_H
#define _KLIBC_ARCHSYS_H
/* The x86-64 syscall headers are needlessly inefficient */
#undef _syscall0
#undef _syscall1
#undef _syscall2
#undef _syscall3
#undef _syscall4
#undef _syscall5
#undef _syscall6
#define _syscall0(type,name) \
type name (void) \
{ \
long __res; \
__asm__ volatile (__syscall \
: "=a" (__res) \
: "0" (__NR_##name) \
: __syscall_clobber); \
__syscall_return(type,__res); \
}
#define _syscall1(type,name,type1,arg1) \
type name (type1 arg1) \
{ \
long __res; \
__asm__ volatile (__syscall \
: "=a" (__res) \
: "0" (__NR_##name),"D" (arg1) \
: __syscall_clobber); \
__syscall_return(type,__res); \
}
#define _syscall2(type,name,type1,arg1,type2,arg2) \
type name (type1 arg1,type2 arg2) \
{ \
long __res; \
__asm__ volatile (__syscall \
: "=a" (__res) \
: "0" (__NR_##name),"D" (arg1),"S" (arg2) \
: __syscall_clobber); \
__syscall_return(type,__res); \
}
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
type name (type1 arg1,type2 arg2,type3 arg3) \
{ \
long __res; \
__asm__ volatile (__syscall \
: "=a" (__res) \
: "0" (__NR_##name),"D" (arg1),"S" (arg2), \
"d" (arg3) \
: __syscall_clobber); \
__syscall_return(type,__res); \
}
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4) \
{ \
long __res; \
register type4 __r10 asm("%r10") = arg4; \
__asm__ volatile (__syscall \
: "=a" (__res) \
: "0" (__NR_##name),"D" (arg1),"S" (arg2), \
"d" (arg3),"r" (__r10) \
: __syscall_clobber); \
__syscall_return(type,__res); \
}
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
type5,arg5) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
{ \
long __res; \
register type4 __r10 asm("%r10") = arg4; \
register type5 __r8 asm("%r8") = arg5; \
__asm__ volatile (__syscall \
: "=a" (__res) \
: "0" (__NR_##name),"D" (arg1),"S" (arg2), \
"d" (arg3),"r" (__r10),"r" (__r8) \
: __syscall_clobber); \
__syscall_return(type,__res); \
}
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
type5,arg5,type6,arg6) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \
{ \
long __res; \
register type4 __r10 asm("%r10") = arg4; \
register type5 __r8 asm("%r8") = arg5; \
register type6 __r9 asm("%r9") = arg6; \
__asm__ volatile (__syscall \
: "=a" (__res) \
: "0" (__NR_##name),"D" (arg1),"S" (arg2), \
"d" (arg3),"r" (__r10),"r" (__r8), "r" (__r9) \
: __syscall_clobber); \
__syscall_return(type,__res); \
}
#endif /* _KLIBC_ARCHSYS_H */

View file

@ -1,126 +0,0 @@
#ident "$Id: io.h,v 1.1 2004/01/25 01:34:29 hpa Exp $"
/* ----------------------------------------------------------------------- *
*
* Copyright 2004 H. Peter Anvin - All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall
* be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* ----------------------------------------------------------------------- */
/*
* sys/io.h for the i386 architecture
*
* Basic I/O macros
*/
#ifndef _SYS_IO_H
#define _SYS_IO_H 1
/* I/O-related system calls */
int iopl(int);
int ioperm(unsigned long, unsigned long, int);
/* Basic I/O macros */
static __inline__ void
outb(unsigned char __v, unsigned short __p)
{
asm volatile("outb %0,%1" : : "a" (__v), "dN" (__p));
}
static __inline__ void
outw(unsigned short __v, unsigned short __p)
{
asm volatile("outw %0,%1" : : "a" (__v), "dN" (__p));
}
static __inline__ void
outl(unsigned int __v, unsigned short __p)
{
asm volatile("outl %0,%1" : : "a" (__v), "dN" (__p));
}
static __inline__ unsigned char
inb(unsigned short __p)
{
unsigned char __v;
asm volatile("inb %1,%0" : "=a" (__v) : "dN" (__p));
return v;
}
static __inline__ unsigned short
inw(unsigned short __p)
{
unsigned short __v;
asm volatile("inw %1,%0" : "=a" (__v) : "dN" (__p));
return v;
}
static __inline__ unsigned int
inl(unsigned short __p)
{
unsigned int __v;
asm volatile("inl %1,%0" : "=a" (__v) : "dN" (__p));
return v;
}
/* String I/O macros */
static __inline__ void
outsb (unsigned short __p, const void *__d, unsigned long __n)
{
asm volatile("cld; rep; outsb" : "+S" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
outsw (unsigned short __p, const void *__d, unsigned long __n)
{
asm volatile("cld; rep; outsw" : "+S" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
outsl (unsigned short __p, const void *__d, unsigned long __n)
{
asm volatile("cld; rep; outsl" : "+S" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
insb (unsigned short __p, void *__d, unsigned long __n)
{
asm volatile("cld; rep; insb" : "+D" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
insw (unsigned short __p, void *__d, unsigned long __n)
{
asm volatile("cld; rep; insw" : "+D" (__d), "+c" (__n) : "d" (__p));
}
static __inline__ void
insl (unsigned short __p, void *__d, unsigned long __n)
{
asm volatile("cld; rep; insl" : "+D" (__d), "+c" (__n) : "d" (__p));
}
#endif /* _SYS_IO_H */

View file

@ -1,24 +0,0 @@
/*
* arpa/inet.h
*/
#ifndef _ARPA_INET_H
#define _ARPA_INET_H
#include <klibc/extern.h>
#include <stdint.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netinet/in6.h>
__extern uint32_t inet_addr(const char *);
__extern int inet_aton(const char *, struct in_addr *);
__extern char *inet_ntoa(struct in_addr);
__extern int inet_pton(int, const char *, void *);
__extern const char *inet_ntop(int, const void *, char *, size_t);
__extern unsigned int inet_nsap_addr(const char *, unsigned char *, int);
__extern char *inet_nsap_ntoa(int, const unsigned char *, char *);
#endif /* _ARPA_INET_H */

View file

@ -1,22 +0,0 @@
/*
* assert.h
*/
#ifndef _ASSERT_H
#define _ASSERT_H
#ifdef NDEBUG
#define assert(x) ((void)(x))
#else
extern void __assert_fail(const char *, const char *,
unsigned int);
#define assert(x) ((x) ? (void)0 : __assert_fail(#x, __FILE__, __LINE__))
#endif
#endif /* _ASSERT_H */

View file

@ -1,3 +0,0 @@
#ifndef _BITSIZE
#define _BITSIZE 32
#endif

View file

@ -1,14 +0,0 @@
/*
* bits32/limits.h
*/
#ifndef _BITSIZE_LIMITS_H
#define _BITSIZE_LIMITS_H
#define LONG_BIT 32
#define LONG_MIN (-2147483647L-1)
#define LONG_MAX 2147483647L
#define ULONG_MAX 4294967295UL
#endif /* _BITSIZE_LIMITS_H */

View file

@ -1,18 +0,0 @@
/*
* bits32/stddef.h
*/
#ifndef _BITSIZE_STDDEF_H
#define _BITSIZE_STDDEF_H
#define _SIZE_T
#if defined(__s390__) || defined(__hppa__) || defined(__cris__)
typedef unsigned long size_t;
#else
typedef unsigned int size_t;
#endif
#define _PTRDIFF_T
typedef signed int ptrdiff_t;
#endif /* _BITSIZE_STDDEF_H */

View file

@ -1,34 +0,0 @@
/*
* bits32/stdint.h
*/
#ifndef _BITSIZE_STDINT_H
#define _BITSIZE_STDINT_H
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
typedef long long int int64_t;
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long int uint64_t;
typedef int int_fast16_t;
typedef int int_fast32_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
typedef int intptr_t;
typedef unsigned int uintptr_t;
#define __INT64_C(c) c ## LL
#define __UINT64_C(c) c ## ULL
#define __PRI64_RANK "ll"
#define __PRIFAST_RANK ""
#define __PRIPTR_RANK ""
#endif /* _BITSIZE_STDINT_H */

View file

@ -1,18 +0,0 @@
/*
* bits32/stdintconst.h
*/
#ifndef _BITSIZE_STDINTCONST_H
#define _BITSIZE_STDINTCONST_H
#define INT_FAST16_C(c) INT32_C(c)
#define INT_FAST32_C(c) INT32_C(c)
#define UINT_FAST16_C(c) UINT32_C(c)
#define UINT_FAST32_C(c) UINT32_C(c)
#define INTPTR_C(c) INT32_C(c)
#define UINTPTR_C(c) UINT32_C(c)
#define PTRDIFF_C(c) INT32_C(c)
#endif /* _BITSIZE_STDINTCONST_H */

View file

@ -1,22 +0,0 @@
/*
* bits32/stdintlimits.h
*/
#ifndef _BITSIZE_STDINTLIMITS_H
#define _BITSIZE_STDINTLIMITS_H
#define INT_FAST16_MIN INT32_MIN
#define INT_FAST32_MIN INT32_MIN
#define INT_FAST16_MAX INT32_MAX
#define INT_FAST32_MAX INT32_MAX
#define UINT_FAST16_MAX UINT32_MAX
#define UINT_FAST32_MAX UINT32_MAX
#define INTPTR_MIN INT32_MIN
#define INTPTR_MAX INT32_MAX
#define UINTPTR_MAX UINT32_MAX
#define PTRDIFF_MIN INT32_MIN
#define PTRDIFF_MAX INT32_MAX
#endif /* _BITSIZE_STDINTLIMITS_H */

View file

@ -1,3 +0,0 @@
#ifndef _BITSIZE
#define _BITSIZE 64
#endif

Some files were not shown because too many files have changed in this diff Show more