Joe, RE: code walk through request ai_manifest.rng: Defines grammar and elements for RNG schema, which are used for defining and validating XML. partition_size changed from numeric to text to accommodate keywords.
auto_parse.c: further parsing and filing of manifest information. Uses ManifestServ to retrieve values. I removed a lot of identical functions that could be done more concisely and directly inline. Other changes handle validating the partition/slice_size text fields that were once numeric. "max_size" is the only recognized keyword, and signals AI to use the largest free region in the partition or slice - done by passing a size of zero to om_create_partition() or om_create_slice(). Other code does numeric validation. auto_install.c, auto_install.h: entry point for AI perform_slim_install.c: orchestrator_api.c: Added check for XML validation failures for partitions and slices. Added command line options for testing: -i - breakpoint before TI, -I breakpoint after TI. Added enum to specify where to breakpoint for testing disk_slices.c: manage slices 1st change: There is code to duplicate disk target info that is almost identical for partitions and slices, I noticed a discrepancy: the line to copy disk size in sectors was missing from the partition code, which had been causing anomalies elsewhere. I combined the common code into a function that went into disk_target.c. last change: fixed a different bug here (it seemed most expedient - primarily for testing): 4396 AI - last custom VTOC slice on unformatted disk is 3 cylinders too long http://defect.opensolaris.org/bz/show_bug.cgi?id=4396 disk_parts.c: manages partitioning disk_target.c: disk target-specific code (see disk_slices.c, 1st change) om_misc.c: Added function to write the same message to the log and to a FILE * object (which is stderr in perform_slim_install.c) I had to do a hand merge to make this current. Reissued webrev, adding 4396. Let me know if you have questions. Thank you, William Joseph J VLcek wrote: > William Schumann wrote: >> Currently in the AI manifest, if zero is specified as a requested >> size for partitions or slices, the maximum available space will be >> allocated. This is non-intuitive, and for clarity, a keyword >> "max_size" shall be used for RNG elements "slice_size" or >> "partition_size". >> >> http://cr.opensolaris.org/~wmsch/bug-5653/ >> http://defect.opensolaris.org/bz/show_bug.cgi?id=5653 >> >> The sizes in the RNG file had to be changed from numeric only to text. >> >> Other changes include: >> - additional manifest parsing problems logged and manifest parsing >> failure path added >> - removing unnecessary functions to fetch particular manifest >> elements replacing it with a generic routine (auto_parse.c) >> - logging routine added to log and print message to file >> - adding command line options for breakpoints for testing >> - moved common code to disk_target.c from disk_parts.c and >> disk_slices.c, fixing bug with missing disk sector size >> >> Unit testing for slice/partition for x86 + slice for SPARC: >> - invalid values for size (alpha, out of range) >> - varying existing partition layouts testing maximum size allocation >> algorithm >> - slice editing, partition editing, both >> - testing breakpoint code >> _______________________________________________ >> caiman-discuss mailing list >> caiman-discuss at opensolaris.org >> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss > > William, > > I realize this is not the norm but your changes for 5653 are substantial. > > Would you mind doing a code walk through with me? > > In the mean time I'll start looking at it. > > Joe