Archivo especial de nvram
Finalidad
Proporciona acceso a la RAM no volátil específica de la plataforma utilizada para la información de arranque, configuración y error muy grave del sistema. Este acceso se consigue a través del controlador de dispositivo de E/S de la máquina.
Descripción
El archivo especial de caracteres /dev/nvram proporciona acceso al controlador de dispositivo de máquina para acceder o modificar la RAM no volátil específica de la máquina. Es necesario el privilegio adecuado para abrir el archivo especial nvram . El archivo especial nvram se utiliza mediante programas de configuración específicos de la máquina para almacenar o recuperar información de configuración y arranque utilizando la RAM o ROM no volátil proporcionada en la máquina. El archivo especial nvram da soporte a operaciones de apertura, cierre, lectura e ioctl.
Usage Considerations
Cuando utilice subrutinas con el archivo especial nvram , tenga en cuenta los elementos siguientes.
abrir y cerrar subrutinas
El controlador de dispositivo de máquina da soporte al archivo especial nvram como un archivo especial de caracteres multiplexados.
Se puede utilizar un nombre de canal especial de base para leer la información de personalización base almacenada como parte del registro de arranque. El archivo especial nvram debe abrirse con un nombre de canal de base, como se indica a continuación:
/dev/nvram/baseEl archivo especial /dev/nvram/base sólo se puede abrir una vez. Cuando se cierra por primera vez después de un arranque, el almacenamiento intermedio que contiene la información de personalización base es libre. Las aperturas posteriores devuelven un código de error de ENOENT .
Subrutinas de lectura, escritura y búsqueda
La subrutina leer se soporta después de una apertura satisfactoria del archivo especial nvram con un nombre de canal de base. La operación leer inicia la transferencia de datos en la ubicación asociada con la información de personalización base y con un desplazamiento especificado por el valor de desplazamiento asociado con el puntero de archivo que se utiliza en la subrutina.
En una subrutina leer , si se alcanza el final del área de datos antes de que se alcance el recuento de transferencias, se devuelve el número de bytes leídos antes de que se alcance el final del área de datos. Si la lectura se inicia después del final del área de datos, el controlador devuelve un error de ENXIO .
La subrutina lseek se puede utilizar para cambiar el desplazamiento de lectura inicial dentro del área de datos asociada con la información de personalización base. La subrutina Escribir no está soportada en este canal y da como resultado un retorno de error de ENDEV.
Subrutina ioctl
Los mandatos ioctl se pueden emitir al controlador de dispositivo de máquina después de que el archivo especial /dev/nvram se haya abierto correctamente. El parámetro IOCINFO devuelve información de controlador de dispositivo de máquina en la estructura devinfo del llamante, tal como apunta el parámetro arg a la subrutina ioctl . Esta estructura se define en el archivo /usr/include/sys/devinfo.h . El tipo de dispositivo para este controlador de dispositivo es DD_PSEU.
Códigos de error
Se pueden devolver las siguientes condiciones de error al acceder al controlador de dispositivo de máquina utilizando el nombre de archivo especial nvram :
| Elemento | Descripción |
|---|---|
| EFAULT | Un almacenamiento intermedio especificado por el llamante no era válido en una llamada de subrutina leer, Escribiro ioctl . |
| ENXIO | Se ha intentado una operación de lectura al final del área de datos especificada por el canal. |
| ENDEV | Se ha intentado una operación de grabación. |
| ENOMEM | Se ha realizado una solicitud con un almacenamiento intermedio proporcionado por el usuario que es demasiado pequeño para los datos solicitados. |
Seguridad
Los programas que intentan abrir el archivo especial nvram requieren el privilegio adecuado.
Archivos
| Elemento | Descripción |
|---|---|
| /dev/nvram/base | Permite el acceso de lectura a la información de personalización base almacenada como parte del registro de arranque. |