decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Tuesday, February 10 2004 @ 10:14 PM EST

This is Exhibit 4 to IBM's Report on SCO's Compliance.

*******************************************************************

List of Dynix and AIX Files Identified by SCO in Its Revised Response

Dynix Files1
kernel/sys/rclock.h
kernel/os/rclock.c
kernel/sys/kma_defer.h
kernel/os/kma_defer.c
kernel/os/kern_clock.c
kernel/i386/trap.c
kernel/i386/startup.c
kernel/i386/plocal.h

AIX Files
usr/include/jfs/inode.h
kernel/sys/vnode.h
kernel/sys/IA64/bootrecord.h
usr/include/liblvm.h
usr/include/lvmrec.h
usr/include/lvm.h
kernel/sys/hd_psn.h
kernel/sys/vgsa.h

 

1. SCO also identified Dynix file kernel/os/vfs_dio.c in its Revised Response, but it is not clear whether SCO alleges that IBM contributed any lines of code from this file to Linux.




  


AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance | 97 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
17 files
Authored by: kberrien on Tuesday, February 10 2004 @ 10:24 PM EST
I assume these are the 17 files we heard from oral arguments? Millions of lines
to 17 files (with some lines).

I get the feeling, in the end we'll have 3 files, and they'll all belong to
Novell. <grin>.

I assume AIX source isn't any more common than any other closed source's, so
little chance of anyone doing any analysis on these, or is any of it available
publically?

