2
0
Fork 0

Eric's pre-release fixes.

This commit is contained in:
mike 1994-04-05 10:37:54 +00:00
parent 7a50574134
commit 7d7fcab133
6 changed files with 57 additions and 10 deletions

View file

@ -1,7 +1,7 @@
#
# Makefile for the iBCS emulator files
#
# $Id: Makefile,v 1.10 1994/03/29 10:52:09 mike Exp $
# $Id: Makefile,v 1.11 1994/04/05 10:37:53 mike Exp $
# $Source: /nfs4/sophia/home/mjagdis/src/ibcs.cvs/ibcs/Makefile,v $
#
# Note! Dependencies are done automagically by 'make dep', which also
@ -71,7 +71,7 @@ include /usr/src/linux/.config
OBJS = binfmt_coff.o binfmt_elf.o binfmt_xout.o \
map.o coff.o hrtsys.o ioctl.o ipc.o mmap.o open.o \
socket.o poll.o signal.o stat.o sysconf.o sysfs.o sysi86.o socksys.o \
ulimit.o wysev386.o wysev386i.o xnx.o xstat.o stream.o
svr4.o ulimit.o wysev386.o wysev386i.o xnx.o xstat.o stream.o
ifdef CONFIG_BINFMT_IBCS

View file

@ -1,7 +1,7 @@
#
# Makefile for the iBCS emulator files
#
# $Id: Makefile,v 1.10 1994/03/29 10:52:09 mike Exp $
# $Id: Makefile,v 1.11 1994/04/05 10:37:53 mike Exp $
# $Source: /nfs4/sophia/home/mjagdis/src/ibcs.cvs/ibcs/iBCSemul/Makefile,v $
#
# Note! Dependencies are done automagically by 'make dep', which also
@ -71,7 +71,7 @@ include /usr/src/linux/.config
OBJS = binfmt_coff.o binfmt_elf.o binfmt_xout.o \
map.o coff.o hrtsys.o ioctl.o ipc.o mmap.o open.o \
socket.o poll.o signal.o stat.o sysconf.o sysfs.o sysi86.o socksys.o \
ulimit.o wysev386.o wysev386i.o xnx.o xstat.o stream.o
svr4.o ulimit.o wysev386.o wysev386i.o xnx.o xstat.o stream.o
ifdef CONFIG_BINFMT_IBCS

View file

@ -5,7 +5,7 @@
*
* Writtin by Drew Sullivan.
*
* $Id: ioctl.c,v 1.4 1994/03/28 15:06:20 mike Exp $
* $Id: ioctl.c,v 1.5 1994/04/05 10:37:54 mike Exp $
* $Source: /nfs4/sophia/home/mjagdis/src/ibcs.cvs/ibcs/iBCSemul/ioctl.c,v $
*/
#include <linux/errno.h>
@ -90,7 +90,7 @@ int ibcs_ioctl(int fd, unsigned int ioctl_num, void *arg)
*/
switch (class & 0xff) {
/* From SVR4 as specified in sys/iocomm.h */
case 'F':
case 'f':
switch (ioctl_num) {
case 0x4004667f:
return sys_ioctl(fd, FIONREAD, arg);

View file

@ -8,7 +8,7 @@
* to resolve a syscall or when changing trace settings.
* Careful!
*
* $Id: callmap.inc,v 1.7 1994/03/28 08:29:56 mike Exp $
* $Id: callmap.inc,v 1.8 1994/04/05 10:36:43 mike Exp $
* $Source: /nfs4/sophia/home/mjagdis/src/ibcs.cvs/ibcs/iBCSemul/maps/callmap.inc,v $
*/
@ -358,8 +358,8 @@ static IBCS_func iBCS_func_0x80[] = {
{ 0, Ukn ITR(1, "memcntl", "") }, /* 131 */
{ 0, Ukn ITR(1, "getpmsg", "") }, /* 132 */
{ 0, Ukn ITR(1, "putpmsg", "") }, /* 133 */
{ 0, Ukn ITR(1, "rename", "") }, /* 134 */
{ 0, Ukn ITR(1, "uname", "") } /* 135 */
{ sys_rename, 2 ITR(1, "rename", "ss") }, /* 134 */
{ abi_uname, 1 ITR(1, "uname", "x") } /* 135 */
};
static IBCS_func WYSEV386_func_0x80[] = {
{ ibcs_lstat, 2 ITR(0, "lstat", "sp") }, /* 128 */

View file

@ -1,7 +1,7 @@
/*
* Function prototypes used by the iBCS2 emulator
*
* $Id: ibcs.h,v 1.6 1994/03/28 08:29:57 mike Exp $
* $Id: ibcs.h,v 1.7 1994/04/05 10:36:18 mike Exp $
* $Source: /nfs4/sophia/home/mjagdis/src/ibcs.cvs/ibcs/include/ibcs/ibcs.h,v $
*/
#include <linux/sys.h> /* for fn_ptr */
@ -108,6 +108,18 @@ extern int ibcs_poll(struct poll * ufds, size_t nfds, int timeout);
/* hrtsys.c */
extern int ibcs_hrtsys(struct pt_regs * regs);
/* svr4.c */
#define SYS_NMLN 257
struct svr4_utsname{
char sysname[SYS_NMLN];
char nodename[SYS_NMLN];
char release[SYS_NMLN];
char version[SYS_NMLN];
char machine[SYS_NMLN];
};
extern int abi_uname(struct svr4_utsname * name);
/* signal.c */
void ibcs_sig_handler (struct pt_regs * regs, int sig, __sighandler_t handler);
extern int ibcs_signal(struct pt_regs * regs);

35
svr4.c Normal file
View file

@ -0,0 +1,35 @@
/*
* linux/ibcs/svr4.c
*
* Copyright (C) 1994 Eric Youngdale.
*
* Misc support functions for SVr4.
*/
#include <linux/utsname.h>
#include <linux/mm.h>
#include <ibcs/ibcs.h>
#include <asm/segment.h>
/* Large enough for internet host names */
extern struct new_utsname system_utsname;
#define COPY_UNAMEF(FIELD) \
memcpy_tofs(name->FIELD, system_utsname.FIELD, \
sizeof(system_utsname.FIELD))
int abi_uname(struct svr4_utsname * name)
{
int error;
error = verify_area(VERIFY_WRITE, name, sizeof (*name));
if (error)
return error;
COPY_UNAMEF(sysname);
COPY_UNAMEF(nodename);
COPY_UNAMEF(release);
COPY_UNAMEF(version);
COPY_UNAMEF(machine);
return 0;
}