createlabel - Creates a disk label structure for a disk device
Standard C Library (libc.a)
struct disklabel *disk,
Specifies the device special file name of the device. Specifies the name entry in the /etc/disktab file that is to be used for the label information. Otherwise, specify NULL to indicate that the name entry either is not in the /etc/disktab file, or, if it is, that it should be ignored. Points to the disk label structure that is filled in with the returned disk description on successful completion of the function. Points to the buffer that the function may use to contain the (optional) primary and secondary bootstrap names for the disk label. Specifies the length of the boot buffer. The value must be set to the value of the BUFSIZ constant.
The function fills in the disk label structure pointed to by the disk parameter. The resulting disk label can then be written to the disk in order to label it.
The function queries the device, using the devname parameter, to obtain the disk's geometry, capacity, and any default partition information.
The function checks the name parameter. If name is non-null, the function looks for an entry in the /etc/disktab file that matches the name string and initializes the disk label structure from that entry. The function then overrides the device data and initializes the disk label structure from the entry in the /etc/disktab file.
If the name string is NULL, or has no matching entry in the /etc/disktab file, the function queries the device (using the devname parameter) to obtain the device's name string. The function then looks for an entry in the /etc/disktab file that matches that name string, and if it finds a match, initializes the disk label structure from that entry.
If an /etc/disktab entry indicates that the device has a dynamic geometry, the function queries the device (using the devname parameter) to obtain the disk's true geometry and capacity and to override any value given in an /etc/disktab entry associated with the device. In this case, any -1 lengths encountered in the partition specifications for the entry are replaced by a value equal to the device's total capacity minus the starting offset of the partition.
Upon successful completion of the createlabel function, a value of 0 is returned and the contents of the disk label structure are updated.
Upon error, a value of -1 is returned and errno is set to [EINVAL].
Either disk or boot is NULL, or boot_len is not equal to BUFSIZ.
Table of disk partition sizes for supported disks.
Files: disklabel(4), disktab(4) delim off