Mac OS X, C Instalaciones para la lectura de la información del dispositivo PCI

StackOverflow https://stackoverflow.com/questions/4757577

  •  16-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de aprender cómo obtener información de los dispositivos PCI en Mac OS X. Hasta ahora no he podido encontrar nada al respecto en sysctl (3) y parece que el viejo DevInfo (3) Equipamiento de BSD no están disponibles.

necesito una instalación de C para esto, sé que hay un marco kit de E / S para Objective C, pero no puedo usar esto.

La información específica que busco es bastante básico, solo proveedor y el ID del dispositivo.

¿Fue útil?

Solución

I / O Kit es el marco del sistema de información del dispositivo. No es una API de Objective-C; en cambio, Apple utiliza un subconjunto restringido de C ++. Citando la de E / S del kit Fundamentos documento,

Apple considera varios lenguajes de programación para el Kit de O / S y eligió un subconjunto restringido de C ++.

C ++ fue elegido por varias razones. El compilador de C ++ es madurar y el lenguaje proporciona soporte para la programación del sistema. Además, ya hay una gran comunidad de Macintosh (y BSD) a los desarrolladores con experiencia en C ++.

El subconjunto restringido no permite ciertas características de C ++, incluyendo

  • Excepciones
  • La herencia múltiple
  • Plantillas
  • Tiempo de ejecución información de tipo (RTTI), el I / O Kit utiliza su propia implementación de un sistema de tipificación de tiempo de ejecución

Estas características fueron retirados debido a que se consideró inadecuado para su uso dentro de un núcleo de multiproceso. Si usted siente que necesita estas características, se debe reconsiderar su diseño. Usted debe ser capaz de escribir cualquier conductor que desee usar I O Kit / con estas restricciones en su lugar.

Si no puede utilizar C ++ continuación, una alternativa es que su C /usr/bin/ioreg llamada del programa y analizar sus resultados.


Editar es posible que desee echar un vistazo a la Acceso a hardware a partir del documento Aplicaciones . Parece que el acceso a la E / S de registro se puede hacer con el código C en su mayor parte (si no todos), con un poco de Fundación Core.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top