diff options
Diffstat (limited to 'lib/libdisk/libdisk.3')
-rw-r--r-- | lib/libdisk/libdisk.3 | 341 |
1 files changed, 0 insertions, 341 deletions
diff --git a/lib/libdisk/libdisk.3 b/lib/libdisk/libdisk.3 deleted file mode 100644 index 1b436e2..0000000 --- a/lib/libdisk/libdisk.3 +++ /dev/null @@ -1,341 +0,0 @@ -.\" -.\" Copyright (c) 1996 Joerg Wunsch -.\" -.\" All rights reserved. -.\" -.\" This program is free software. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" " -.Dd January 30, 2006 -.Dt LIBDISK 3 -.Os -.Sh NAME -.Nm Open_Disk , -.Nm Free_Disk , -.Nm Debug_Disk , -.Nm Set_Bios_Geom , -.Nm Delete_Chunk , -.Nm Collapse_Disk , -.Nm Collapse_Chunk , -.Nm Create_Chunk , -.Nm All_FreeBSD , -.Nm CheckRules , -.Nm Disk_Names , -.Nm Set_Boot_Mgr , -.Nm Set_Boot_Blocks , -.Nm Write_Disk , -.Nm Cyl_Aligned , -.Nm Next_Cyl_Aligned , -.Nm Prev_Cyl_Aligned , -.Nm Track_Aligned , -.Nm Next_Track_Aligned , -.Nm Prev_Track_Aligned , -.Nm Create_Chunk_DWIM , -.Nm MakeDev , -.Nm MakeDevDisk , -.Nm ShowChunkFlags , -.Nm chunk_name , -.Nm slice_type_name -.Nd library interface to slice and partition labels -.Sh LIBRARY -.Lb libdisk -.Sh SYNOPSIS -.In sys/types.h -.In libdisk.h -.Pp -.Ft struct disk * -.Fn Open_Disk "const char *devname" -.Ft void -.Fn Free_Disk "struct disk *disk" -.Ft void -.Fn Debug_Disk "struct disk *disk" -.Ft void -.Fn Set_Bios_Geom "struct disk *disk" "u_long cyl" "u_long heads" "u_long sects" -.Ft int -.Fn Delete_Chunk "struct disk *disk" "struct chunk *" -.Ft void -.Fn Collapse_Disk "struct disk *disk" -.Ft int -.Fn Collapse_Chunk "struct disk *disk" "struct chunk *chunk" -.Ft int -.Fn Create_Chunk "struct disk *disk" "daddr_t offset" "daddr_t size" "chunk_e type" "int subtype" "u_long flags" "const char *sname" -.Ft void -.Fn All_FreeBSD "struct disk *d" "int force_all" -.Ft char * -.Fn CheckRules "const struct disk *" -.Ft char ** -.Fn Disk_Names "void" -.Ft void -.Fn Set_Boot_Mgr "struct disk *d" "const u_char *bootmgr" "const size_t bootmgr_size" -.Ft int -.Fn Set_Boot_Blocks "struct disk *d" "const u_char *boot1" "const u_char *boot2" -.Ft int -.Fn Write_Disk "const struct disk *d" -.Ft int -.Fn Cyl_Aligned "struct disk *d" "daddr_t offset" -.Ft daddr_t -.Fn Next_Cyl_Aligned "const struct disk *d" "daddr_t offset" -.Ft daddr_t -.Fn Prev_Cyl_Aligned "const struct disk *d" "daddr_t offset" -.Ft int -.Fn Track_Aligned "const struct disk *d" "daddr_t offset" -.Ft daddr_t -.Fn Next_Track_Aligned "const struct disk *d" "daddr_t offset" -.Ft daddr_t -.Fn Prev_Track_Aligned "const struct disk *d" "daddr_t offset" -.Ft struct chunk * -.Fn Create_Chunk_DWIM "struct disk *d" "struct chunk *parent" "daddr_t size" "chunk_e type" "int subtype" "u_long flags" -.Ft int -.Fn MakeDev "struct chunk *c" "const char *path" -.Ft int -.Fn MakeDevDisk "struct disk *d" "const char *path" -.Ft char * -.Fn ShowChunkFlags "struct chunk *c" -.Ft const char * -.Fn chunk_name "chunk_e type" -.Ft const char * -.Fn slice_type_name "int type" "int subtype" -.Sh DESCRIPTION -.Bf Sy -.Nm libdisk -is just for the use of -.Xr sysinstall 8 . -You should consider using -.Xr libgeom 3 -instead. -.Ef -.Pp -The -.Nm libdisk -library provides an interface to the low-level disk slice and partition labels. -Most functions operate with arguments of the types -.Ql struct disk , -or -.Ql struct chunk . -.Pp -While both types are mostly opaque to the programmer, the internal -structure is mentioned below for the sake of completeness. -.Bd -literal -offset indent -struct disk { - char *name; - u_long flags; - u_long bios_cyl; - u_long bios_hd; - u_long bios_sect; - u_char *bootmgr; - u_char *boot1; - u_char *boot2; - struct chunk *chunks; - u_long sector_size; -}; -.Ed -The only flag value by now is -.Ql DISK_ON_TRACK , -meaning that this disk is handled by the On-Track Disk Manager. -.Bd -literal -offset indent -struct chunk { - struct chunk *next; - struct chunk *part; - struct disk *disk; - daddr_t offset; - daddr_t size; - daddr_t end; - char *name; - char *oname; - chunk_e type; - int subtype; - u_long flags; - void (*private_free)(void*); - void *(*private_clone)(void*); - void *private_data; -}; -.Ed -The -.Ql type -field can be one of the following values: -.Ql whole, unknown, fat, freebsd, extended, part, unused . -.Pp -These are the valid -.Ql flags -values for a -.Ql struct chunk . -.Bl -tag -offset indent -width CHUNK_AUTO_SIZEXX -.It CHUNK_ALIGN -This chunk should be aligned. -.It CHUNK_IS_ROOT -This -.Ql part -is a rootfs, allocate partition -.Sq a . -.It CHUNK_ACTIVE -This is the active slice in the MBR. -.It CHUNK_FORCE_ALL -Force a dedicated disk for -.Fx , -bypassing all BIOS geometry considerations. -.It CHUNK_AUTO_SIZE -This chunk was auto-sized and can fill out any deleted following chunks. -.It CHUNK_NEWFS -newfs pending, used to enable auto-resizing on delete (along with AUTO_SIZE). -.El -.Pp -The -.Ql private_data , -.Ql private_free , -and -.Ql private_clone -fields are for data private to the application, and the management -thereof. -If the functions are not provided, no storage management is -done, cloning will just copy the pointer and freeing will just forget -it. -.Pp -.Fn Open_Disk -will open the named disk, and return populated tree. -.Pp -.Fn Free_Disk -frees a tree made with -.Fn Open_Disk -or -.Fn Clone_Disk . -.Pp -.Fn Debug_Disk -prints the content of the tree to -.Dv stdout . -.Pp -.Fn Set_Bios_Geom -sets the geometry the bios uses. -.Pp -.Fn Delete_Chunk -frees a chunk of disk_space. -.Pp -.Fn Collapse_Disk -and -.Fn Collapse_Chunk -are experimental, do not use. -.Pp -.Fn Create_Chunk -creates a chunk with the specified parameters. -.Pp -.Fn All_FreeBSD -makes one -.Fx -chunk covering the entire disk; if -.Ql force_all -is set, bypass all BIOS geometry considerations. -.Pp -.Fn CheckRules -returns -.Ql char* -to warnings about broken design rules in this disklayout. -.Pp -.Fn Disk_Names -returns -.Ql char** -with all disk's names (wd0, wd1 ...). -You must free each pointer, as -well as the array by hand. -.Pp -.Fn Set_Boot_Mgr -sets this boot-manager for use on this disk. -Gets written when -.Fn Write_Disk -is called. -.Pp -.Fn Set_Boot_Blocks -sets the boot-blocks for use on this disk. -Gets written when -.Fn Write_Disk -is called. -.Pp -.Fn Write_Disk -writes all the MBRs, disklabels, bootblocks and boot managers. -.Pp -.Fn Cyl_Aligned -checks if -.Ql offset -is aligned on a cylinder according to the BIOS geometry. -.Pp -.Fn Next_Cyl_Aligned -rounds -.Ql offset -up to next cylinder according to the BIOS geometry. -.Pp -.Fn Prev_Cyl_Aligned -rounds -.Ql offset -down to previous cylinder according to the BIOS geometry. -.Pp -.Fn Track_Aligned -checks if -.Ql offset -is aligned on a track according to the BIOS geometry. -.Pp -.Fn Next_Track_Aligned -rounds -.Ql offset -up to next track according to the BIOS geometry. -.Pp -.Fn Prev_Track_Aligned -rounds -.Ql offset -up to previous track according to the BIOS geometry. -.Pp -.Fn Create_Chunk_DWIM -creates a partition inside the given parent of the given size, and -returns a pointer to it. -The first unused chunk big enough is used. -.Pp -.Fn MakeDev -makes the device nodes for this chunk. -.Pp -.Fn MakeDevDisk -makes the device nodes for all chunks on this disk. -.Pp -.Fn ShowChunkFlags -returns a string to show flags. -.Pp -The -.Fn chunk_name -function takes the enumerated chunk type and returns its name. -.Fn chunk_name -replaces the old external array -.Va chunk_n . -.Pp -.Fn slice_type_name -returns the name strings associated with the specified -.Ql type . -.Ql subtype . -If -.Fn slice_type_name -returns "unknown" for slices it is not familiar with. -.Sh AUTHORS -.An -nosplit -The -.Nm libdisk -library was written by -.An Poul-Henning Kamp . -.Pp -This manual page was written by -.An J\(:org Wunsch . |