Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/d3dx9_private.h:
D3DXIMAGE_FILEFORMAT image_file_format;
};
-HRESULT d3dx_image_init(const void *src_data, uint32_t src_data_size, struct d3dx_image *image, uint32_t flags); +HRESULT d3dx_image_init(const void *src_data, uint32_t src_data_size, struct d3dx_image *image, uint32_t starting_mip,
General naming nit: I think it's better to call it consistently "level" (or "mip_level", "texture_level", if just "level" feels potentially ambiguous). Texture level is a very specific term and it's how we call it elsewhere (also technically mip, or mipmap, is the whole set of levels).
So, for example, here I'd go with "starting_level".