[ Reply to This | # ]

17 files, more than half headers
Authored by: Anonymous on Tuesday, February 10 2004 @ 10:34 PM EST
And if I understand it right from the proceedings, only portions of these files
were copied, not the entire source. Nearly three quarters of the files are
headers.

If I were to see a whole lotta algorithms, I'd say, okay... they've made a point
-- albeit small. But if over half the code they are arguing about is interface
related and not algorithm specific, then what the heck? There's no way you can
get $5 bill outta that. I'd say make the best of an increasingly bad situation
and settle out of court.

What ever rights anyone thought SCO had, we've officially seen them flushed down
the toilet.

--mb

[ Reply to This | # ]

AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Authored by: OrlandoNative on Tuesday, February 10 2004 @ 10:38 PM EST
Well, the .h files are no doubt header files, with the corresponding properties
we've discussed before.

The 'clock' related stuff is probably to do with the hardware clocks; that would
be dictated pretty much by the architecture, and thus would fall under
uncopyrightable due to necessity of design. Similarly, startup and trap
probably based on hardware design limitations as well. (basic interrupt handling
and bios-controlled operation before the kernel could take complete control)

Most of the aix stuff appears to be jfs and/or lvm related; none of which is
likely to have ever been in sysV.

[ Reply to This | # ]

AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Authored by: Anonymous on Tuesday, February 10 2004 @ 10:46 PM EST
I will assume that the xxx.xxxx.xxx.h are header files -- please correct if I'm
wrong. IF in deed these are header files that means that 11 of the 17 are header
files. And they want *5 BILLION* for 11 header files and 6 other trivial
files?!?!?

I want to be like the Red Queen in Alice in Wonderland: Off with SCO's
head(er).

Bobcat

[ Reply to This | # ]

AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Authored by: pooky on Tuesday, February 10 2004 @ 10:50 PM EST
That's all well and great but do these files originate in UNIX System V or did
IBM/Sequent create them for AIX/Dynix? I assume it isn't BSD code since I don't
remember any of this being referenced as a copyright problem.

If they were created by IBM, how does SCO purport to own these to the court?
IBM's license terms and side letter are extremely clear on this matter.

-pooky

---
Veni, vidi, velcro.
"I came, I saw, I stuck around."

[ Reply to This | # ]

AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Authored by: RealProgrammer on Tuesday, February 10 2004 @ 11:31 PM EST
Here is one file I found in Linux 2.4.20,
/usr/src/linux-2.4/include/linux/lvm.h.

The first thing I noticed was that the changelog started in 1997.

The second thing was it was a really long list of changes in a file that's only
700 lines, including comments.

The third thing I noticed was Christoph Hellwig's name in the list of
contributors!


/*
* include/linux/lvm.h
* kernel/lvm.h
* tools/lib/lvm.h
*
* Copyright (C) 1997 - 2002 Heinz Mauelshagen, Sistina Software
*
* February-November 1997
* May-July 1998
* January-March,July,September,October,Dezember 1999
* January,February,July,November 2000
* January-March,June,July 2001
* May 2002
*
* lvm is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* lvm 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU CC; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
*/

/*
* Changelog
*
* 10/10/1997 - beginning of new structure creation
* 12/05/1998 - incorporated structures from lvm_v1.h and deleted lvm_v1.h
* 07/06/1998 - avoided LVM_KMALLOC_MAX define by using vmalloc/vfree
* instead of kmalloc/kfree
* 01/07/1998 - fixed wrong LVM_MAX_SIZE
* 07/07/1998 - extended pe_t structure by ios member (for statistic)
* 02/08/1998 - changes for official char/block major numbers
* 07/08/1998 - avoided init_module() and cleanup_module() to be static
* 29/08/1998 - seprated core and disk structure type definitions
* 01/09/1998 - merged kernel integration version (mike)
* 20/01/1999 - added LVM_PE_DISK_OFFSET macro for use in
* vg_read_with_pv_and_lv(), pv_move_pe(), pv_show_pe_text()...
* 18/02/1999 - added definition of time_disk_t structure for;
* keeps time stamps on disk for nonatomic writes (future) *
15/03/1999 - corrected LV() and VG() macro definition to use argument
* instead of minor
* 03/07/1999 - define for genhd.c name handling
* 23/07/1999 - implemented snapshot part
* 08/12/1999 - changed LVM_LV_SIZE_MAX macro to reflect current 1TB limit
* 01/01/2000 - extended lv_v2 core structure by wait_queue member
* 12/02/2000 - integrated Andrea Arcagnelli's snapshot work
* 18/02/2000 - seperated user and kernel space parts by
* #ifdef them with __KERNEL__
* 08/03/2000 - implemented cluster/shared bits for vg_access
* 26/06/2000 - implemented snapshot persistency and resizing support
* 02/11/2000 - added hash table size member to lv structure
* 12/11/2000 - removed unneeded timestamp definitions
* 24/12/2000 - removed LVM_TO_{CORE,DISK}*, use cpu_{from, to}_le*
* instead - Christoph Hellwig
* 22/01/2001 - Change ulong to uint32_t
* 14/02/2001 - changed LVM_SNAPSHOT_MIN_CHUNK to 1 page
* 20/02/2001 - incremented IOP version to 11 because of incompatible
* change in VG activation (in order to support devfs better)
* 01/03/2001 - Revert to IOP10 and add VG_CREATE_OLD call for compatibility
* 08/03/2001 - new lv_t (in core) version number 5: changed page member
* to (struct kiobuf *) to use for COW exception table io
* 26/03/2001 - changed lv_v4 to lv_v5 in structure definition (HM)
* 21/06/2001 - changed BLOCK_SIZE back to 1024 for non S/390
* 22/06/2001 - added Andreas Dilger's PE on 4k boundary alignment
enhancements
* 19/07/2001 - added rwsem compatibility macros for 2.2 kernels
* 13/11/2001 - reduced userspace inclusion of kernel headers to a minimum
*
*/


#ifndef _LVM_H_INCLUDE
#define _LVM_H_INCLUDE

#define LVM_RELEASE_NAME "1.0.5+"
#define LVM_RELEASE_DATE "22/07/2002"

#define _LVM_KERNEL_H_VERSION "LVM "LVM_RELEASE_NAME"
("LVM_RELEASE_DATE")"
[/code]
[....]





---
(I'm not a lawyer, but I know right from wrong)

[ Reply to This | # ]

Irrelevent. . .
Authored by: Anonymous on Tuesday, February 10 2004 @ 11:57 PM EST
Completely moot. Novell 'excused', if you will, any and all of IBM's purported
trangressions October last.

Additionally, *if* this "$ echo" documention Novell asserted today is
viable, then *all* of Caldera's or SCOG's claims just got flushed. Furthermore
SCOG will have some very interesting explaining to do when the few companies
which, according to SCOG purchased licenses, start demanding their money, with
interest back.

As Professor Moglen wrote "you can'to sue over what you don't own."
Or to put it another way, you can't charge for what you don't own.

krp

[ Reply to This | # ]

My take on the where the file relate to infringing technologies
Authored by: sjohnson on Wednesday, February 11 2004 @ 12:29 AM EST
I'm by no means a Linux kernel experts, but I've been exposed to the OSs in question.

Dynix Files
kernel/sys/rclock.h
kernel/os/rclock.c
kernel/sys/kma_defe r.h
kernel/os/kma_defer.c
kernel/os/kern_clock.c
kernel/i386/trap.c< br> kernel/i386/startup.c
kernel/i386/plocal.h

All of the Dynix files seems to deal with Read, Copy, Update (RCU) and SMP

AIX Files usr/include/jfs/inode.h
kernel/sys/vnode.h
kernel/sys/IA64/boo trecord.h

The inode and vnode include files (.h files) refer to Unix file systems components (like Clusters and Sectors in DOS file systems). The are a part of the JFS2 claims.

The bootrecord.h file is confusing. I believe it refers to the bootstrap file system ( where the boot kernel lives.) The IA64 is the confusing bit since they refer to AIX files. My guess it's from the Project Montery source code that The SCO Group has. It's peripheral related to file system so I'll say it part of JFS claims.

usr/include/liblvm.h
usr/include/lvmrec.h
usr/include/lv m.h
kernel/sys/hd_psn.h
kernel/sys/vgsa.h

These files are definitely part of the Enterprise Storage Manager claims. The lvm files refer to the "Logical Volume Manager". The hd_psn refers to the physical hard drives under the LVM. And vgsa.h file refers to "Volume Groups".

A short, simplified explaination of a Logical Storage Manager. The physical hard drives are added into a big pool of unused storage called a Volume Group. A Volume Group is carved into one or more units called Logical Volumes. Logical Volumes are where file systems (like JFS2) are created and data is stored. The Logical Volumes are what the units OS that the operating system see.

[ Reply to This | # ]

JFS files
Authored by: Rhys Weatherley on Wednesday, February 11 2004 @ 02:31 AM EST
What I find amusing about this list is that the only JFS file from AIX that is listed is "usr/include/jfs/inode.h", with no .c files backing it up. I think that this is easily explainable.

As we know, the Linux JFS is based on the OS/2 version, not the original AIX version. So it is quite possible that SCO compared the original AIX version with the Linux version. Since the OS/2 and AIX versions are completely different, the only similarity that SCO could find was in the .h file that describes the inode layout.

The inode layout is the same because of compatibility (OS/2 needed to be able to read AIX-formatted disks and vice versa). So, no big surprise there. It's on a par with the Berkeley Packet Filter code from last August: it looks the same because it is doing the same thing, not because there was any code copying.

They are grasping at straws again - there's no AIX JFS code in the Linux tree at all. We knew that of course, but this submission shows that they still don't or are only beginning to suspect.

I think they seriously thought that there was a million lines of infringing code going into this, based on superficial similarities. But they didn't have the technical or Copyright knowhow to split the similarities up into categories labelled "BSD", "public domain", "coincidence", "third-party owned code", and "other". They've since discovered that "other" is all that they can go after and it is a very small set. That's what happens when you lay off all your programmers and hire lawyers instead!

[ Reply to This | # ]

  • JFS files - Authored by: mflaster on Wednesday, February 11 2004 @ 10:41 AM EST
    • JFS files - Authored by: BigFire on Wednesday, February 11 2004 @ 11:20 AM EST
    • JFS files - Authored by: blang on Wednesday, February 11 2004 @ 11:41 AM EST
The AIX headers and SCO motion to compel
Authored by: Anonymous on Wednesday, February 11 2004 @ 03:51 AM EST
I wondered a bit why SCO lists only headers ("*.h") from AIX. Could
this be because IBM has not yet supplied AIX kernel sources to SCO? Headers like
this could be available on any end-user AIX system, even if it does not have
full sources.

I hate to say, but if the above is correct, some of SCO's complaints about IBM's
responses do make sense (and not only in the domain of "SCO logic").
Remember SCO requested sources of all versions (even unreleased) of AIX, IBM
said it will provide only the relevant released versions, but if I understood
the court transcript and SCO's reply to IBM correctly, IBM has not yet provided
SCO with _any_ version of AIX, which makes it kind of hard for SCO to refer to
AIX sources, other than public headers. The IBM lawyer justified this by the
court order: "...and the reason we have not produced it, by the way, Your
Honor, is because you ordered us not to". But I cannot help sensing some
deliberate delay tactics here: why didn't IBM provide the released AIX version
before the court order went into effect at the begining of last December?

Of course, whether material in AIX that is not from System V (which SCO already
has) is incriminating, is another matter.

[ Reply to This | # ]

SCO software must be very good
Authored by: Anonymous on Wednesday, February 11 2004 @ 05:17 AM EST
...if 17 files of it are enough to turn Linux into an enterprise class software
package.

Sheesh, who do they think they're kidding?

[ Reply to This | # ]

I have found the truth that nothing is the truth.
Authored by: jmichel on Wednesday, February 11 2004 @ 08:07 AM EST
Google is good stuff. Here are some things I found just by placing rclock.h in
a search.

http://www.ai.rug.nl/~floris1/apitfmobject/header-list.html

I will assume this is a linux implementation of a file call rclock.h.

This person not the same as the person who has contributed to a kernel patch
below. There is not much information on the site, but complete headers for
several files including rclock.h.

class RClock
Interface to the systemtime More...

Definition
#include <rclock.h>
List of all Methods




Annotated List
Files
Globals
Hierarchy
Index


Public Members
operator double () const
static double time ()
static string timeString (double ts=-1.0)

Detailed Description
Interface to the systemtime

operator double ()
[const]
converts the system time to a double

double time ()
[static]
returns the system-time as a double

string timeString (double ts=-1.0)
[static]
returns the time as a time string dd-mm-yyyy

#ifndef RCLOCK_H
#define RCLOCK_H

#include <string>
#include <sys/time.h>
#include <unistd.h>

/**
Interface to the systemtime
*/

class RClock {
public:
/** converts the system time to a double*/
operator double() const;

/** returns the system-time as a double*/
static double time();

/** returns the time as a time string dd-mm-yyyy */
static string timeString(double ts=-1.0);
};

#endif

Now this one is interesting. Here are two people that have been working on RCU
methods for Linux and they have emails from...
Sequent and IBM. This must be the basis for SCO thinking that these files are
copyright infringements of SysV code.

I mean they must be infringements. Why even the unconstitutional copyright
notice tells you so.

See here.

"This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option) any
later version."
"Author: Dipankar Sarma <dipankar@sequent.com>
(Based on a Dynix/ptx implementation by Paul Mckenney
<paul.mckenney@us.ibm.com>)"

After all no one can write code based on an implementation of anyone elses. The
entire software industry would simply colapse in light of these thoughts....



http://lse.sourceforge.net/locking/rcu/patches/rclock-2.4.1-01.patch

There is also a rclock-2.4.2-01.patch at the same site.

diff -u --recursive --new-file 2.4.1/Documentation/rclock.txt
v2.4.1-rc/Documentation/rclock.txt
--- 2.4.1/Documentation/rclock.txt Thu Jan 1 05:30:00 1970
+++ v2.4.1-rc/Documentation/rclock.txt Fri Feb 23 14:19:13 2001
@@ -0,0 +1,36 @@
+This document describes the rclock kernel patch version 0.01.
+
+To use read-copy update, install the patch on your 2.4.1 kernel
+and enable CONFIG_RCLOCK during configuration.
+
+
+While most of the read-copy update code is arch independent, a portion
+of it is arch dependent (user trap counter and SMP loca timer).
+This implementation is only for i386 architecture.
+
+While the read-copy callback maintenance code and the design is solid
+the linux implementation is somewhat lame. It needs to be cleaned
+up with more optimization for less interference by the quiescent
+state detection mechanism.
+
+Things that are known to work -
+
+1. Basic callback mechanism
+2. The kmem_deferred_free interface
+3. Basic quiescent state detection mechanism
+
+
+Things that are unknown -
+
+1. Reliability of the CPU stall detection mechanism
+2. rclock stuff under heavy load. This will be tested when our old
+ ptx test harness is ready to run on linux
+3. Did I cover all the usertraps ?
+4. How much interference the quiescent state detection mechanism has ?
+
+These are all being investigated and will be enhanced in a later released.
+
+For any problems, contact dipankar@sequent.com.
+The detailed documentation is available at
+http://lse.sourcefore.net/locking/rclock.html
+


--- 2.4.1/include/linux/kmemdef.h Thu Jan 1 05:30:00 1970
+++ v2.4.1-rc/include/linux/kmemdef.h Fri Feb 23 13:05:25 2001
@@ -0,0 +1,72 @@
+/*
+ * Support for deferred freeing of memory using Read-Copy Update
+ * mechanism.
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+
+/*
+ * Read-Copy Update mechanism for mutual exclusion
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+#ifndef __LINUX_RCLOCK_H
+#define __LINUX_RCLOCK_H
+ * Support for deferred freeing of memory using Read-Copy Update
+ * mechanism.
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+/*
+ * Handles ``deferred'' kfree. The block to be freed is queued until
+ * it can be guaranteed that no CPU could be still holding a reference to
+ * Read-Copy Update mechanism for mutual exclusion
+ *
+ * Copyright (c) International Business Machines Corp., 2001
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Author: Dipankar Sarma <dipankar@sequent.com>
+ * (Based on a Dynix/ptx implementation by
+ * Paul Mckenney <paul.mckenney@us.ibm.com>)
+ *
+ *
+ * For detailed explanation of Read-Copy Update mechanism see -
+ * http://lse.sourceforge.net/locking/rclock.html
+ *
+ */
+
+
+/*
+ * Control how CPU stalls are handled.
+ */
+#ifdef DEBUG /* Make stalls panic only in debug kernel. */
+#define RCLOCK_STALL_PANIC /* Make stalls panic. */
+#endif /* DEBUG */
+
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/spinlock.h>
+#include <linux/smp.h>
+#include <linux/sched.h>
+#include <linux/malloc.h>
+#include <asm/atomic.h>
+#include <asm/bitops.h>
+#include <linux/rclock.h>
+


Can a use of rclock in a algebraic expression constitute a work of prior art or
publishing the works?

http://ewic.bcs.org/conferences/1996/formalmethods/papers/paper16.pdf

[ Reply to This | # ]

Monterey Project
Authored by: HipShot on Wednesday, February 11 2004 @ 08:16 AM EST
Has anyone here read the contract between IBM, Sequent, and SCO regarding the
Monterey Project? I'm curious about any clauses that would supercede prior
contractual issues, or any clauses that would render the contract null and void
in the presence of preexisting or conflicting contractual rights or
obligations.

It occurs to me that the Monterey Project contract could actually favor IBM
legally if SCO brought code to the table, and had to leave it there. Would that
not supercede any previous contracts regarding the same code? What is the
default position of the MP contract?

[ Reply to This | # ]

AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Authored by: Anonymous on Wednesday, February 11 2004 @ 09:59 AM EST
Well, at least its not all headers like before.

[ Reply to This | # ]

AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Authored by: Anonymous on Wednesday, February 11 2004 @ 10:53 AM EST
kernel/sys/IA64/bootrecord.h

Ah, what can we say? The file, or what it descrivbes did not
even exist until the late 1990s! This is a little after SysV. Has anyone asked
Intel about their `stealing' SCOs inefectual prosperity...

[ Reply to This | # ]

2 CD's of Dynix - How much is that?
Authored by: Anonymous on Wednesday, February 11 2004 @ 12:17 PM EST
SCO keeps harping on the fact that IBM has only given them 2 CD's of the Dynix source code...giving me (and possibly others) the impresssion that there is more Dynix code to be had.

If you can fit the entire source code on 2 CD's, then I suspect that this is just another attempt by SCO to confuse the issue and whine about something for their own benefit. Despite their complaints, however, IBM has not spoken up in court to point out that 2 CD's constitutes a complete package of Dynix code as requested in the Discovery process. So, ergo, I am confused & curious.

Does anyone know how much of the Dynix code you can fit on 2 CD's? (Assuming CD-ROM, not DVD for the sake of arguement).

Mike A.

[ Reply to This | # ]

AIX and Dynix Files SCO Listed - Exhibit 4 to IBM's Report on SCO Compliance
Authored by: Anonymous on Wednesday, February 11 2004 @ 07:38 PM EST
On my Redhat 9.0 ststem with full install and kernel souurces I get 563 lines
using locate with no path names:

The only thing without copyright is a qt3.1 library example which I assume would
belong to Trolltech

Maybe I'm just being simplistic.....Sorry for the verbosity here:

___________________________________________________________________
_________________________DYNIX FILES ______________________________
___________________________________________________________________

locate rclock.h
(nothing)
locate rclock.c
(nothing)
locate kma_defer.h
(nothing)
locate kma_defer.c
(nothing)
locate kern_clock.c
(nothing)
locate trap.c
(nothing)

locate startup.c
/usr/share/doc/qt-devel-3.1.1/examples/network/remotecontrol/startup.cpp


#include "startup.h"
#include "remotectrlimpl.h"
#include "maindialog.h"
#include "ipcserver.h"

#include <qsocket.h>
#include <qlabel.h>

static const Q_UINT16 ipcPort = 54923;

StartUp::StartUp()
{
remoteCtrl = 0;
mainDialog = 0;

socket = new QSocket( this );
connect( socket, SIGNAL(connected()), SLOT(startRemoteCtrl()) );
connect( socket, SIGNAL(error(int)), SLOT(startMainDialog()) );
socket->connectToHost( "localhost", ipcPort );
}

StartUp::~StartUp()
{
delete remoteCtrl;
delete mainDialog;
}

void StartUp::startRemoteCtrl()
{
remoteCtrl = new RemoteCtrlImpl( socket );
remoteCtrl->show();
}

void StartUp::startMainDialog()
{
mainDialog = new MainDialog();
mainDialog->show();

IpcServer *server = new IpcServer( ipcPort, this );

connect( server, SIGNAL(receivedText(const QString&)),
mainDialog->description, SLOT(setText(const QString&)) );
connect( server, SIGNAL(receivedPixmap(const QPixmap&)),
mainDialog->image, SLOT(setPixmap(const QPixmap&)) );
}


locate plocal.h
(nothing)
___________________________________________________________________
_________________________AIX FILES ________________________________
___________________________________________________________________

locate inode.h
/usr/src/linux-2.4.20-8/fs/ntfs/inode.h

/*
* inode.h - Header file for inode.c
*
* Copyright (C) 1997 R&#65533;is Duchesne
* Copyright (C) 1998 Martin von Lwis
* Copyright (c) 2001 Anton Altparmakov (AIA)
*/

ntfs_attribute *ntfs_find_attr(ntfs_inode *ino, int type, char *name);

int ntfs_read_attr(ntfs_inode *ino, int type, char *name, __s64 offset,
ntfs_io *buf);

int ntfs_write_attr(ntfs_inode *ino, int type, char *name, __s64 offset,
ntfs_io *buf);

int ntfs_init_inode(ntfs_inode *ino, ntfs_volume *vol, int inum);

void ntfs_clear_inode(ntfs_inode *ino);

int ntfs_check_mft_record(ntfs_volume *vol, char *record);

int ntfs_alloc_inode(ntfs_inode *dir, ntfs_inode *result, const char *filename,
int namelen, ntfs_u32);

int ntfs_alloc_file(ntfs_inode *dir, ntfs_inode *result, char *filename,
int namelen);

int ntfs_update_inode(ntfs_inode *ino);

int ntfs_vcn_to_lcn(ntfs_inode *ino, int vcn);

int ntfs_readwrite_attr(ntfs_inode *ino, ntfs_attribute *attr, __s64 offset,
ntfs_io *dest);

int ntfs_allocate_attr_number(ntfs_inode *ino, int *result);

int ntfs_decompress_run(unsigned char **data, int *length,
ntfs_cluster_t *cluster, int *ctype);

void ntfs_decompress(unsigned char *dest, unsigned char *src, ntfs_size_t l);

int splice_runlists(ntfs_runlist **rl1, int *r1len, const ntfs_runlist *rl2,
int r2len);

/*
* NOTE: Neither of the ntfs_*_bit functions are atomic! But we don't need
* them atomic at present as we never operate on shared/cached bitmaps.
*/
static __inline__ int ntfs_test_and_set_bit(unsigned char *byte, const int bit)
{
unsigned char *ptr = byte + (bit >> 3);
int b = 1 << (bit & 7);
int oldbit = *ptr & b ? 1 : 0;
*ptr |= b;
return oldbit;
}


locate vnode.h
/usr/src/linux-2.4.20-8/fs/afs/vnode.h

/* vnode.h: AFS vnode record
*
* Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/

#ifndef _LINUX_AFS_VNODE_H
#define _LINUX_AFS_VNODE_H

#include <linux/fs.h>
#include <linux/version.h>
#include "server.h"
#include "kafstimod.h"

#ifdef __KERNEL__

struct afs_rxfs_fetch_descriptor;

/*****************************************************************************/
/*
* AFS inode private data
*/
struct afs_vnode
{
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
struct inode vfs_inode; /* the VFS's inode record */
#else
struct inode *inode; /* the VFS's inode */
#endif

afs_volume_t *volume; /* volume on which vnode resides */
afs_fid_t fid; /* the file identifier for this inode */
afs_file_status_t status; /* AFS status info for this file */
unsigned nix; /* vnode index in cache */

wait_queue_head_t update_waitq; /* status fetch waitqueue */
unsigned update_cnt; /* number of outstanding ops that will update the
* status */
spinlock_t lock; /* waitqueue/flags lock */
unsigned flags;
#define AFS_VNODE_CHANGED 0x00000001 /* set if vnode reported changed by
callback */
#define AFS_VNODE_DELETED 0x00000002 /* set if vnode deleted on server */
#define AFS_VNODE_MOUNTPOINT 0x00000004 /* set if vnode is a mountpoint symlink
*/

/* outstanding callback notification on this file */
afs_server_t *cb_server; /* server that made the current promise */
struct list_head cb_link; /* link in server's promises list */
struct list_head cb_hash_link; /* link in master callback hash */
afs_timer_t cb_timeout; /* timeout on promise */
unsigned cb_version; /* callback version */
unsigned cb_expiry; /* callback expiry time */
afs_callback_type_t cb_type; /* type of callback */
};

static inline afs_vnode_t *AFS_FS_I(struct inode *inode)
{
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
return list_entry(inode,afs_vnode_t,vfs_inode);
#else
return inode->u.generic_ip;
#endif
}

static inline struct inode *AFS_VNODE_TO_I(afs_vnode_t *vnode)
{
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
return &vnode->vfs_inode;
#else
return vnode->inode;
#endif
}

extern int afs_vnode_fetch_status(afs_vnode_t *vnode);

extern int afs_vnode_fetch_data(afs_vnode_t *vnode, struct
afs_rxfs_fetch_descriptor *desc);

extern int afs_vnode_give_up_callback(afs_vnode_t *vnode);

extern struct afs_timer_ops afs_vnode_cb_timed_out_ops;

#endif /* __KERNEL__ */

#endif /* _LINUX_AFS_VNODE_H */


locate bootrecord.h
(nothing)

locate liblvm.h
(nothing)

locate lvmrec.h
(nothing)

locate lvm.h
/usr/src/linux-2.4.20-8/include/linux/lvm.h

/*
* include/linux/lvm.h
* kernel/lvm.h
* tools/lib/lvm.h
*
* Copyright (C) 1997 - 2002 Heinz Mauelshagen, Sistina Software
*
* February-November 1997
* May-July 1998
* January-March,July,September,October,Dezember 1999
* January,February,July,November 2000
* January-March,June,July 2001
* May 2002
*
* lvm is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* lvm 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU CC; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
*/

/*
* Changelog
*
* 10/10/1997 - beginning of new structure creation
* 12/05/1998 - incorporated structures from lvm_v1.h and deleted lvm_v1.h
* 07/06/1998 - avoided LVM_KMALLOC_MAX define by using vmalloc/vfree
* instead of kmalloc/kfree
* 01/07/1998 - fixed wrong LVM_MAX_SIZE
* 07/07/1998 - extended pe_t structure by ios member (for statistic)
* 02/08/1998 - changes for official char/block major numbers
* 07/08/1998 - avoided init_module() and cleanup_module() to be static
* 29/08/1998 - seprated core and disk structure type definitions
* 01/09/1998 - merged kernel integration version (mike)
* 20/01/1999 - added LVM_PE_DISK_OFFSET macro for use in
* vg_read_with_pv_and_lv(), pv_move_pe(), pv_show_pe_text()...
* 18/02/1999 - added definition of time_disk_t structure for;
* keeps time stamps on disk for nonatomic writes (future)
* 15/03/1999 - corrected LV() and VG() macro definition to use argument
* instead of minor
* 03/07/1999 - define for genhd.c name handling
* 23/07/1999 - implemented snapshot part
* 08/12/1999 - changed LVM_LV_SIZE_MAX macro to reflect current 1TB limit
* 01/01/2000 - extended lv_v2 core structure by wait_queue member
* 12/02/2000 - integrated Andrea Arcagnelli's snapshot work
* 18/02/2000 - seperated user and kernel space parts by
* #ifdef them with __KERNEL__
* 08/03/2000 - implemented cluster/shared bits for vg_access
* 26/06/2000 - implemented snapshot persistency and resizing support
* 02/11/2000 - added hash table size member to lv structure
* 12/11/2000 - removed unneeded timestamp definitions
* 24/12/2000 - removed LVM_TO_{CORE,DISK}*, use cpu_{from, to}_le*
* instead - Christoph Hellwig
* 22/01/2001 - Change ulong to uint32_t
* 14/02/2001 - changed LVM_SNAPSHOT_MIN_CHUNK to 1 page
* 20/02/2001 - incremented IOP version to 11 because of incompatible
* change in VG activation (in order to support devfs better)
* 01/03/2001 - Revert to IOP10 and add VG_CREATE_OLD call for compatibility
* 08/03/2001 - new lv_t (in core) version number 5: changed page member
* to (struct kiobuf *) to use for COW exception table io
* 26/03/2001 - changed lv_v4 to lv_v5 in structure definition (HM)
* 21/06/2001 - changed BLOCK_SIZE back to 1024 for non S/390
* 22/06/2001 - added Andreas Dilger's PE on 4k boundary alignment
enhancements
* 19/07/2001 - added rwsem compatibility macros for 2.2 kernels
* 13/11/2001 - reduced userspace inclusion of kernel headers to a minimum
*
*/


#ifndef _LVM_H_INCLUDE
#define _LVM_H_INCLUDE

#define LVM_RELEASE_NAME "1.0.5+"
#define LVM_RELEASE_DATE "22/07/2002"

#define _LVM_KERNEL_H_VERSION "LVM "LVM_RELEASE_NAME"
("LVM_RELEASE_DATE")"

#include <linux/version.h>

/*
* preprocessor definitions
*/
/* if you like emergency reset code in the driver */
#define LVM_TOTAL_RESET

#ifdef __KERNEL__
#undef LVM_HD_NAME /* display nice names in /proc/partitions */

/* lots of debugging output (see driver source)
#define DEBUG_LVM_GET_INFO
#define DEBUG
#define DEBUG_MAP
#define DEBUG_MAP_SIZE
#define DEBUG_IOCTL
#define DEBUG_READ
#define DEBUG_GENDISK
#define DEBUG_VG_CREATE
#define DEBUG_DEVICE
#define DEBUG_KFREE
*/

#include <linux/kdev_t.h>
#include <linux/list.h>
#include <asm/types.h>
#include <linux/major.h>
#else
/* This prevents the need to include <linux/list.h> which
causes problems on some platforms. It's not nice but then
neither is the alternative. */
struct list_head {
struct list_head *next, *prev;
};
#define __KERNEL__
#include <linux/kdev_t.h>
#undef __KERNEL__
#endif /* #ifndef __KERNEL__ */


#ifdef __KERNEL__
#include <linux/spinlock.h>

#include <asm/semaphore.h>
#endif /* #ifdef __KERNEL__ */


#include <asm/page.h>

#if !defined ( LVM_BLK_MAJOR) || !defined ( LVM_CHAR_MAJOR)
#error Bad include/linux/major.h - LVM MAJOR undefined
#endif

#ifdef BLOCK_SIZE
#undef BLOCK_SIZE
#endif

#ifdef CONFIG_ARCH_S390
#define BLOCK_SIZE 4096
#else
#define BLOCK_SIZE 1024
#endif

#ifndef SECTOR_SIZE
#define SECTOR_SIZE 512
#endif

/*
* Number of guaranteed callback structs in case of extreme VM load:
*/
#define NR_LVM_CALLBACK 256

/* structure version */
#define LVM_STRUCT_VERSION 1

#define LVM_DIR_PREFIX "/dev/"

/*
* i/o protocol version
*
* defined here for the driver and defined seperate in the
* user land tools/lib/liblvm.h
*
*/
#define LVM_DRIVER_IOP_VERSION 10

#define LVM_NAME "lvm"
#define LVM_GLOBAL "global"
#define LVM_DIR "lvm"
#define LVM_VG_SUBDIR "VGs"
#define LVM_LV_SUBDIR "LVs"
#define LVM_PV_SUBDIR "PVs"

/*
* VG/LV indexing macros
*/
/* character minor maps directly to volume group */
#define VG_CHR(a) ( a)

/* block minor indexes into a volume group/logical volume indirection table */
#define VG_BLK(a) ( vg_lv_map[a].vg_number)
#define LV_BLK(a) ( vg_lv_map[a].lv_number)

/*
* absolute limits for VGs, PVs per VG and LVs per VG
*/
#define ABS_MAX_VG 99
#define ABS_MAX_PV 256
#define ABS_MAX_LV 256 /* caused by 8 bit minor */

#define MAX_VG ABS_MAX_VG
#define MAX_LV ABS_MAX_LV
#define MAX_PV ABS_MAX_PV

#if ( MAX_VG > ABS_MAX_VG)
#undef MAX_VG
#define MAX_VG ABS_MAX_VG
#endif

#if ( MAX_LV > ABS_MAX_LV)
#undef MAX_LV
#define MAX_LV ABS_MAX_LV
#endif


/*
* VGDA: default disk spaces and offsets
*
* there's space after the structures for later extensions.
*
* offset what size
* --------------- ---------------------------------- ------------
* 0 physical volume structure ~500 byte
*
* 1K volume group structure ~200 byte
*
* 6K namelist of physical volumes 128 byte each
*
* 6k + n * ~300byte n logical volume structures ~300 byte each
*
* + m * 4byte m physical extent alloc. structs 4 byte each
*
* End of disk - first physical extent typically 4 megabyte
* PE total *
* PE size
*
*
*/

/* DONT TOUCH THESE !!! */







/*
* LVM_PE_T_MAX corresponds to:
*
* 8KB PE size can map a ~512 MB logical volume at the cost of 1MB memory,
*
* 128MB PE size can map a 8TB logical volume at the same cost of memory.
*
* Default PE size of 4 MB gives a maximum logical volume size of 256 GB.
*
* Maximum PE size of 16GB gives a maximum logical volume size of 1024 TB.
*
* AFAIK, the actual kernels limit this to 1 TB.
*
* Should be a sufficient spectrum ;*)
*/

/* This is the usable size of pe_disk_t.le_num !!! v v */
#define LVM_PE_T_MAX ( ( 1 << ( sizeof ( uint16_t) * 8)) - 2)

#define LVM_LV_SIZE_MAX(a) ( ( long long) LVM_PE_T_MAX * (a)->pe_size > (
long long) 1024*1024/SECTOR_SIZE*1024*1024 ? ( long long)
1024*1024/SECTOR_SIZE*1024*1024 : ( long long) LVM_PE_T_MAX * (a)->pe_size)
#define LVM_MIN_PE_SIZE ( 8192L / SECTOR_SIZE) /* 8 KB in sectors */
#define LVM_MAX_PE_SIZE ( 16L * 1024L * 1024L / SECTOR_SIZE * 1024) /* 16GB in
sectors */
#define LVM_DEFAULT_PE_SIZE ( 4096L * 1024 / SECTOR_SIZE) /* 4 MB in sectors */
#define LVM_DEFAULT_STRIPE_SIZE 16L /* 16 KB */
#define LVM_MIN_STRIPE_SIZE ( PAGE_SIZE/SECTOR_SIZE) /* PAGESIZE in sectors */
#define LVM_MAX_STRIPE_SIZE ( 512L * 1024 / SECTOR_SIZE) /* 512 KB in sectors
*/
#define LVM_MAX_STRIPES 128 /* max # of stripes */
#define LVM_MAX_SIZE ( 1024LU * 1024 / SECTOR_SIZE * 1024 * 1024) /*
1TB[sectors] */
#define LVM_MAX_MIRRORS 2 /* future use */
#define LVM_MIN_READ_AHEAD 0 /* minimum read ahead sectors */
#define LVM_DEFAULT_READ_AHEAD 1024 /* sectors for 512k scsi segments */
#define LVM_MAX_READ_AHEAD 1024 /* maximum read ahead sectors */
#define LVM_MAX_LV_IO_TIMEOUT 60 /* seconds I/O timeout (future use) */
#define LVM_PARTITION 0xfe /* LVM partition id */
#define LVM_NEW_PARTITION 0x8e /* new LVM partition id (10/09/1999) */
#define LVM_PE_SIZE_PV_SIZE_REL 5 /* max relation PV size and PE size */

#define LVM_SNAPSHOT_MAX_CHUNK 1024 /* 1024 KB */
#define LVM_SNAPSHOT_DEF_CHUNK 64 /* 64 KB */
#define LVM_SNAPSHOT_MIN_CHUNK (PAGE_SIZE/1024) /* 4 or 8 KB */

#define UNDEF -1

/*
* ioctls
* FIXME: the last parameter to _IO{W,R,WR} is a data type. The macro will
* expand this using sizeof(), so putting "1" there is misleading
* because sizeof(1) = sizeof(int) = sizeof(2) = 4 on a 32-bit machine!
*/
/* volume group */
#define VG_CREATE_OLD _IOW ( 0xfe, 0x00, 1)
#define VG_REMOVE _IOW ( 0xfe, 0x01, 1)

#define VG_EXTEND _IOW ( 0xfe, 0x03, 1)
#define VG_REDUCE _IOW ( 0xfe, 0x04, 1)

#define VG_STATUS _IOWR ( 0xfe, 0x05, 1)
#define VG_STATUS_GET_COUNT _IOWR ( 0xfe, 0x06, 1)
#define VG_STATUS_GET_NAMELIST _IOWR ( 0xfe, 0x07, 1)

#define VG_SET_EXTENDABLE _IOW ( 0xfe, 0x08, 1)
#define VG_RENAME _IOW ( 0xfe, 0x09, 1)

/* Since 0.9beta6 */
#define VG_CREATE _IOW ( 0xfe, 0x0a, 1)

/* logical volume */
#define LV_CREATE _IOW ( 0xfe, 0x20, 1)
#define LV_REMOVE _IOW ( 0xfe, 0x21, 1)

#define LV_ACTIVATE _IO ( 0xfe, 0x22)
#define LV_DEACTIVATE _IO ( 0xfe, 0x23)

#define LV_EXTEND _IOW ( 0xfe, 0x24, 1)
#define LV_REDUCE _IOW ( 0xfe, 0x25, 1)

#define LV_STATUS_BYNAME _IOWR ( 0xfe, 0x26, 1)
#define LV_STATUS_BYINDEX _IOWR ( 0xfe, 0x27, 1)

#define LV_SET_ACCESS _IOW ( 0xfe, 0x28, 1)
#define LV_SET_ALLOCATION _IOW ( 0xfe, 0x29, 1)
#define LV_SET_STATUS _IOW ( 0xfe, 0x2a, 1)

#define LE_REMAP _IOW ( 0xfe, 0x2b, 1)

#define LV_SNAPSHOT_USE_RATE _IOWR ( 0xfe, 0x2c, 1)

#define LV_STATUS_BYDEV _IOWR ( 0xfe, 0x2e, 1)

#define LV_RENAME _IOW ( 0xfe, 0x2f, 1)

#define LV_BMAP _IOWR ( 0xfe, 0x30, 1)


/* physical volume */
#define PV_STATUS _IOWR ( 0xfe, 0x40, 1)
#define PV_CHANGE _IOWR ( 0xfe, 0x41, 1)
#define PV_FLUSH _IOW ( 0xfe, 0x42, 1)

/* physical extent */
#define PE_LOCK_UNLOCK _IOW ( 0xfe, 0x50, 1)
#define PE_LOCKED_COPY _IOW ( 0xfe, 0x51, 1)

/* i/o protocol version */
#define LVM_GET_IOP_VERSION _IOR ( 0xfe, 0x98, 1)

#ifdef LVM_TOTAL_RESET
/* special reset function for testing purposes */
#define LVM_RESET _IO ( 0xfe, 0x99)
#endif

/* lock the logical volume manager */
#if LVM_DRIVER_IOP_VERSION > 11
#define LVM_LOCK_LVM _IO ( 0xfe, 0x9A)
#else
/* This is actually the same as _IO ( 0xff, 0x00), oops. Remove for IOP 12+ */
#define LVM_LOCK_LVM _IO ( 0xfe, 0x100)
#endif
/* END ioctls */


/*

locate hd_psn.h
(nothing)

locate hd_psn.h
(nothing)

locate vgsa.h
(nothing)


[ Reply to This | # ]

Interesting Links
Authored by: Clay on Wednesday, February 11 2004 @ 09:29 PM EST
A simple google search gives some links.

---
---------------------------
newObjectivity, Inc. supports the destruction
of all software patents.

[ Reply to This | # ]

  • Interesting Links - Authored by: Anonymous on Thursday, February 12 2004 @ 03:15 PM EST
OT- What happened to the ABI claims?
Authored by: Anonymous on Thursday, February 12 2004 @ 09:59 AM EST
Do these "derived work" claims replace their earlier strong suggestion
that the copyright claims were based on the POSIX
header files

errno.h
ctype.h
signal.h
......

Or are they just holding those as a backup for the failure of the "derived
works" theory?

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )