/* Returns information about platform support for 32- and/or 64-bit OSes, IO-PDIR coherency, and virtual aliasing.  */
int pdc_model_capabilities(unsigned long *capabilities)
/* Returns information about platform support for 32- and/or 64-bit OSes, IO-PDIR coherency, and virtual aliasing.  */
int pdc_model_capabilities(unsigned long *capabilities)
{
        int retval;
	unsigned long flags;
        spin_lock_irqsave(&pdc_lock, flags);
        pdc_result[0] = 0;
        retval = mem_pdc_call(PDC_MODEL, PDC_MODEL_CAPABILITIES, __pa(pdc_result), 0);
        convert_to_wide(pdc_result);
        if (retval == PDC_OK) {
                *capabilities = pdc_result[0];
        } else {
                *capabilities = PDC_MODEL_OS32;
        }
        spin_unlock_irqrestore(&pdc_lock, flags);
        return retval;
}