FreeBSD src
Go to file
Marcel Moolenaar 52183d0145 Add uuidgen(2) and uuidgen(1).
The uuidgen command, by means of the uuidgen syscall, generates one
or more Universally Unique Identifiers compatible with OSF/DCE 1.1
version 1 UUIDs.

From the Perforce logs (change 11995):

Round of cleanups:
o  Give uuidgen() the correct prototype in syscalls.master
o  Define struct uuid according to DCE 1.1 in sys/uuid.h
o  Use struct uuid instead of uuid_t. The latter is defined
   in sys/uuid.h but should not be used in kernel land.
o  Add snprintf_uuid(), printf_uuid() and sbuf_printf_uuid()
   to kern_uuid.c for use in the kernel (currently geom_gpt.c).
o  Rename the non-standard struct uuid in kern/kern_uuid.c
   to struct uuid_private and give it a slightly better definition
   for better byte-order handling. See below.
o  In sys/gpt.h, fix the broken uuid definitions to match the now
   compliant struct uuid definition. See below.
o  In usr.bin/uuidgen/uuidgen.c catch up with struct uuid change.

A note about byte-order:
        The standard failed to provide a non-conflicting and
unambiguous definition for the binary representation. My initial
implementation always wrote the timestamp as a 64-bit little-endian
(2s-complement) integral. The clock sequence was always written
as a 16-bit big-endian (2s-complement) integral. After a good
nights sleep and couple of Pan Galactic Gargle Blasters (not
necessarily in that order :-) I reread the spec and came to the
conclusion that the time fields are always written in the native
by order, provided the the low, mid and hi chopping still occurs.
The spec mentions that you "might need to swap bytes if you talk
to a machine that has a different byte-order". The clock sequence
is always written in big-endian order (as is the IEEE 802 address)
because its division is resulting in bytes, making the ordering
unambiguous.
2002-05-28 06:16:08 +00:00
bin Add uuidgen(2) and uuidgen(1). 2002-05-28 06:16:08 +00:00
contrib Don't risk catching a signal while handling a signal for a dying child, as we 2002-05-27 08:10:24 +00:00
crypto Don't risk catching a signal while handling a signal for a dying child, as we 2002-05-27 08:10:24 +00:00
etc Correct US Robotics Wireless Card 2410 entry 2002-05-24 15:28:38 +00:00
games Quiet some format string warnings by marking prototypes with 2002-05-28 06:12:31 +00:00
gnu I missed the setting of PREFIX_INCLUDE_DIR when I visually santity checked 2002-05-27 17:48:28 +00:00
include Prepend BIG_ENDIAN, BYTE_ORDER, LITTLE_ENDIAN, and PDP_ENDIAN with an 2002-05-28 04:32:25 +00:00
kerberos5 Make this -j safe. 2002-05-14 15:27:13 +00:00
kerberosIV This code is no longer WARNS level 2 OK. 2002-05-15 06:32:29 +00:00
lib Add uuidgen(2) and uuidgen(1). 2002-05-28 06:16:08 +00:00
libexec Don't risk catching a signal while handling a signal for a dying child, as we 2002-05-27 08:10:24 +00:00
release Typo fix: s/IPSec/IPsec/g 2002-05-28 00:16:22 +00:00
sbin Work around a memory fault on ia64 caused by having the 1MB buffer on 2002-05-27 07:54:43 +00:00
secure for OpenSSL 0.9.5a 2002-05-15 09:17:27 +00:00
share Remove, with extreme prejudice, the notion that /tmp best needs to be a 2002-05-28 06:03:50 +00:00
sys Add uuidgen(2) and uuidgen(1). 2002-05-28 06:16:08 +00:00
tools Mutex statistics script. 2002-05-26 12:02:36 +00:00
usr.bin Add uuidgen(2) and uuidgen(1). 2002-05-28 06:16:08 +00:00
usr.sbin Oops, don't print /dev/ twice. 2002-05-28 05:45:56 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
MAINTAINERS Use more common phrasing for the "request reviews" text. Add UFS EAs, 2002-05-20 13:08:32 +00:00
Makefile Forgot to commit this for the includes' -> buildincludes', 2002-05-24 16:08:13 +00:00
Makefile.inc1 Bootstrap makewhatis(1). 2002-05-27 15:51:38 +00:00
Makefile.upgrade Removed "env" commands. "sh" is a real shell, so 2002-03-19 05:58:36 +00:00
README Spell "FreeBSD" correctly. 2002-03-26 12:35:49 +00:00
UPDATING Add a note that NO_WERROR is a good idea for the time being due to the 2002-05-20 13:06:24 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The
``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.FreeBSD.org/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

kerberosIV	KerberosIV (eBones) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.FreeBSD.org/handbook/synching.html