patch-2.3.39 linux/arch/alpha/kernel/osf_sys.c
Next file: linux/arch/arm/kernel/calls.S
Previous file: linux/arch/alpha/kernel/entry.S
Back to the patch index
Back to the overall index
- Lines: 105
- Date:
Mon Jan 10 18:15:58 2000
- Orig file:
v2.3.38/linux/arch/alpha/kernel/osf_sys.c
- Orig date:
Fri Jan 7 19:13:21 2000
diff -u --recursive --new-file v2.3.38/linux/arch/alpha/kernel/osf_sys.c linux/arch/alpha/kernel/osf_sys.c
@@ -1401,102 +1401,7 @@
return ret;
}
-struct shmid_ds_old {
- struct ipc_perm shm_perm; /* operation perms */
- int shm_segsz; /* size of segment (bytes) */
- __kernel_time_t shm_atime; /* last attach time */
- __kernel_time_t shm_dtime; /* last detach time */
- __kernel_time_t shm_ctime; /* last change time */
- __kernel_ipc_pid_t shm_cpid; /* pid of creator */
- __kernel_ipc_pid_t shm_lpid; /* pid of last operator */
- unsigned short shm_nattch; /* no. of current attaches */
- unsigned short shm_unused; /* compatibility */
- void *shm_unused2; /* ditto - used by DIPC */
- void *shm_unused3; /* unused */
-};
-
-struct shminfo_old {
- int shmmax;
- int shmmin;
- int shmmni;
- int shmseg;
- int shmall;
-};
-
-asmlinkage long sys_shmctlold(int shmid, int cmd, struct shmid_ds_old *buf)
+asmlinkage long osf_shmget (key_t key, int size, int flag)
{
- struct shmid_ds arg;
- long ret;
- mm_segment_t old_fs;
-
- if (cmd == IPC_SET) {
- struct shmid_ds_old tbuf;
-
- if(copy_from_user (&tbuf, buf, sizeof(*buf)))
- return -EFAULT;
- arg.shm_perm = tbuf.shm_perm;
- arg.shm_segsz = tbuf.shm_segsz;
- arg.shm_atime = tbuf.shm_atime;
- arg.shm_dtime = tbuf.shm_dtime;
- arg.shm_ctime = tbuf.shm_ctime;
- arg.shm_cpid = tbuf.shm_cpid;
- arg.shm_lpid = tbuf.shm_lpid;
- arg.shm_nattch = tbuf.shm_nattch;
- arg.shm_unused = tbuf.shm_unused;
- arg.shm_unused2 = tbuf.shm_unused2;
- arg.shm_unused3 = tbuf.shm_unused3;
- }
- old_fs = get_fs ();
- set_fs (KERNEL_DS);
- ret = sys_shmctl(shmid, cmd, &arg);
- set_fs (old_fs);
- if (ret < 0)
- return(ret);
- switch(cmd) {
- case IPC_INFO:
- {
- struct shminfo *tbuf = (struct shminfo *) &arg;
- struct shminfo_old shminfo_oldst;
-
- shminfo_oldst.shmmax = (tbuf->shmmax > INT_MAX ?
- INT_MAX : tbuf->shmmax);
- shminfo_oldst.shmmin = tbuf->shmmin;
- shminfo_oldst.shmmni = tbuf->shmmni;
- shminfo_oldst.shmseg = tbuf->shmseg;
- shminfo_oldst.shmall = tbuf->shmall;
- if (copy_to_user(buf, &shminfo_oldst,
- sizeof(struct shminfo_old)))
- return -EFAULT;
- return(ret);
- }
- case SHM_INFO:
- {
- struct shm_info *tbuf = (struct shm_info *) &arg;
-
- if (copy_to_user (buf, tbuf, sizeof(struct shm_info)))
- return -EFAULT;
- return(ret);
- }
- case SHM_STAT:
- case IPC_STAT:
- {
- struct shmid_ds_old tbuf;
-
- tbuf.shm_perm = arg.shm_perm;
- tbuf.shm_segsz = arg.shm_segsz;
- tbuf.shm_atime = arg.shm_atime;
- tbuf.shm_dtime = arg.shm_dtime;
- tbuf.shm_ctime = arg.shm_ctime;
- tbuf.shm_cpid = arg.shm_cpid;
- tbuf.shm_lpid = arg.shm_lpid;
- tbuf.shm_nattch = arg.shm_nattch;
- tbuf.shm_unused = arg.shm_unused;
- tbuf.shm_unused2 = arg.shm_unused2;
- tbuf.shm_unused3 = arg.shm_unused3;
- if (copy_to_user (buf, &tbuf, sizeof(tbuf)))
- return -EFAULT;
- return(ret);
- }
- }
- return(ret);
+ return sys_shmget (key, size, flag);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)