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.

Los programas de aplicación de Nota: no deben acceder a la RAM no volátil. Puesto que la RAM no volátil es específica de la plataforma, cualquier dependencia de su presencia e implementación coloca restricciones de portabilidad en la aplicación utilizando. Además, el acceso a la RAM no volátil puede provocar la pérdida de información de configuración y arranque del sistema. Una pérdida de este tipo podría requerir que el trabajo de tareas administrativas o de mantenimiento del sistema se reconstruya o recupere.

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/base

El 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.