kern/55835: Linux IPC emulation missing SETALL syscall

Eric Anholt eta at lclark.edu
Thu Nov 6 16:10:19 PST 2003


The following reply was made to PR kern/55835; it has been noted by GNATS.

From: Eric Anholt <eta at lclark.edu>
To: gnats <freebsd-gnats-submit at FreeBSD.ORG>
Cc: martin at gneto.com
Subject: Re: kern/55835: Linux IPC emulation missing SETALL syscall
Date: Thu, 06 Nov 2003 16:04:42 -0800

 On Thu, 2003-11-06 at 07:19, Martin Nilsson wrote: 
 > Hi,
 > 
 > While in the linuxulator can you please take a look at kern/55835
 > it is a very simple patch that makes it possible to run the Pervasive 
 > database (btrieve) on FreeBSD.
 > 
 > Thanks,
 > 
 > Martin
 
 I compared the linux and FreeBSD SETALL ioctls, and there was one
 difference I saw.  On linux SETALL updates sem_ctime, while the FreeBSD
 version doesn't.  Since I don't actually understand how this code works
 and how correct we demand our linux compat to be, or if updating
 sem_ctime would be valuable for FreeBSD, I don't think I'll commit it
 unless another committer chimes in.
 
 >From a linux semctl manpage:
        SETALL      Set  semval  for all semaphores of the set using arg.array,
                    updating also the sem_ctime member of the  semid_ds  struc-
                    ture  associated  to the set.  Undo entries are cleared for
                    altered semaphores in all processes.  Processes sleeping on
                    the  wait  queue  are  awakened if some semval becomes 0 or
                    increases.  The argument semnum is  ignored.   The  calling
                    process  must have alter access privileges on the semaphore
                    set.
 
 
 -- 
 Eric Anholt                                eta at lclark.edu          
 http://people.freebsd.org/~anholt/         anholt at FreeBSD.org
 
 


More information about the freebsd-bugs mailing list