The mode token for a file is a 6 character string. The first character specifies the type of the file. (The characters -bcd specify regular, block special, character special and directory files respectively.) The second character of the type is either u or - to specify set-user-id mode or not. The third is g or - for the set-group-id mode. The rest of the mode is a three digit octal number giving the owner, group, and other read, write, execute permissions, see chmod(1).
Two decimal number tokens come after the mode; they specify the user and group ID's of the owner of the file.
If the file is a regular file, the next token is a pathname whence the contents and size are copied.
If the file is a block or character special file, two decimal number tokens follow which give the major and minor device numbers.
If the file is a directory, mkfs makes the entries . and .. and then reads a list of names and (recursively) file specifications for the entries in the directory. The scan is terminated with the token $.
If the prototype file cannot be opened and its name consists of a string of digits, mkfs builds a file system with a single empty directory on it. The size of the file system is the value of proto interpreted as a decimal number. The number of i-nodes is calculated as a function of the filsystem size. The boot program is left uninitialized.
A sample prototype specification follows:
/usr/mdec/uboot 4872 55 d--777 3 1 usr d--777 3 1 sh ---755 3 1 /bin/sh ken d--755 6 1 $ b0 b--644 3 1 0 0 c0 c--644 3 1 0 0 $ $