mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Move m68k from ports to libc
This commit is contained in:
24
sysdeps/unix/sysv/linux/m68k/Makefile
Normal file
24
sysdeps/unix/sysv/linux/m68k/Makefile
Normal file
@@ -0,0 +1,24 @@
|
||||
# Linux/m68k uses Motorola asm syntax and the ELF format.
|
||||
|
||||
m68k-syntax-flag = -DMOTOROLA_SYNTAX
|
||||
|
||||
ifeq ($(subdir),csu)
|
||||
sysdep_routines += m68k-helpers
|
||||
endif
|
||||
|
||||
ifeq ($(subdir),misc)
|
||||
sysdep_routines += mremap
|
||||
sysdep_headers += sys/reg.h
|
||||
endif
|
||||
|
||||
ifeq ($(subdir),elf)
|
||||
sysdep-dl-routines += dl-static
|
||||
sysdep_routines += dl-vdso libc-m68k-vdso dl-static
|
||||
sysdep-rtld-routines += m68k-vdso dl-static
|
||||
sysdep-others += lddlibc4
|
||||
install-bin += lddlibc4
|
||||
endif
|
||||
|
||||
ifeq ($(subdir),resource)
|
||||
sysdep_routines += oldgetrlimit64
|
||||
endif
|
||||
54
sysdeps/unix/sysv/linux/m68k/Versions
Normal file
54
sysdeps/unix/sysv/linux/m68k/Versions
Normal file
@@ -0,0 +1,54 @@
|
||||
ld {
|
||||
GLIBC_PRIVATE {
|
||||
_dl_var_init;
|
||||
}
|
||||
}
|
||||
libc {
|
||||
GLIBC_2.0 {
|
||||
# Exception handling support functions from libgcc
|
||||
__register_frame; __register_frame_table; __deregister_frame;
|
||||
__frame_state_for; __register_frame_info_table;
|
||||
|
||||
# c*
|
||||
cacheflush;
|
||||
}
|
||||
GLIBC_2.2 {
|
||||
# functions used in other libraries
|
||||
__xstat64; __fxstat64; __lxstat64;
|
||||
|
||||
# a*
|
||||
alphasort64;
|
||||
|
||||
# g*
|
||||
glob64;
|
||||
|
||||
# New rlimit interface
|
||||
getrlimit; setrlimit; getrlimit64;
|
||||
|
||||
# r*
|
||||
readdir64; readdir64_r;
|
||||
|
||||
# s*
|
||||
scandir64;
|
||||
|
||||
# v*
|
||||
versionsort64;
|
||||
}
|
||||
GLIBC_2.11 {
|
||||
fallocate64;
|
||||
}
|
||||
GLIBC_2.12 {
|
||||
__m68k_read_tp;
|
||||
}
|
||||
GLIBC_PRIVATE {
|
||||
__vdso_atomic_cmpxchg_32; __vdso_atomic_barrier;
|
||||
}
|
||||
}
|
||||
|
||||
ld {
|
||||
GLIBC_PRIVATE {
|
||||
__rtld___vdso_read_tp;
|
||||
__rtld___vdso_atomic_cmpxchg_32;
|
||||
__rtld___vdso_atomic_barrier;
|
||||
}
|
||||
}
|
||||
38
sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
Normal file
38
sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
Normal file
@@ -0,0 +1,38 @@
|
||||
/* Copyright (C) 2009-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <sysdep.h>
|
||||
#define __longjmp ____longjmp_chk
|
||||
#define CHECK_SP(sp) \
|
||||
do { \
|
||||
register unsigned long this_sp asm ("sp"); \
|
||||
if ((unsigned long) (sp) < this_sp) \
|
||||
{ \
|
||||
struct sigaltstack oss; \
|
||||
INTERNAL_SYSCALL_DECL (err); \
|
||||
int result = INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &oss); \
|
||||
if (!INTERNAL_SYSCALL_ERROR_P (result, err) \
|
||||
&& ((oss.ss_flags & SS_ONSTACK) == 0 \
|
||||
|| ((unsigned long) oss.ss_sp + oss.ss_size \
|
||||
- (unsigned long) (sp)) < oss.ss_size)) \
|
||||
__fortify_fail ("longjmp causes uninitialized stack frame"); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#include <__longjmp.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/alphasort64.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/alphasort64.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/alphasort64.c>
|
||||
3
sysdeps/unix/sysv/linux/m68k/bits/a.out.h
Normal file
3
sysdeps/unix/sysv/linux/m68k/bits/a.out.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#ifndef __A_OUT_GNU_H__
|
||||
# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
|
||||
#endif
|
||||
54
sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
Normal file
54
sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/* O_*, F_*, FD_* bit values for Linux.
|
||||
Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _FCNTL_H
|
||||
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
|
||||
#endif
|
||||
|
||||
#define __O_DIRECTORY 040000 /* Must be a directory. */
|
||||
#define __O_NOFOLLOW 0100000 /* Do not follow links. */
|
||||
#define __O_DIRECT 0200000 /* Direct disk access. */
|
||||
#define __O_LARGEFILE 0400000
|
||||
|
||||
struct flock
|
||||
{
|
||||
short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
|
||||
short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__off_t l_start; /* Offset where the lock begins. */
|
||||
__off_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
#else
|
||||
__off64_t l_start; /* Offset where the lock begins. */
|
||||
__off64_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
#endif
|
||||
__pid_t l_pid; /* Process holding the lock. */
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct flock64
|
||||
{
|
||||
short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
|
||||
short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
|
||||
__off64_t l_start; /* Offset where the lock begins. */
|
||||
__off64_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
__pid_t l_pid; /* Process holding the lock. */
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Include generic Linux declarations. */
|
||||
#include <bits/fcntl-linux.h>
|
||||
60
sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h
Normal file
60
sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/* Resolve function pointers to VDSO functions.
|
||||
Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
||||
#ifndef _M68K_VDSO_H
|
||||
#define _M68K_VDSO_H
|
||||
|
||||
#ifdef SHARED
|
||||
|
||||
# ifdef IS_IN_rtld
|
||||
# define M68K_VDSO_SYMBOL(name) __rtld_##name
|
||||
# define STR_M68K_VDSO_SYMBOL(name) "__rtld_" #name
|
||||
# else
|
||||
# define M68K_VDSO_SYMBOL(name) name
|
||||
# define STR_M68K_VDSO_SYMBOL(name) #name
|
||||
# endif
|
||||
|
||||
# ifndef __ASSEMBLER__
|
||||
|
||||
/* We define __rtld_* copies for rtld.
|
||||
We need them visible in libc to initialize. */
|
||||
# if defined IS_IN_rtld || !defined NOT_IN_libc
|
||||
extern void *__rtld___vdso_read_tp;
|
||||
extern void *__rtld___vdso_atomic_cmpxchg_32;
|
||||
extern void *__rtld___vdso_atomic_barrier;
|
||||
|
||||
/* These stubs are meant to be invoked only from the assembly. */
|
||||
extern void __vdso_read_tp_stub (void);
|
||||
extern void __vdso_atomic_cmpxchg_32_stub (void);
|
||||
extern void __vdso_atomic_barrier_stub (void);
|
||||
# endif /* IS_IN_rtld || !NOT_IN_libc */
|
||||
|
||||
/* RTLD should only use its own copies. */
|
||||
# ifndef IS_IN_rtld
|
||||
extern void *__vdso_read_tp;
|
||||
extern void *__vdso_atomic_cmpxchg_32;
|
||||
extern void *__vdso_atomic_barrier;
|
||||
# endif /* !IS_IN_rtld */
|
||||
|
||||
# endif /* !__ASSEMBLER__ */
|
||||
|
||||
#endif /* SHARED */
|
||||
|
||||
#endif /* _M68K_VDSO_H */
|
||||
40
sysdeps/unix/sysv/linux/m68k/bits/mman.h
Normal file
40
sysdeps/unix/sysv/linux/m68k/bits/mman.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Definitions for POSIX memory map interface. Linux/m68k version.
|
||||
Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_MMAN_H
|
||||
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
|
||||
#endif
|
||||
|
||||
/* The following definitions basically come from the kernel headers.
|
||||
But the kernel header is not namespace clean. */
|
||||
|
||||
/* These are Linux-specific. */
|
||||
#ifdef __USE_MISC
|
||||
# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
|
||||
# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
|
||||
# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
|
||||
# define MAP_LOCKED 0x02000 /* Lock the mapping. */
|
||||
# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
|
||||
# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
|
||||
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
|
||||
# define MAP_STACK 0x20000 /* Allocation is for a stack. */
|
||||
# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
|
||||
#endif
|
||||
|
||||
/* Include generic Linux declarations. */
|
||||
#include <bits/mman-linux.h>
|
||||
49
sysdeps/unix/sysv/linux/m68k/bits/poll.h
Normal file
49
sysdeps/unix/sysv/linux/m68k/bits/poll.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SYS_POLL_H
|
||||
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
|
||||
#endif
|
||||
|
||||
/* Event types that can be polled for. These bits may be set in `events'
|
||||
to indicate the interesting event types; they will appear in `revents'
|
||||
to indicate the status of the file descriptor. */
|
||||
#define POLLIN 0x001 /* There is data to read. */
|
||||
#define POLLPRI 0x002 /* There is urgent data to read. */
|
||||
#define POLLOUT 0x004 /* Writing now will not block. */
|
||||
|
||||
#if defined __USE_XOPEN || defined __USE_XOPEN2K8
|
||||
/* These values are defined in XPG4.2. */
|
||||
# define POLLRDNORM 0x040 /* Normal data may be read. */
|
||||
# define POLLRDBAND 0x080 /* Priority data may be read. */
|
||||
# define POLLWRNORM POLLOUT /* Writing now will not block. */
|
||||
# define POLLWRBAND 0x100 /* Priority data may be written. */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
/* These are extensions for Linux. */
|
||||
# define POLLMSG 0x400
|
||||
# define POLLREMOVE 0x1000
|
||||
# define POLLRDHUP 0x2000
|
||||
#endif
|
||||
|
||||
/* Event types always implicitly polled for. These bits need not be set in
|
||||
`events', but they will appear in `revents' to indicate the status of
|
||||
the file descriptor. */
|
||||
#define POLLERR 0x008 /* Error condition. */
|
||||
#define POLLHUP 0x010 /* Hung up. */
|
||||
#define POLLNVAL 0x020 /* Invalid polling request. */
|
||||
172
sysdeps/unix/sysv/linux/m68k/bits/stat.h
Normal file
172
sysdeps/unix/sysv/linux/m68k/bits/stat.h
Normal file
@@ -0,0 +1,172 @@
|
||||
/* Copyright (C) 1992-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if !defined _SYS_STAT_H && !defined _FCNTL_H
|
||||
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_STAT_H
|
||||
#define _BITS_STAT_H 1
|
||||
|
||||
/* Versions of the `struct stat' data structure. */
|
||||
#define _STAT_VER_LINUX_OLD 1
|
||||
#define _STAT_VER_KERNEL 1
|
||||
#define _STAT_VER_SVR4 2
|
||||
#define _STAT_VER_LINUX 3
|
||||
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
|
||||
|
||||
/* Versions of the `xmknod' interface. */
|
||||
#define _MKNOD_VER_LINUX 1
|
||||
#define _MKNOD_VER_SVR4 2
|
||||
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
|
||||
|
||||
|
||||
struct stat
|
||||
{
|
||||
__dev_t st_dev; /* Device. */
|
||||
unsigned short int __pad1;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__ino_t st_ino; /* File serial number. */
|
||||
#else
|
||||
__ino_t __st_ino; /* 32bit file serial number. */
|
||||
#endif
|
||||
__mode_t st_mode; /* File mode. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group.*/
|
||||
__dev_t st_rdev; /* Device number, if device. */
|
||||
unsigned short int __pad2;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__off_t st_size; /* Size of file, in bytes. */
|
||||
#else
|
||||
__off64_t st_size; /* Size of file, in bytes. */
|
||||
#endif
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
#else
|
||||
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
#endif
|
||||
#if defined __USE_MISC || defined __USE_XOPEN2K8
|
||||
/* Nanosecond resolution timestamps are stored in a format
|
||||
equivalent to 'struct timespec'. This is the type used
|
||||
whenever possible but the Unix namespace rules do not allow the
|
||||
identifier 'timespec' to appear in the <sys/stat.h> header.
|
||||
Therefore we have to handle the use of this header in strictly
|
||||
standard-compliant sources special. */
|
||||
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. */
|
||||
# define st_atime st_atim.tv_sec /* Backward compatibility. */
|
||||
# define st_mtime st_mtim.tv_sec
|
||||
# define st_ctime st_ctim.tv_sec
|
||||
#else
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
unsigned long int st_atimensec; /* Nscecs of last access. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
unsigned long int st_mtimensec; /* Nsecs of last modification. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
unsigned long int st_ctimensec; /* Nsecs of last status change. */
|
||||
#endif
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
unsigned long int __glibc_reserved4;
|
||||
unsigned long int __glibc_reserved5;
|
||||
#else
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct stat64
|
||||
{
|
||||
__dev_t st_dev; /* Device. */
|
||||
unsigned short int __pad1;
|
||||
|
||||
__ino_t __st_ino; /* 32bit file serial number. */
|
||||
__mode_t st_mode; /* File mode. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group.*/
|
||||
__dev_t st_rdev; /* Device number, if device. */
|
||||
unsigned short int __pad2;
|
||||
__off64_t st_size; /* Size of file, in bytes. */
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
|
||||
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
# if defined __USE_MISC || defined __USE_XOPEN2K8
|
||||
/* Nanosecond resolution timestamps are stored in a format
|
||||
equivalent to 'struct timespec'. This is the type used
|
||||
whenever possible but the Unix namespace rules do not allow the
|
||||
identifier 'timespec' to appear in the <sys/stat.h> header.
|
||||
Therefore we have to handle the use of this header in strictly
|
||||
standard-compliant sources special. */
|
||||
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. */
|
||||
# else
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
unsigned long int st_atimensec; /* Nscecs of last access. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
unsigned long int st_mtimensec; /* Nsecs of last modification. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
unsigned long int st_ctimensec; /* Nsecs of last status change. */
|
||||
# endif
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Tell code we have these members. */
|
||||
#define _STATBUF_ST_BLKSIZE
|
||||
#define _STATBUF_ST_RDEV
|
||||
/* Nanosecond resolution time values are supported. */
|
||||
#define _STATBUF_ST_NSEC
|
||||
|
||||
/* Encoding of the file mode. */
|
||||
|
||||
#define __S_IFMT 0170000 /* These bits determine file type. */
|
||||
|
||||
/* File types. */
|
||||
#define __S_IFDIR 0040000 /* Directory. */
|
||||
#define __S_IFCHR 0020000 /* Character device. */
|
||||
#define __S_IFBLK 0060000 /* Block device. */
|
||||
#define __S_IFREG 0100000 /* Regular file. */
|
||||
#define __S_IFIFO 0010000 /* FIFO. */
|
||||
#define __S_IFLNK 0120000 /* Symbolic link. */
|
||||
#define __S_IFSOCK 0140000 /* Socket. */
|
||||
|
||||
/* POSIX.1b objects. Note that these macros always evaluate to zero. But
|
||||
they do it by enforcing the correct use of the macros. */
|
||||
#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
|
||||
/* Protection bits. */
|
||||
|
||||
#define __S_ISUID 04000 /* Set user ID on execution. */
|
||||
#define __S_ISGID 02000 /* Set group ID on execution. */
|
||||
#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
|
||||
#define __S_IREAD 0400 /* Read by owner. */
|
||||
#define __S_IWRITE 0200 /* Write by owner. */
|
||||
#define __S_IEXEC 0100 /* Execute by owner. */
|
||||
|
||||
#ifdef __USE_ATFILE
|
||||
# define UTIME_NOW ((1l << 30) - 1l)
|
||||
# define UTIME_OMIT ((1l << 30) - 2l)
|
||||
#endif
|
||||
|
||||
#endif /* bits/stat.h */
|
||||
47
sysdeps/unix/sysv/linux/m68k/brk.c
Normal file
47
sysdeps/unix/sysv/linux/m68k/brk.c
Normal file
@@ -0,0 +1,47 @@
|
||||
/* brk system call for Linux/m68k.
|
||||
Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <sysdep.h>
|
||||
|
||||
void *__curbrk = 0;
|
||||
|
||||
/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
|
||||
to work around different old braindamage in the old Linux/x86 ELF
|
||||
dynamic linker. Sigh. */
|
||||
weak_alias (__curbrk, ___brk_addr)
|
||||
|
||||
int
|
||||
__brk (void *addr)
|
||||
{
|
||||
void *newbrk;
|
||||
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
newbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
|
||||
__curbrk = newbrk;
|
||||
|
||||
if (newbrk < addr)
|
||||
{
|
||||
__set_errno (ENOMEM);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
weak_alias (__brk, brk)
|
||||
134
sysdeps/unix/sysv/linux/m68k/clone.S
Normal file
134
sysdeps/unix/sysv/linux/m68k/clone.S
Normal file
@@ -0,0 +1,134 @@
|
||||
/* Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Schwab (schwab@issan.informatik.uni-dortmund.de)
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* clone() is even more special than fork() as it mucks with stacks
|
||||
and invokes a function in the right context after its all over. */
|
||||
|
||||
#include <sysdep.h>
|
||||
#define _ERRNO_H 1
|
||||
#include <bits/errno.h>
|
||||
#ifdef RESET_PID
|
||||
#include <tls.h>
|
||||
#endif
|
||||
|
||||
#define CLONE_VM 0x00000100
|
||||
#define CLONE_THREAD 0x00010000
|
||||
|
||||
/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
|
||||
void *parent_tidptr, void *tls, void *child_tidptr) */
|
||||
|
||||
.text
|
||||
ENTRY (__clone)
|
||||
|
||||
/* Sanity check arguments. */
|
||||
movel #-EINVAL, %d0
|
||||
movel 4(%sp), %a0 /* no NULL function pointers */
|
||||
tstl %a0
|
||||
jeq SYSCALL_ERROR_LABEL
|
||||
movel 8(%sp), %a1 /* no NULL stack pointers */
|
||||
tstl %a1
|
||||
jeq SYSCALL_ERROR_LABEL
|
||||
|
||||
/* Allocate space and copy the argument onto the new stack. */
|
||||
movel 16(%sp), -(%a1)
|
||||
|
||||
/* Do the system call */
|
||||
movel 12+0(%sp), %d1 /* get flags */
|
||||
movel %d3, -(%a1) /* save %d3 and get parent_tidptr */
|
||||
movel %d3, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%d3, 0)
|
||||
movel 20+4(%sp), %d3
|
||||
movel %d4, -(%a1) /* save %d4 and get child_tidptr */
|
||||
movel %d4, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%d4, 0)
|
||||
movel 28+8(%sp), %d4
|
||||
movel %d5, -(%a1) /* save %d5 and get tls */
|
||||
movel %d5, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%d5, 0)
|
||||
movel 24+12(%sp), %d5
|
||||
/* save %d2 and get stack pointer */
|
||||
#ifdef __mcoldfire__
|
||||
movel %d2, -(%a1)
|
||||
movel %d2, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%d2, 0)
|
||||
movel %a1, %d2
|
||||
#else
|
||||
exg %d2, %a1 /* save %d2 and get stack pointer */
|
||||
cfi_register (%d2, %a1)
|
||||
#endif
|
||||
movel #SYS_ify (clone), %d0
|
||||
|
||||
/* End FDE now, because in the child the unwind info will be
|
||||
wrong. */
|
||||
cfi_endproc
|
||||
|
||||
trap #0
|
||||
#ifdef __mcoldfire__
|
||||
movel (%sp)+, %d2
|
||||
#else
|
||||
exg %d2, %a1 /* restore %d2 */
|
||||
#endif
|
||||
movel (%sp)+, %d5 /* restore %d5, %d4 and %d3 */
|
||||
movel (%sp)+, %d4
|
||||
movel (%sp)+, %d3
|
||||
|
||||
tstl %d0
|
||||
jmi SYSCALL_ERROR_LABEL
|
||||
jeq thread_start
|
||||
|
||||
rts
|
||||
|
||||
thread_start:
|
||||
cfi_startproc
|
||||
cfi_undefined (pc) /* Mark end of stack */
|
||||
subl %fp, %fp /* terminate the stack frame */
|
||||
#ifdef RESET_PID
|
||||
/* Check and see if we need to reset the PID. */
|
||||
movel %d1, %a1
|
||||
andl #CLONE_THREAD, %d1
|
||||
jne donepid
|
||||
movel %a1, %d1
|
||||
movel #-1, %d0
|
||||
andl #CLONE_VM, %d1
|
||||
jne gotpid
|
||||
movel #SYS_ify (getpid), %d0
|
||||
trap #0
|
||||
gotpid:
|
||||
movel %a0, -(%sp)
|
||||
movel %d0, -(%sp)
|
||||
bsrl __m68k_read_tp@PLTPC
|
||||
movel (%sp)+, %d0
|
||||
movel %d0, PID_OFFSET(%a0)
|
||||
movel %d0, TID_OFFSET(%a0)
|
||||
movel (%sp)+, %a0
|
||||
donepid:
|
||||
#endif
|
||||
jsr (%a0)
|
||||
movel %d0, %d1
|
||||
movel #SYS_ify (exit), %d0
|
||||
trap #0
|
||||
cfi_endproc
|
||||
|
||||
cfi_startproc
|
||||
PSEUDO_END (__clone)
|
||||
|
||||
weak_alias (__clone, clone)
|
||||
104
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
Normal file
104
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
Normal file
@@ -0,0 +1,104 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _BITS_ATOMIC_H
|
||||
#define _BITS_ATOMIC_H 1
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sysdep.h>
|
||||
#include <bits/m68k-vdso.h>
|
||||
|
||||
/* Coldfire has no atomic compare-and-exchange operation, but the
|
||||
kernel provides userspace atomicity operations. Use them. */
|
||||
|
||||
typedef int32_t atomic32_t;
|
||||
typedef uint32_t uatomic32_t;
|
||||
typedef int_fast32_t atomic_fast32_t;
|
||||
typedef uint_fast32_t uatomic_fast32_t;
|
||||
|
||||
typedef intptr_t atomicptr_t;
|
||||
typedef uintptr_t uatomicptr_t;
|
||||
typedef intmax_t atomic_max_t;
|
||||
typedef uintmax_t uatomic_max_t;
|
||||
|
||||
/* The only basic operation needed is compare and exchange. */
|
||||
/* For ColdFire we'll have to trap into the kernel mode anyway,
|
||||
so trap from the library rather then from the kernel wrapper. */
|
||||
#ifdef SHARED
|
||||
# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
({ \
|
||||
/* Use temporary variables to workaround call-clobberness of \
|
||||
the registers. */ \
|
||||
__typeof (mem) _mem = mem; \
|
||||
__typeof (oldval) _oldval = oldval; \
|
||||
__typeof (newval) _newval = newval; \
|
||||
register __typeof (mem) _a0 asm ("a0") = _mem; \
|
||||
register __typeof (oldval) _d0 asm ("d0") = _oldval; \
|
||||
register __typeof (newval) _d1 asm ("d1") = _newval; \
|
||||
void *tmp; \
|
||||
\
|
||||
asm ("movel #_GLOBAL_OFFSET_TABLE_@GOTPC, %2\n\t" \
|
||||
"lea (-6, %%pc, %2), %2\n\t" \
|
||||
"movel " STR_M68K_VDSO_SYMBOL (__vdso_atomic_cmpxchg_32) \
|
||||
"@GOT(%2), %2\n\t" \
|
||||
"movel (%2), %2\n\t" \
|
||||
"jsr (%2)\n\t" \
|
||||
: "+d" (_d0), "+m" (*_a0), "=&a" (tmp) \
|
||||
: "a" (_a0), "d" (_d1)); \
|
||||
_d0; \
|
||||
})
|
||||
#else
|
||||
# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
({ \
|
||||
/* Use temporary variables to workaround call-clobberness of \
|
||||
the registers. */ \
|
||||
__typeof (mem) _mem = mem; \
|
||||
__typeof (oldval) _oldval = oldval; \
|
||||
__typeof (newval) _newval = newval; \
|
||||
register __typeof (oldval) _d0 asm ("d0") \
|
||||
= (__typeof (oldval)) SYS_ify (atomic_cmpxchg_32); \
|
||||
register __typeof (mem) _a0 asm ("a0") = _mem; \
|
||||
register __typeof (oldval) _d2 asm ("d2") = _oldval; \
|
||||
register __typeof (newval) _d1 asm ("d1") = _newval; \
|
||||
\
|
||||
asm ("trap #0" \
|
||||
: "+d" (_d0), "+m" (*_a0) \
|
||||
: "a" (_a0), "d" (_d2), "d" (_d1)); \
|
||||
_d0; \
|
||||
})
|
||||
#endif
|
||||
|
||||
#ifdef SHARED
|
||||
# define atomic_full_barrier() \
|
||||
({ \
|
||||
void *tmp; \
|
||||
\
|
||||
asm ("movel #_GLOBAL_OFFSET_TABLE_@GOTPC, %0\n\t" \
|
||||
"lea (-6, %pc, %0), %0\n\t" \
|
||||
"movel " STR_M68K_VDSO_SYMBOL (__vdso_atomic_barrier) \
|
||||
"@GOT(%0), %0\n\t" \
|
||||
"movel (%0), %0\n\t" \
|
||||
"jsr (%0)\n\t" \
|
||||
: "=&a" (tmp)); \
|
||||
})
|
||||
#else
|
||||
# define atomic_full_barrier() \
|
||||
(INTERNAL_SYSCALL (atomic_barrier, , 0), (void) 0)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
12
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/ld.abilist
Normal file
12
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/ld.abilist
Normal file
@@ -0,0 +1,12 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
__libc_memalign F
|
||||
__libc_stack_end D 0x4
|
||||
__stack_chk_guard D 0x4
|
||||
__tls_get_addr F
|
||||
_dl_mcount F
|
||||
_r_debug D 0x14
|
||||
calloc F
|
||||
free F
|
||||
malloc F
|
||||
realloc F
|
||||
@@ -0,0 +1,3 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
__ctype_get_mb_cur_max F
|
||||
@@ -0,0 +1,6 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
gai_cancel F
|
||||
gai_error F
|
||||
gai_suspend F
|
||||
getaddrinfo_a F
|
||||
2124
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
Normal file
2124
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
crypt F
|
||||
crypt_r F
|
||||
encrypt F
|
||||
encrypt_r F
|
||||
fcrypt F
|
||||
setkey F
|
||||
setkey_r F
|
||||
11
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libdl.abilist
Normal file
11
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libdl.abilist
Normal file
@@ -0,0 +1,11 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
dladdr F
|
||||
dladdr1 F
|
||||
dlclose F
|
||||
dlerror F
|
||||
dlinfo F
|
||||
dlmopen F
|
||||
dlopen F
|
||||
dlsym F
|
||||
dlvsym F
|
||||
374
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
Normal file
374
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
Normal file
@@ -0,0 +1,374 @@
|
||||
GLIBC_2.15
|
||||
GLIBC_2.15 A
|
||||
__acos_finite F
|
||||
__acosf_finite F
|
||||
__acosh_finite F
|
||||
__acoshf_finite F
|
||||
__asin_finite F
|
||||
__asinf_finite F
|
||||
__atan2_finite F
|
||||
__atan2f_finite F
|
||||
__atanh_finite F
|
||||
__atanhf_finite F
|
||||
__cosh_finite F
|
||||
__coshf_finite F
|
||||
__exp10_finite F
|
||||
__exp10f_finite F
|
||||
__exp2_finite F
|
||||
__exp2f_finite F
|
||||
__exp_finite F
|
||||
__expf_finite F
|
||||
__fmod_finite F
|
||||
__fmodf_finite F
|
||||
__gamma_r_finite F
|
||||
__gammaf_r_finite F
|
||||
__hypot_finite F
|
||||
__hypotf_finite F
|
||||
__j0_finite F
|
||||
__j0f_finite F
|
||||
__j1_finite F
|
||||
__j1f_finite F
|
||||
__jn_finite F
|
||||
__jnf_finite F
|
||||
__lgamma_r_finite F
|
||||
__lgammaf_r_finite F
|
||||
__log10_finite F
|
||||
__log10f_finite F
|
||||
__log2_finite F
|
||||
__log2f_finite F
|
||||
__log_finite F
|
||||
__logf_finite F
|
||||
__pow_finite F
|
||||
__powf_finite F
|
||||
__remainder_finite F
|
||||
__remainderf_finite F
|
||||
__scalb_finite F
|
||||
__scalbf_finite F
|
||||
__sinh_finite F
|
||||
__sinhf_finite F
|
||||
__sqrt_finite F
|
||||
__sqrtf_finite F
|
||||
__y0_finite F
|
||||
__y0f_finite F
|
||||
__y1_finite F
|
||||
__y1f_finite F
|
||||
__yn_finite F
|
||||
__ynf_finite F
|
||||
GLIBC_2.18
|
||||
GLIBC_2.18 A
|
||||
__issignaling F
|
||||
__issignalingf F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
_LIB_VERSION D 0x4
|
||||
__clog10 F
|
||||
__clog10f F
|
||||
__clog10l F
|
||||
__finite F
|
||||
__finitef F
|
||||
__finitel F
|
||||
__fpclassify F
|
||||
__fpclassifyf F
|
||||
__signbit F
|
||||
__signbitf F
|
||||
acos F
|
||||
acosf F
|
||||
acosh F
|
||||
acoshf F
|
||||
acoshl F
|
||||
acosl F
|
||||
asin F
|
||||
asinf F
|
||||
asinh F
|
||||
asinhf F
|
||||
asinhl F
|
||||
asinl F
|
||||
atan F
|
||||
atan2 F
|
||||
atan2f F
|
||||
atan2l F
|
||||
atanf F
|
||||
atanh F
|
||||
atanhf F
|
||||
atanhl F
|
||||
atanl F
|
||||
cabs F
|
||||
cabsf F
|
||||
cabsl F
|
||||
cacos F
|
||||
cacosf F
|
||||
cacosh F
|
||||
cacoshf F
|
||||
cacoshl F
|
||||
cacosl F
|
||||
carg F
|
||||
cargf F
|
||||
cargl F
|
||||
casin F
|
||||
casinf F
|
||||
casinh F
|
||||
casinhf F
|
||||
casinhl F
|
||||
casinl F
|
||||
catan F
|
||||
catanf F
|
||||
catanh F
|
||||
catanhf F
|
||||
catanhl F
|
||||
catanl F
|
||||
cbrt F
|
||||
cbrtf F
|
||||
cbrtl F
|
||||
ccos F
|
||||
ccosf F
|
||||
ccosh F
|
||||
ccoshf F
|
||||
ccoshl F
|
||||
ccosl F
|
||||
ceil F
|
||||
ceilf F
|
||||
ceill F
|
||||
cexp F
|
||||
cexpf F
|
||||
cexpl F
|
||||
cimag F
|
||||
cimagf F
|
||||
cimagl F
|
||||
clog F
|
||||
clog10 F
|
||||
clog10f F
|
||||
clog10l F
|
||||
clogf F
|
||||
clogl F
|
||||
conj F
|
||||
conjf F
|
||||
conjl F
|
||||
copysign F
|
||||
copysignf F
|
||||
copysignl F
|
||||
cos F
|
||||
cosf F
|
||||
cosh F
|
||||
coshf F
|
||||
coshl F
|
||||
cosl F
|
||||
cpow F
|
||||
cpowf F
|
||||
cpowl F
|
||||
cproj F
|
||||
cprojf F
|
||||
cprojl F
|
||||
creal F
|
||||
crealf F
|
||||
creall F
|
||||
csin F
|
||||
csinf F
|
||||
csinh F
|
||||
csinhf F
|
||||
csinhl F
|
||||
csinl F
|
||||
csqrt F
|
||||
csqrtf F
|
||||
csqrtl F
|
||||
ctan F
|
||||
ctanf F
|
||||
ctanh F
|
||||
ctanhf F
|
||||
ctanhl F
|
||||
ctanl F
|
||||
drem F
|
||||
dremf F
|
||||
dreml F
|
||||
erf F
|
||||
erfc F
|
||||
erfcf F
|
||||
erfcl F
|
||||
erff F
|
||||
erfl F
|
||||
exp F
|
||||
exp10 F
|
||||
exp10f F
|
||||
exp10l F
|
||||
exp2 F
|
||||
exp2f F
|
||||
exp2l F
|
||||
expf F
|
||||
expl F
|
||||
expm1 F
|
||||
expm1f F
|
||||
expm1l F
|
||||
fabs F
|
||||
fabsf F
|
||||
fabsl F
|
||||
fdim F
|
||||
fdimf F
|
||||
fdiml F
|
||||
feclearexcept F
|
||||
fedisableexcept F
|
||||
feenableexcept F
|
||||
fegetenv F
|
||||
fegetexcept F
|
||||
fegetexceptflag F
|
||||
fegetround F
|
||||
feholdexcept F
|
||||
feraiseexcept F
|
||||
fesetenv F
|
||||
fesetexceptflag F
|
||||
fesetround F
|
||||
fetestexcept F
|
||||
feupdateenv F
|
||||
finite F
|
||||
finitef F
|
||||
finitel F
|
||||
floor F
|
||||
floorf F
|
||||
floorl F
|
||||
fma F
|
||||
fmaf F
|
||||
fmal F
|
||||
fmax F
|
||||
fmaxf F
|
||||
fmaxl F
|
||||
fmin F
|
||||
fminf F
|
||||
fminl F
|
||||
fmod F
|
||||
fmodf F
|
||||
fmodl F
|
||||
frexp F
|
||||
frexpf F
|
||||
frexpl F
|
||||
gamma F
|
||||
gammaf F
|
||||
gammal F
|
||||
hypot F
|
||||
hypotf F
|
||||
hypotl F
|
||||
ilogb F
|
||||
ilogbf F
|
||||
ilogbl F
|
||||
j0 F
|
||||
j0f F
|
||||
j0l F
|
||||
j1 F
|
||||
j1f F
|
||||
j1l F
|
||||
jn F
|
||||
jnf F
|
||||
jnl F
|
||||
ldexp F
|
||||
ldexpf F
|
||||
ldexpl F
|
||||
lgamma F
|
||||
lgamma_r F
|
||||
lgammaf F
|
||||
lgammaf_r F
|
||||
lgammal F
|
||||
lgammal_r F
|
||||
llrint F
|
||||
llrintf F
|
||||
llrintl F
|
||||
llround F
|
||||
llroundf F
|
||||
llroundl F
|
||||
log F
|
||||
log10 F
|
||||
log10f F
|
||||
log10l F
|
||||
log1p F
|
||||
log1pf F
|
||||
log1pl F
|
||||
log2 F
|
||||
log2f F
|
||||
log2l F
|
||||
logb F
|
||||
logbf F
|
||||
logbl F
|
||||
logf F
|
||||
logl F
|
||||
lrint F
|
||||
lrintf F
|
||||
lrintl F
|
||||
lround F
|
||||
lroundf F
|
||||
lroundl F
|
||||
matherr F
|
||||
modf F
|
||||
modff F
|
||||
modfl F
|
||||
nan F
|
||||
nanf F
|
||||
nanl F
|
||||
nearbyint F
|
||||
nearbyintf F
|
||||
nearbyintl F
|
||||
nextafter F
|
||||
nextafterf F
|
||||
nextafterl F
|
||||
nexttoward F
|
||||
nexttowardf F
|
||||
nexttowardl F
|
||||
pow F
|
||||
pow10 F
|
||||
pow10f F
|
||||
pow10l F
|
||||
powf F
|
||||
powl F
|
||||
remainder F
|
||||
remainderf F
|
||||
remainderl F
|
||||
remquo F
|
||||
remquof F
|
||||
remquol F
|
||||
rint F
|
||||
rintf F
|
||||
rintl F
|
||||
round F
|
||||
roundf F
|
||||
roundl F
|
||||
scalb F
|
||||
scalbf F
|
||||
scalbl F
|
||||
scalbln F
|
||||
scalblnf F
|
||||
scalblnl F
|
||||
scalbn F
|
||||
scalbnf F
|
||||
scalbnl F
|
||||
signgam D 0x4
|
||||
significand F
|
||||
significandf F
|
||||
significandl F
|
||||
sin F
|
||||
sincos F
|
||||
sincosf F
|
||||
sincosl F
|
||||
sinf F
|
||||
sinh F
|
||||
sinhf F
|
||||
sinhl F
|
||||
sinl F
|
||||
sqrt F
|
||||
sqrtf F
|
||||
sqrtl F
|
||||
tan F
|
||||
tanf F
|
||||
tanh F
|
||||
tanhf F
|
||||
tanhl F
|
||||
tanl F
|
||||
tgamma F
|
||||
tgammaf F
|
||||
tgammal F
|
||||
trunc F
|
||||
truncf F
|
||||
truncl F
|
||||
y0 F
|
||||
y0f F
|
||||
y0l F
|
||||
y1 F
|
||||
y1f F
|
||||
y1l F
|
||||
yn F
|
||||
ynf F
|
||||
ynl F
|
||||
123
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libnsl.abilist
Normal file
123
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libnsl.abilist
Normal file
@@ -0,0 +1,123 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
__free_fdresult F
|
||||
__nis_default_access F
|
||||
__nis_default_group F
|
||||
__nis_default_owner F
|
||||
__nis_default_ttl F
|
||||
__nis_finddirectory F
|
||||
__nis_hash F
|
||||
__nisbind_connect F
|
||||
__nisbind_create F
|
||||
__nisbind_destroy F
|
||||
__nisbind_next F
|
||||
__yp_check F
|
||||
nis_add F
|
||||
nis_add_entry F
|
||||
nis_addmember F
|
||||
nis_checkpoint F
|
||||
nis_clone_directory F
|
||||
nis_clone_object F
|
||||
nis_clone_result F
|
||||
nis_creategroup F
|
||||
nis_destroy_object F
|
||||
nis_destroygroup F
|
||||
nis_dir_cmp F
|
||||
nis_domain_of F
|
||||
nis_domain_of_r F
|
||||
nis_first_entry F
|
||||
nis_free_directory F
|
||||
nis_free_object F
|
||||
nis_free_request F
|
||||
nis_freenames F
|
||||
nis_freeresult F
|
||||
nis_freeservlist F
|
||||
nis_freetags F
|
||||
nis_getnames F
|
||||
nis_getservlist F
|
||||
nis_ismember F
|
||||
nis_leaf_of F
|
||||
nis_leaf_of_r F
|
||||
nis_lerror F
|
||||
nis_list F
|
||||
nis_local_directory F
|
||||
nis_local_group F
|
||||
nis_local_host F
|
||||
nis_local_principal F
|
||||
nis_lookup F
|
||||
nis_mkdir F
|
||||
nis_modify F
|
||||
nis_modify_entry F
|
||||
nis_name_of F
|
||||
nis_name_of_r F
|
||||
nis_next_entry F
|
||||
nis_perror F
|
||||
nis_ping F
|
||||
nis_print_directory F
|
||||
nis_print_entry F
|
||||
nis_print_group F
|
||||
nis_print_group_entry F
|
||||
nis_print_link F
|
||||
nis_print_object F
|
||||
nis_print_result F
|
||||
nis_print_rights F
|
||||
nis_print_table F
|
||||
nis_read_obj F
|
||||
nis_remove F
|
||||
nis_remove_entry F
|
||||
nis_removemember F
|
||||
nis_rmdir F
|
||||
nis_servstate F
|
||||
nis_sperrno F
|
||||
nis_sperror F
|
||||
nis_sperror_r F
|
||||
nis_stats F
|
||||
nis_verifygroup F
|
||||
nis_write_obj F
|
||||
readColdStartFile F
|
||||
writeColdStartFile F
|
||||
xdr_cback_data F
|
||||
xdr_domainname F
|
||||
xdr_keydat F
|
||||
xdr_mapname F
|
||||
xdr_obj_p F
|
||||
xdr_peername F
|
||||
xdr_valdat F
|
||||
xdr_yp_buf F
|
||||
xdr_ypall F
|
||||
xdr_ypbind_binding F
|
||||
xdr_ypbind_resp F
|
||||
xdr_ypbind_resptype F
|
||||
xdr_ypbind_setdom F
|
||||
xdr_ypdelete_args F
|
||||
xdr_ypmap_parms F
|
||||
xdr_ypmaplist F
|
||||
xdr_yppush_status F
|
||||
xdr_yppushresp_xfr F
|
||||
xdr_ypreq_key F
|
||||
xdr_ypreq_nokey F
|
||||
xdr_ypreq_xfr F
|
||||
xdr_ypresp_all F
|
||||
xdr_ypresp_key_val F
|
||||
xdr_ypresp_maplist F
|
||||
xdr_ypresp_master F
|
||||
xdr_ypresp_order F
|
||||
xdr_ypresp_val F
|
||||
xdr_ypresp_xfr F
|
||||
xdr_ypstat F
|
||||
xdr_ypupdate_args F
|
||||
xdr_ypxfrstat F
|
||||
yp_all F
|
||||
yp_bind F
|
||||
yp_first F
|
||||
yp_get_default_domain F
|
||||
yp_maplist F
|
||||
yp_master F
|
||||
yp_match F
|
||||
yp_next F
|
||||
yp_order F
|
||||
yp_unbind F
|
||||
yp_update F
|
||||
ypbinderr_string F
|
||||
yperr_string F
|
||||
ypprot_err F
|
||||
232
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libpthread.abilist
Normal file
232
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libpthread.abilist
Normal file
@@ -0,0 +1,232 @@
|
||||
GLIBC_2.11
|
||||
GLIBC_2.11 A
|
||||
pthread_sigqueue F
|
||||
GLIBC_2.12
|
||||
GLIBC_2.12 A
|
||||
pthread_getname_np F
|
||||
pthread_mutex_consistent F
|
||||
pthread_mutexattr_getrobust F
|
||||
pthread_mutexattr_setrobust F
|
||||
pthread_setname_np F
|
||||
GLIBC_2.18
|
||||
GLIBC_2.18 A
|
||||
pthread_getattr_default_np F
|
||||
pthread_setattr_default_np F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
_IO_flockfile F
|
||||
_IO_ftrylockfile F
|
||||
_IO_funlockfile F
|
||||
__close F
|
||||
__connect F
|
||||
__errno_location F
|
||||
__fcntl F
|
||||
__fork F
|
||||
__h_errno_location F
|
||||
__libc_allocate_rtsig F
|
||||
__libc_current_sigrtmax F
|
||||
__libc_current_sigrtmin F
|
||||
__lseek F
|
||||
__nanosleep F
|
||||
__open F
|
||||
__open64 F
|
||||
__pread64 F
|
||||
__pthread_cleanup_routine F
|
||||
__pthread_getspecific F
|
||||
__pthread_key_create F
|
||||
__pthread_mutex_destroy F
|
||||
__pthread_mutex_init F
|
||||
__pthread_mutex_lock F
|
||||
__pthread_mutex_trylock F
|
||||
__pthread_mutex_unlock F
|
||||
__pthread_mutexattr_destroy F
|
||||
__pthread_mutexattr_init F
|
||||
__pthread_mutexattr_settype F
|
||||
__pthread_once F
|
||||
__pthread_register_cancel F
|
||||
__pthread_register_cancel_defer F
|
||||
__pthread_rwlock_destroy F
|
||||
__pthread_rwlock_init F
|
||||
__pthread_rwlock_rdlock F
|
||||
__pthread_rwlock_tryrdlock F
|
||||
__pthread_rwlock_trywrlock F
|
||||
__pthread_rwlock_unlock F
|
||||
__pthread_rwlock_wrlock F
|
||||
__pthread_setspecific F
|
||||
__pthread_unregister_cancel F
|
||||
__pthread_unregister_cancel_restore F
|
||||
__pthread_unwind_next F
|
||||
__pwrite64 F
|
||||
__read F
|
||||
__res_state F
|
||||
__send F
|
||||
__sigaction F
|
||||
__vfork F
|
||||
__wait F
|
||||
__write F
|
||||
_pthread_cleanup_pop F
|
||||
_pthread_cleanup_pop_restore F
|
||||
_pthread_cleanup_push F
|
||||
_pthread_cleanup_push_defer F
|
||||
accept F
|
||||
close F
|
||||
connect F
|
||||
fcntl F
|
||||
flockfile F
|
||||
fork F
|
||||
fsync F
|
||||
ftrylockfile F
|
||||
funlockfile F
|
||||
longjmp F
|
||||
lseek F
|
||||
lseek64 F
|
||||
msync F
|
||||
nanosleep F
|
||||
open F
|
||||
open64 F
|
||||
pause F
|
||||
pread F
|
||||
pread64 F
|
||||
pthread_attr_destroy F
|
||||
pthread_attr_getaffinity_np F
|
||||
pthread_attr_getdetachstate F
|
||||
pthread_attr_getguardsize F
|
||||
pthread_attr_getinheritsched F
|
||||
pthread_attr_getschedparam F
|
||||
pthread_attr_getschedpolicy F
|
||||
pthread_attr_getscope F
|
||||
pthread_attr_getstack F
|
||||
pthread_attr_getstackaddr F
|
||||
pthread_attr_getstacksize F
|
||||
pthread_attr_init F
|
||||
pthread_attr_setaffinity_np F
|
||||
pthread_attr_setdetachstate F
|
||||
pthread_attr_setguardsize F
|
||||
pthread_attr_setinheritsched F
|
||||
pthread_attr_setschedparam F
|
||||
pthread_attr_setschedpolicy F
|
||||
pthread_attr_setscope F
|
||||
pthread_attr_setstack F
|
||||
pthread_attr_setstackaddr F
|
||||
pthread_attr_setstacksize F
|
||||
pthread_barrier_destroy F
|
||||
pthread_barrier_init F
|
||||
pthread_barrier_wait F
|
||||
pthread_barrierattr_destroy F
|
||||
pthread_barrierattr_getpshared F
|
||||
pthread_barrierattr_init F
|
||||
pthread_barrierattr_setpshared F
|
||||
pthread_cancel F
|
||||
pthread_cond_broadcast F
|
||||
pthread_cond_destroy F
|
||||
pthread_cond_init F
|
||||
pthread_cond_signal F
|
||||
pthread_cond_timedwait F
|
||||
pthread_cond_wait F
|
||||
pthread_condattr_destroy F
|
||||
pthread_condattr_getclock F
|
||||
pthread_condattr_getpshared F
|
||||
pthread_condattr_init F
|
||||
pthread_condattr_setclock F
|
||||
pthread_condattr_setpshared F
|
||||
pthread_create F
|
||||
pthread_detach F
|
||||
pthread_equal F
|
||||
pthread_exit F
|
||||
pthread_getaffinity_np F
|
||||
pthread_getattr_np F
|
||||
pthread_getconcurrency F
|
||||
pthread_getcpuclockid F
|
||||
pthread_getschedparam F
|
||||
pthread_getspecific F
|
||||
pthread_join F
|
||||
pthread_key_create F
|
||||
pthread_key_delete F
|
||||
pthread_kill F
|
||||
pthread_kill_other_threads_np F
|
||||
pthread_mutex_consistent_np F
|
||||
pthread_mutex_destroy F
|
||||
pthread_mutex_getprioceiling F
|
||||
pthread_mutex_init F
|
||||
pthread_mutex_lock F
|
||||
pthread_mutex_setprioceiling F
|
||||
pthread_mutex_timedlock F
|
||||
pthread_mutex_trylock F
|
||||
pthread_mutex_unlock F
|
||||
pthread_mutexattr_destroy F
|
||||
pthread_mutexattr_getkind_np F
|
||||
pthread_mutexattr_getprioceiling F
|
||||
pthread_mutexattr_getprotocol F
|
||||
pthread_mutexattr_getpshared F
|
||||
pthread_mutexattr_getrobust_np F
|
||||
pthread_mutexattr_gettype F
|
||||
pthread_mutexattr_init F
|
||||
pthread_mutexattr_setkind_np F
|
||||
pthread_mutexattr_setprioceiling F
|
||||
pthread_mutexattr_setprotocol F
|
||||
pthread_mutexattr_setpshared F
|
||||
pthread_mutexattr_setrobust_np F
|
||||
pthread_mutexattr_settype F
|
||||
pthread_once F
|
||||
pthread_rwlock_destroy F
|
||||
pthread_rwlock_init F
|
||||
pthread_rwlock_rdlock F
|
||||
pthread_rwlock_timedrdlock F
|
||||
pthread_rwlock_timedwrlock F
|
||||
pthread_rwlock_tryrdlock F
|
||||
pthread_rwlock_trywrlock F
|
||||
pthread_rwlock_unlock F
|
||||
pthread_rwlock_wrlock F
|
||||
pthread_rwlockattr_destroy F
|
||||
pthread_rwlockattr_getkind_np F
|
||||
pthread_rwlockattr_getpshared F
|
||||
pthread_rwlockattr_init F
|
||||
pthread_rwlockattr_setkind_np F
|
||||
pthread_rwlockattr_setpshared F
|
||||
pthread_self F
|
||||
pthread_setaffinity_np F
|
||||
pthread_setcancelstate F
|
||||
pthread_setcanceltype F
|
||||
pthread_setconcurrency F
|
||||
pthread_setschedparam F
|
||||
pthread_setschedprio F
|
||||
pthread_setspecific F
|
||||
pthread_sigmask F
|
||||
pthread_spin_destroy F
|
||||
pthread_spin_init F
|
||||
pthread_spin_lock F
|
||||
pthread_spin_trylock F
|
||||
pthread_spin_unlock F
|
||||
pthread_testcancel F
|
||||
pthread_timedjoin_np F
|
||||
pthread_tryjoin_np F
|
||||
pthread_yield F
|
||||
pwrite F
|
||||
pwrite64 F
|
||||
raise F
|
||||
read F
|
||||
recv F
|
||||
recvfrom F
|
||||
recvmsg F
|
||||
sem_close F
|
||||
sem_destroy F
|
||||
sem_getvalue F
|
||||
sem_init F
|
||||
sem_open F
|
||||
sem_post F
|
||||
sem_timedwait F
|
||||
sem_trywait F
|
||||
sem_unlink F
|
||||
sem_wait F
|
||||
send F
|
||||
sendmsg F
|
||||
sendto F
|
||||
sigaction F
|
||||
siglongjmp F
|
||||
sigwait F
|
||||
system F
|
||||
tcdrain F
|
||||
vfork F
|
||||
wait F
|
||||
waitpid F
|
||||
write F
|
||||
95
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libresolv.abilist
Normal file
95
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libresolv.abilist
Normal file
@@ -0,0 +1,95 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
__b64_ntop F
|
||||
__b64_pton F
|
||||
__dn_comp F
|
||||
__dn_count_labels F
|
||||
__dn_expand F
|
||||
__dn_skipname F
|
||||
__fp_nquery F
|
||||
__fp_query F
|
||||
__fp_resstat F
|
||||
__hostalias F
|
||||
__loc_aton F
|
||||
__loc_ntoa F
|
||||
__p_cdname F
|
||||
__p_cdnname F
|
||||
__p_class F
|
||||
__p_class_syms D 0x54
|
||||
__p_fqname F
|
||||
__p_fqnname F
|
||||
__p_option F
|
||||
__p_query F
|
||||
__p_rcode F
|
||||
__p_secstodate F
|
||||
__p_time F
|
||||
__p_type F
|
||||
__p_type_syms D 0x228
|
||||
__putlong F
|
||||
__putshort F
|
||||
__res_close F
|
||||
__res_dnok F
|
||||
__res_hnok F
|
||||
__res_hostalias F
|
||||
__res_isourserver F
|
||||
__res_mailok F
|
||||
__res_mkquery F
|
||||
__res_nameinquery F
|
||||
__res_nmkquery F
|
||||
__res_nquery F
|
||||
__res_nquerydomain F
|
||||
__res_nsearch F
|
||||
__res_nsend F
|
||||
__res_ownok F
|
||||
__res_queriesmatch F
|
||||
__res_query F
|
||||
__res_querydomain F
|
||||
__res_search F
|
||||
__res_send F
|
||||
__sym_ntop F
|
||||
__sym_ntos F
|
||||
__sym_ston F
|
||||
_gethtbyaddr F
|
||||
_gethtbyname F
|
||||
_gethtbyname2 F
|
||||
_gethtent F
|
||||
_getlong F
|
||||
_getshort F
|
||||
_res_opcodes D 0x40
|
||||
_sethtent F
|
||||
inet_net_ntop F
|
||||
inet_net_pton F
|
||||
inet_neta F
|
||||
res_gethostbyaddr F
|
||||
res_gethostbyname F
|
||||
res_gethostbyname2 F
|
||||
res_send_setqhook F
|
||||
res_send_setrhook F
|
||||
GLIBC_2.9
|
||||
GLIBC_2.9 A
|
||||
ns_datetosecs F
|
||||
ns_format_ttl F
|
||||
ns_get16 F
|
||||
ns_get32 F
|
||||
ns_initparse F
|
||||
ns_makecanon F
|
||||
ns_msg_getflag F
|
||||
ns_name_compress F
|
||||
ns_name_ntol F
|
||||
ns_name_ntop F
|
||||
ns_name_pack F
|
||||
ns_name_pton F
|
||||
ns_name_rollback F
|
||||
ns_name_skip F
|
||||
ns_name_uncompress F
|
||||
ns_name_unpack F
|
||||
ns_parse_ttl F
|
||||
ns_parserr F
|
||||
ns_put16 F
|
||||
ns_put32 F
|
||||
ns_samedomain F
|
||||
ns_samename F
|
||||
ns_skiprr F
|
||||
ns_sprintrr F
|
||||
ns_sprintrrf F
|
||||
ns_subdomain F
|
||||
44
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/librt.abilist
Normal file
44
sysdeps/unix/sysv/linux/m68k/coldfire/nptl/librt.abilist
Normal file
@@ -0,0 +1,44 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
aio_cancel F
|
||||
aio_cancel64 F
|
||||
aio_error F
|
||||
aio_error64 F
|
||||
aio_fsync F
|
||||
aio_fsync64 F
|
||||
aio_init F
|
||||
aio_read F
|
||||
aio_read64 F
|
||||
aio_return F
|
||||
aio_return64 F
|
||||
aio_suspend F
|
||||
aio_suspend64 F
|
||||
aio_write F
|
||||
aio_write64 F
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
lio_listio F
|
||||
lio_listio64 F
|
||||
mq_close F
|
||||
mq_getattr F
|
||||
mq_notify F
|
||||
mq_open F
|
||||
mq_receive F
|
||||
mq_send F
|
||||
mq_setattr F
|
||||
mq_timedreceive F
|
||||
mq_timedsend F
|
||||
mq_unlink F
|
||||
shm_open F
|
||||
shm_unlink F
|
||||
timer_create F
|
||||
timer_delete F
|
||||
timer_getoverrun F
|
||||
timer_gettime F
|
||||
timer_settime F
|
||||
GLIBC_2.7
|
||||
GLIBC_2.7 A
|
||||
__mq_open_2 F
|
||||
@@ -0,0 +1,42 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
td_init F
|
||||
td_log F
|
||||
td_symbol_list F
|
||||
td_ta_clear_event F
|
||||
td_ta_delete F
|
||||
td_ta_enable_stats F
|
||||
td_ta_event_addr F
|
||||
td_ta_event_getmsg F
|
||||
td_ta_get_nthreads F
|
||||
td_ta_get_ph F
|
||||
td_ta_get_stats F
|
||||
td_ta_map_id2thr F
|
||||
td_ta_map_lwp2thr F
|
||||
td_ta_new F
|
||||
td_ta_reset_stats F
|
||||
td_ta_set_event F
|
||||
td_ta_setconcurrency F
|
||||
td_ta_thr_iter F
|
||||
td_ta_tsd_iter F
|
||||
td_thr_clear_event F
|
||||
td_thr_dbresume F
|
||||
td_thr_dbsuspend F
|
||||
td_thr_event_enable F
|
||||
td_thr_event_getmsg F
|
||||
td_thr_get_info F
|
||||
td_thr_getfpregs F
|
||||
td_thr_getgregs F
|
||||
td_thr_getxregs F
|
||||
td_thr_getxregsize F
|
||||
td_thr_set_event F
|
||||
td_thr_setfpregs F
|
||||
td_thr_setgregs F
|
||||
td_thr_setprio F
|
||||
td_thr_setsigpending F
|
||||
td_thr_setxregs F
|
||||
td_thr_sigsetmask F
|
||||
td_thr_tls_get_addr F
|
||||
td_thr_tlsbase F
|
||||
td_thr_tsd F
|
||||
td_thr_validate F
|
||||
@@ -0,0 +1,8 @@
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
forkpty F
|
||||
login F
|
||||
login_tty F
|
||||
logout F
|
||||
logwtmp F
|
||||
openpty F
|
||||
29
sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
Normal file
29
sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _LINUX_M68K_COLDFIRE_SYSDEP_H
|
||||
#define _LINUX_M68K_COLDFIRE_SYSDEP_H 1
|
||||
|
||||
#include <sysdeps/unix/sysdep.h>
|
||||
#include <sysdeps/m68k/coldfire/sysdep.h>
|
||||
#include <sysdeps/unix/sysv/linux/m68k/sysdep.h>
|
||||
|
||||
#define SYSCALL_ERROR_LOAD_GOT(reg) \
|
||||
move.l &_GLOBAL_OFFSET_TABLE_@GOTPC, reg; \
|
||||
lea (-6, %pc, reg), reg
|
||||
|
||||
#endif
|
||||
9
sysdeps/unix/sysv/linux/m68k/configure
vendored
Normal file
9
sysdeps/unix/sysv/linux/m68k/configure
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
|
||||
case $machine in
|
||||
m68k/coldfire)
|
||||
;;
|
||||
*)
|
||||
libc_cv_gcc_unwind_find_fde=yes
|
||||
;;
|
||||
esac
|
||||
ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
|
||||
10
sysdeps/unix/sysv/linux/m68k/configure.ac
Normal file
10
sysdeps/unix/sysv/linux/m68k/configure.ac
Normal file
@@ -0,0 +1,10 @@
|
||||
sinclude(./aclocal.m4)dnl Autoconf lossage
|
||||
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
||||
case $machine in
|
||||
m68k/coldfire)
|
||||
;;
|
||||
*)
|
||||
libc_cv_gcc_unwind_find_fde=yes
|
||||
;;
|
||||
esac
|
||||
ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
|
||||
1
sysdeps/unix/sysv/linux/m68k/dl-librecon.h
Normal file
1
sysdeps/unix/sysv/linux/m68k/dl-librecon.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/dl-librecon.h>
|
||||
84
sysdeps/unix/sysv/linux/m68k/dl-static.c
Normal file
84
sysdeps/unix/sysv/linux/m68k/dl-static.c
Normal file
@@ -0,0 +1,84 @@
|
||||
/* Variable initialization. M68K version.
|
||||
Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <ldsodefs.h>
|
||||
|
||||
#ifdef SHARED
|
||||
|
||||
void
|
||||
_dl_var_init (void *array[])
|
||||
{
|
||||
/* It has to match "variables" below. */
|
||||
enum
|
||||
{
|
||||
DL_PAGESIZE = 0,
|
||||
};
|
||||
|
||||
GLRO(dl_pagesize) = *(size_t *) array[DL_PAGESIZE];
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static void *variables[] =
|
||||
{
|
||||
&GLRO(dl_pagesize)
|
||||
};
|
||||
|
||||
static void
|
||||
_dl_unprotect_relro (struct link_map *l)
|
||||
{
|
||||
ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
|
||||
& ~(GLRO(dl_pagesize) - 1));
|
||||
ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
|
||||
& ~(GLRO(dl_pagesize) - 1));
|
||||
|
||||
if (start != end)
|
||||
__mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
|
||||
}
|
||||
|
||||
void
|
||||
_dl_static_init (struct link_map *l)
|
||||
{
|
||||
struct link_map *rtld_map = l;
|
||||
struct r_scope_elem **scope;
|
||||
const ElfW(Sym) *ref = NULL;
|
||||
lookup_t loadbase;
|
||||
void (*f) (void *[]);
|
||||
size_t i;
|
||||
|
||||
loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
|
||||
NULL, 0, 1, NULL);
|
||||
|
||||
for (scope = l->l_local_scope; *scope != NULL; scope++)
|
||||
for (i = 0; i < (*scope)->r_nlist; i++)
|
||||
if ((*scope)->r_list[i] == loadbase)
|
||||
{
|
||||
rtld_map = (*scope)->r_list[i];
|
||||
break;
|
||||
}
|
||||
|
||||
if (ref != NULL)
|
||||
{
|
||||
f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
|
||||
_dl_unprotect_relro (rtld_map);
|
||||
f (variables);
|
||||
_dl_protect_relro (rtld_map);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
1
sysdeps/unix/sysv/linux/m68k/fchown.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/fchown.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/fchown.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/fchownat.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/fchownat.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/fchownat.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/fcntl.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/fcntl.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/fxstat.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/fxstat.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/fxstatat.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/fxstatat.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/getdents64.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getdents64.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/getegid.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getegid.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getegid.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/geteuid.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/geteuid.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/geteuid.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/getgid.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getgid.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getgid.c>
|
||||
2
sysdeps/unix/sysv/linux/m68k/getgroups.c
Normal file
2
sysdeps/unix/sysv/linux/m68k/getgroups.c
Normal file
@@ -0,0 +1,2 @@
|
||||
/* We also have to rewrite the kernel gid_t to the user land type. */
|
||||
#include <sysdeps/unix/sysv/linux/i386/getgroups.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/getmsg.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getmsg.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
|
||||
49
sysdeps/unix/sysv/linux/m68k/getpagesize.c
Normal file
49
sysdeps/unix/sysv/linux/m68k/getpagesize.c
Normal file
@@ -0,0 +1,49 @@
|
||||
/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Schwab <schwab@suse.de>.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <unistd.h>
|
||||
#include <sys/param.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <ldsodefs.h>
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
/* Return the system page size. */
|
||||
int
|
||||
__getpagesize (void)
|
||||
{
|
||||
#ifdef __NR_getpagesize
|
||||
int result;
|
||||
#endif
|
||||
|
||||
if (GLRO(dl_pagesize) != 0)
|
||||
return GLRO(dl_pagesize);
|
||||
|
||||
#ifdef __NR_getpagesize
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
result = INTERNAL_SYSCALL (getpagesize, err, 0);
|
||||
/* The only possible error is ENOSYS. */
|
||||
if (!INTERNAL_SYSCALL_ERROR_P (result, err))
|
||||
return result;
|
||||
#endif
|
||||
|
||||
return 4096;
|
||||
}
|
||||
libc_hidden_def (__getpagesize)
|
||||
weak_alias (__getpagesize, getpagesize)
|
||||
1
sysdeps/unix/sysv/linux/m68k/getresgid.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getresgid.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getresgid.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/getresuid.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getresuid.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getresuid.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/getrlimit64.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getrlimit64.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getrlimit64.c>
|
||||
37
sysdeps/unix/sysv/linux/m68k/getsysstats.c
Normal file
37
sysdeps/unix/sysv/linux/m68k/getsysstats.c
Normal file
@@ -0,0 +1,37 @@
|
||||
/* Determine various system internal values, Linux/m68k version.
|
||||
Copyright (C) 2003-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Schwab <schwab@suse.de>
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
|
||||
/* We need to define a special parser for /proc/cpuinfo. */
|
||||
#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
|
||||
do \
|
||||
{ \
|
||||
(RESULT) = 0; \
|
||||
/* Read all lines and count the lines starting with the string \
|
||||
"CPU:". We don't have to fear extremely long lines since \
|
||||
the kernel will not generate them. 8192 bytes are really \
|
||||
enough. */ \
|
||||
char *l; \
|
||||
while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
|
||||
if (strncmp (l, "CPU:", 4) == 0) \
|
||||
++(RESULT); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#include <sysdeps/unix/sysv/linux/getsysstats.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/getuid.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/getuid.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/getuid.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/glob64.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/glob64.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/glob64.c>
|
||||
74
sysdeps/unix/sysv/linux/m68k/init-first.c
Normal file
74
sysdeps/unix/sysv/linux/m68k/init-first.c
Normal file
@@ -0,0 +1,74 @@
|
||||
/* Initialization code run first thing by the ELF startup code. Linux/m68k.
|
||||
Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Note: linking in vDSO to a static binary requires changes to
|
||||
the main GLIBC proper. Not yet implemented. */
|
||||
#ifdef SHARED
|
||||
|
||||
#include <dl-vdso.h>
|
||||
#include <bits/m68k-vdso.h>
|
||||
|
||||
static inline void
|
||||
_libc_vdso_platform_setup (void)
|
||||
{
|
||||
void *p;
|
||||
|
||||
PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
|
||||
|
||||
/* It may happen that rtld didn't initialize the vDSO, so fallback
|
||||
to the syscall implementations if _dl_vdso_vsym returns NULL.
|
||||
This may happen when a static executable dlopen's a dynamic library.
|
||||
This really is nothing more than a workaround for rtld/csu
|
||||
deficiency. Ideally, init code would setup the vDSO for static
|
||||
binaries too. */
|
||||
|
||||
p = _dl_vdso_vsym ("__kernel_read_tp", &linux26);
|
||||
if (p != NULL)
|
||||
{
|
||||
__vdso_read_tp = p;
|
||||
__rtld___vdso_read_tp = p;
|
||||
}
|
||||
else
|
||||
assert (__vdso_read_tp == (void *) __vdso_read_tp_stub);
|
||||
|
||||
p = _dl_vdso_vsym ("__kernel_atomic_cmpxchg_32", &linux26);
|
||||
if (p != NULL)
|
||||
{
|
||||
__vdso_atomic_cmpxchg_32 = p;
|
||||
__rtld___vdso_atomic_cmpxchg_32 = p;
|
||||
}
|
||||
else
|
||||
assert (__vdso_atomic_cmpxchg_32
|
||||
== (void *) __vdso_atomic_cmpxchg_32_stub);
|
||||
|
||||
p = _dl_vdso_vsym ("__kernel_atomic_barrier", &linux26);
|
||||
if (p != NULL)
|
||||
{
|
||||
__vdso_atomic_barrier = p;
|
||||
__rtld___vdso_atomic_barrier = p;
|
||||
}
|
||||
else
|
||||
assert (__vdso_atomic_barrier == (void *) __vdso_atomic_barrier_stub);
|
||||
}
|
||||
|
||||
#define VDSO_SETUP _libc_vdso_platform_setup
|
||||
|
||||
#endif /* SHARED */
|
||||
|
||||
#include <csu/init-first.c>
|
||||
55
sysdeps/unix/sysv/linux/m68k/kernel-features.h
Normal file
55
sysdeps/unix/sysv/linux/m68k/kernel-features.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Set flags signalling availability of kernel features based on given
|
||||
kernel version number.
|
||||
Copyright (C) 2008-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Many syscalls were added in 2.6.10 for m68k. */
|
||||
#define __ASSUME_UTIMES 1
|
||||
|
||||
/* Support for various CLOEXEC and NONBLOCK flags was added 2.6.23. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020617
|
||||
# define __ASSUME_O_CLOEXEC 1
|
||||
#endif
|
||||
|
||||
/* Support for various CLOEXEC and NONBLOCK flags was added in 2.6.27. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x02061b
|
||||
# define __ASSUME_SOCK_CLOEXEC 1
|
||||
# define __ASSUME_IN_NONBLOCK 1
|
||||
# define __ASSUME_PIPE2 1
|
||||
# define __ASSUME_EVENTFD2 1
|
||||
# define __ASSUME_SIGNALFD4 1
|
||||
# define __ASSUME_DUP3 1
|
||||
#endif
|
||||
|
||||
/* Support for the accept4 syscall was added in 2.6.28. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x02061c
|
||||
# define __ASSUME_ACCEPT4 1
|
||||
#endif
|
||||
|
||||
#include_next <kernel-features.h>
|
||||
|
||||
/* These syscalls were added only in 3.0 for m68k. */
|
||||
#if __LINUX_KERNEL_VERSION < 0x030000
|
||||
# undef __ASSUME_PSELECT
|
||||
# undef __ASSUME_PPOLL
|
||||
#endif
|
||||
|
||||
/* No support for PI futexes or robust mutexes before 3.10 for m68k. */
|
||||
#if __LINUX_KERNEL_VERSION < 0x030a00
|
||||
# undef __ASSUME_REQUEUE_PI
|
||||
# undef __ASSUME_SET_ROBUST_LIST
|
||||
#endif
|
||||
1
sysdeps/unix/sysv/linux/m68k/lchown.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/lchown.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/lchown.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/ldconfig.h
Normal file
1
sysdeps/unix/sysv/linux/m68k/ldconfig.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/ldconfig.h>
|
||||
32
sysdeps/unix/sysv/linux/m68k/ldsodefs.h
Normal file
32
sysdeps/unix/sysv/linux/m68k/ldsodefs.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/* Run-time dynamic linker data structures for loaded ELF shared objects. M68K.
|
||||
Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _LDSODEFS_H
|
||||
|
||||
/* Get the real definitions. */
|
||||
#include_next <ldsodefs.h>
|
||||
|
||||
/* Now define our stuff. */
|
||||
|
||||
/* We need special support to initialize DSO loaded for statically linked
|
||||
binaries. */
|
||||
extern void _dl_static_init (struct link_map *map);
|
||||
#undef DL_STATIC_INIT
|
||||
#define DL_STATIC_INIT(map) _dl_static_init (map)
|
||||
|
||||
#endif /* ldsodefs.h */
|
||||
1
sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
Normal file
@@ -0,0 +1 @@
|
||||
#include "m68k-vdso.c"
|
||||
1
sysdeps/unix/sysv/linux/m68k/lockf64.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/lockf64.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
|
||||
2
sysdeps/unix/sysv/linux/m68k/lxstat.c
Normal file
2
sysdeps/unix/sysv/linux/m68k/lxstat.c
Normal file
@@ -0,0 +1,2 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
|
||||
|
||||
3
sysdeps/unix/sysv/linux/m68k/m680x0/Makefile
Normal file
3
sysdeps/unix/sysv/linux/m68k/m680x0/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
ifeq ($(subdir),stdlib)
|
||||
gen-as-const-headers += ucontext_i.sym
|
||||
endif
|
||||
63
sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
Normal file
63
sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
Normal file
@@ -0,0 +1,63 @@
|
||||
/* Save current context.
|
||||
Copyright (C) 2012-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
#include "ucontext_i.h"
|
||||
|
||||
|
||||
ENTRY(__getcontext)
|
||||
/* Load address of the context data structure. */
|
||||
move.l 4(%sp), %a0
|
||||
|
||||
/* Save the preserved registers and the return address. */
|
||||
movem.l %d2-%d7, oGREGS+2*4(%a0)
|
||||
movem.l %a2-%a6, oGREGS+10*4(%a0)
|
||||
lea 4(%sp), %a1
|
||||
move.l %a1, oSP(%a0)
|
||||
move.l (%sp), oPC(%a0)
|
||||
fmovem.l %fpsr/%fpcr/%fpiar, oFPREGS(%a0)
|
||||
fmovem.x %fp2-%fp7, oFP2(%a0)
|
||||
cfi_def_cfa (%a0, 0)
|
||||
cfi_offset (%d2, oGREGS+2*4)
|
||||
cfi_offset (%d3, oGREGS+3*4)
|
||||
cfi_offset (%pc, oPC)
|
||||
|
||||
/* Save the current signal mask. */
|
||||
lea oSIGMASK(%a0), %a1
|
||||
move.l %a1, %d3
|
||||
clr.l %d2
|
||||
move.l #SIG_SETMASK, %d1
|
||||
move.l #__NR_sigprocmask, %d0
|
||||
trap #0
|
||||
/* Restore registers. */
|
||||
move.l oGREGS+2*4(%a0), %d2
|
||||
cfi_restore (%d2)
|
||||
move.l oGREGS+3*4(%a0), %d3
|
||||
cfi_restore (%d3)
|
||||
cfi_def_cfa (%sp, 4)
|
||||
cfi_offset (%pc, -4)
|
||||
cmp.l #-4095, %d0 /* Check %d0 for error. */
|
||||
jcc SYSCALL_ERROR_LABEL /* Jump to error handler. */
|
||||
|
||||
0: /* All done, return 0 for success. */
|
||||
clr.l %d0
|
||||
rts
|
||||
PSEUDO_END(__getcontext)
|
||||
|
||||
weak_alias (__getcontext, getcontext)
|
||||
100
sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
Normal file
100
sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
Normal file
@@ -0,0 +1,100 @@
|
||||
/* Create new context.
|
||||
Copyright (C) 2012-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
#include "ucontext_i.h"
|
||||
|
||||
|
||||
ENTRY(__makecontext)
|
||||
move.l 4(%sp), %a0
|
||||
|
||||
/* Get the address of the function we are supposed to run. */
|
||||
move.l 8(%sp), oPC(%a0)
|
||||
|
||||
/* Compute the address of the stack. The information comes from
|
||||
to us_stack element. */
|
||||
move.l oSS_SP(%a0), %a1
|
||||
add.l oSS_SIZE(%a0), %a1
|
||||
|
||||
/* Remember the number of parameters for the exit handler since
|
||||
it has to remove them. We store the number in the D7 register
|
||||
which the function we will call must preserve. */
|
||||
move.l 12(%sp), %d1
|
||||
move.l %d1, oGREGS+7*4(%a0)
|
||||
|
||||
/* Make room on the new stack for the parameters.
|
||||
Room for the arguments, return address (== 1f) and
|
||||
oLINK pointer is needed. */
|
||||
neg.l %d1
|
||||
lea -8(%a1,%d1.l*4), %a1
|
||||
neg.l %d1
|
||||
|
||||
/* Store the future stack pointer. */
|
||||
move.l %a1, oSP(%a0)
|
||||
|
||||
/* Put the next context on the new stack (from the uc_link
|
||||
element). */
|
||||
move.l oLINK(%a0), 4(%a1,%d1.l*4)
|
||||
|
||||
/* Copy all the parameters. */
|
||||
1: subq.l #1,%d1
|
||||
jmi 2f
|
||||
move.l 16(%sp,%d1.l*4), 4(%a1,%d1.l*4)
|
||||
jra 1b
|
||||
2:
|
||||
|
||||
/* If the function we call returns we must continue with the
|
||||
context which is given in the uc_link element. To do this
|
||||
set the return address for the function the user provides
|
||||
to a little bit of helper code which does the magic (see
|
||||
below). */
|
||||
lea 1f(%pc), %a0
|
||||
move.l %a0, (%a1)
|
||||
/* 'makecontext' returns no value. */
|
||||
rts
|
||||
|
||||
/* This is the helper code which gets called if a function which
|
||||
is registered with 'makecontext' returns. In this case we
|
||||
have to install the context listed in the uc_link element of
|
||||
the context 'makecontext' manipulated at the time of the
|
||||
'makecontext' call. If the pointer is NULL the process must
|
||||
terminate. */
|
||||
cfi_endproc
|
||||
1:
|
||||
/* This removes the parameters passed to the function given to
|
||||
'makecontext' from the stack. D7 contains the number of
|
||||
parameters (see above). */
|
||||
lea (%sp,%d7.l*4), %sp
|
||||
|
||||
tst.l (%sp) /* Check the next context. */
|
||||
jeq 2f /* If it is zero exit. */
|
||||
|
||||
jbsr JUMPTARGET(__setcontext)
|
||||
/* If this returns (which can happen if the syscall fails) we'll
|
||||
exit the program with the return error value (-1). */
|
||||
|
||||
move.l %d0, (%sp)
|
||||
2: jbsr HIDDEN_JUMPTARGET(exit)
|
||||
/* The 'exit' call should never return. In case it does cause
|
||||
the process to terminate. */
|
||||
illegal
|
||||
cfi_startproc
|
||||
END(__makecontext)
|
||||
|
||||
weak_alias (__makecontext, makecontext)
|
||||
18
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/ld.abilist
Normal file
18
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/ld.abilist
Normal file
@@ -0,0 +1,18 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
__libc_memalign F
|
||||
_r_debug D 0x14
|
||||
calloc F
|
||||
free F
|
||||
malloc F
|
||||
realloc F
|
||||
GLIBC_2.1
|
||||
GLIBC_2.1 A
|
||||
__libc_stack_end D 0x4
|
||||
_dl_mcount F
|
||||
GLIBC_2.3
|
||||
GLIBC_2.3 A
|
||||
__tls_get_addr F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
__stack_chk_guard D 0x4
|
||||
@@ -0,0 +1,3 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
__ctype_get_mb_cur_max F
|
||||
6
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libanl.abilist
Normal file
6
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libanl.abilist
Normal file
@@ -0,0 +1,6 @@
|
||||
GLIBC_2.2.3
|
||||
GLIBC_2.2.3 A
|
||||
gai_cancel F
|
||||
gai_error F
|
||||
gai_suspend F
|
||||
getaddrinfo_a F
|
||||
2295
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
Normal file
2295
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
crypt F
|
||||
crypt_r F
|
||||
encrypt F
|
||||
encrypt_r F
|
||||
fcrypt F
|
||||
setkey F
|
||||
setkey_r F
|
||||
18
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libdl.abilist
Normal file
18
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libdl.abilist
Normal file
@@ -0,0 +1,18 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
dladdr F
|
||||
dlclose F
|
||||
dlerror F
|
||||
dlopen F
|
||||
dlsym F
|
||||
GLIBC_2.1
|
||||
GLIBC_2.1 A
|
||||
dlopen F
|
||||
dlvsym F
|
||||
GLIBC_2.3.3
|
||||
GLIBC_2.3.3 A
|
||||
dladdr1 F
|
||||
dlinfo F
|
||||
GLIBC_2.3.4
|
||||
GLIBC_2.3.4 A
|
||||
dlmopen F
|
||||
417
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
Normal file
417
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
Normal file
@@ -0,0 +1,417 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
_LIB_VERSION D 0x4
|
||||
acos F
|
||||
acosf F
|
||||
acosh F
|
||||
acoshf F
|
||||
acoshl F
|
||||
acosl F
|
||||
asin F
|
||||
asinf F
|
||||
asinh F
|
||||
asinhf F
|
||||
asinhl F
|
||||
asinl F
|
||||
atan F
|
||||
atan2 F
|
||||
atan2f F
|
||||
atan2l F
|
||||
atanf F
|
||||
atanh F
|
||||
atanhf F
|
||||
atanhl F
|
||||
atanl F
|
||||
cbrt F
|
||||
cbrtf F
|
||||
cbrtl F
|
||||
ceil F
|
||||
ceilf F
|
||||
ceill F
|
||||
copysign F
|
||||
copysignf F
|
||||
copysignl F
|
||||
cos F
|
||||
cosf F
|
||||
cosh F
|
||||
coshf F
|
||||
coshl F
|
||||
cosl F
|
||||
drem F
|
||||
dremf F
|
||||
dreml F
|
||||
erf F
|
||||
erfc F
|
||||
erfcf F
|
||||
erfcl F
|
||||
erff F
|
||||
erfl F
|
||||
exp F
|
||||
expf F
|
||||
expl F
|
||||
expm1 F
|
||||
expm1f F
|
||||
expm1l F
|
||||
fabs F
|
||||
fabsf F
|
||||
fabsl F
|
||||
finite F
|
||||
finitef F
|
||||
finitel F
|
||||
floor F
|
||||
floorf F
|
||||
floorl F
|
||||
fmod F
|
||||
fmodf F
|
||||
fmodl F
|
||||
frexp F
|
||||
frexpf F
|
||||
frexpl F
|
||||
gamma F
|
||||
gammaf F
|
||||
gammal F
|
||||
hypot F
|
||||
hypotf F
|
||||
hypotl F
|
||||
ilogb F
|
||||
ilogbf F
|
||||
ilogbl F
|
||||
j0 F
|
||||
j0f F
|
||||
j0l F
|
||||
j1 F
|
||||
j1f F
|
||||
j1l F
|
||||
jn F
|
||||
jnf F
|
||||
jnl F
|
||||
ldexp F
|
||||
ldexpf F
|
||||
ldexpl F
|
||||
lgamma F
|
||||
lgamma_r F
|
||||
lgammaf F
|
||||
lgammaf_r F
|
||||
lgammal F
|
||||
lgammal_r F
|
||||
log F
|
||||
log10 F
|
||||
log10f F
|
||||
log10l F
|
||||
log1p F
|
||||
log1pf F
|
||||
log1pl F
|
||||
logb F
|
||||
logbf F
|
||||
logbl F
|
||||
logf F
|
||||
logl F
|
||||
matherr F
|
||||
modf F
|
||||
modff F
|
||||
modfl F
|
||||
nextafter F
|
||||
nextafterf F
|
||||
nextafterl F
|
||||
pow F
|
||||
powf F
|
||||
powl F
|
||||
remainder F
|
||||
remainderf F
|
||||
remainderl F
|
||||
rint F
|
||||
rintf F
|
||||
rintl F
|
||||
scalb F
|
||||
scalbf F
|
||||
scalbl F
|
||||
scalbn F
|
||||
scalbnf F
|
||||
scalbnl F
|
||||
signgam D 0x4
|
||||
significand F
|
||||
significandf F
|
||||
significandl F
|
||||
sin F
|
||||
sinf F
|
||||
sinh F
|
||||
sinhf F
|
||||
sinhl F
|
||||
sinl F
|
||||
sqrt F
|
||||
sqrtf F
|
||||
sqrtl F
|
||||
tan F
|
||||
tanf F
|
||||
tanh F
|
||||
tanhf F
|
||||
tanhl F
|
||||
tanl F
|
||||
y0 F
|
||||
y0f F
|
||||
y0l F
|
||||
y1 F
|
||||
y1f F
|
||||
y1l F
|
||||
yn F
|
||||
ynf F
|
||||
ynl F
|
||||
GLIBC_2.1
|
||||
GLIBC_2.1 A
|
||||
__clog10 F
|
||||
__clog10f F
|
||||
__clog10l F
|
||||
__finite F
|
||||
__finitef F
|
||||
__finitel F
|
||||
__fpclassify F
|
||||
__fpclassifyf F
|
||||
__fpclassifyl F
|
||||
__signbit F
|
||||
__signbitf F
|
||||
__signbitl F
|
||||
cabs F
|
||||
cabsf F
|
||||
cabsl F
|
||||
cacos F
|
||||
cacosf F
|
||||
cacosh F
|
||||
cacoshf F
|
||||
cacoshl F
|
||||
cacosl F
|
||||
carg F
|
||||
cargf F
|
||||
cargl F
|
||||
casin F
|
||||
casinf F
|
||||
casinh F
|
||||
casinhf F
|
||||
casinhl F
|
||||
casinl F
|
||||
catan F
|
||||
catanf F
|
||||
catanh F
|
||||
catanhf F
|
||||
catanhl F
|
||||
catanl F
|
||||
ccos F
|
||||
ccosf F
|
||||
ccosh F
|
||||
ccoshf F
|
||||
ccoshl F
|
||||
ccosl F
|
||||
cexp F
|
||||
cexpf F
|
||||
cexpl F
|
||||
cimag F
|
||||
cimagf F
|
||||
cimagl F
|
||||
clog F
|
||||
clog10 F
|
||||
clog10f F
|
||||
clog10l F
|
||||
clogf F
|
||||
clogl F
|
||||
conj F
|
||||
conjf F
|
||||
conjl F
|
||||
cpow F
|
||||
cpowf F
|
||||
cpowl F
|
||||
cproj F
|
||||
cprojf F
|
||||
cprojl F
|
||||
creal F
|
||||
crealf F
|
||||
creall F
|
||||
csin F
|
||||
csinf F
|
||||
csinh F
|
||||
csinhf F
|
||||
csinhl F
|
||||
csinl F
|
||||
csqrt F
|
||||
csqrtf F
|
||||
csqrtl F
|
||||
ctan F
|
||||
ctanf F
|
||||
ctanh F
|
||||
ctanhf F
|
||||
ctanhl F
|
||||
ctanl F
|
||||
exp10 F
|
||||
exp10f F
|
||||
exp10l F
|
||||
exp2 F
|
||||
exp2f F
|
||||
exp2l F
|
||||
fdim F
|
||||
fdimf F
|
||||
fdiml F
|
||||
feclearexcept F
|
||||
fegetenv F
|
||||
fegetexceptflag F
|
||||
fegetround F
|
||||
feholdexcept F
|
||||
feraiseexcept F
|
||||
fesetenv F
|
||||
fesetexceptflag F
|
||||
fesetround F
|
||||
fetestexcept F
|
||||
feupdateenv F
|
||||
fma F
|
||||
fmaf F
|
||||
fmal F
|
||||
fmax F
|
||||
fmaxf F
|
||||
fmaxl F
|
||||
fmin F
|
||||
fminf F
|
||||
fminl F
|
||||
llrint F
|
||||
llrintf F
|
||||
llrintl F
|
||||
llround F
|
||||
llroundf F
|
||||
llroundl F
|
||||
log2 F
|
||||
log2f F
|
||||
log2l F
|
||||
lrint F
|
||||
lrintf F
|
||||
lrintl F
|
||||
lround F
|
||||
lroundf F
|
||||
lroundl F
|
||||
nan F
|
||||
nanf F
|
||||
nanl F
|
||||
nearbyint F
|
||||
nearbyintf F
|
||||
nearbyintl F
|
||||
nexttoward F
|
||||
nexttowardf F
|
||||
nexttowardl F
|
||||
pow10 F
|
||||
pow10f F
|
||||
pow10l F
|
||||
remquo F
|
||||
remquof F
|
||||
remquol F
|
||||
round F
|
||||
roundf F
|
||||
roundl F
|
||||
scalbln F
|
||||
scalblnf F
|
||||
scalblnl F
|
||||
sincos F
|
||||
sincosf F
|
||||
sincosl F
|
||||
tgamma F
|
||||
tgammaf F
|
||||
tgammal F
|
||||
trunc F
|
||||
truncf F
|
||||
truncl F
|
||||
GLIBC_2.15
|
||||
GLIBC_2.15 A
|
||||
__acos_finite F
|
||||
__acosf_finite F
|
||||
__acosh_finite F
|
||||
__acoshf_finite F
|
||||
__acoshl_finite F
|
||||
__acosl_finite F
|
||||
__asin_finite F
|
||||
__asinf_finite F
|
||||
__asinl_finite F
|
||||
__atan2_finite F
|
||||
__atan2f_finite F
|
||||
__atan2l_finite F
|
||||
__atanh_finite F
|
||||
__atanhf_finite F
|
||||
__atanhl_finite F
|
||||
__cosh_finite F
|
||||
__coshf_finite F
|
||||
__coshl_finite F
|
||||
__exp10_finite F
|
||||
__exp10f_finite F
|
||||
__exp10l_finite F
|
||||
__exp2_finite F
|
||||
__exp2f_finite F
|
||||
__exp2l_finite F
|
||||
__exp_finite F
|
||||
__expf_finite F
|
||||
__expl_finite F
|
||||
__fmod_finite F
|
||||
__fmodf_finite F
|
||||
__fmodl_finite F
|
||||
__gamma_r_finite F
|
||||
__gammaf_r_finite F
|
||||
__gammal_r_finite F
|
||||
__hypot_finite F
|
||||
__hypotf_finite F
|
||||
__hypotl_finite F
|
||||
__j0_finite F
|
||||
__j0f_finite F
|
||||
__j0l_finite F
|
||||
__j1_finite F
|
||||
__j1f_finite F
|
||||
__j1l_finite F
|
||||
__jn_finite F
|
||||
__jnf_finite F
|
||||
__jnl_finite F
|
||||
__lgamma_r_finite F
|
||||
__lgammaf_r_finite F
|
||||
__lgammal_r_finite F
|
||||
__log10_finite F
|
||||
__log10f_finite F
|
||||
__log10l_finite F
|
||||
__log2_finite F
|
||||
__log2f_finite F
|
||||
__log2l_finite F
|
||||
__log_finite F
|
||||
__logf_finite F
|
||||
__logl_finite F
|
||||
__pow_finite F
|
||||
__powf_finite F
|
||||
__powl_finite F
|
||||
__remainder_finite F
|
||||
__remainderf_finite F
|
||||
__remainderl_finite F
|
||||
__scalb_finite F
|
||||
__scalbf_finite F
|
||||
__scalbl_finite F
|
||||
__sinh_finite F
|
||||
__sinhf_finite F
|
||||
__sinhl_finite F
|
||||
__sqrt_finite F
|
||||
__sqrtf_finite F
|
||||
__sqrtl_finite F
|
||||
__y0_finite F
|
||||
__y0f_finite F
|
||||
__y0l_finite F
|
||||
__y1_finite F
|
||||
__y1f_finite F
|
||||
__y1l_finite F
|
||||
__yn_finite F
|
||||
__ynf_finite F
|
||||
__ynl_finite F
|
||||
GLIBC_2.18
|
||||
GLIBC_2.18 A
|
||||
__issignaling F
|
||||
__issignalingf F
|
||||
__issignalingl F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
feclearexcept F
|
||||
fedisableexcept F
|
||||
feenableexcept F
|
||||
fegetenv F
|
||||
fegetexcept F
|
||||
fegetexceptflag F
|
||||
feraiseexcept F
|
||||
fesetenv F
|
||||
fesetexceptflag F
|
||||
feupdateenv F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
127
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libnsl.abilist
Normal file
127
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libnsl.abilist
Normal file
@@ -0,0 +1,127 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
__yp_check F
|
||||
xdr_domainname F
|
||||
xdr_keydat F
|
||||
xdr_mapname F
|
||||
xdr_peername F
|
||||
xdr_valdat F
|
||||
xdr_yp_buf F
|
||||
xdr_ypbind_binding F
|
||||
xdr_ypbind_resp F
|
||||
xdr_ypbind_resptype F
|
||||
xdr_ypbind_setdom F
|
||||
xdr_ypdelete_args F
|
||||
xdr_ypmap_parms F
|
||||
xdr_ypmaplist F
|
||||
xdr_yppush_status F
|
||||
xdr_yppushresp_xfr F
|
||||
xdr_ypreq_key F
|
||||
xdr_ypreq_nokey F
|
||||
xdr_ypreq_xfr F
|
||||
xdr_ypresp_all F
|
||||
xdr_ypresp_key_val F
|
||||
xdr_ypresp_maplist F
|
||||
xdr_ypresp_master F
|
||||
xdr_ypresp_order F
|
||||
xdr_ypresp_val F
|
||||
xdr_ypresp_xfr F
|
||||
xdr_ypstat F
|
||||
xdr_ypupdate_args F
|
||||
xdr_ypxfrstat F
|
||||
yp_all F
|
||||
yp_bind F
|
||||
yp_first F
|
||||
yp_get_default_domain F
|
||||
yp_maplist F
|
||||
yp_master F
|
||||
yp_match F
|
||||
yp_next F
|
||||
yp_order F
|
||||
yp_unbind F
|
||||
yp_update F
|
||||
ypbinderr_string F
|
||||
yperr_string F
|
||||
ypprot_err F
|
||||
GLIBC_2.1
|
||||
GLIBC_2.1 A
|
||||
__free_fdresult F
|
||||
__nis_default_access F
|
||||
__nis_default_group F
|
||||
__nis_default_owner F
|
||||
__nis_default_ttl F
|
||||
__nis_finddirectory F
|
||||
__nis_hash F
|
||||
__nisbind_connect F
|
||||
__nisbind_create F
|
||||
__nisbind_destroy F
|
||||
__nisbind_next F
|
||||
nis_add F
|
||||
nis_add_entry F
|
||||
nis_addmember F
|
||||
nis_checkpoint F
|
||||
nis_clone_directory F
|
||||
nis_clone_object F
|
||||
nis_clone_result F
|
||||
nis_creategroup F
|
||||
nis_destroy_object F
|
||||
nis_destroygroup F
|
||||
nis_dir_cmp F
|
||||
nis_domain_of F
|
||||
nis_domain_of_r F
|
||||
nis_first_entry F
|
||||
nis_free_directory F
|
||||
nis_free_object F
|
||||
nis_free_request F
|
||||
nis_freenames F
|
||||
nis_freeresult F
|
||||
nis_freeservlist F
|
||||
nis_freetags F
|
||||
nis_getnames F
|
||||
nis_getservlist F
|
||||
nis_ismember F
|
||||
nis_leaf_of F
|
||||
nis_leaf_of_r F
|
||||
nis_lerror F
|
||||
nis_list F
|
||||
nis_local_directory F
|
||||
nis_local_group F
|
||||
nis_local_host F
|
||||
nis_local_principal F
|
||||
nis_lookup F
|
||||
nis_mkdir F
|
||||
nis_modify F
|
||||
nis_modify_entry F
|
||||
nis_name_of F
|
||||
nis_name_of_r F
|
||||
nis_next_entry F
|
||||
nis_perror F
|
||||
nis_ping F
|
||||
nis_print_directory F
|
||||
nis_print_entry F
|
||||
nis_print_group F
|
||||
nis_print_group_entry F
|
||||
nis_print_link F
|
||||
nis_print_object F
|
||||
nis_print_result F
|
||||
nis_print_rights F
|
||||
nis_print_table F
|
||||
nis_read_obj F
|
||||
nis_remove F
|
||||
nis_remove_entry F
|
||||
nis_removemember F
|
||||
nis_rmdir F
|
||||
nis_servstate F
|
||||
nis_sperrno F
|
||||
nis_sperror F
|
||||
nis_sperror_r F
|
||||
nis_stats F
|
||||
nis_verifygroup F
|
||||
nis_write_obj F
|
||||
readColdStartFile F
|
||||
writeColdStartFile F
|
||||
xdr_cback_data F
|
||||
xdr_obj_p F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
xdr_ypall F
|
||||
271
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libpthread.abilist
Normal file
271
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libpthread.abilist
Normal file
@@ -0,0 +1,271 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
_IO_flockfile F
|
||||
_IO_ftrylockfile F
|
||||
_IO_funlockfile F
|
||||
__close F
|
||||
__connect F
|
||||
__errno_location F
|
||||
__fcntl F
|
||||
__fork F
|
||||
__h_errno_location F
|
||||
__lseek F
|
||||
__open F
|
||||
__pthread_getspecific F
|
||||
__pthread_key_create F
|
||||
__pthread_mutex_destroy F
|
||||
__pthread_mutex_init F
|
||||
__pthread_mutex_lock F
|
||||
__pthread_mutex_trylock F
|
||||
__pthread_mutex_unlock F
|
||||
__pthread_mutexattr_destroy F
|
||||
__pthread_mutexattr_init F
|
||||
__pthread_mutexattr_settype F
|
||||
__pthread_once F
|
||||
__pthread_setspecific F
|
||||
__read F
|
||||
__send F
|
||||
__sigaction F
|
||||
__wait F
|
||||
__write F
|
||||
_pthread_cleanup_pop F
|
||||
_pthread_cleanup_pop_restore F
|
||||
_pthread_cleanup_push F
|
||||
_pthread_cleanup_push_defer F
|
||||
accept F
|
||||
close F
|
||||
connect F
|
||||
fcntl F
|
||||
flockfile F
|
||||
fork F
|
||||
fsync F
|
||||
ftrylockfile F
|
||||
funlockfile F
|
||||
longjmp F
|
||||
lseek F
|
||||
msync F
|
||||
nanosleep F
|
||||
open F
|
||||
pause F
|
||||
pthread_atfork F
|
||||
pthread_attr_destroy F
|
||||
pthread_attr_getdetachstate F
|
||||
pthread_attr_getinheritsched F
|
||||
pthread_attr_getschedparam F
|
||||
pthread_attr_getschedpolicy F
|
||||
pthread_attr_getscope F
|
||||
pthread_attr_init F
|
||||
pthread_attr_setdetachstate F
|
||||
pthread_attr_setinheritsched F
|
||||
pthread_attr_setschedparam F
|
||||
pthread_attr_setschedpolicy F
|
||||
pthread_attr_setscope F
|
||||
pthread_cancel F
|
||||
pthread_cond_broadcast F
|
||||
pthread_cond_destroy F
|
||||
pthread_cond_init F
|
||||
pthread_cond_signal F
|
||||
pthread_cond_timedwait F
|
||||
pthread_cond_wait F
|
||||
pthread_condattr_destroy F
|
||||
pthread_condattr_init F
|
||||
pthread_create F
|
||||
pthread_detach F
|
||||
pthread_equal F
|
||||
pthread_exit F
|
||||
pthread_getschedparam F
|
||||
pthread_getspecific F
|
||||
pthread_join F
|
||||
pthread_key_create F
|
||||
pthread_key_delete F
|
||||
pthread_kill F
|
||||
pthread_kill_other_threads_np F
|
||||
pthread_mutex_destroy F
|
||||
pthread_mutex_init F
|
||||
pthread_mutex_lock F
|
||||
pthread_mutex_trylock F
|
||||
pthread_mutex_unlock F
|
||||
pthread_mutexattr_destroy F
|
||||
pthread_mutexattr_getkind_np F
|
||||
pthread_mutexattr_init F
|
||||
pthread_mutexattr_setkind_np F
|
||||
pthread_once F
|
||||
pthread_self F
|
||||
pthread_setcancelstate F
|
||||
pthread_setcanceltype F
|
||||
pthread_setschedparam F
|
||||
pthread_setspecific F
|
||||
pthread_sigmask F
|
||||
pthread_testcancel F
|
||||
raise F
|
||||
read F
|
||||
recv F
|
||||
recvfrom F
|
||||
recvmsg F
|
||||
sem_destroy F
|
||||
sem_getvalue F
|
||||
sem_init F
|
||||
sem_post F
|
||||
sem_trywait F
|
||||
sem_wait F
|
||||
send F
|
||||
sendmsg F
|
||||
sendto F
|
||||
sigaction F
|
||||
siglongjmp F
|
||||
sigwait F
|
||||
system F
|
||||
tcdrain F
|
||||
vfork F
|
||||
wait F
|
||||
waitpid F
|
||||
write F
|
||||
GLIBC_2.1
|
||||
GLIBC_2.1 A
|
||||
__libc_allocate_rtsig F
|
||||
__libc_current_sigrtmax F
|
||||
__libc_current_sigrtmin F
|
||||
pthread_attr_getguardsize F
|
||||
pthread_attr_getstackaddr F
|
||||
pthread_attr_getstacksize F
|
||||
pthread_attr_init F
|
||||
pthread_attr_setguardsize F
|
||||
pthread_attr_setstackaddr F
|
||||
pthread_attr_setstacksize F
|
||||
pthread_create F
|
||||
pthread_getconcurrency F
|
||||
pthread_mutexattr_gettype F
|
||||
pthread_mutexattr_settype F
|
||||
pthread_rwlock_destroy F
|
||||
pthread_rwlock_init F
|
||||
pthread_rwlock_rdlock F
|
||||
pthread_rwlock_tryrdlock F
|
||||
pthread_rwlock_trywrlock F
|
||||
pthread_rwlock_unlock F
|
||||
pthread_rwlock_wrlock F
|
||||
pthread_rwlockattr_destroy F
|
||||
pthread_rwlockattr_getkind_np F
|
||||
pthread_rwlockattr_getpshared F
|
||||
pthread_rwlockattr_init F
|
||||
pthread_rwlockattr_setkind_np F
|
||||
pthread_rwlockattr_setpshared F
|
||||
pthread_setconcurrency F
|
||||
sem_destroy F
|
||||
sem_getvalue F
|
||||
sem_init F
|
||||
sem_post F
|
||||
sem_trywait F
|
||||
sem_wait F
|
||||
GLIBC_2.1.1
|
||||
GLIBC_2.1.1 A
|
||||
sem_close F
|
||||
sem_open F
|
||||
sem_unlink F
|
||||
GLIBC_2.1.2
|
||||
GLIBC_2.1.2 A
|
||||
__vfork F
|
||||
GLIBC_2.11
|
||||
GLIBC_2.11 A
|
||||
pthread_sigqueue F
|
||||
GLIBC_2.12
|
||||
GLIBC_2.12 A
|
||||
pthread_getname_np F
|
||||
pthread_mutex_consistent F
|
||||
pthread_mutexattr_getrobust F
|
||||
pthread_mutexattr_setrobust F
|
||||
pthread_setname_np F
|
||||
GLIBC_2.18
|
||||
GLIBC_2.18 A
|
||||
pthread_getattr_default_np F
|
||||
pthread_setattr_default_np F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
__open64 F
|
||||
__pread64 F
|
||||
__pthread_rwlock_destroy F
|
||||
__pthread_rwlock_init F
|
||||
__pthread_rwlock_rdlock F
|
||||
__pthread_rwlock_tryrdlock F
|
||||
__pthread_rwlock_trywrlock F
|
||||
__pthread_rwlock_unlock F
|
||||
__pthread_rwlock_wrlock F
|
||||
__pwrite64 F
|
||||
__res_state F
|
||||
lseek64 F
|
||||
open64 F
|
||||
pread F
|
||||
pread64 F
|
||||
pthread_attr_getstack F
|
||||
pthread_attr_setstack F
|
||||
pthread_barrier_destroy F
|
||||
pthread_barrier_init F
|
||||
pthread_barrier_wait F
|
||||
pthread_barrierattr_destroy F
|
||||
pthread_barrierattr_init F
|
||||
pthread_barrierattr_setpshared F
|
||||
pthread_condattr_getpshared F
|
||||
pthread_condattr_setpshared F
|
||||
pthread_getcpuclockid F
|
||||
pthread_mutex_timedlock F
|
||||
pthread_mutexattr_getpshared F
|
||||
pthread_mutexattr_setpshared F
|
||||
pthread_rwlock_timedrdlock F
|
||||
pthread_rwlock_timedwrlock F
|
||||
pthread_spin_destroy F
|
||||
pthread_spin_init F
|
||||
pthread_spin_lock F
|
||||
pthread_spin_trylock F
|
||||
pthread_spin_unlock F
|
||||
pthread_yield F
|
||||
pwrite F
|
||||
pwrite64 F
|
||||
sem_timedwait F
|
||||
GLIBC_2.2.3
|
||||
GLIBC_2.2.3 A
|
||||
pthread_getattr_np F
|
||||
GLIBC_2.2.6
|
||||
GLIBC_2.2.6 A
|
||||
__nanosleep F
|
||||
GLIBC_2.3.2
|
||||
GLIBC_2.3.2 A
|
||||
pthread_cond_broadcast F
|
||||
pthread_cond_destroy F
|
||||
pthread_cond_init F
|
||||
pthread_cond_signal F
|
||||
pthread_cond_timedwait F
|
||||
pthread_cond_wait F
|
||||
GLIBC_2.3.3
|
||||
GLIBC_2.3.3 A
|
||||
__pthread_cleanup_routine F
|
||||
__pthread_register_cancel F
|
||||
__pthread_register_cancel_defer F
|
||||
__pthread_unregister_cancel F
|
||||
__pthread_unregister_cancel_restore F
|
||||
__pthread_unwind_next F
|
||||
pthread_attr_getaffinity_np F
|
||||
pthread_attr_setaffinity_np F
|
||||
pthread_barrierattr_getpshared F
|
||||
pthread_condattr_getclock F
|
||||
pthread_condattr_setclock F
|
||||
pthread_getaffinity_np F
|
||||
pthread_setaffinity_np F
|
||||
pthread_timedjoin_np F
|
||||
pthread_tryjoin_np F
|
||||
GLIBC_2.3.4
|
||||
GLIBC_2.3.4 A
|
||||
pthread_attr_getaffinity_np F
|
||||
pthread_attr_setaffinity_np F
|
||||
pthread_getaffinity_np F
|
||||
pthread_setaffinity_np F
|
||||
pthread_setschedprio F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
pthread_mutex_consistent_np F
|
||||
pthread_mutex_getprioceiling F
|
||||
pthread_mutex_setprioceiling F
|
||||
pthread_mutexattr_getprioceiling F
|
||||
pthread_mutexattr_getprotocol F
|
||||
pthread_mutexattr_getrobust_np F
|
||||
pthread_mutexattr_setprioceiling F
|
||||
pthread_mutexattr_setprotocol F
|
||||
pthread_mutexattr_setrobust_np F
|
||||
104
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libresolv.abilist
Normal file
104
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libresolv.abilist
Normal file
@@ -0,0 +1,104 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
__b64_ntop F
|
||||
__b64_pton F
|
||||
__dn_comp F
|
||||
__dn_count_labels F
|
||||
__dn_skipname F
|
||||
__fp_nquery F
|
||||
__fp_query F
|
||||
__fp_resstat F
|
||||
__hostalias F
|
||||
__loc_aton F
|
||||
__loc_ntoa F
|
||||
__p_cdname F
|
||||
__p_cdnname F
|
||||
__p_class F
|
||||
__p_class_syms D 0x54
|
||||
__p_fqname F
|
||||
__p_fqnname F
|
||||
__p_option F
|
||||
__p_query F
|
||||
__p_secstodate F
|
||||
__p_time F
|
||||
__p_type F
|
||||
__p_type_syms D 0x228
|
||||
__putlong F
|
||||
__putshort F
|
||||
__res_close F
|
||||
__res_dnok F
|
||||
__res_hnok F
|
||||
__res_isourserver F
|
||||
__res_mailok F
|
||||
__res_nameinquery F
|
||||
__res_ownok F
|
||||
__res_queriesmatch F
|
||||
__res_send F
|
||||
__sym_ntop F
|
||||
__sym_ntos F
|
||||
__sym_ston F
|
||||
_gethtbyaddr F
|
||||
_gethtbyname F
|
||||
_gethtbyname2 F
|
||||
_gethtent F
|
||||
_getlong F
|
||||
_getshort F
|
||||
_res_opcodes D 0x40
|
||||
_sethtent F
|
||||
dn_expand F
|
||||
inet_net_ntop F
|
||||
inet_net_pton F
|
||||
inet_neta F
|
||||
res_gethostbyaddr F
|
||||
res_gethostbyname F
|
||||
res_gethostbyname2 F
|
||||
res_mkquery F
|
||||
res_query F
|
||||
res_querydomain F
|
||||
res_search F
|
||||
res_send_setqhook F
|
||||
res_send_setrhook F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
__dn_expand F
|
||||
__res_hostalias F
|
||||
__res_mkquery F
|
||||
__res_nmkquery F
|
||||
__res_nquery F
|
||||
__res_nquerydomain F
|
||||
__res_nsearch F
|
||||
__res_nsend F
|
||||
__res_query F
|
||||
__res_querydomain F
|
||||
__res_search F
|
||||
GLIBC_2.3.2
|
||||
GLIBC_2.3.2 A
|
||||
__p_rcode F
|
||||
GLIBC_2.9
|
||||
GLIBC_2.9 A
|
||||
ns_datetosecs F
|
||||
ns_format_ttl F
|
||||
ns_get16 F
|
||||
ns_get32 F
|
||||
ns_initparse F
|
||||
ns_makecanon F
|
||||
ns_msg_getflag F
|
||||
ns_name_compress F
|
||||
ns_name_ntol F
|
||||
ns_name_ntop F
|
||||
ns_name_pack F
|
||||
ns_name_pton F
|
||||
ns_name_rollback F
|
||||
ns_name_skip F
|
||||
ns_name_uncompress F
|
||||
ns_name_unpack F
|
||||
ns_parse_ttl F
|
||||
ns_parserr F
|
||||
ns_put16 F
|
||||
ns_put32 F
|
||||
ns_samedomain F
|
||||
ns_samename F
|
||||
ns_skiprr F
|
||||
ns_sprintrr F
|
||||
ns_sprintrrf F
|
||||
ns_subdomain F
|
||||
52
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/librt.abilist
Normal file
52
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/librt.abilist
Normal file
@@ -0,0 +1,52 @@
|
||||
GLIBC_2.1
|
||||
GLIBC_2.1 A
|
||||
aio_cancel F
|
||||
aio_cancel64 F
|
||||
aio_error F
|
||||
aio_error64 F
|
||||
aio_fsync F
|
||||
aio_fsync64 F
|
||||
aio_init F
|
||||
aio_read F
|
||||
aio_read64 F
|
||||
aio_return F
|
||||
aio_return64 F
|
||||
aio_suspend F
|
||||
aio_suspend64 F
|
||||
aio_write F
|
||||
aio_write64 F
|
||||
lio_listio F
|
||||
lio_listio64 F
|
||||
GLIBC_2.2
|
||||
GLIBC_2.2 A
|
||||
clock_getcpuclockid F
|
||||
clock_getres F
|
||||
clock_gettime F
|
||||
clock_nanosleep F
|
||||
clock_settime F
|
||||
shm_open F
|
||||
shm_unlink F
|
||||
timer_create F
|
||||
timer_delete F
|
||||
timer_getoverrun F
|
||||
timer_gettime F
|
||||
timer_settime F
|
||||
GLIBC_2.3.4
|
||||
GLIBC_2.3.4 A
|
||||
mq_close F
|
||||
mq_getattr F
|
||||
mq_notify F
|
||||
mq_open F
|
||||
mq_receive F
|
||||
mq_send F
|
||||
mq_setattr F
|
||||
mq_timedreceive F
|
||||
mq_timedsend F
|
||||
mq_unlink F
|
||||
GLIBC_2.4
|
||||
GLIBC_2.4 A
|
||||
lio_listio F
|
||||
lio_listio64 F
|
||||
GLIBC_2.7
|
||||
GLIBC_2.7 A
|
||||
__mq_open_2 F
|
||||
@@ -0,0 +1,48 @@
|
||||
GLIBC_2.1.3
|
||||
GLIBC_2.1.3 A
|
||||
td_init F
|
||||
td_log F
|
||||
td_ta_clear_event F
|
||||
td_ta_delete F
|
||||
td_ta_enable_stats F
|
||||
td_ta_event_addr F
|
||||
td_ta_event_getmsg F
|
||||
td_ta_get_nthreads F
|
||||
td_ta_get_ph F
|
||||
td_ta_get_stats F
|
||||
td_ta_map_id2thr F
|
||||
td_ta_map_lwp2thr F
|
||||
td_ta_new F
|
||||
td_ta_reset_stats F
|
||||
td_ta_set_event F
|
||||
td_ta_setconcurrency F
|
||||
td_ta_thr_iter F
|
||||
td_ta_tsd_iter F
|
||||
td_thr_clear_event F
|
||||
td_thr_dbresume F
|
||||
td_thr_dbsuspend F
|
||||
td_thr_event_enable F
|
||||
td_thr_event_getmsg F
|
||||
td_thr_get_info F
|
||||
td_thr_getfpregs F
|
||||
td_thr_getgregs F
|
||||
td_thr_getxregs F
|
||||
td_thr_getxregsize F
|
||||
td_thr_set_event F
|
||||
td_thr_setfpregs F
|
||||
td_thr_setgregs F
|
||||
td_thr_setprio F
|
||||
td_thr_setsigpending F
|
||||
td_thr_setxregs F
|
||||
td_thr_sigsetmask F
|
||||
td_thr_tsd F
|
||||
td_thr_validate F
|
||||
GLIBC_2.2.3
|
||||
GLIBC_2.2.3 A
|
||||
td_symbol_list F
|
||||
GLIBC_2.3
|
||||
GLIBC_2.3 A
|
||||
td_thr_tls_get_addr F
|
||||
GLIBC_2.3.3
|
||||
GLIBC_2.3.3 A
|
||||
td_thr_tlsbase F
|
||||
8
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libutil.abilist
Normal file
8
sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libutil.abilist
Normal file
@@ -0,0 +1,8 @@
|
||||
GLIBC_2.0
|
||||
GLIBC_2.0 A
|
||||
forkpty F
|
||||
login F
|
||||
login_tty F
|
||||
logout F
|
||||
logwtmp F
|
||||
openpty F
|
||||
94
sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
Normal file
94
sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
Normal file
@@ -0,0 +1,94 @@
|
||||
/* Install given context.
|
||||
Copyright (C) 2012-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
#include "ucontext_i.h"
|
||||
|
||||
ENTRY(__setcontext)
|
||||
/* Load address of the context data structure. */
|
||||
move.l 4(%sp), %a0
|
||||
|
||||
/* Get the current signal mask. Note that we preserve D2/D3 in case
|
||||
the system call fails and we return from the function with an
|
||||
error. */
|
||||
move.l %d3, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%d3, 0)
|
||||
move.l %d2, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%d2, 0)
|
||||
clr.l %d3
|
||||
lea oSIGMASK(%a0), %a1
|
||||
move.l %a1, %d2
|
||||
move.l #SIG_SETMASK, %d1
|
||||
move.l #__NR_sigprocmask, %d0
|
||||
trap #0
|
||||
cmp.l #-4095, %d0 /* Check %d0 for error. */
|
||||
jcs 0f
|
||||
move.l (%sp)+, %d2
|
||||
cfi_adjust_cfa_offset (-4)
|
||||
cfi_restore (d2)
|
||||
move.l (%sp)+, %d3
|
||||
cfi_adjust_cfa_offset (-4)
|
||||
cfi_restore (d3)
|
||||
jra SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
|
||||
|
||||
0: /* Load the new stack pointer. */
|
||||
move.l oSP(%a0), %sp
|
||||
cfi_def_cfa (%a0, 0)
|
||||
cfi_offset (%d2, oGREGS+2*4)
|
||||
cfi_offset (%d3, oGREGS+3*4)
|
||||
cfi_offset (%d4, oGREGS+4*4)
|
||||
cfi_offset (%d5, oGREGS+5*4)
|
||||
cfi_offset (%d6, oGREGS+6*4)
|
||||
cfi_offset (%d7, oGREGS+7*4)
|
||||
cfi_offset (%a2, oGREGS+10*4)
|
||||
cfi_offset (%a3, oGREGS+11*4)
|
||||
cfi_offset (%a4, oGREGS+12*4)
|
||||
cfi_offset (%a5, oGREGS+13*4)
|
||||
cfi_offset (%a6, oGREGS+14*4)
|
||||
cfi_offset (%fp2, oFP2+0*12)
|
||||
cfi_offset (%fp3, oFP2+1*12)
|
||||
cfi_offset (%fp4, oFP2+2*12)
|
||||
cfi_offset (%fp5, oFP2+3*12)
|
||||
cfi_offset (%fp6, oFP2+4*12)
|
||||
cfi_offset (%fp7, oFP2+5*12)
|
||||
cfi_offset (%pc, oPC)
|
||||
|
||||
/* Load the values of all the preserved registers (except SP). */
|
||||
movem.l oGREGS+2*4(%a0), %d2-%d7
|
||||
movem.l oGREGS+10*4(%a0), %a2-%a6
|
||||
fmovem.l oFPREGS(%a0), %fpsr/%fpcr/%fpiar
|
||||
fmovem.x oFP2(%a0), %fp2-%fp7
|
||||
clr.l %d0
|
||||
|
||||
/* Fetch the address to return to. */
|
||||
movl oPC(%a0), %a1
|
||||
|
||||
/* End FDE here, we fall into another context. */
|
||||
cfi_endproc
|
||||
cfi_startproc
|
||||
cfi_register (%pc, %a1)
|
||||
|
||||
jmp (%a1)
|
||||
|
||||
cfi_offset (%pc, -4)
|
||||
PSEUDO_END(__setcontext)
|
||||
|
||||
weak_alias (__setcontext, setcontext)
|
||||
108
sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
Normal file
108
sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
Normal file
@@ -0,0 +1,108 @@
|
||||
/* Save current context and install the given one.
|
||||
Copyright (C) 2012-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
#include "ucontext_i.h"
|
||||
|
||||
|
||||
ENTRY(__swapcontext)
|
||||
/* Load address of the context data structure we save in. */
|
||||
move.l 4(%sp), %a0
|
||||
|
||||
/* Save the preserved registers and the return address. */
|
||||
movem.l %d2-%d7, oGREGS+2*4(%a0)
|
||||
movem.l %a2-%a6, oGREGS+10*4(%a0)
|
||||
lea 4(%sp), %a1
|
||||
move.l %a1, oSP(%a0)
|
||||
move.l (%sp), oPC(%a0)
|
||||
fmovem.l %fpsr/%fpcr/%fpiar, oFPREGS(%a0)
|
||||
fmovem.x %fp2-%fp7, oFP2(%a0)
|
||||
cfi_def_cfa (%a0, 0)
|
||||
cfi_offset (%d2, oGREGS+2*4)
|
||||
cfi_offset (%d3, oGREGS+3*4)
|
||||
cfi_offset (%a2, oGREGS+10*4)
|
||||
cfi_offset (%pc, oPC)
|
||||
|
||||
/* Load address of the context data structure we have to load. */
|
||||
move.l 8(%sp), %a1
|
||||
|
||||
/* Save the current signal mask and install the new one. */
|
||||
lea oSIGMASK(%a0), %a2
|
||||
move.l %a2, %d3
|
||||
lea oSIGMASK(%a1), %a2
|
||||
move.l %a2, %d2
|
||||
move.l #SIG_SETMASK, %d1
|
||||
move.l #__NR_sigprocmask, %d0
|
||||
trap #0
|
||||
cmp.l #-4095, %d0 /* Check %d0 for error. */
|
||||
jcs 0f
|
||||
/* Restore registers. */
|
||||
move.l oGREGS+2*4(%a0), %d2
|
||||
cfi_restore (%d2)
|
||||
move.l oGREGS+3*4(%a0), %d3
|
||||
cfi_restore (%d3)
|
||||
move.l oGREGS+10*4(%a0), %a2
|
||||
cfi_restore (%a2)
|
||||
jra SYSCALL_ERROR_LABEL /* Jump to error handler. */
|
||||
|
||||
0: /* Load the new stack pointer. */
|
||||
move.l oSP(%a1), %sp
|
||||
cfi_def_cfa (%a1, 0)
|
||||
cfi_offset (%d2, oGREGS+2*4)
|
||||
cfi_offset (%d3, oGREGS+3*4)
|
||||
cfi_offset (%d4, oGREGS+4*4)
|
||||
cfi_offset (%d5, oGREGS+5*4)
|
||||
cfi_offset (%d6, oGREGS+6*4)
|
||||
cfi_offset (%d7, oGREGS+7*4)
|
||||
cfi_offset (%a2, oGREGS+10*4)
|
||||
cfi_offset (%a3, oGREGS+11*4)
|
||||
cfi_offset (%a4, oGREGS+12*4)
|
||||
cfi_offset (%a5, oGREGS+13*4)
|
||||
cfi_offset (%a6, oGREGS+14*4)
|
||||
cfi_offset (%fp2, oFP2+0*12)
|
||||
cfi_offset (%fp3, oFP2+1*12)
|
||||
cfi_offset (%fp4, oFP2+2*12)
|
||||
cfi_offset (%fp5, oFP2+3*12)
|
||||
cfi_offset (%fp6, oFP2+4*12)
|
||||
cfi_offset (%fp7, oFP2+5*12)
|
||||
cfi_offset (%pc, oPC)
|
||||
|
||||
/* Load the values of all the preserved registers (except SP). */
|
||||
movem.l oGREGS+2*4(%a1), %d2-%d7
|
||||
movem.l oGREGS+10*4(%a1), %a2-%a6
|
||||
fmovem.l oFPREGS(%a1), %fpsr/%fpcr/%fpiar
|
||||
fmovem.x oFP2(%a1), %fp2-%fp7
|
||||
|
||||
/* Clear D0 to indicate success. */
|
||||
clr.l %d0
|
||||
|
||||
/* Fetch the address to return to. */
|
||||
move.l oPC(%a1), %a0
|
||||
|
||||
/* End FDE here, we fall into another context. */
|
||||
cfi_endproc
|
||||
cfi_startproc
|
||||
cfi_register (%pc, %a0)
|
||||
|
||||
jmp (%a0)
|
||||
|
||||
cfi_offset (%pc, -4)
|
||||
PSEUDO_END(__swapcontext)
|
||||
|
||||
weak_alias (__swapcontext, swapcontext)
|
||||
4
sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list
Normal file
4
sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list
Normal file
@@ -0,0 +1,4 @@
|
||||
# File name Caller Syscall name Args Strong name Weak names
|
||||
|
||||
oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0
|
||||
oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0
|
||||
28
sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
Normal file
28
sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _LINUX_M68K_M680X0_SYSDEP_H
|
||||
#define _LINUX_M68K_M680X0_SYSDEP_H 1
|
||||
|
||||
#include <sysdeps/unix/sysdep.h>
|
||||
#include <sysdeps/m68k/m680x0/sysdep.h>
|
||||
#include <sysdeps/unix/sysv/linux/m68k/sysdep.h>
|
||||
|
||||
#define SYSCALL_ERROR_LOAD_GOT(reg) \
|
||||
lea (_GLOBAL_OFFSET_TABLE_@GOTPC, %pc), reg
|
||||
|
||||
#endif
|
||||
20
sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym
Normal file
20
sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <stddef.h>
|
||||
#include <signal.h>
|
||||
#include <sys/ucontext.h>
|
||||
|
||||
--
|
||||
|
||||
SIG_SETMASK
|
||||
|
||||
#define ucontext(member) offsetof (ucontext_t, member)
|
||||
#define mcontext(member) ucontext (uc_mcontext.member)
|
||||
|
||||
oLINK ucontext (uc_link)
|
||||
oSS_SP ucontext (uc_stack.ss_sp)
|
||||
oSS_SIZE ucontext (uc_stack.ss_size)
|
||||
oGREGS mcontext (gregs)
|
||||
oSP mcontext (gregs[R_SP])
|
||||
oPC mcontext (gregs[R_PC])
|
||||
oFPREGS mcontext (fpregs)
|
||||
oFP2 mcontext (fpregs.f_fpregs[2])
|
||||
oSIGMASK ucontext (uc_sigmask)
|
||||
95
sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
Normal file
95
sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
Normal file
@@ -0,0 +1,95 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
In addition to the permissions in the GNU Lesser General Public
|
||||
License, the Free Software Foundation gives you unlimited
|
||||
permission to link the compiled version of this file with other
|
||||
programs, and to distribute those programs without any restriction
|
||||
coming from the use of this file. (The GNU Lesser General Public
|
||||
License restrictions do apply in other respects; for example, they
|
||||
cover modification of the file, and distribution when not linked
|
||||
into another program.)
|
||||
|
||||
Note that people who make modified versions of this file are not
|
||||
obligated to grant this special exception for their modified
|
||||
versions; it is their choice whether to do so. The GNU Lesser
|
||||
General Public License gives permission to release a modified
|
||||
version without this exception; this exception also makes it
|
||||
possible to release a modified version which carries forward this
|
||||
exception.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <bits/m68k-vdso.h>
|
||||
|
||||
.text
|
||||
|
||||
.hidden __vdso_read_tp_stub
|
||||
ENTRY (__vdso_read_tp_stub)
|
||||
move.l #__NR_get_thread_area, %d0
|
||||
trap #0
|
||||
move.l %d0, %a0
|
||||
rts
|
||||
END (__vdso_read_tp_stub)
|
||||
|
||||
# ifdef SHARED
|
||||
/* GCC will emit calls to this routine. Linux has an
|
||||
equivalent helper function (which clobbers fewer registers than
|
||||
a normal function call) in a vdso; tail call to the
|
||||
helper. */
|
||||
# ifdef IS_IN_rtld
|
||||
/* rtld gets a hidden copy of __m68k_read_tp. */
|
||||
.hidden __m68k_read_tp
|
||||
# endif
|
||||
ENTRY (__m68k_read_tp)
|
||||
LOAD_GOT (%a0)
|
||||
move.l M68K_VDSO_SYMBOL (__vdso_read_tp)@GOT(%a0), %a0
|
||||
move.l (%a0), %a0
|
||||
jmp (%a0)
|
||||
END (__m68k_read_tp)
|
||||
|
||||
/* The following two stubs are for macros in atomic.h, they can't
|
||||
clobber anything. */
|
||||
|
||||
.hidden __vdso_atomic_cmpxchg_32_stub
|
||||
ENTRY (__vdso_atomic_cmpxchg_32_stub)
|
||||
move.l %d2, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%d2, 0)
|
||||
move.l %d0, %d2
|
||||
move.l #SYS_ify (atomic_cmpxchg_32), %d0
|
||||
trap #0
|
||||
move.l (%sp)+, %d2
|
||||
cfi_adjust_cfa_offset (-4)
|
||||
cfi_restore (%d2)
|
||||
rts
|
||||
END (__vdso_atomic_cmpxchg_32_stub)
|
||||
|
||||
.hidden __vdso_atomic_barrier_stub
|
||||
ENTRY (__vdso_atomic_barrier_stub)
|
||||
move.l %d0, -(%sp)
|
||||
cfi_adjust_cfa_offset (4)
|
||||
move.l #SYS_ify (atomic_barrier), %d0
|
||||
trap #0
|
||||
move.l (%sp)+, %d0
|
||||
cfi_adjust_cfa_offset (-4)
|
||||
rts
|
||||
END (__vdso_atomic_barrier_stub)
|
||||
# else /* !SHARED */
|
||||
/* If the vDSO is not available, use a syscall to get TP. */
|
||||
strong_alias (__vdso_read_tp_stub, __m68k_read_tp)
|
||||
# endif /* SHARED */
|
||||
34
sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
Normal file
34
sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifdef SHARED
|
||||
|
||||
#include <bits/m68k-vdso.h>
|
||||
|
||||
/* Because these pointers are used from other libraries than libc,
|
||||
they are exported at GLIBC_PRIVATE version.
|
||||
We initialize them to syscall implementation so that they will be ready
|
||||
to use from the very beginning. */
|
||||
void * M68K_VDSO_SYMBOL (__vdso_read_tp)
|
||||
= (void *) __vdso_read_tp_stub;
|
||||
void * M68K_VDSO_SYMBOL (__vdso_atomic_cmpxchg_32)
|
||||
= (void *) __vdso_atomic_cmpxchg_32_stub;
|
||||
void * M68K_VDSO_SYMBOL (__vdso_atomic_barrier)
|
||||
= (void *) __vdso_atomic_barrier_stub;
|
||||
|
||||
#endif /* SHARED */
|
||||
42
sysdeps/unix/sysv/linux/m68k/mmap.S
Normal file
42
sysdeps/unix/sysv/linux/m68k/mmap.S
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.text
|
||||
ENTRY (__mmap)
|
||||
|
||||
move.l #SYS_ify (mmap), %d0 /* System call number in %d0. */
|
||||
|
||||
lea 4(%sp), %a0 /* Address of args is 1st arg. */
|
||||
move.l %a0, %d1
|
||||
|
||||
/* Do the system call trap. */
|
||||
trap #0
|
||||
|
||||
/* Kludge: negative numbers are among the legal return values.
|
||||
If %d0 is between -4096 and 0 then there was an error. */
|
||||
cmp.l #-4096, %d0
|
||||
jhi SYSCALL_ERROR_LABEL
|
||||
|
||||
/* Successful; return the syscall's value. Copy it to %a0 because
|
||||
mmap is declared to return a pointer. */
|
||||
move.l %d0, %a0
|
||||
rts
|
||||
PSEUDO_END (__mmap)
|
||||
|
||||
weak_alias (__mmap, mmap)
|
||||
5
sysdeps/unix/sysv/linux/m68k/mmap64.c
Normal file
5
sysdeps/unix/sysv/linux/m68k/mmap64.c
Normal file
@@ -0,0 +1,5 @@
|
||||
/* ColdFire and Sun 3 kernels have PAGE_SHIFT set to 13 and expect
|
||||
mmap2 offset to be provided in 8K pages. Determine the shift
|
||||
dynamically with getpagesize. */
|
||||
#define MMAP2_PAGE_SHIFT -1
|
||||
#include <sysdeps/unix/sysv/linux/mmap64.c>
|
||||
28
sysdeps/unix/sysv/linux/m68k/mremap.S
Normal file
28
sysdeps/unix/sysv/linux/m68k/mremap.S
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
/* The mremap system call is special because it needs to return
|
||||
its value in register %a0. */
|
||||
|
||||
.text
|
||||
PSEUDO (__mremap, mremap, 5)
|
||||
move.l %d0, %a0
|
||||
rts
|
||||
PSEUDO_END (__mremap)
|
||||
weak_alias (__mremap, mremap)
|
||||
1
sysdeps/unix/sysv/linux/m68k/msgctl.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/msgctl.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/msgctl.c>
|
||||
175
sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
Normal file
175
sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
Normal file
@@ -0,0 +1,175 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _BITS_PTHREADTYPES_H
|
||||
#define _BITS_PTHREADTYPES_H 1
|
||||
|
||||
#include <endian.h>
|
||||
|
||||
#define __SIZEOF_PTHREAD_ATTR_T 36
|
||||
#define __SIZEOF_PTHREAD_MUTEX_T 24
|
||||
#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_COND_T 48
|
||||
#define __SIZEOF_PTHREAD_CONDATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_RWLOCK_T 32
|
||||
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
|
||||
#define __SIZEOF_PTHREAD_BARRIER_T 20
|
||||
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
|
||||
|
||||
|
||||
/* Thread identifiers. The structure of the attribute type is
|
||||
deliberately not exposed. */
|
||||
typedef unsigned long int pthread_t;
|
||||
|
||||
|
||||
union pthread_attr_t
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_ATTR_T];
|
||||
long int __align;
|
||||
};
|
||||
#ifndef __have_pthread_attr_t
|
||||
typedef union pthread_attr_t pthread_attr_t;
|
||||
# define __have_pthread_attr_t 1
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct __pthread_internal_slist
|
||||
{
|
||||
struct __pthread_internal_slist *__next;
|
||||
} __pthread_slist_t;
|
||||
|
||||
|
||||
/* Data structures for mutex handling. The structure of the attribute
|
||||
type is deliberately not exposed. */
|
||||
typedef union
|
||||
{
|
||||
struct __pthread_mutex_s
|
||||
{
|
||||
int __lock __attribute__ ((__aligned__ (4)));
|
||||
unsigned int __count;
|
||||
int __owner;
|
||||
/* KIND must stay at this position in the structure to maintain
|
||||
binary compatibility. */
|
||||
int __kind;
|
||||
unsigned int __nusers;
|
||||
__extension__ union
|
||||
{
|
||||
int __spins;
|
||||
__pthread_slist_t __list;
|
||||
};
|
||||
} __data;
|
||||
char __size[__SIZEOF_PTHREAD_MUTEX_T];
|
||||
long int __align;
|
||||
} pthread_mutex_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
|
||||
int __align;
|
||||
} pthread_mutexattr_t;
|
||||
|
||||
|
||||
/* Data structure for conditional variable handling. The structure of
|
||||
the attribute type is deliberately not exposed. */
|
||||
typedef union
|
||||
{
|
||||
struct
|
||||
{
|
||||
int __lock __attribute__ ((__aligned__ (4)));
|
||||
unsigned int __futex;
|
||||
__extension__ unsigned long long int __total_seq;
|
||||
__extension__ unsigned long long int __wakeup_seq;
|
||||
__extension__ unsigned long long int __woken_seq;
|
||||
void *__mutex;
|
||||
unsigned int __nwaiters;
|
||||
unsigned int __broadcast_seq;
|
||||
} __data;
|
||||
char __size[__SIZEOF_PTHREAD_COND_T];
|
||||
__extension__ long long int __align;
|
||||
} pthread_cond_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_CONDATTR_T];
|
||||
int __align;
|
||||
} pthread_condattr_t;
|
||||
|
||||
|
||||
/* Keys for thread-specific data */
|
||||
typedef unsigned int pthread_key_t;
|
||||
|
||||
|
||||
/* Once-only execution */
|
||||
typedef int __attribute__ ((__aligned__ (4))) pthread_once_t;
|
||||
|
||||
|
||||
#if defined __USE_UNIX98 || defined __USE_XOPEN2K
|
||||
/* Data structure for read-write lock variable handling. The
|
||||
structure of the attribute type is deliberately not exposed. */
|
||||
typedef union
|
||||
{
|
||||
struct
|
||||
{
|
||||
int __lock __attribute__ ((__aligned__ (4)));
|
||||
unsigned int __nr_readers;
|
||||
unsigned int __readers_wakeup;
|
||||
unsigned int __writer_wakeup;
|
||||
unsigned int __nr_readers_queued;
|
||||
unsigned int __nr_writers_queued;
|
||||
unsigned char __pad1;
|
||||
unsigned char __pad2;
|
||||
unsigned char __shared;
|
||||
/* FLAGS must stay at this position in the structure to maintain
|
||||
binary compatibility. */
|
||||
unsigned char __flags;
|
||||
int __writer;
|
||||
} __data;
|
||||
char __size[__SIZEOF_PTHREAD_RWLOCK_T];
|
||||
long int __align;
|
||||
} pthread_rwlock_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
|
||||
long int __align;
|
||||
} pthread_rwlockattr_t;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __USE_XOPEN2K
|
||||
/* POSIX spinlock data type. */
|
||||
typedef volatile int pthread_spinlock_t;
|
||||
|
||||
|
||||
/* POSIX barriers data type. The structure of the type is
|
||||
deliberately not exposed. */
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_BARRIER_T];
|
||||
long int __align __attribute__ ((__aligned__ (4)));
|
||||
} pthread_barrier_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
|
||||
int __align;
|
||||
} pthread_barrierattr_t;
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* bits/pthreadtypes.h */
|
||||
35
sysdeps/unix/sysv/linux/m68k/nptl/bits/semaphore.h
Normal file
35
sysdeps/unix/sysv/linux/m68k/nptl/bits/semaphore.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef _SEMAPHORE_H
|
||||
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
#define __SIZEOF_SEM_T 16
|
||||
|
||||
|
||||
/* Value returned if `sem_open' failed. */
|
||||
#define SEM_FAILED ((sem_t *) 0)
|
||||
|
||||
|
||||
typedef union
|
||||
{
|
||||
char __size[__SIZEOF_SEM_T];
|
||||
long int __align __attribute__ ((__aligned__ (4)));
|
||||
} sem_t;
|
||||
67
sysdeps/unix/sysv/linux/m68k/nptl/c++-types.data
Normal file
67
sysdeps/unix/sysv/linux/m68k/nptl/c++-types.data
Normal file
@@ -0,0 +1,67 @@
|
||||
blkcnt64_t:x
|
||||
blkcnt_t:l
|
||||
blksize_t:l
|
||||
caddr_t:Pc
|
||||
clockid_t:i
|
||||
clock_t:l
|
||||
daddr_t:i
|
||||
dev_t:y
|
||||
fd_mask:l
|
||||
fsblkcnt64_t:y
|
||||
fsblkcnt_t:m
|
||||
fsfilcnt64_t:y
|
||||
fsfilcnt_t:m
|
||||
fsid_t:8__fsid_t
|
||||
gid_t:j
|
||||
id_t:j
|
||||
ino64_t:y
|
||||
ino_t:m
|
||||
int16_t:s
|
||||
int32_t:i
|
||||
int64_t:x
|
||||
int8_t:a
|
||||
intptr_t:i
|
||||
key_t:i
|
||||
loff_t:x
|
||||
mode_t:j
|
||||
nlink_t:j
|
||||
off64_t:x
|
||||
off_t:l
|
||||
pid_t:i
|
||||
pthread_attr_t:14pthread_attr_t
|
||||
pthread_barrier_t:17pthread_barrier_t
|
||||
pthread_barrierattr_t:21pthread_barrierattr_t
|
||||
pthread_cond_t:14pthread_cond_t
|
||||
pthread_condattr_t:18pthread_condattr_t
|
||||
pthread_key_t:j
|
||||
pthread_mutex_t:15pthread_mutex_t
|
||||
pthread_mutexattr_t:19pthread_mutexattr_t
|
||||
pthread_once_t:i
|
||||
pthread_rwlock_t:16pthread_rwlock_t
|
||||
pthread_rwlockattr_t:20pthread_rwlockattr_t
|
||||
pthread_spinlock_t:i
|
||||
pthread_t:m
|
||||
quad_t:x
|
||||
register_t:i
|
||||
rlim64_t:y
|
||||
rlim_t:m
|
||||
sigset_t:10__sigset_t
|
||||
size_t:j
|
||||
socklen_t:j
|
||||
ssize_t:i
|
||||
suseconds_t:l
|
||||
time_t:l
|
||||
u_char:h
|
||||
uid_t:j
|
||||
uint:j
|
||||
u_int:j
|
||||
u_int16_t:t
|
||||
u_int32_t:j
|
||||
u_int64_t:y
|
||||
u_int8_t:h
|
||||
ulong:m
|
||||
u_long:m
|
||||
u_quad_t:y
|
||||
useconds_t:j
|
||||
ushort:t
|
||||
u_short:t
|
||||
2
sysdeps/unix/sysv/linux/m68k/nptl/clone.S
Normal file
2
sysdeps/unix/sysv/linux/m68k/nptl/clone.S
Normal file
@@ -0,0 +1,2 @@
|
||||
#define RESET_PID
|
||||
#include "../clone.S"
|
||||
24
sysdeps/unix/sysv/linux/m68k/nptl/createthread.c
Normal file
24
sysdeps/unix/sysv/linux/m68k/nptl/createthread.c
Normal file
@@ -0,0 +1,24 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Value passed to 'clone' for initialization of the thread register. */
|
||||
#define TLS_VALUE ((void *) (pd) \
|
||||
+ TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE)
|
||||
|
||||
/* Get the real implementation. */
|
||||
#include <nptl/sysdeps/pthread/createthread.c>
|
||||
29
sysdeps/unix/sysv/linux/m68k/nptl/fork.c
Normal file
29
sysdeps/unix/sysv/linux/m68k/nptl/fork.c
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sched.h>
|
||||
#include <signal.h>
|
||||
#include <sysdep.h>
|
||||
#include <tls.h>
|
||||
|
||||
#define ARCH_FORK() \
|
||||
INLINE_SYSCALL (clone, 5, \
|
||||
CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \
|
||||
NULL, &THREAD_SELF->tid, NULL)
|
||||
|
||||
#include <sysdeps/unix/sysv/linux/fork.c>
|
||||
8
sysdeps/unix/sysv/linux/m68k/nptl/localplt.data
Normal file
8
sysdeps/unix/sysv/linux/m68k/nptl/localplt.data
Normal file
@@ -0,0 +1,8 @@
|
||||
libc.so: _Unwind_Find_FDE
|
||||
libc.so: __m68k_read_tp
|
||||
libc.so: calloc
|
||||
libc.so: free
|
||||
libc.so: malloc
|
||||
libc.so: memalign
|
||||
libc.so: realloc
|
||||
libm.so: matherr
|
||||
320
sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
Normal file
320
sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
Normal file
@@ -0,0 +1,320 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Borrowed from ARM's version. */
|
||||
|
||||
#ifndef _LOWLEVELLOCK_H
|
||||
#define _LOWLEVELLOCK_H 1
|
||||
|
||||
#include <time.h>
|
||||
#include <sys/param.h>
|
||||
#include <bits/pthreadtypes.h>
|
||||
#include <atomic.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
#define FUTEX_WAIT 0
|
||||
#define FUTEX_WAKE 1
|
||||
#define FUTEX_REQUEUE 3
|
||||
#define FUTEX_CMP_REQUEUE 4
|
||||
#define FUTEX_WAKE_OP 5
|
||||
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
|
||||
#define FUTEX_LOCK_PI 6
|
||||
#define FUTEX_UNLOCK_PI 7
|
||||
#define FUTEX_TRYLOCK_PI 8
|
||||
#define FUTEX_WAIT_BITSET 9
|
||||
#define FUTEX_WAKE_BITSET 10
|
||||
#define FUTEX_WAIT_REQEUE_PI 11
|
||||
#define FUTEX_CMP_REQEUE_PI 12
|
||||
#define FUTEX_PRIVATE_FLAG 128
|
||||
#define FUTEX_CLOCK_REALTIME 256
|
||||
|
||||
#define FUTEX_BITSET_MATCH_ANY 0xffffffff
|
||||
|
||||
/* Values for 'private' parameter of locking macros. Yes, the
|
||||
definition seems to be backwards. But it is not. The bit will be
|
||||
reversed before passing to the system call. */
|
||||
#define LLL_PRIVATE 0
|
||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||
|
||||
|
||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
||||
/* In libc.so or ld.so all futexes are private. */
|
||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||
# define __lll_private_flag(fl, private) \
|
||||
((fl) | FUTEX_PRIVATE_FLAG)
|
||||
# else
|
||||
# define __lll_private_flag(fl, private) \
|
||||
((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))
|
||||
# endif
|
||||
#else
|
||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||
# define __lll_private_flag(fl, private) \
|
||||
(((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
|
||||
# else
|
||||
# define __lll_private_flag(fl, private) \
|
||||
(__builtin_constant_p (private) \
|
||||
? ((private) == 0 \
|
||||
? ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex)) \
|
||||
: (fl)) \
|
||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#define lll_futex_wait(futexp, val, private) \
|
||||
lll_futex_timed_wait(futexp, val, NULL, private)
|
||||
|
||||
#define lll_futex_timed_wait(futexp, val, timespec, private) \
|
||||
({ \
|
||||
INTERNAL_SYSCALL_DECL (__err); \
|
||||
long int __ret; \
|
||||
__ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
|
||||
__lll_private_flag (FUTEX_WAIT, private), \
|
||||
(val), (timespec)); \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define lll_futex_timed_wait_bitset(futexp, val, timespec, clockbit, private) \
|
||||
({ \
|
||||
INTERNAL_SYSCALL_DECL (__err); \
|
||||
long int __ret; \
|
||||
int __op = FUTEX_WAIT_BITSET | clockbit; \
|
||||
__ret = INTERNAL_SYSCALL (futex, __err, 6, (long) (futexp), \
|
||||
__lll_private_flag (__op, private), \
|
||||
(val), (timespec), NULL /* Unused. */, \
|
||||
FUTEX_BITSET_MATCH_ANY); \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define lll_futex_wake(futexp, nr, private) \
|
||||
({ \
|
||||
INTERNAL_SYSCALL_DECL (__err); \
|
||||
long int __ret; \
|
||||
__ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
|
||||
__lll_private_flag (FUTEX_WAKE, private), \
|
||||
(nr), 0); \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define lll_robust_dead(futexv, private) \
|
||||
do \
|
||||
{ \
|
||||
int *__futexp = &(futexv); \
|
||||
atomic_or (__futexp, FUTEX_OWNER_DIED); \
|
||||
lll_futex_wake (__futexp, 1, private); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Returns non-zero if error happened, zero if success. */
|
||||
#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
|
||||
({ \
|
||||
INTERNAL_SYSCALL_DECL (__err); \
|
||||
long int __ret; \
|
||||
__ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
|
||||
__lll_private_flag (FUTEX_CMP_REQUEUE, private),\
|
||||
(nr_wake), (nr_move), (mutex), (val)); \
|
||||
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
||||
})
|
||||
|
||||
/* Returns non-zero if error happened, zero if success. */
|
||||
#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
|
||||
({ \
|
||||
INTERNAL_SYSCALL_DECL (__err); \
|
||||
long int __ret; \
|
||||
__ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
|
||||
__lll_private_flag (FUTEX_WAKE_OP, private), \
|
||||
(nr_wake), (nr_wake2), (futexp2), \
|
||||
FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
|
||||
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
||||
})
|
||||
|
||||
/* Priority Inheritance support. */
|
||||
#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \
|
||||
lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private)
|
||||
|
||||
#define lll_futex_timed_wait_requeue_pi(futexp, val, timespec, clockbit, \
|
||||
mutex, private) \
|
||||
({ \
|
||||
INTERNAL_SYSCALL_DECL (__err); \
|
||||
long int __ret; \
|
||||
int __op = FUTEX_WAIT_REQUEUE_PI | clockbit; \
|
||||
\
|
||||
__ret = INTERNAL_SYSCALL (futex, __err, 5, (futexp), \
|
||||
__lll_private_flag (__op, private), \
|
||||
(val), (timespec), mutex); \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, val, priv) \
|
||||
({ \
|
||||
INTERNAL_SYSCALL_DECL (__err); \
|
||||
long int __ret; \
|
||||
__ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
|
||||
__lll_private_flag (FUTEX_CMP_REQUEUE_PI, priv),\
|
||||
(nr_wake), (nr_move), (mutex), (val)); \
|
||||
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
||||
})
|
||||
|
||||
#define lll_trylock(lock) \
|
||||
atomic_compare_and_exchange_val_acq (&(lock), 1, 0)
|
||||
|
||||
#define lll_cond_trylock(lock) \
|
||||
atomic_compare_and_exchange_val_acq (&(lock), 2, 0)
|
||||
|
||||
#define lll_robust_trylock(lock, id) \
|
||||
atomic_compare_and_exchange_val_acq (&(lock), id, 0)
|
||||
|
||||
extern void __lll_lock_wait_private (int *futex) attribute_hidden;
|
||||
extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
|
||||
extern int __lll_robust_lock_wait (int *futex, int private) attribute_hidden;
|
||||
|
||||
#define __lll_lock(futex, private) \
|
||||
((void) ({ \
|
||||
int *__futex = (futex); \
|
||||
if (__builtin_expect (atomic_compare_and_exchange_val_acq (__futex, \
|
||||
1, 0), 0)) \
|
||||
{ \
|
||||
if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
|
||||
__lll_lock_wait_private (__futex); \
|
||||
else \
|
||||
__lll_lock_wait (__futex, private); \
|
||||
} \
|
||||
}))
|
||||
#define lll_lock(futex, private) __lll_lock (&(futex), private)
|
||||
|
||||
|
||||
#define __lll_robust_lock(futex, id, private) \
|
||||
({ \
|
||||
int *__futex = (futex); \
|
||||
int __val = 0; \
|
||||
\
|
||||
if (__builtin_expect (atomic_compare_and_exchange_bool_acq (__futex, id, \
|
||||
0), 0)) \
|
||||
__val = __lll_robust_lock_wait (__futex, private); \
|
||||
__val; \
|
||||
})
|
||||
#define lll_robust_lock(futex, id, private) \
|
||||
__lll_robust_lock (&(futex), id, private)
|
||||
|
||||
|
||||
#define __lll_cond_lock(futex, private) \
|
||||
((void) ({ \
|
||||
int *__futex = (futex); \
|
||||
if (__builtin_expect (atomic_exchange_acq (__futex, 2), 0)) \
|
||||
__lll_lock_wait (__futex, private); \
|
||||
}))
|
||||
#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
|
||||
|
||||
|
||||
#define lll_robust_cond_lock(futex, id, private) \
|
||||
__lll_robust_lock (&(futex), (id) | FUTEX_WAITERS, private)
|
||||
|
||||
|
||||
extern int __lll_timedlock_wait (int *futex, const struct timespec *,
|
||||
int private) attribute_hidden;
|
||||
extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *,
|
||||
int private) attribute_hidden;
|
||||
|
||||
#define __lll_timedlock(futex, abstime, private) \
|
||||
({ \
|
||||
int *__futex = (futex); \
|
||||
int __val = 0; \
|
||||
\
|
||||
if (__builtin_expect (atomic_exchange_acq (__futex, 1), 0)) \
|
||||
__val = __lll_timedlock_wait (__futex, abstime, private); \
|
||||
__val; \
|
||||
})
|
||||
#define lll_timedlock(futex, abstime, private) \
|
||||
__lll_timedlock (&(futex), abstime, private)
|
||||
|
||||
|
||||
#define __lll_robust_timedlock(futex, abstime, id, private) \
|
||||
({ \
|
||||
int *__futex = (futex); \
|
||||
int __val = 0; \
|
||||
\
|
||||
if (__builtin_expect (atomic_compare_and_exchange_bool_acq (__futex, id, \
|
||||
0), 0)) \
|
||||
__val = __lll_robust_timedlock_wait (__futex, abstime, private); \
|
||||
__val; \
|
||||
})
|
||||
#define lll_robust_timedlock(futex, abstime, id, private) \
|
||||
__lll_robust_timedlock (&(futex), abstime, id, private)
|
||||
|
||||
|
||||
#define __lll_unlock(futex, private) \
|
||||
(void) \
|
||||
({ int *__futex = (futex); \
|
||||
int __oldval = atomic_exchange_rel (__futex, 0); \
|
||||
if (__builtin_expect (__oldval > 1, 0)) \
|
||||
lll_futex_wake (__futex, 1, private); \
|
||||
})
|
||||
#define lll_unlock(futex, private) __lll_unlock(&(futex), private)
|
||||
|
||||
|
||||
#define __lll_robust_unlock(futex, private) \
|
||||
(void) \
|
||||
({ int *__futex = (futex); \
|
||||
int __oldval = atomic_exchange_rel (__futex, 0); \
|
||||
if (__builtin_expect (__oldval & FUTEX_WAITERS, 0)) \
|
||||
lll_futex_wake (__futex, 1, private); \
|
||||
})
|
||||
#define lll_robust_unlock(futex, private) \
|
||||
__lll_robust_unlock(&(futex), private)
|
||||
|
||||
|
||||
#define lll_islocked(futex) \
|
||||
(futex != 0)
|
||||
|
||||
|
||||
/* Our internal lock implementation is identical to the binary-compatible
|
||||
mutex implementation. */
|
||||
|
||||
/* Initializers for lock. */
|
||||
#define LLL_LOCK_INITIALIZER (0)
|
||||
#define LLL_LOCK_INITIALIZER_LOCKED (1)
|
||||
|
||||
/* The states of a lock are:
|
||||
0 - untaken
|
||||
1 - taken by one user
|
||||
>1 - taken by more users */
|
||||
|
||||
/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
|
||||
wakeup when the clone terminates. The memory location contains the
|
||||
thread ID while the clone is running and is reset to zero
|
||||
afterwards. */
|
||||
#define lll_wait_tid(tid) \
|
||||
do { \
|
||||
__typeof (tid) __tid; \
|
||||
while ((__tid = (tid)) != 0) \
|
||||
lll_futex_wait (&(tid), __tid, LLL_SHARED); \
|
||||
} while (0)
|
||||
|
||||
extern int __lll_timedwait_tid (int *, const struct timespec *)
|
||||
attribute_hidden;
|
||||
|
||||
#define lll_timedwait_tid(tid, abstime) \
|
||||
({ \
|
||||
int __res = 0; \
|
||||
if ((tid) != 0) \
|
||||
__res = __lll_timedwait_tid (&(tid), (abstime)); \
|
||||
__res; \
|
||||
})
|
||||
|
||||
#endif /* lowlevellock.h */
|
||||
1
sysdeps/unix/sysv/linux/m68k/nptl/not-cancel.h
Normal file
1
sysdeps/unix/sysv/linux/m68k/nptl/not-cancel.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h>
|
||||
35
sysdeps/unix/sysv/linux/m68k/nptl/pt-vfork.S
Normal file
35
sysdeps/unix/sysv/linux/m68k/nptl/pt-vfork.S
Normal file
@@ -0,0 +1,35 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <tcb-offsets.h>
|
||||
|
||||
#define SAVE_PID \
|
||||
bsrl __m68k_read_tp@PLTPC ; /* Get the thread pointer. */ \
|
||||
movel %a0, %a1 ; /* Save TP for RESTORE_PID. */ \
|
||||
movel PID_OFFSET(%a1), %d0 ; /* Get the PID. */ \
|
||||
movel %d0, %d1 ; /* Save PID for RESTORE_PID. */ \
|
||||
negl %d0 ; /* Negate the PID. */ \
|
||||
movel %d0, PID_OFFSET(%a1) ; /* Store the temporary PID. */
|
||||
|
||||
#define RESTORE_PID \
|
||||
tstl %d0 ; \
|
||||
beq 1f ; /* If we are the parent... */ \
|
||||
movel %d1, PID_OFFSET(%a1) ; /* Restore the PID. */ \
|
||||
1:
|
||||
|
||||
#include <sysdeps/unix/sysv/linux/m68k/vfork.S>
|
||||
90
sysdeps/unix/sysv/linux/m68k/nptl/pthread_once.c
Normal file
90
sysdeps/unix/sysv/linux/m68k/nptl/pthread_once.c
Normal file
@@ -0,0 +1,90 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "pthreadP.h"
|
||||
#include <lowlevellock.h>
|
||||
|
||||
unsigned long int __fork_generation attribute_hidden;
|
||||
|
||||
static void
|
||||
clear_once_control (void *arg)
|
||||
{
|
||||
pthread_once_t *once_control = (pthread_once_t *) arg;
|
||||
|
||||
*once_control = 0;
|
||||
lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
|
||||
}
|
||||
|
||||
int
|
||||
__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int oldval;
|
||||
int newval;
|
||||
|
||||
/* Pseudo code:
|
||||
newval = __fork_generation | 1;
|
||||
oldval = *once_control;
|
||||
if ((oldval & 2) == 0)
|
||||
*once_control = newval;
|
||||
Do this atomically.
|
||||
*/
|
||||
do
|
||||
{
|
||||
newval = __fork_generation | 1;
|
||||
oldval = *once_control;
|
||||
if (oldval & 2)
|
||||
break;
|
||||
} while (atomic_compare_and_exchange_val_acq (once_control, newval, oldval) != oldval);
|
||||
|
||||
/* Check if the initializer has already been done. */
|
||||
if ((oldval & 2) != 0)
|
||||
return 0;
|
||||
|
||||
/* Check if another thread already runs the initializer. */
|
||||
if ((oldval & 1) == 0)
|
||||
break;
|
||||
|
||||
/* Check whether the initializer execution was interrupted by a fork. */
|
||||
if (oldval != newval)
|
||||
break;
|
||||
|
||||
/* Same generation, some other thread was faster. Wait. */
|
||||
lll_futex_wait (once_control, oldval, LLL_PRIVATE);
|
||||
}
|
||||
|
||||
/* This thread is the first here. Do the initialization.
|
||||
Register a cleanup handler so that in case the thread gets
|
||||
interrupted the initialization can be restarted. */
|
||||
pthread_cleanup_push (clear_once_control, once_control);
|
||||
|
||||
init_routine ();
|
||||
|
||||
pthread_cleanup_pop (0);
|
||||
|
||||
/* Say that the initialisation is done. */
|
||||
*once_control = __fork_generation | 2;
|
||||
|
||||
/* Wake up all other threads. */
|
||||
lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
weak_alias (__pthread_once, pthread_once)
|
||||
hidden_def (__pthread_once)
|
||||
138
sysdeps/unix/sysv/linux/m68k/nptl/sysdep-cancel.h
Normal file
138
sysdeps/unix/sysv/linux/m68k/nptl/sysdep-cancel.h
Normal file
@@ -0,0 +1,138 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <tls.h>
|
||||
#ifndef __ASSEMBLER__
|
||||
# include <nptl/pthreadP.h>
|
||||
#endif
|
||||
|
||||
#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
|
||||
|
||||
# undef PSEUDO
|
||||
# define PSEUDO(name, syscall_name, args) \
|
||||
.text; \
|
||||
ENTRY (name) \
|
||||
SINGLE_THREAD_P; \
|
||||
jne .Lpseudo_cancel; \
|
||||
.type __##syscall_name##_nocancel,@function; \
|
||||
.globl __##syscall_name##_nocancel; \
|
||||
__##syscall_name##_nocancel: \
|
||||
DO_CALL (syscall_name, args); \
|
||||
cmp.l &-4095, %d0; \
|
||||
jcc SYSCALL_ERROR_LABEL; \
|
||||
rts; \
|
||||
.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
|
||||
.Lpseudo_cancel: \
|
||||
CENABLE; \
|
||||
DOCARGS_##args \
|
||||
move.l %d0, -(%sp); /* Save result of CENABLE. */ \
|
||||
cfi_adjust_cfa_offset (4); \
|
||||
move.l &SYS_ify (syscall_name), %d0; \
|
||||
trap &0; \
|
||||
move.l %d0, %d2; \
|
||||
CDISABLE; \
|
||||
addq.l &4, %sp; /* Remove result of CENABLE from the stack. */ \
|
||||
cfi_adjust_cfa_offset (-4); \
|
||||
move.l %d2, %d0; \
|
||||
UNDOCARGS_##args \
|
||||
cmp.l &-4095, %d0; \
|
||||
jcc SYSCALL_ERROR_LABEL
|
||||
|
||||
/* Note: we use D2 to save syscall's return value as D0 will be clobbered in
|
||||
CDISABLE. */
|
||||
# define DOCARGS_0 move.l %d2, -(%sp); \
|
||||
cfi_adjust_cfa_offset (4); cfi_rel_offset (%d2, 0);
|
||||
# define UNDOCARGS_0 move.l (%sp)+, %d2; \
|
||||
cfi_adjust_cfa_offset (-4); cfi_restore (%d2);
|
||||
|
||||
# define DOCARGS_1 _DOCARGS_1 (4); DOCARGS_0
|
||||
# define _DOCARGS_1(n) move.l n(%sp), %d1;
|
||||
# define UNDOCARGS_1 UNDOCARGS_0
|
||||
|
||||
# define DOCARGS_2 _DOCARGS_2 (8)
|
||||
# define _DOCARGS_2(n) DOCARGS_0 move.l n+4(%sp), %d2; _DOCARGS_1 (n)
|
||||
# define UNDOCARGS_2 UNDOCARGS_0
|
||||
|
||||
# define DOCARGS_3 _DOCARGS_3 (12)
|
||||
# define _DOCARGS_3(n) move.l %d3, -(%sp); \
|
||||
cfi_adjust_cfa_offset (4); cfi_rel_offset (%d3, 0); \
|
||||
move.l n+4(%sp), %d3; _DOCARGS_2 (n)
|
||||
# define UNDOCARGS_3 UNDOCARGS_2 move.l (%sp)+, %d3; \
|
||||
cfi_adjust_cfa_offset (-4); cfi_restore (%d3);
|
||||
|
||||
# define DOCARGS_4 _DOCARGS_4 (16)
|
||||
# define _DOCARGS_4(n) move.l %d4, -(%sp); \
|
||||
cfi_adjust_cfa_offset (4); cfi_rel_offset (%d4, 0); \
|
||||
move.l n+4(%sp), %d4; _DOCARGS_3 (n)
|
||||
# define UNDOCARGS_4 UNDOCARGS_3 move.l (%sp)+, %d4; \
|
||||
cfi_adjust_cfa_offset (-4); cfi_restore (%d4);
|
||||
|
||||
# define DOCARGS_5 _DOCARGS_5 (20)
|
||||
# define _DOCARGS_5(n) move.l %d5, -(%sp); \
|
||||
cfi_adjust_cfa_offset (4); cfi_rel_offset (%d5, 0); \
|
||||
move.l n+4(%sp), %d5; _DOCARGS_4 (n)
|
||||
# define UNDOCARGS_5 UNDOCARGS_4 move.l (%sp)+, %d5; \
|
||||
cfi_adjust_cfa_offset (-4); cfi_restore (%d5);
|
||||
|
||||
# define DOCARGS_6 _DOCARGS_6 (24)
|
||||
# define _DOCARGS_6(n) move.l n(%sp), %a0; _DOCARGS_5 (n-4)
|
||||
# define UNDOCARGS_6 UNDOCARGS_5
|
||||
|
||||
# ifdef PIC
|
||||
# define PSEUDO_JMP(sym) jbsr sym ## @PLTPC
|
||||
# else
|
||||
# define PSEUDO_JMP(sym) jbsr sym
|
||||
# endif
|
||||
|
||||
# ifdef IS_IN_libpthread
|
||||
# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel)
|
||||
# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel)
|
||||
# elif !defined NOT_IN_libc
|
||||
# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel)
|
||||
# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel)
|
||||
# elif defined IS_IN_librt
|
||||
# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel)
|
||||
# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel)
|
||||
# else
|
||||
# error Unsupported library
|
||||
# endif
|
||||
|
||||
# ifndef __ASSEMBLER__
|
||||
# define SINGLE_THREAD_P \
|
||||
__builtin_expect (THREAD_GETMEM (THREAD_SELF, \
|
||||
header.multiple_threads) == 0, 1)
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
PSEUDO_JMP (__m68k_read_tp); \
|
||||
tst.l MULTIPLE_THREADS_OFFSET(%a0)
|
||||
# endif
|
||||
|
||||
#elif !defined __ASSEMBLER__
|
||||
|
||||
# define SINGLE_THREAD_P (1)
|
||||
# define NO_CANCELLATION (1)
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
# define RTLD_SINGLE_THREAD_P \
|
||||
__builtin_expect (THREAD_GETMEM (THREAD_SELF, \
|
||||
header.multiple_threads) == 0, \
|
||||
1)
|
||||
#endif
|
||||
37
sysdeps/unix/sysv/linux/m68k/nptl/vfork.S
Normal file
37
sysdeps/unix/sysv/linux/m68k/nptl/vfork.S
Normal file
@@ -0,0 +1,37 @@
|
||||
/* Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <tcb-offsets.h>
|
||||
|
||||
#define SAVE_PID \
|
||||
bsrl __m68k_read_tp@PLTPC ; /* Get the thread pointer. */ \
|
||||
movel %a0, %a1 ; /* Save TP for RESTORE_PID. */ \
|
||||
movel PID_OFFSET(%a1), %d0 ; /* Get the PID. */ \
|
||||
movel %d0, %d1 ; /* Save PID for RESTORE_PID. */ \
|
||||
negl %d0 ; /* Negate the PID. */ \
|
||||
bne 1f ; /* If it was zero... */ \
|
||||
movel #0x80000000, %d0 ; /* use 0x80000000 instead. */ \
|
||||
1: movel %d0, PID_OFFSET(%a1) ; /* Store the temporary PID. */
|
||||
|
||||
#define RESTORE_PID \
|
||||
tstl %d0 ; \
|
||||
beq 1f ; /* If we are the parent... */ \
|
||||
movel %d1, PID_OFFSET(%a1) ; /* Restore the PID. */ \
|
||||
1:
|
||||
|
||||
#include <sysdeps/unix/sysv/linux/m68k/vfork.S>
|
||||
1
sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/putmsg.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/putmsg.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
|
||||
1
sysdeps/unix/sysv/linux/m68k/readdir64.c
Normal file
1
sysdeps/unix/sysv/linux/m68k/readdir64.c
Normal file
@@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/sysv/linux/i386/readdir64.c>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user