Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC]: Remove SunOS and Solaris binary support.
This commit is contained in:
@@ -27,9 +27,6 @@ config ARCH_NO_VIRT_TO_BUS
|
||||
config OF
|
||||
def_bool y
|
||||
|
||||
config ARCH_SUPPORTS_AOUT
|
||||
def_bool y
|
||||
|
||||
config HZ
|
||||
int
|
||||
default 100
|
||||
@@ -257,15 +254,6 @@ config SPARC_LED
|
||||
|
||||
source "fs/Kconfig.binfmt"
|
||||
|
||||
config SUNOS_EMUL
|
||||
bool "SunOS binary emulation"
|
||||
help
|
||||
This allows you to run most SunOS binaries. If you want to do this,
|
||||
say Y here and place appropriate files in /usr/gnemul/sunos. See
|
||||
<http://www.ultralinux.org/faq.html> for more information. If you
|
||||
want to run SunOS binaries on an Ultra you must also say Y to
|
||||
"Kernel support for 32-bit a.out binaries" above.
|
||||
|
||||
source "mm/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.23-rc1
|
||||
# Wed Jul 25 15:30:21 2007
|
||||
# Linux kernel version: 2.6.25
|
||||
# Sun Apr 20 01:49:51 2008
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
CONFIG_HIGHMEM=y
|
||||
@@ -9,18 +9,15 @@ CONFIG_ZONE_DMA=y
|
||||
CONFIG_GENERIC_ISA_DMA=y
|
||||
CONFIG_ARCH_NO_VIRT_TO_BUS=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_HZ=100
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
|
||||
#
|
||||
# Code maturity level options
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_BROKEN_ON_SMP=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_BROKEN_ON_SMP=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_SWAP=y
|
||||
@@ -29,12 +26,23 @@ CONFIG_SYSVIPC_SYSCTL=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_USER_NS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
# CONFIG_CGROUPS is not set
|
||||
CONFIG_GROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_USER_SCHED=y
|
||||
# CONFIG_CGROUP_SCHED is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
# CONFIG_RELAY is not set
|
||||
CONFIG_NAMESPACES=y
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_IPC_NS is not set
|
||||
# CONFIG_USER_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
@@ -49,6 +57,7 @@ CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_ANON_INODES=y
|
||||
@@ -61,6 +70,13 @@ CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_SLUB is not set
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_HAVE_KPROBES is not set
|
||||
# CONFIG_HAVE_KRETPROBES is not set
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
# CONFIG_TINY_SHMEM is not set
|
||||
CONFIG_BASE_SMALL=0
|
||||
@@ -88,6 +104,7 @@ CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
|
||||
#
|
||||
# General machine setup
|
||||
@@ -113,14 +130,13 @@ CONFIG_SUN_PM=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_ARCH_SUPPORTS_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_NO_DMA is not set
|
||||
CONFIG_SUN_OPENPROMFS=m
|
||||
# CONFIG_SPARC_LED is not set
|
||||
CONFIG_BINFMT_ELF=y
|
||||
CONFIG_BINFMT_AOUT=y
|
||||
CONFIG_BINFMT_MISC=m
|
||||
CONFIG_SUNOS_EMUL=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||
@@ -128,6 +144,7 @@ CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
# CONFIG_SPARSEMEM_STATIC is not set
|
||||
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_RESOURCES_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=1
|
||||
@@ -148,6 +165,7 @@ CONFIG_XFRM=y
|
||||
CONFIG_XFRM_USER=m
|
||||
# CONFIG_XFRM_SUB_POLICY is not set
|
||||
# CONFIG_XFRM_MIGRATE is not set
|
||||
# CONFIG_XFRM_STATISTICS is not set
|
||||
CONFIG_NET_KEY=m
|
||||
# CONFIG_NET_KEY_MIGRATE is not set
|
||||
CONFIG_INET=y
|
||||
@@ -170,6 +188,7 @@ CONFIG_INET_TUNNEL=y
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=y
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=y
|
||||
CONFIG_INET_XFRM_MODE_BEET=y
|
||||
# CONFIG_INET_LRO is not set
|
||||
CONFIG_INET_DIAG=y
|
||||
CONFIG_INET_TCP_DIAG=y
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
@@ -191,8 +210,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET6_XFRM_MODE_BEET=m
|
||||
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
|
||||
CONFIG_IPV6_SIT=m
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
# CONFIG_IPV6_MULTIPLE_TABLES is not set
|
||||
# CONFIG_IPV6_MROUTE is not set
|
||||
# CONFIG_NETWORK_SECMARK is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
# CONFIG_IP_DCCP is not set
|
||||
@@ -214,10 +235,6 @@ CONFIG_SCTP_HMAC_MD5=y
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
|
||||
#
|
||||
# QoS and/or fair queueing
|
||||
#
|
||||
# CONFIG_NET_SCHED is not set
|
||||
|
||||
#
|
||||
@@ -225,6 +242,7 @@ CONFIG_SCTP_HMAC_MD5=y
|
||||
#
|
||||
CONFIG_NET_PKTGEN=m
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_CAN is not set
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
CONFIG_AF_RXRPC=m
|
||||
@@ -248,6 +266,7 @@ CONFIG_AF_RXRPC=m
|
||||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
# CONFIG_FW_LOADER is not set
|
||||
@@ -271,7 +290,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
|
||||
# CONFIG_BLK_DEV_XIP is not set
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_ATA_OVER_ETH is not set
|
||||
CONFIG_MISC_DEVICES=y
|
||||
@@ -279,6 +298,8 @@ CONFIG_MISC_DEVICES=y
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
# CONFIG_SGI_IOC4 is not set
|
||||
# CONFIG_TIFM_CORE is not set
|
||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
#
|
||||
@@ -318,6 +339,7 @@ CONFIG_SCSI_SPI_ATTRS=y
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
|
||||
@@ -338,6 +360,7 @@ CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_SCSI_IPS is not set
|
||||
# CONFIG_SCSI_INITIO is not set
|
||||
# CONFIG_SCSI_INIA100 is not set
|
||||
# CONFIG_SCSI_MVSAS is not set
|
||||
# CONFIG_SCSI_STEX is not set
|
||||
# CONFIG_SCSI_SYM53C8XX_2 is not set
|
||||
# CONFIG_SCSI_QLOGIC_1280 is not set
|
||||
@@ -353,14 +376,7 @@ CONFIG_SCSI_SUNESP=y
|
||||
# CONFIG_SCSI_SRP is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
|
||||
#
|
||||
# Fusion MPT device support
|
||||
#
|
||||
# CONFIG_FUSION is not set
|
||||
# CONFIG_FUSION_SPI is not set
|
||||
# CONFIG_FUSION_FC is not set
|
||||
# CONFIG_FUSION_SAS is not set
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support
|
||||
@@ -375,6 +391,7 @@ CONFIG_DUMMY=m
|
||||
# CONFIG_MACVLAN is not set
|
||||
# CONFIG_EQUALIZER is not set
|
||||
CONFIG_TUN=m
|
||||
# CONFIG_VETH is not set
|
||||
# CONFIG_ARCNET is not set
|
||||
# CONFIG_PHYLIB is not set
|
||||
CONFIG_NET_ETHERNET=y
|
||||
@@ -388,11 +405,20 @@ CONFIG_SUNQE=m
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_NET_TULIP is not set
|
||||
# CONFIG_HP100 is not set
|
||||
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
||||
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
||||
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
||||
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
|
||||
# CONFIG_NET_PCI is not set
|
||||
# CONFIG_B44 is not set
|
||||
CONFIG_NETDEV_1000=y
|
||||
# CONFIG_ACENIC is not set
|
||||
# CONFIG_DL2K is not set
|
||||
# CONFIG_E1000 is not set
|
||||
# CONFIG_E1000E is not set
|
||||
# CONFIG_E1000E_ENABLED is not set
|
||||
# CONFIG_IP1000 is not set
|
||||
# CONFIG_IGB is not set
|
||||
# CONFIG_MYRI_SBUS is not set
|
||||
# CONFIG_NS83820 is not set
|
||||
# CONFIG_HAMACHI is not set
|
||||
@@ -409,11 +435,15 @@ CONFIG_NETDEV_1000=y
|
||||
CONFIG_NETDEV_10000=y
|
||||
# CONFIG_CHELSIO_T1 is not set
|
||||
# CONFIG_CHELSIO_T3 is not set
|
||||
# CONFIG_IXGBE is not set
|
||||
# CONFIG_IXGB is not set
|
||||
# CONFIG_S2IO is not set
|
||||
# CONFIG_MYRI10GE is not set
|
||||
# CONFIG_NETXEN_NIC is not set
|
||||
# CONFIG_NIU is not set
|
||||
# CONFIG_MLX4_CORE is not set
|
||||
# CONFIG_TEHUTI is not set
|
||||
# CONFIG_BNX2X is not set
|
||||
# CONFIG_TR is not set
|
||||
|
||||
#
|
||||
@@ -421,13 +451,13 @@ CONFIG_NETDEV_10000=y
|
||||
#
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
# CONFIG_WLAN_80211 is not set
|
||||
# CONFIG_IWLWIFI_LEDS is not set
|
||||
# CONFIG_WAN is not set
|
||||
# CONFIG_FDDI is not set
|
||||
# CONFIG_HIPPI is not set
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_NET_FC is not set
|
||||
# CONFIG_SHAPER is not set
|
||||
# CONFIG_NETCONSOLE is not set
|
||||
# CONFIG_NETPOLL is not set
|
||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||
@@ -449,7 +479,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||
CONFIG_INPUT_JOYDEV=m
|
||||
# CONFIG_INPUT_TSDEV is not set
|
||||
CONFIG_INPUT_EVDEV=m
|
||||
CONFIG_INPUT_EVBUG=m
|
||||
|
||||
@@ -498,6 +527,7 @@ CONFIG_VT_CONSOLE=y
|
||||
CONFIG_HW_CONSOLE=y
|
||||
# CONFIG_VT_HW_CONSOLE_BINDING is not set
|
||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||
# CONFIG_NOZOMI is not set
|
||||
|
||||
#
|
||||
# Serial drivers
|
||||
@@ -519,7 +549,6 @@ CONFIG_UNIX98_PTYS=y
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
CONFIG_LEGACY_PTY_COUNT=256
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
CONFIG_HW_RANDOM=m
|
||||
CONFIG_JS_RTC=m
|
||||
# CONFIG_R3964 is not set
|
||||
@@ -538,9 +567,9 @@ CONFIG_DEVPORT=y
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
CONFIG_HWMON=y
|
||||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_SENSORS_ABITUGURU is not set
|
||||
# CONFIG_SENSORS_ABITUGURU3 is not set
|
||||
# CONFIG_SENSORS_I5K_AMB is not set
|
||||
# CONFIG_SENSORS_F71805F is not set
|
||||
# CONFIG_SENSORS_F71882FG is not set
|
||||
# CONFIG_SENSORS_IT87 is not set
|
||||
# CONFIG_SENSORS_PC87360 is not set
|
||||
# CONFIG_SENSORS_PC87427 is not set
|
||||
@@ -553,6 +582,14 @@ CONFIG_HWMON=y
|
||||
# CONFIG_SENSORS_W83627HF is not set
|
||||
# CONFIG_SENSORS_W83627EHF is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_WATCHDOG is not set
|
||||
|
||||
#
|
||||
# Sonics Silicon Backplane
|
||||
#
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
# CONFIG_SSB is not set
|
||||
|
||||
#
|
||||
# Multifunction device drivers
|
||||
@@ -569,15 +606,15 @@ CONFIG_HWMON=y
|
||||
#
|
||||
# Graphics support
|
||||
#
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||
# CONFIG_FB is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Display device support
|
||||
#
|
||||
# CONFIG_DISPLAY_SUPPORT is not set
|
||||
# CONFIG_VGASTATE is not set
|
||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||
# CONFIG_FB is not set
|
||||
|
||||
#
|
||||
# Console display driver support
|
||||
@@ -592,6 +629,7 @@ CONFIG_DUMMY_CONSOLE=y
|
||||
CONFIG_HID_SUPPORT=y
|
||||
CONFIG_HID=y
|
||||
# CONFIG_HID_DEBUG is not set
|
||||
# CONFIG_HIDRAW is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USB_ARCH_HAS_HCD=y
|
||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||
@@ -601,33 +639,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
|
||||
#
|
||||
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
|
||||
#
|
||||
|
||||
#
|
||||
# USB Gadget Support
|
||||
#
|
||||
# CONFIG_USB_GADGET is not set
|
||||
# CONFIG_MMC is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_INFINIBAND is not set
|
||||
|
||||
#
|
||||
# Real Time Clock
|
||||
#
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
|
||||
#
|
||||
# DMA Engine support
|
||||
#
|
||||
# CONFIG_DMA_ENGINE is not set
|
||||
|
||||
#
|
||||
# DMA Clients
|
||||
#
|
||||
|
||||
#
|
||||
# DMA Devices
|
||||
#
|
||||
|
||||
#
|
||||
# Userspace I/O
|
||||
#
|
||||
@@ -664,18 +682,14 @@ CONFIG_FS_MBCACHE=y
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
CONFIG_XFS_FS=m
|
||||
CONFIG_XFS_QUOTA=y
|
||||
CONFIG_XFS_SECURITY=y
|
||||
CONFIG_XFS_POSIX_ACL=y
|
||||
CONFIG_XFS_RT=y
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
CONFIG_ROMFS_FS=m
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_QUOTA is not set
|
||||
CONFIG_QUOTACTL=y
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_AUTOFS_FS=m
|
||||
CONFIG_AUTOFS4_FS=m
|
||||
# CONFIG_FUSE_FS is not set
|
||||
@@ -704,7 +718,6 @@ CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_SYSFS=y
|
||||
# CONFIG_TMPFS is not set
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
CONFIG_RAMFS=y
|
||||
# CONFIG_CONFIGFS_FS is not set
|
||||
|
||||
#
|
||||
@@ -721,14 +734,13 @@ CONFIG_BEFS_FS=m
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_HPFS_FS is not set
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
CONFIG_ROMFS_FS=m
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
|
||||
#
|
||||
# Network File Systems
|
||||
#
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
# CONFIG_NFS_V3 is not set
|
||||
# CONFIG_NFS_V4 is not set
|
||||
@@ -760,10 +772,6 @@ CONFIG_AFS_FS=m
|
||||
# CONFIG_PARTITION_ADVANCED is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
CONFIG_SUN_PARTITION=y
|
||||
|
||||
#
|
||||
# Native Language Support
|
||||
#
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
# CONFIG_NLS_CODEPAGE_437 is not set
|
||||
@@ -804,21 +812,14 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
# CONFIG_NLS_KOI8_R is not set
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
# CONFIG_NLS_UTF8 is not set
|
||||
|
||||
#
|
||||
# Distributed Lock Manager
|
||||
#
|
||||
# CONFIG_DLM is not set
|
||||
|
||||
#
|
||||
# Instrumentation Support
|
||||
#
|
||||
# CONFIG_PROFILING is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
@@ -842,9 +843,12 @@ CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
CONFIG_FORCED_INLINING=y
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
|
||||
#
|
||||
@@ -853,9 +857,12 @@ CONFIG_FORCED_INLINING=y
|
||||
CONFIG_KEYS=y
|
||||
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||
CONFIG_CRYPTO=y
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_AEAD=y
|
||||
CONFIG_CRYPTO_BLKCIPHER=y
|
||||
# CONFIG_CRYPTO_SEQIV is not set
|
||||
CONFIG_CRYPTO_HASH=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
@@ -873,6 +880,10 @@ CONFIG_CRYPTO_ECB=m
|
||||
CONFIG_CRYPTO_CBC=y
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
# CONFIG_CRYPTO_LRW is not set
|
||||
# CONFIG_CRYPTO_XTS is not set
|
||||
# CONFIG_CRYPTO_CTR is not set
|
||||
# CONFIG_CRYPTO_GCM is not set
|
||||
# CONFIG_CRYPTO_CCM is not set
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
CONFIG_CRYPTO_DES=y
|
||||
# CONFIG_CRYPTO_FCRYPT is not set
|
||||
@@ -887,11 +898,15 @@ CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
# CONFIG_CRYPTO_KHAZAD is not set
|
||||
# CONFIG_CRYPTO_ANUBIS is not set
|
||||
# CONFIG_CRYPTO_SEED is not set
|
||||
# CONFIG_CRYPTO_SALSA20 is not set
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_CRC32C=m
|
||||
# CONFIG_CRYPTO_CAMELLIA is not set
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
CONFIG_CRYPTO_AUTHENC=y
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
|
||||
#
|
||||
|
@@ -9,9 +9,9 @@ EXTRA_AFLAGS := -ansi
|
||||
IRQ_OBJS := irq.o sun4m_irq.o sun4c_irq.o sun4d_irq.o
|
||||
obj-y := entry.o wof.o wuf.o etrap.o rtrap.o traps.o $(IRQ_OBJS) \
|
||||
process.o signal.o ioport.o setup.o idprom.o \
|
||||
sys_sparc.o sunos_asm.o systbls.o \
|
||||
time.o windows.o cpu.o devices.o sclow.o \
|
||||
tadpole.o tick14.o ptrace.o sys_solaris.o \
|
||||
sys_sparc.o systbls.o \
|
||||
time.o windows.o cpu.o devices.o \
|
||||
tadpole.o tick14.o ptrace.o \
|
||||
unaligned.o una_asm.o muldiv.o \
|
||||
prom.o of_device.o devres.o
|
||||
|
||||
@@ -25,7 +25,3 @@ obj-$(CONFIG_PCI) += ebus.o
|
||||
obj-$(CONFIG_SUN_PM) += apc.o pmc.o
|
||||
obj-$(CONFIG_MODULES) += module.o sparc_ksyms.o
|
||||
obj-$(CONFIG_SPARC_LED) += led.o
|
||||
|
||||
ifdef CONFIG_SUNOS_EMUL
|
||||
obj-y += sys_sunos.o sunos_ioctl.o
|
||||
endif
|
||||
|
@@ -1186,36 +1186,6 @@ srmmu_fault:
|
||||
|
||||
RESTORE_ALL
|
||||
|
||||
#ifdef CONFIG_SUNOS_EMUL
|
||||
/* SunOS uses syscall zero as the 'indirect syscall' it looks
|
||||
* like indir_syscall(scall_num, arg0, arg1, arg2...); etc.
|
||||
* This is complete brain damage.
|
||||
*/
|
||||
.globl sunos_indir
|
||||
sunos_indir:
|
||||
mov %o7, %l4
|
||||
cmp %o0, NR_SYSCALLS
|
||||
blu,a 1f
|
||||
sll %o0, 0x2, %o0
|
||||
|
||||
sethi %hi(sunos_nosys), %l6
|
||||
b 2f
|
||||
or %l6, %lo(sunos_nosys), %l6
|
||||
|
||||
1:
|
||||
set sunos_sys_table, %l7
|
||||
ld [%l7 + %o0], %l6
|
||||
|
||||
2:
|
||||
mov %o1, %o0
|
||||
mov %o2, %o1
|
||||
mov %o3, %o2
|
||||
mov %o4, %o3
|
||||
mov %o5, %o4
|
||||
call %l6
|
||||
mov %l4, %o7
|
||||
#endif
|
||||
|
||||
.align 4
|
||||
.globl sys_nis_syscall
|
||||
sys_nis_syscall:
|
||||
@@ -1232,6 +1202,16 @@ sys_execve:
|
||||
call sparc_execve
|
||||
mov %l5, %o7
|
||||
|
||||
.globl sunos_execv
|
||||
sunos_execv:
|
||||
st %g0, [%sp + STACKFRAME_SZ + PT_I2]
|
||||
|
||||
call sparc_execve
|
||||
add %sp, STACKFRAME_SZ, %o0
|
||||
|
||||
b ret_sys_call
|
||||
ld [%sp + STACKFRAME_SZ + PT_I0], %o0
|
||||
|
||||
.align 4
|
||||
.globl sys_pipe
|
||||
sys_pipe:
|
||||
@@ -1394,7 +1374,7 @@ ret_from_fork:
|
||||
b ret_sys_call
|
||||
ld [%sp + STACKFRAME_SZ + PT_I0], %o0
|
||||
|
||||
/* Linux native and SunOS system calls enter here... */
|
||||
/* Linux native system calls enter here... */
|
||||
.align 4
|
||||
.globl linux_sparc_syscall
|
||||
linux_sparc_syscall:
|
||||
@@ -1472,170 +1452,6 @@ linux_syscall_trace2:
|
||||
st %l2, [%sp + STACKFRAME_SZ + PT_NPC]
|
||||
|
||||
|
||||
/*
|
||||
* Solaris system calls and indirect system calls enter here.
|
||||
*
|
||||
* I have named the solaris indirect syscalls like that because
|
||||
* it seems like Solaris has some fast path syscalls that can
|
||||
* be handled as indirect system calls. - mig
|
||||
*/
|
||||
|
||||
linux_syscall_for_solaris:
|
||||
sethi %hi(sys_call_table), %l7
|
||||
b linux_sparc_syscall
|
||||
or %l7, %lo(sys_call_table), %l7
|
||||
|
||||
.align 4
|
||||
.globl solaris_syscall
|
||||
solaris_syscall:
|
||||
cmp %g1,59
|
||||
be linux_syscall_for_solaris
|
||||
cmp %g1,2
|
||||
be linux_syscall_for_solaris
|
||||
cmp %g1,42
|
||||
be linux_syscall_for_solaris
|
||||
cmp %g1,119
|
||||
be,a linux_syscall_for_solaris
|
||||
mov 2, %g1
|
||||
1:
|
||||
SAVE_ALL_HEAD
|
||||
rd %wim, %l3
|
||||
|
||||
wr %l0, PSR_ET, %psr
|
||||
nop
|
||||
nop
|
||||
mov %i0, %l5
|
||||
|
||||
call do_solaris_syscall
|
||||
add %sp, STACKFRAME_SZ, %o0
|
||||
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
|
||||
set PSR_C, %g2
|
||||
cmp %o0, -ERESTART_RESTARTBLOCK
|
||||
bgeu 1f
|
||||
ld [%sp + STACKFRAME_SZ + PT_PSR], %g3
|
||||
|
||||
/* System call success, clear Carry condition code. */
|
||||
andn %g3, %g2, %g3
|
||||
clr %l6
|
||||
b 2f
|
||||
st %g3, [%sp + STACKFRAME_SZ + PT_PSR]
|
||||
|
||||
1:
|
||||
/* System call failure, set Carry condition code.
|
||||
* Also, get abs(errno) to return to the process.
|
||||
*/
|
||||
sub %g0, %o0, %o0
|
||||
mov 1, %l6
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
|
||||
or %g3, %g2, %g3
|
||||
st %g3, [%sp + STACKFRAME_SZ + PT_PSR]
|
||||
|
||||
/* Advance the pc and npc over the trap instruction.
|
||||
* If the npc is unaligned (has a 1 in the lower byte), it means
|
||||
* the kernel does not want us to play magic (ie, skipping over
|
||||
* traps). Mainly when the Solaris code wants to set some PC and
|
||||
* nPC (setcontext).
|
||||
*/
|
||||
2:
|
||||
ld [%sp + STACKFRAME_SZ + PT_NPC], %l1 /* pc = npc */
|
||||
andcc %l1, 1, %g0
|
||||
bne 1f
|
||||
add %l1, 0x4, %l2 /* npc = npc+4 */
|
||||
st %l1, [%sp + STACKFRAME_SZ + PT_PC]
|
||||
b ret_trap_entry
|
||||
st %l2, [%sp + STACKFRAME_SZ + PT_NPC]
|
||||
|
||||
/* kernel knows what it is doing, fixup npc and continue */
|
||||
1:
|
||||
sub %l1, 1, %l1
|
||||
b ret_trap_entry
|
||||
st %l1, [%sp + STACKFRAME_SZ + PT_NPC]
|
||||
|
||||
#ifndef CONFIG_SUNOS_EMUL
|
||||
.align 4
|
||||
.globl sunos_syscall
|
||||
sunos_syscall:
|
||||
SAVE_ALL_HEAD
|
||||
rd %wim, %l3
|
||||
wr %l0, PSR_ET, %psr
|
||||
nop
|
||||
nop
|
||||
mov %i0, %l5
|
||||
call do_sunos_syscall
|
||||
add %sp, STACKFRAME_SZ, %o0
|
||||
#endif
|
||||
|
||||
/* {net, open}bsd system calls enter here... */
|
||||
.align 4
|
||||
.globl bsd_syscall
|
||||
bsd_syscall:
|
||||
/* Direct access to user regs, must faster. */
|
||||
cmp %g1, NR_SYSCALLS
|
||||
blu,a 1f
|
||||
sll %g1, 2, %l4
|
||||
|
||||
set sys_ni_syscall, %l7
|
||||
b bsd_is_too_hard
|
||||
nop
|
||||
|
||||
1:
|
||||
ld [%l7 + %l4], %l7
|
||||
|
||||
.globl bsd_is_too_hard
|
||||
bsd_is_too_hard:
|
||||
rd %wim, %l3
|
||||
SAVE_ALL
|
||||
|
||||
wr %l0, PSR_ET, %psr
|
||||
WRITE_PAUSE
|
||||
|
||||
2:
|
||||
mov %i0, %o0
|
||||
mov %i1, %o1
|
||||
mov %i2, %o2
|
||||
mov %i0, %l5
|
||||
mov %i3, %o3
|
||||
mov %i4, %o4
|
||||
call %l7
|
||||
mov %i5, %o5
|
||||
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
|
||||
set PSR_C, %g2
|
||||
cmp %o0, -ERESTART_RESTARTBLOCK
|
||||
bgeu 1f
|
||||
ld [%sp + STACKFRAME_SZ + PT_PSR], %g3
|
||||
|
||||
/* System call success, clear Carry condition code. */
|
||||
andn %g3, %g2, %g3
|
||||
clr %l6
|
||||
b 2f
|
||||
st %g3, [%sp + STACKFRAME_SZ + PT_PSR]
|
||||
|
||||
1:
|
||||
/* System call failure, set Carry condition code.
|
||||
* Also, get abs(errno) to return to the process.
|
||||
*/
|
||||
sub %g0, %o0, %o0
|
||||
#if 0 /* XXX todo XXX */
|
||||
sethi %hi(bsd_xlatb_rorl), %o3
|
||||
or %o3, %lo(bsd_xlatb_rorl), %o3
|
||||
sll %o0, 2, %o0
|
||||
ld [%o3 + %o0], %o0
|
||||
#endif
|
||||
mov 1, %l6
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
|
||||
or %g3, %g2, %g3
|
||||
st %g3, [%sp + STACKFRAME_SZ + PT_PSR]
|
||||
|
||||
/* Advance the pc and npc over the trap instruction. */
|
||||
2:
|
||||
ld [%sp + STACKFRAME_SZ + PT_NPC], %l1 /* pc = npc */
|
||||
add %l1, 0x4, %l2 /* npc = npc+4 */
|
||||
st %l1, [%sp + STACKFRAME_SZ + PT_PC]
|
||||
b ret_trap_entry
|
||||
st %l2, [%sp + STACKFRAME_SZ + PT_NPC]
|
||||
|
||||
/* Saving and restoring the FPU state is best done from lowlevel code.
|
||||
*
|
||||
* void fpsave(unsigned long *fpregs, unsigned long *fsr,
|
||||
|
@@ -1,144 +0,0 @@
|
||||
/* errtbls.c: Error number conversion tables.
|
||||
*
|
||||
* Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net)
|
||||
*
|
||||
* Based upon preliminary work which is:
|
||||
*
|
||||
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
|
||||
*/
|
||||
|
||||
#include <asm/solerrno.h> /* Solaris errnos */
|
||||
|
||||
/* Here is the table which converts between Linux error number values
|
||||
* to the equivalent under Solaris. Note that since the Linux ones
|
||||
* have been set up to match exactly those of SunOS, no translation
|
||||
* table is needed for that OS.
|
||||
*/
|
||||
|
||||
int solaris_errno[] = {
|
||||
0,
|
||||
SOL_EPERM,
|
||||
SOL_ENOENT,
|
||||
SOL_ESRCH,
|
||||
SOL_EINTR,
|
||||
SOL_EIO,
|
||||
SOL_ENXIO,
|
||||
SOL_E2BIG,
|
||||
SOL_ENOEXEC,
|
||||
SOL_EBADF,
|
||||
SOL_ECHILD,
|
||||
SOL_EAGAIN,
|
||||
SOL_ENOMEM,
|
||||
SOL_EACCES,
|
||||
SOL_EFAULT,
|
||||
SOL_NOTBLK,
|
||||
SOL_EBUSY,
|
||||
SOL_EEXIST,
|
||||
SOL_EXDEV,
|
||||
SOL_ENODEV,
|
||||
SOL_ENOTDIR,
|
||||
SOL_EISDIR,
|
||||
SOL_EINVAL,
|
||||
SOL_ENFILE,
|
||||
SOL_EMFILE,
|
||||
SOL_ENOTTY,
|
||||
SOL_ETXTBSY,
|
||||
SOL_EFBIG,
|
||||
SOL_ENOSPC,
|
||||
SOL_ESPIPE,
|
||||
SOL_EROFS,
|
||||
SOL_EMLINK,
|
||||
SOL_EPIPE,
|
||||
SOL_EDOM,
|
||||
SOL_ERANGE,
|
||||
SOL_EWOULDBLOCK,
|
||||
SOL_EINPROGRESS,
|
||||
SOL_EALREADY,
|
||||
SOL_ENOTSOCK,
|
||||
SOL_EDESTADDRREQ,
|
||||
SOL_EMSGSIZE,
|
||||
SOL_EPROTOTYPE,
|
||||
SOL_ENOPROTOOPT,
|
||||
SOL_EPROTONOSUPPORT,
|
||||
SOL_ESOCKTNOSUPPORT,
|
||||
SOL_EOPNOTSUPP,
|
||||
SOL_EPFNOSUPPORT,
|
||||
SOL_EAFNOSUPPORT,
|
||||
SOL_EADDRINUSE,
|
||||
SOL_EADDRNOTAVAIL,
|
||||
SOL_ENETDOWN,
|
||||
SOL_ENETUNREACH,
|
||||
SOL_ENETRESET,
|
||||
SOL_ECONNABORTED,
|
||||
SOL_ECONNRESET,
|
||||
SOL_ENOBUFS,
|
||||
SOL_EISCONN,
|
||||
SOL_ENOTONN,
|
||||
SOL_ESHUTDOWN,
|
||||
SOL_ETOOMANYREFS,
|
||||
SOL_ETIMEDOUT,
|
||||
SOL_ECONNREFUSED,
|
||||
SOL_ELOOP,
|
||||
SOL_ENAMETOOLONG,
|
||||
SOL_EHOSTDOWN,
|
||||
SOL_EHOSTUNREACH,
|
||||
SOL_ENOTEMPTY,
|
||||
SOL_EPROCLIM,
|
||||
SOL_EUSERS,
|
||||
SOL_EDQUOT,
|
||||
SOL_ESTALE,
|
||||
SOL_EREMOTE,
|
||||
SOL_ENOSTR,
|
||||
SOL_ETIME,
|
||||
SOL_ENOSR,
|
||||
SOL_ENOMSG,
|
||||
SOL_EBADMSG,
|
||||
SOL_IDRM,
|
||||
SOL_EDEADLK,
|
||||
SOL_ENOLCK,
|
||||
SOL_ENONET,
|
||||
SOL_ERREMOTE,
|
||||
SOL_ENOLINK,
|
||||
SOL_EADV,
|
||||
SOL_ESRMNT,
|
||||
SOL_ECOMM,
|
||||
SOL_EPROTO,
|
||||
SOL_EMULTIHOP,
|
||||
SOL_EINVAL, /* EDOTDOT XXX??? */
|
||||
SOL_REMCHG,
|
||||
SOL_NOSYS,
|
||||
SOL_STRPIPE,
|
||||
SOL_EOVERFLOW,
|
||||
SOL_EBADFD,
|
||||
SOL_ECHRNG,
|
||||
SOL_EL2NSYNC,
|
||||
SOL_EL3HLT,
|
||||
SOL_EL3RST,
|
||||
SOL_NRNG,
|
||||
SOL_EUNATCH,
|
||||
SOL_ENOCSI,
|
||||
SOL_EL2HLT,
|
||||
SOL_EBADE,
|
||||
SOL_EBADR,
|
||||
SOL_EXFULL,
|
||||
SOL_ENOANO,
|
||||
SOL_EBADRQC,
|
||||
SOL_EBADSLT,
|
||||
SOL_EDEADLOCK,
|
||||
SOL_EBFONT,
|
||||
SOL_ELIBEXEC,
|
||||
SOL_ENODATA,
|
||||
SOL_ELIBBAD,
|
||||
SOL_ENOPKG,
|
||||
SOL_ELIBACC,
|
||||
SOL_ENOTUNIQ,
|
||||
SOL_ERESTART,
|
||||
SOL_EUCLEAN,
|
||||
SOL_ENOTNAM,
|
||||
SOL_ENAVAIL,
|
||||
SOL_EISNAM,
|
||||
SOL_EREMOTEIO,
|
||||
SOL_EILSEQ,
|
||||
SOL_ELIBMAX,
|
||||
SOL_ELIBSCN,
|
||||
};
|
@@ -78,11 +78,6 @@ sun4e_notsup:
|
||||
.asciz "Sparc-Linux sun4e support does not exist\n\n"
|
||||
.align 4
|
||||
|
||||
#ifndef CONFIG_SUNOS_EMUL
|
||||
#undef SUNOS_SYSCALL_TRAP
|
||||
#define SUNOS_SYSCALL_TRAP SUNOS_NO_SYSCALL_TRAP
|
||||
#endif
|
||||
|
||||
/* The Sparc trap table, bootloader gives us control at _start. */
|
||||
.text
|
||||
.globl start, _stext, _start, __stext
|
||||
@@ -158,7 +153,7 @@ t_bad6f:BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x7
|
||||
t_bad74:BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78)
|
||||
t_bad79:BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d)
|
||||
t_bad7e:BAD_TRAP(0x7e) BAD_TRAP(0x7f)
|
||||
t_sunos:SUNOS_SYSCALL_TRAP /* SunOS System Call */
|
||||
t_bad80:BAD_TRAP(0x80) /* SunOS System Call */
|
||||
t_sbkpt:BREAKPOINT_TRAP /* Software Breakpoint/KGDB */
|
||||
t_divz: TRAP_ENTRY(0x82, do_hw_divzero) /* Divide by zero trap */
|
||||
t_flwin:TRAP_ENTRY(0x83, do_flush_windows) /* Flush Windows Trap */
|
||||
@@ -166,8 +161,8 @@ t_clwin:BAD_TRAP(0x84) /* Clean Windows Trap */
|
||||
t_rchk: BAD_TRAP(0x85) /* Range Check */
|
||||
t_funal:BAD_TRAP(0x86) /* Fix Unaligned Access Trap */
|
||||
t_iovf: BAD_TRAP(0x87) /* Integer Overflow Trap */
|
||||
t_slowl:SOLARIS_SYSCALL_TRAP /* Slowaris System Call */
|
||||
t_netbs:NETBSD_SYSCALL_TRAP /* Net-B.S. System Call */
|
||||
t_bad88:BAD_TRAP(0x88) /* Slowaris System Call */
|
||||
t_bad89:BAD_TRAP(0x89) /* Net-B.S. System Call */
|
||||
t_bad8a:BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) BAD_TRAP(0x8d) BAD_TRAP(0x8e)
|
||||
t_bad8f:BAD_TRAP(0x8f)
|
||||
t_linux:LINUX_SYSCALL_TRAP /* Linux System Call */
|
||||
@@ -178,7 +173,7 @@ t_getcc:GETCC_TRAP /* Get Condition Codes */
|
||||
t_setcc:SETCC_TRAP /* Set Condition Codes */
|
||||
t_getpsr:GETPSR_TRAP /* Get PSR Register */
|
||||
t_bada3:BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6)
|
||||
t_slowi:INDIRECT_SOLARIS_SYSCALL(156)
|
||||
t_bada7:BAD_TRAP(0xa7)
|
||||
t_bada8:BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)
|
||||
t_badac:BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0)
|
||||
t_badb1:BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5)
|
||||
@@ -243,19 +238,19 @@ trapbase_cpu1:
|
||||
BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78)
|
||||
BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d)
|
||||
BAD_TRAP(0x7e) BAD_TRAP(0x7f)
|
||||
SUNOS_SYSCALL_TRAP
|
||||
BAD_TRAP(0x80)
|
||||
BREAKPOINT_TRAP
|
||||
TRAP_ENTRY(0x82, do_hw_divzero)
|
||||
TRAP_ENTRY(0x83, do_flush_windows) BAD_TRAP(0x84) BAD_TRAP(0x85)
|
||||
BAD_TRAP(0x86) BAD_TRAP(0x87) SOLARIS_SYSCALL_TRAP
|
||||
NETBSD_SYSCALL_TRAP BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c)
|
||||
BAD_TRAP(0x86) BAD_TRAP(0x87) BAD_TRAP(0x88)
|
||||
BAD_TRAP(0x89) BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c)
|
||||
BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f)
|
||||
LINUX_SYSCALL_TRAP BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94)
|
||||
BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99)
|
||||
BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e)
|
||||
BAD_TRAP(0x9f) GETCC_TRAP SETCC_TRAP GETPSR_TRAP
|
||||
BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6)
|
||||
INDIRECT_SOLARIS_SYSCALL(156) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)
|
||||
BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)
|
||||
BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0)
|
||||
BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5)
|
||||
BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba)
|
||||
@@ -311,19 +306,19 @@ trapbase_cpu2:
|
||||
BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78)
|
||||
BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d)
|
||||
BAD_TRAP(0x7e) BAD_TRAP(0x7f)
|
||||
SUNOS_SYSCALL_TRAP
|
||||
BAD_TRAP(0x80)
|
||||
BREAKPOINT_TRAP
|
||||
TRAP_ENTRY(0x82, do_hw_divzero)
|
||||
TRAP_ENTRY(0x83, do_flush_windows) BAD_TRAP(0x84) BAD_TRAP(0x85)
|
||||
BAD_TRAP(0x86) BAD_TRAP(0x87) SOLARIS_SYSCALL_TRAP
|
||||
NETBSD_SYSCALL_TRAP BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c)
|
||||
BAD_TRAP(0x86) BAD_TRAP(0x87) BAD_TRAP(0x88)
|
||||
BAD_TRAP(0x89) BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c)
|
||||
BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f)
|
||||
LINUX_SYSCALL_TRAP BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94)
|
||||
BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99)
|
||||
BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e)
|
||||
BAD_TRAP(0x9f) GETCC_TRAP SETCC_TRAP GETPSR_TRAP
|
||||
BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6)
|
||||
INDIRECT_SOLARIS_SYSCALL(156) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)
|
||||
BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)
|
||||
BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0)
|
||||
BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5)
|
||||
BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba)
|
||||
@@ -379,19 +374,19 @@ trapbase_cpu3:
|
||||
BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78)
|
||||
BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d)
|
||||
BAD_TRAP(0x7e) BAD_TRAP(0x7f)
|
||||
SUNOS_SYSCALL_TRAP
|
||||
BAD_TRAP(0x80)
|
||||
BREAKPOINT_TRAP
|
||||
TRAP_ENTRY(0x82, do_hw_divzero)
|
||||
TRAP_ENTRY(0x83, do_flush_windows) BAD_TRAP(0x84) BAD_TRAP(0x85)
|
||||
BAD_TRAP(0x86) BAD_TRAP(0x87) SOLARIS_SYSCALL_TRAP
|
||||
NETBSD_SYSCALL_TRAP BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c)
|
||||
BAD_TRAP(0x86) BAD_TRAP(0x87) BAD_TRAP(0x88)
|
||||
BAD_TRAP(0x89) BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c)
|
||||
BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f)
|
||||
LINUX_SYSCALL_TRAP BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94)
|
||||
BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99)
|
||||
BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e)
|
||||
BAD_TRAP(0x9f) GETCC_TRAP SETCC_TRAP GETPSR_TRAP
|
||||
BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6)
|
||||
INDIRECT_SOLARIS_SYSCALL(156) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)
|
||||
BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab)
|
||||
BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0)
|
||||
BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5)
|
||||
BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba)
|
||||
|
@@ -1,86 +0,0 @@
|
||||
/* sclow.S: Low level special syscall handling.
|
||||
* Basically these are cases where we can completely
|
||||
* handle the system call without saving any state
|
||||
* because we know that the process will not sleep.
|
||||
*
|
||||
* Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
|
||||
*/
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/winmacro.h>
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/psr.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#define CC_AND_RETT \
|
||||
set PSR_C, %l4; \
|
||||
andn %l0, %l4, %l4; \
|
||||
wr %l4, 0x0, %psr; \
|
||||
nop; nop; nop; \
|
||||
jmp %l2; \
|
||||
rett %l2 + 4;
|
||||
|
||||
#define SC_AND_RETT \
|
||||
set PSR_C, %l4; \
|
||||
or %l0, %l4, %l4; \
|
||||
wr %l4, 0x0, %psr; \
|
||||
nop; nop; nop; \
|
||||
jmp %l2; \
|
||||
rett %l2 + 4;
|
||||
|
||||
#define LABEL(func) func##_low
|
||||
|
||||
.globl LABEL(sunosnop)
|
||||
LABEL(sunosnop):
|
||||
CC_AND_RETT
|
||||
|
||||
#if (ASIZ_task_uid == 2 && ASIZ_task_euid == 2)
|
||||
.globl LABEL(sunosgetuid)
|
||||
LABEL(sunosgetuid):
|
||||
LOAD_CURRENT(l4, l5)
|
||||
ld [%l4 + TI_TASK], %l4
|
||||
lduh [%l4 + AOFF_task_uid], %i0
|
||||
lduh [%l4 + AOFF_task_euid], %i1
|
||||
CC_AND_RETT
|
||||
#endif
|
||||
|
||||
#if (ASIZ_task_gid == 2 && ASIZ_task_egid == 2)
|
||||
.globl LABEL(sunosgetgid)
|
||||
LABEL(sunosgetgid):
|
||||
LOAD_CURRENT(l4, l5)
|
||||
ld [%l4 + TI_TASK], %l4
|
||||
lduh [%l4 + AOFF_task_gid], %i0
|
||||
lduh [%l4 + AOFF_task_egid], %i1
|
||||
CC_AND_RETT
|
||||
#endif
|
||||
|
||||
.globl LABEL(sunosmctl)
|
||||
LABEL(sunosmctl):
|
||||
mov 0, %i0
|
||||
CC_AND_RETT
|
||||
|
||||
.globl LABEL(sunosgdtsize)
|
||||
LABEL(sunosgdtsize):
|
||||
mov 256, %i0
|
||||
CC_AND_RETT
|
||||
|
||||
.globl LABEL(getpagesize)
|
||||
LABEL(getpagesize):
|
||||
set PAGE_SIZE, %i0
|
||||
CC_AND_RETT
|
||||
|
||||
/* XXX sys_nice() XXX */
|
||||
/* XXX sys_setpriority() XXX */
|
||||
/* XXX sys_getpriority() XXX */
|
||||
/* XXX sys_setregid() XXX */
|
||||
/* XXX sys_setgid() XXX */
|
||||
/* XXX sys_setreuid() XXX */
|
||||
/* XXX sys_setuid() XXX */
|
||||
/* XXX sys_setfsuid() XXX */
|
||||
/* XXX sys_setfsgid() XXX */
|
||||
/* XXX sys_setpgid() XXX */
|
||||
/* XXX sys_getpgid() XXX */
|
||||
/* XXX sys_setsid() XXX */
|
||||
/* XXX sys_getsid() XXX */
|
@@ -22,7 +22,6 @@
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/svr4.h>
|
||||
#include <asm/pgalloc.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/cacheflush.h> /* flush_sig_insns */
|
||||
@@ -454,7 +453,6 @@ setup_frame(struct sigaction *sa, struct pt_regs *regs, int signr, sigset_t *old
|
||||
break;
|
||||
case SIGSYS:
|
||||
if (info->si_code == (__SI_FAULT|0x100)) {
|
||||
/* See sys_sunos.c */
|
||||
sig_code = info->si_trapno;
|
||||
break;
|
||||
}
|
||||
@@ -676,291 +674,17 @@ sigsegv:
|
||||
force_sigsegv(signo, current);
|
||||
}
|
||||
|
||||
/* Setup a Solaris stack frame */
|
||||
static inline void
|
||||
setup_svr4_frame(struct sigaction *sa, unsigned long pc, unsigned long npc,
|
||||
struct pt_regs *regs, int signr, sigset_t *oldset)
|
||||
{
|
||||
svr4_signal_frame_t __user *sfp;
|
||||
svr4_gregset_t __user *gr;
|
||||
svr4_siginfo_t __user *si;
|
||||
svr4_mcontext_t __user *mc;
|
||||
svr4_gwindows_t __user *gw;
|
||||
svr4_ucontext_t __user *uc;
|
||||
svr4_sigset_t setv;
|
||||
struct thread_info *tp = current_thread_info();
|
||||
int window = 0, err;
|
||||
|
||||
synchronize_user_stack();
|
||||
sfp = (svr4_signal_frame_t __user *)
|
||||
get_sigframe(sa, regs, SVR4_SF_ALIGNED + sizeof(struct reg_window));
|
||||
|
||||
if (invalid_frame_pointer(sfp, sizeof(*sfp)))
|
||||
goto sigill_and_return;
|
||||
|
||||
/* Start with a clean frame pointer and fill it */
|
||||
err = __clear_user(sfp, sizeof(*sfp));
|
||||
|
||||
/* Setup convenience variables */
|
||||
si = &sfp->si;
|
||||
uc = &sfp->uc;
|
||||
gw = &sfp->gw;
|
||||
mc = &uc->mcontext;
|
||||
gr = &mc->greg;
|
||||
|
||||
/* FIXME: where am I supposed to put this?
|
||||
* sc->sigc_onstack = old_status;
|
||||
* anyways, it does not look like it is used for anything at all.
|
||||
*/
|
||||
setv.sigbits[0] = oldset->sig[0];
|
||||
setv.sigbits[1] = oldset->sig[1];
|
||||
if (_NSIG_WORDS >= 4) {
|
||||
setv.sigbits[2] = oldset->sig[2];
|
||||
setv.sigbits[3] = oldset->sig[3];
|
||||
err |= __copy_to_user(&uc->sigmask, &setv, sizeof(svr4_sigset_t));
|
||||
} else
|
||||
err |= __copy_to_user(&uc->sigmask, &setv,
|
||||
2 * sizeof(unsigned int));
|
||||
|
||||
/* Store registers */
|
||||
err |= __put_user(regs->pc, &((*gr)[SVR4_PC]));
|
||||
err |= __put_user(regs->npc, &((*gr)[SVR4_NPC]));
|
||||
err |= __put_user(regs->psr, &((*gr)[SVR4_PSR]));
|
||||
err |= __put_user(regs->y, &((*gr)[SVR4_Y]));
|
||||
|
||||
/* Copy g[1..7] and o[0..7] registers */
|
||||
err |= __copy_to_user(&(*gr)[SVR4_G1], ®s->u_regs[UREG_G1],
|
||||
sizeof(long) * 7);
|
||||
err |= __copy_to_user(&(*gr)[SVR4_O0], ®s->u_regs[UREG_I0],
|
||||
sizeof(long) * 8);
|
||||
|
||||
/* Setup sigaltstack */
|
||||
err |= __put_user(current->sas_ss_sp, &uc->stack.sp);
|
||||
err |= __put_user(sas_ss_flags(regs->u_regs[UREG_FP]), &uc->stack.flags);
|
||||
err |= __put_user(current->sas_ss_size, &uc->stack.size);
|
||||
|
||||
/* Save the currently window file: */
|
||||
|
||||
/* 1. Link sfp->uc->gwins to our windows */
|
||||
err |= __put_user(gw, &mc->gwin);
|
||||
|
||||
/* 2. Number of windows to restore at setcontext(): */
|
||||
err |= __put_user(tp->w_saved, &gw->count);
|
||||
|
||||
/* 3. Save each valid window
|
||||
* Currently, it makes a copy of the windows from the kernel copy.
|
||||
* David's code for SunOS, makes the copy but keeps the pointer to
|
||||
* the kernel. My version makes the pointer point to a userland
|
||||
* copy of those. Mhm, I wonder if I shouldn't just ignore those
|
||||
* on setcontext and use those that are on the kernel, the signal
|
||||
* handler should not be modyfing those, mhm.
|
||||
*
|
||||
* These windows are just used in case synchronize_user_stack failed
|
||||
* to flush the user windows.
|
||||
*/
|
||||
for (window = 0; window < tp->w_saved; window++) {
|
||||
err |= __put_user((int __user *) &(gw->win[window]), &gw->winptr[window]);
|
||||
err |= __copy_to_user(&gw->win[window],
|
||||
&tp->reg_window[window],
|
||||
sizeof(svr4_rwindow_t));
|
||||
err |= __put_user(0, gw->winptr[window]);
|
||||
}
|
||||
|
||||
/* 4. We just pay attention to the gw->count field on setcontext */
|
||||
tp->w_saved = 0; /* So process is allowed to execute. */
|
||||
|
||||
/* Setup the signal information. Solaris expects a bunch of
|
||||
* information to be passed to the signal handler, we don't provide
|
||||
* that much currently, should use siginfo.
|
||||
*/
|
||||
err |= __put_user(signr, &si->siginfo.signo);
|
||||
err |= __put_user(SVR4_SINOINFO, &si->siginfo.code);
|
||||
if (err)
|
||||
goto sigsegv;
|
||||
|
||||
regs->u_regs[UREG_FP] = (unsigned long) sfp;
|
||||
regs->pc = (unsigned long) sa->sa_handler;
|
||||
regs->npc = (regs->pc + 4);
|
||||
|
||||
/* Arguments passed to signal handler */
|
||||
if (regs->u_regs[14]){
|
||||
struct reg_window __user *rw = (struct reg_window __user *)
|
||||
regs->u_regs[14];
|
||||
|
||||
err |= __put_user(signr, &rw->ins[0]);
|
||||
err |= __put_user(si, &rw->ins[1]);
|
||||
err |= __put_user(uc, &rw->ins[2]);
|
||||
err |= __put_user(sfp, &rw->ins[6]); /* frame pointer */
|
||||
if (err)
|
||||
goto sigsegv;
|
||||
|
||||
regs->u_regs[UREG_I0] = signr;
|
||||
regs->u_regs[UREG_I1] = (unsigned long) si;
|
||||
regs->u_regs[UREG_I2] = (unsigned long) uc;
|
||||
}
|
||||
return;
|
||||
|
||||
sigill_and_return:
|
||||
do_exit(SIGILL);
|
||||
sigsegv:
|
||||
force_sigsegv(signr, current);
|
||||
}
|
||||
|
||||
asmlinkage int svr4_getcontext(svr4_ucontext_t __user *uc, struct pt_regs *regs)
|
||||
{
|
||||
svr4_gregset_t __user *gr;
|
||||
svr4_mcontext_t __user *mc;
|
||||
svr4_sigset_t setv;
|
||||
int err = 0;
|
||||
|
||||
synchronize_user_stack();
|
||||
|
||||
if (current_thread_info()->w_saved)
|
||||
return -EFAULT;
|
||||
|
||||
err = clear_user(uc, sizeof(*uc));
|
||||
if (err)
|
||||
return -EFAULT;
|
||||
|
||||
/* Setup convenience variables */
|
||||
mc = &uc->mcontext;
|
||||
gr = &mc->greg;
|
||||
|
||||
setv.sigbits[0] = current->blocked.sig[0];
|
||||
setv.sigbits[1] = current->blocked.sig[1];
|
||||
if (_NSIG_WORDS >= 4) {
|
||||
setv.sigbits[2] = current->blocked.sig[2];
|
||||
setv.sigbits[3] = current->blocked.sig[3];
|
||||
err |= __copy_to_user(&uc->sigmask, &setv, sizeof(svr4_sigset_t));
|
||||
} else
|
||||
err |= __copy_to_user(&uc->sigmask, &setv,
|
||||
2 * sizeof(unsigned int));
|
||||
|
||||
/* Store registers */
|
||||
err |= __put_user(regs->pc, &uc->mcontext.greg[SVR4_PC]);
|
||||
err |= __put_user(regs->npc, &uc->mcontext.greg[SVR4_NPC]);
|
||||
err |= __put_user(regs->psr, &uc->mcontext.greg[SVR4_PSR]);
|
||||
err |= __put_user(regs->y, &uc->mcontext.greg[SVR4_Y]);
|
||||
|
||||
/* Copy g[1..7] and o[0..7] registers */
|
||||
err |= __copy_to_user(&(*gr)[SVR4_G1], ®s->u_regs[UREG_G1],
|
||||
sizeof(uint) * 7);
|
||||
err |= __copy_to_user(&(*gr)[SVR4_O0], ®s->u_regs[UREG_I0],
|
||||
sizeof(uint) * 8);
|
||||
|
||||
/* Setup sigaltstack */
|
||||
err |= __put_user(current->sas_ss_sp, &uc->stack.sp);
|
||||
err |= __put_user(sas_ss_flags(regs->u_regs[UREG_FP]), &uc->stack.flags);
|
||||
err |= __put_user(current->sas_ss_size, &uc->stack.size);
|
||||
|
||||
/* The register file is not saved
|
||||
* we have already stuffed all of it with sync_user_stack
|
||||
*/
|
||||
return (err ? -EFAULT : 0);
|
||||
}
|
||||
|
||||
/* Set the context for a svr4 application, this is Solaris way to sigreturn */
|
||||
asmlinkage int svr4_setcontext(svr4_ucontext_t __user *c, struct pt_regs *regs)
|
||||
{
|
||||
svr4_gregset_t __user *gr;
|
||||
unsigned long pc, npc, psr;
|
||||
mm_segment_t old_fs;
|
||||
sigset_t set;
|
||||
svr4_sigset_t setv;
|
||||
int err;
|
||||
stack_t st;
|
||||
|
||||
/* Fixme: restore windows, or is this already taken care of in
|
||||
* svr4_setup_frame when sync_user_windows is done?
|
||||
*/
|
||||
flush_user_windows();
|
||||
|
||||
if (current_thread_info()->w_saved)
|
||||
goto sigsegv_and_return;
|
||||
|
||||
if (((unsigned long) c) & 3)
|
||||
goto sigsegv_and_return;
|
||||
|
||||
if (!__access_ok((unsigned long)c, sizeof(*c)))
|
||||
goto sigsegv_and_return;
|
||||
|
||||
/* Check for valid PC and nPC */
|
||||
gr = &c->mcontext.greg;
|
||||
err = __get_user(pc, &((*gr)[SVR4_PC]));
|
||||
err |= __get_user(npc, &((*gr)[SVR4_NPC]));
|
||||
|
||||
if ((pc | npc) & 3)
|
||||
goto sigsegv_and_return;
|
||||
|
||||
/* Retrieve information from passed ucontext */
|
||||
/* note that nPC is ored a 1, this is used to inform entry.S */
|
||||
/* that we don't want it to mess with our PC and nPC */
|
||||
|
||||
/* This is pretty much atomic, no amount locking would prevent
|
||||
* the races which exist anyways.
|
||||
*/
|
||||
err |= __copy_from_user(&setv, &c->sigmask, sizeof(svr4_sigset_t));
|
||||
|
||||
err |= __get_user(st.ss_sp, &c->stack.sp);
|
||||
err |= __get_user(st.ss_flags, &c->stack.flags);
|
||||
err |= __get_user(st.ss_size, &c->stack.size);
|
||||
|
||||
if (err)
|
||||
goto sigsegv_and_return;
|
||||
|
||||
/* It is more difficult to avoid calling this function than to
|
||||
call it and ignore errors. */
|
||||
old_fs = get_fs();
|
||||
set_fs(KERNEL_DS);
|
||||
do_sigaltstack((const stack_t __user *) &st, NULL,
|
||||
regs->u_regs[UREG_I6]);
|
||||
set_fs(old_fs);
|
||||
|
||||
set.sig[0] = setv.sigbits[0];
|
||||
set.sig[1] = setv.sigbits[1];
|
||||
if (_NSIG_WORDS >= 4) {
|
||||
set.sig[2] = setv.sigbits[2];
|
||||
set.sig[3] = setv.sigbits[3];
|
||||
}
|
||||
sigdelsetmask(&set, ~_BLOCKABLE);
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
current->blocked = set;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
regs->pc = pc;
|
||||
regs->npc = npc | 1;
|
||||
err |= __get_user(regs->y, &((*gr)[SVR4_Y]));
|
||||
err |= __get_user(psr, &((*gr)[SVR4_PSR]));
|
||||
regs->psr &= ~(PSR_ICC);
|
||||
regs->psr |= (psr & PSR_ICC);
|
||||
|
||||
/* Restore g[1..7] and o[0..7] registers */
|
||||
err |= __copy_from_user(®s->u_regs[UREG_G1], &(*gr)[SVR4_G1],
|
||||
sizeof(long) * 7);
|
||||
err |= __copy_from_user(®s->u_regs[UREG_I0], &(*gr)[SVR4_O0],
|
||||
sizeof(long) * 8);
|
||||
return (err ? -EFAULT : 0);
|
||||
|
||||
sigsegv_and_return:
|
||||
force_sig(SIGSEGV, current);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
static inline void
|
||||
handle_signal(unsigned long signr, struct k_sigaction *ka,
|
||||
siginfo_t *info, sigset_t *oldset, struct pt_regs *regs,
|
||||
int svr4_signal)
|
||||
siginfo_t *info, sigset_t *oldset, struct pt_regs *regs)
|
||||
{
|
||||
if (svr4_signal)
|
||||
setup_svr4_frame(&ka->sa, regs->pc, regs->npc, regs, signr, oldset);
|
||||
else {
|
||||
if (ka->sa.sa_flags & SA_SIGINFO)
|
||||
new_setup_rt_frame(ka, regs, signr, oldset, info);
|
||||
else if (current->thread.new_signal)
|
||||
new_setup_frame(ka, regs, signr, oldset);
|
||||
else
|
||||
setup_frame(&ka->sa, regs, signr, oldset, info);
|
||||
}
|
||||
if (ka->sa.sa_flags & SA_SIGINFO)
|
||||
new_setup_rt_frame(ka, regs, signr, oldset, info);
|
||||
else if (current->thread.new_signal)
|
||||
new_setup_frame(ka, regs, signr, oldset);
|
||||
else
|
||||
setup_frame(&ka->sa, regs, signr, oldset, info);
|
||||
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask);
|
||||
if (!(ka->sa.sa_flags & SA_NOMASK))
|
||||
@@ -1002,17 +726,6 @@ asmlinkage void do_signal(struct pt_regs * regs, unsigned long orig_i0, int rest
|
||||
int signr;
|
||||
sigset_t *oldset;
|
||||
|
||||
/*
|
||||
* XXX Disable svr4 signal handling until solaris emulation works.
|
||||
* It is buggy - Anton
|
||||
*/
|
||||
#define SVR4_SIGNAL_BROKEN 1
|
||||
#ifdef SVR4_SIGNAL_BROKEN
|
||||
int svr4_signal = 0;
|
||||
#else
|
||||
int svr4_signal = current->personality == PER_SVR4;
|
||||
#endif
|
||||
|
||||
cookie.restart_syscall = restart_syscall;
|
||||
cookie.orig_i0 = orig_i0;
|
||||
|
||||
@@ -1025,8 +738,8 @@ asmlinkage void do_signal(struct pt_regs * regs, unsigned long orig_i0, int rest
|
||||
if (signr > 0) {
|
||||
if (cookie.restart_syscall)
|
||||
syscall_restart(cookie.orig_i0, regs, &ka.sa);
|
||||
handle_signal(signr, &ka, &info, oldset,
|
||||
regs, svr4_signal);
|
||||
handle_signal(signr, &ka, &info, oldset, regs);
|
||||
|
||||
/* a signal was successfully delivered; the saved
|
||||
* sigmask will have been stored in the signal frame,
|
||||
* and will be restored by sigreturn, so we can simply
|
||||
|
@@ -36,12 +36,10 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/idprom.h>
|
||||
#include <asm/svr4.h>
|
||||
#include <asm/head.h>
|
||||
#include <asm/smp.h>
|
||||
#include <asm/mostek.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/user.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/checksum.h>
|
||||
#ifdef CONFIG_SBUS
|
||||
@@ -62,8 +60,6 @@ struct poll {
|
||||
short revents;
|
||||
};
|
||||
|
||||
extern int svr4_getcontext (svr4_ucontext_t *, struct pt_regs *);
|
||||
extern int svr4_setcontext (svr4_ucontext_t *, struct pt_regs *);
|
||||
extern void (*__copy_1page)(void *, const void *);
|
||||
extern void __memmove(void *, const void *, __kernel_size_t);
|
||||
extern void (*bzero_1page)(void *);
|
||||
@@ -204,10 +200,6 @@ EXPORT_SYMBOL(kmap_atomic);
|
||||
EXPORT_SYMBOL(kunmap_atomic);
|
||||
#endif
|
||||
|
||||
/* Solaris/SunOS binary compatibility */
|
||||
EXPORT_SYMBOL(svr4_setcontext);
|
||||
EXPORT_SYMBOL(svr4_getcontext);
|
||||
|
||||
/* prom symbols */
|
||||
EXPORT_SYMBOL(idprom);
|
||||
EXPORT_SYMBOL(prom_root_node);
|
||||
|
@@ -1,67 +0,0 @@
|
||||
/* $Id: sunos_asm.S,v 1.15 2000/01/11 17:33:21 jj Exp $
|
||||
* sunos_asm.S: SunOS system calls which must have a low-level
|
||||
* entry point to operate correctly.
|
||||
*
|
||||
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
|
||||
*
|
||||
* Based upon preliminary work which is:
|
||||
*
|
||||
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
|
||||
*/
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
/* When calling ret_sys_call, %o0 should contain the same
|
||||
* value as in [%sp + STACKFRAME_SZ + PT_I0] */
|
||||
|
||||
/* SunOS getpid() returns pid in %o0 and ppid in %o1 */
|
||||
.globl sunos_getpid
|
||||
sunos_getpid:
|
||||
call sys_getppid
|
||||
nop
|
||||
|
||||
call sys_getpid
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I1]
|
||||
|
||||
b ret_sys_call
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
|
||||
|
||||
/* SunOS getuid() returns uid in %o0 and euid in %o1 */
|
||||
.globl sunos_getuid
|
||||
sunos_getuid:
|
||||
call sys_geteuid16
|
||||
nop
|
||||
|
||||
call sys_getuid16
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I1]
|
||||
|
||||
b ret_sys_call
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
|
||||
|
||||
/* SunOS getgid() returns gid in %o0 and egid in %o1 */
|
||||
.globl sunos_getgid
|
||||
sunos_getgid:
|
||||
call sys_getegid16
|
||||
nop
|
||||
|
||||
call sys_getgid16
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I1]
|
||||
|
||||
b ret_sys_call
|
||||
st %o0, [%sp + STACKFRAME_SZ + PT_I0]
|
||||
|
||||
/* SunOS's execv() call only specifies the argv argument, the
|
||||
* environment settings are the same as the calling processes.
|
||||
*/
|
||||
.globl sunos_execv
|
||||
sunos_execv:
|
||||
st %g0, [%sp + STACKFRAME_SZ + PT_I2]
|
||||
|
||||
call sparc_execve
|
||||
add %sp, STACKFRAME_SZ, %o0
|
||||
|
||||
b ret_sys_call
|
||||
ld [%sp + STACKFRAME_SZ + PT_I0], %o0
|
@@ -1,230 +0,0 @@
|
||||
/* $Id: sunos_ioctl.c,v 1.34 2000/09/03 14:10:56 anton Exp $
|
||||
* sunos_ioctl.c: The Linux Operating system: SunOS ioctl compatibility.
|
||||
*
|
||||
* Copyright (C) 1995 Miguel de Icaza (miguel@nuclecu.unam.mx)
|
||||
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
|
||||
*/
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
#include <linux/sched.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/termios.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/route.h>
|
||||
#include <linux/sockios.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/file.h>
|
||||
|
||||
#if 0
|
||||
extern char sunkbd_type;
|
||||
extern char sunkbd_layout;
|
||||
#endif
|
||||
|
||||
/* NR_OPEN is now larger and dynamic in recent kernels. */
|
||||
#define SUNOS_NR_OPEN 256
|
||||
|
||||
asmlinkage int sunos_ioctl (int fd, unsigned long cmd, unsigned long arg)
|
||||
{
|
||||
int ret = -EBADF;
|
||||
|
||||
if (fd >= SUNOS_NR_OPEN || !fcheck(fd))
|
||||
goto out;
|
||||
|
||||
/* First handle an easy compat. case for tty ldisc. */
|
||||
if (cmd == TIOCSETD) {
|
||||
int __user *p;
|
||||
int ntty = N_TTY, tmp;
|
||||
mm_segment_t oldfs;
|
||||
|
||||
p = (int __user *) arg;
|
||||
ret = -EFAULT;
|
||||
if (get_user(tmp, p))
|
||||
goto out;
|
||||
if (tmp == 2) {
|
||||
oldfs = get_fs();
|
||||
set_fs(KERNEL_DS);
|
||||
ret = sys_ioctl(fd, cmd, (unsigned long) &ntty);
|
||||
set_fs(oldfs);
|
||||
ret = (ret == -EINVAL ? -EOPNOTSUPP : ret);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
/* Binary compatibility is good American knowhow fuckin' up. */
|
||||
if (cmd == TIOCNOTTY) {
|
||||
ret = sys_setsid();
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* SunOS networking ioctls. */
|
||||
switch (cmd) {
|
||||
case _IOW('r', 10, struct rtentry):
|
||||
ret = sys_ioctl(fd, SIOCADDRT, arg);
|
||||
goto out;
|
||||
case _IOW('r', 11, struct rtentry):
|
||||
ret = sys_ioctl(fd, SIOCDELRT, arg);
|
||||
goto out;
|
||||
case _IOW('i', 12, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCSIFADDR, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 13, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCGIFADDR, arg);
|
||||
goto out;
|
||||
case _IOW('i', 14, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCSIFDSTADDR, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 15, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCGIFDSTADDR, arg);
|
||||
goto out;
|
||||
case _IOW('i', 16, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCSIFFLAGS, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 17, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCGIFFLAGS, arg);
|
||||
goto out;
|
||||
case _IOW('i', 18, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCSIFMEM, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 19, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCGIFMEM, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 20, struct ifconf):
|
||||
ret = sys_ioctl(fd, SIOCGIFCONF, arg);
|
||||
goto out;
|
||||
case _IOW('i', 21, struct ifreq): /* SIOCSIFMTU */
|
||||
ret = sys_ioctl(fd, SIOCSIFMTU, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 22, struct ifreq): /* SIOCGIFMTU */
|
||||
ret = sys_ioctl(fd, SIOCGIFMTU, arg);
|
||||
goto out;
|
||||
|
||||
case _IOWR('i', 23, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCGIFBRDADDR, arg);
|
||||
goto out;
|
||||
case _IOW('i', 24, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCSIFBRDADDR, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 25, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCGIFNETMASK, arg);
|
||||
goto out;
|
||||
case _IOW('i', 26, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCSIFNETMASK, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 27, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCGIFMETRIC, arg);
|
||||
goto out;
|
||||
case _IOW('i', 28, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCSIFMETRIC, arg);
|
||||
goto out;
|
||||
|
||||
case _IOW('i', 30, struct arpreq):
|
||||
ret = sys_ioctl(fd, SIOCSARP, arg);
|
||||
goto out;
|
||||
case _IOWR('i', 31, struct arpreq):
|
||||
ret = sys_ioctl(fd, SIOCGARP, arg);
|
||||
goto out;
|
||||
case _IOW('i', 32, struct arpreq):
|
||||
ret = sys_ioctl(fd, SIOCDARP, arg);
|
||||
goto out;
|
||||
|
||||
case _IOW('i', 40, struct ifreq): /* SIOCUPPER */
|
||||
case _IOW('i', 41, struct ifreq): /* SIOCLOWER */
|
||||
case _IOW('i', 44, struct ifreq): /* SIOCSETSYNC */
|
||||
case _IOW('i', 45, struct ifreq): /* SIOCGETSYNC */
|
||||
case _IOW('i', 46, struct ifreq): /* SIOCSSDSTATS */
|
||||
case _IOW('i', 47, struct ifreq): /* SIOCSSESTATS */
|
||||
case _IOW('i', 48, struct ifreq): /* SIOCSPROMISC */
|
||||
ret = -EOPNOTSUPP;
|
||||
goto out;
|
||||
|
||||
case _IOW('i', 49, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCADDMULTI, arg);
|
||||
goto out;
|
||||
case _IOW('i', 50, struct ifreq):
|
||||
ret = sys_ioctl(fd, SIOCDELMULTI, arg);
|
||||
goto out;
|
||||
|
||||
/* FDDI interface ioctls, unsupported. */
|
||||
|
||||
case _IOW('i', 51, struct ifreq): /* SIOCFDRESET */
|
||||
case _IOW('i', 52, struct ifreq): /* SIOCFDSLEEP */
|
||||
case _IOW('i', 53, struct ifreq): /* SIOCSTRTFMWAR */
|
||||
case _IOW('i', 54, struct ifreq): /* SIOCLDNSTRTFW */
|
||||
case _IOW('i', 55, struct ifreq): /* SIOCGETFDSTAT */
|
||||
case _IOW('i', 56, struct ifreq): /* SIOCFDNMIINT */
|
||||
case _IOW('i', 57, struct ifreq): /* SIOCFDEXUSER */
|
||||
case _IOW('i', 58, struct ifreq): /* SIOCFDGNETMAP */
|
||||
case _IOW('i', 59, struct ifreq): /* SIOCFDGIOCTL */
|
||||
printk("FDDI ioctl, returning EOPNOTSUPP\n");
|
||||
ret = -EOPNOTSUPP;
|
||||
goto out;
|
||||
|
||||
case _IOW('t', 125, int):
|
||||
/* More stupid tty sunos ioctls, just
|
||||
* say it worked.
|
||||
*/
|
||||
ret = 0;
|
||||
goto out;
|
||||
/* Non posix grp */
|
||||
case _IOW('t', 118, int): {
|
||||
int oldval, newval, __user *ptr;
|
||||
|
||||
cmd = TIOCSPGRP;
|
||||
ptr = (int __user *) arg;
|
||||
ret = -EFAULT;
|
||||
if (get_user(oldval, ptr))
|
||||
goto out;
|
||||
ret = sys_ioctl(fd, cmd, arg);
|
||||
__get_user(newval, ptr);
|
||||
if (newval == -1) {
|
||||
__put_user(oldval, ptr);
|
||||
ret = -EIO;
|
||||
}
|
||||
if (ret == -ENOTTY)
|
||||
ret = -EIO;
|
||||
goto out;
|
||||
}
|
||||
|
||||
case _IOR('t', 119, int): {
|
||||
int oldval, newval, __user *ptr;
|
||||
|
||||
cmd = TIOCGPGRP;
|
||||
ptr = (int __user *) arg;
|
||||
ret = -EFAULT;
|
||||
if (get_user(oldval, ptr))
|
||||
goto out;
|
||||
ret = sys_ioctl(fd, cmd, arg);
|
||||
__get_user(newval, ptr);
|
||||
if (newval == -1) {
|
||||
__put_user(oldval, ptr);
|
||||
ret = -EIO;
|
||||
}
|
||||
if (ret == -ENOTTY)
|
||||
ret = -EIO;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
if ((cmd & 0xff00) == ('k' << 8)) {
|
||||
printk ("[[KBIO: %8.8x\n", (unsigned int) cmd);
|
||||
}
|
||||
#endif
|
||||
|
||||
ret = sys_ioctl(fd, cmd, arg);
|
||||
/* so stupid... */
|
||||
ret = (ret == -EINVAL ? -EOPNOTSUPP : ret);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
* linux/arch/sparc/kernel/sys_solaris.c
|
||||
*
|
||||
* Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
|
||||
*/
|
||||
|
||||
#include <linux/sched.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/personality.h>
|
||||
#include <linux/ptrace.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
asmlinkage int
|
||||
do_solaris_syscall (struct pt_regs *regs)
|
||||
{
|
||||
static int cnt = 0;
|
||||
if (++cnt < 10) printk ("No solaris handler\n");
|
||||
force_sig(SIGSEGV, current);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SUNOS_EMUL
|
||||
asmlinkage int
|
||||
do_sunos_syscall (struct pt_regs *regs)
|
||||
{
|
||||
static int cnt = 0;
|
||||
if (++cnt < 10) printk ("SunOS binary emulation not compiled in\n");
|
||||
force_sig (SIGSEGV, current);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@@ -81,124 +81,3 @@ sys_call_table:
|
||||
/*305*/ .long sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
|
||||
/*310*/ .long sys_utimensat, sys_signalfd, sys_timerfd_create, sys_eventfd, sys_fallocate
|
||||
/*315*/ .long sys_timerfd_settime, sys_timerfd_gettime
|
||||
|
||||
#ifdef CONFIG_SUNOS_EMUL
|
||||
/* Now the SunOS syscall table. */
|
||||
|
||||
.align 4
|
||||
.globl sunos_sys_table
|
||||
sunos_sys_table:
|
||||
/*0*/ .long sunos_indir, sys_exit, sys_fork
|
||||
.long sunos_read, sunos_write, sys_open
|
||||
.long sys_close, sunos_wait4, sys_creat
|
||||
.long sys_link, sys_unlink, sunos_execv
|
||||
.long sys_chdir, sunos_nosys, sys_mknod
|
||||
.long sys_chmod, sys_lchown16, sunos_brk
|
||||
.long sunos_nosys, sys_lseek, sunos_getpid
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_getuid, sunos_nosys, sys_ptrace
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sys_access, sunos_nosys, sunos_nosys
|
||||
.long sys_sync, sys_kill, sys_newstat
|
||||
.long sunos_nosys, sys_newlstat, sys_dup
|
||||
.long sys_pipe, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_getgid
|
||||
.long sunos_nosys, sunos_nosys
|
||||
/*50*/ .long sunos_nosys, sys_acct, sunos_nosys
|
||||
.long sunos_mctl, sunos_ioctl, sys_reboot
|
||||
.long sunos_nosys, sys_symlink, sys_readlink
|
||||
.long sys_execve, sys_umask, sys_chroot
|
||||
.long sys_newfstat, sunos_nosys, sys_getpagesize
|
||||
.long sys_msync, sys_vfork, sunos_nosys
|
||||
.long sunos_nosys, sunos_sbrk, sunos_sstk
|
||||
.long sunos_mmap, sunos_vadvise, sys_munmap
|
||||
.long sys_mprotect, sys_madvise, sys_vhangup
|
||||
.long sunos_nosys, sys_mincore, sys_getgroups16
|
||||
.long sys_setgroups16, sys_getpgrp, sunos_setpgrp
|
||||
.long sys_setitimer, sunos_nosys, sys_swapon
|
||||
.long sys_getitimer, sys_gethostname, sys_sethostname
|
||||
.long sunos_getdtablesize, sys_dup2, sunos_nop
|
||||
.long sys_fcntl, sunos_select, sunos_nop
|
||||
.long sys_fsync, sys_setpriority, sys_socket
|
||||
.long sys_connect, sunos_accept
|
||||
/*100*/ .long sys_getpriority, sunos_send, sunos_recv
|
||||
.long sunos_nosys, sys_bind, sunos_setsockopt
|
||||
.long sys_listen, sunos_nosys, sunos_sigaction
|
||||
.long sunos_sigblock, sunos_sigsetmask, sys_sigpause
|
||||
.long sys_sigstack, sys_recvmsg, sys_sendmsg
|
||||
.long sunos_nosys, sys_gettimeofday, sys_getrusage
|
||||
.long sunos_getsockopt, sunos_nosys, sunos_readv
|
||||
.long sunos_writev, sys_settimeofday, sys_fchown16
|
||||
.long sys_fchmod, sys_recvfrom, sys_setreuid16
|
||||
.long sys_setregid16, sys_rename, sys_truncate
|
||||
.long sys_ftruncate, sys_flock, sunos_nosys
|
||||
.long sys_sendto, sys_shutdown, sys_socketpair
|
||||
.long sys_mkdir, sys_rmdir, sys_utimes
|
||||
.long sys_sigreturn, sunos_nosys, sys_getpeername
|
||||
.long sunos_gethostid, sunos_nosys, sys_getrlimit
|
||||
.long sys_setrlimit, sunos_killpg, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys
|
||||
/*150*/ .long sys_getsockname, sunos_nosys, sunos_nosys
|
||||
.long sys_poll, sunos_nosys, sunos_nosys
|
||||
.long sunos_getdirentries, sys_statfs, sys_fstatfs
|
||||
.long sys_oldumount, sunos_nosys, sunos_nosys
|
||||
.long sys_getdomainname, sys_setdomainname
|
||||
.long sunos_nosys, sys_quotactl, sunos_nosys
|
||||
.long sunos_mount, sys_ustat, sunos_semsys
|
||||
.long sunos_msgsys, sunos_shmsys, sunos_audit
|
||||
.long sunos_nosys, sunos_getdents, sys_setsid
|
||||
.long sys_fchdir, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sys_sigpending, sunos_nosys
|
||||
.long sys_setpgid, sunos_pathconf, sunos_fpathconf
|
||||
.long sunos_sysconf, sunos_uname, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
/*200*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys
|
||||
/*250*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys
|
||||
/*260*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys
|
||||
/*270*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys
|
||||
/*280*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys
|
||||
/*290*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys
|
||||
/*300*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys
|
||||
/*310*/ .long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys, sunos_nosys, sunos_nosys
|
||||
.long sunos_nosys
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user