func Parse()

in mfg/parse.go [112:137]


func Parse(data []byte, metaEndOff int, eraseVal byte) (Mfg, error) {
	m := Mfg{
		Bin: data,
	}

	if metaEndOff >= 0 {
		if metaEndOff > len(data) {
			return m, errors.Errorf(
				"MMR offset (%d) beyond end of mfgimage (%d)",
				metaEndOff, len(data))
		}

		meta, err := parseMeta(data[:metaEndOff])
		if err != nil {
			return m, err
		}
		m.Meta = &meta
		m.MetaOff = metaEndOff - int(meta.Footer.Size)

		for i := 0; i < int(meta.Footer.Size); i++ {
			m.Bin[m.MetaOff+i] = eraseVal
		}
	}

	return m, nil
}