the unpatched c compiler is a bit too lax about embedding structs that have not been defined (as opposed to ptrs). this patch just defines DDesc before it is embedded in Desc.