Escritura de un método de no definición
Este artículo describe cómo funciona un método de dispositivo Undefine. También sugiere directrices para los programadores que escriben sus propios métodos de configuración de dispositivos Undefine.
Sintaxis
Dev -l Nombre
Descripción
El método Undefine suprime un dispositivo definido de la base de datos personalizada. Una vez que se ha suprimido un dispositivo, no se puede configurar hasta que se haya definido una vez más mediante el método Define.
El método Undefine también es responsable de liberar las asignaciones de número mayor y menor para la instancia de dispositivo y de suprimir los archivos especiales del dispositivo del directorio /dev . Si se registran asignaciones de número menor con la subrutina gennit , el método Undefine puede liberar las asignaciones de número mayor y menor y suprimir los archivos especiales utilizando la subrutina reldevno .
Por convenio, los tres primeros caracteres del nombre del método Undefine son . El resto del nombre (Desarrollo) puede ser cualquier carácter, sujeto a restricciones de nombre de archivo del sistema operativo, que identifique el dispositivo o grupo de dispositivos que utilizan el método.
Distintivos
| Elemento | Descripción |
|---|---|
| -l Nombre | Identifica el nombre lógico del dispositivo que se va a definir. |
Directrices para escribir un método no definido
Esta lista de tareas está pensada como una directriz para escribir un método Undefine. Algunos dispositivos pueden tener necesidades especiales que no se tratan en estas tareas.
El método Undefine debe:
- Validar los parámetros de entrada. Se debe proporcionar el distintivo -l para identificar el dispositivo que no está definido.
- Inicializar el gestor de datos de objeto (ODM) utilizando la subrutina odm_initialize y bloquear la base de datos de configuración utilizando la subrutina odm_lock . Consulte "Escribir un método de dispositivo" para ver un ejemplo.
- Recupere el objeto Dispositivo personalizado (CuDv) para que el dispositivo no esté definido. Esto se realiza obteniendo el objeto CuDv cuyo descriptor de nombre de dispositivo coincide con el nombre proporcionado con el distintivo -l . Si no se encuentra ningún objeto con el nombre especificado, este método sale con un error.
- Compruebe el estado actual del dispositivo. Si el descriptor de estado del dispositivo indica que el dispositivo no está en el estado Definido, no está preparado para no estar definido. Si este es el caso, este método sale con un error.
- Compruebe si hay dispositivos hijo. Esta comprobación se realiza consultando la clase de objeto CuDv para cualquier objeto cuyo descriptor de nombre lógico de dispositivo padre coincida con el nombre de este dispositivo. Si el dispositivo tiene dispositivos hijo, independientemente de los estados en los que se encuentren, el método Undefine fallará. Todos los dispositivos hijo deben estar sin definir antes de que el padre pueda estar sin definir.
- Compruebe si este dispositivo se lista como una dependencia de otro dispositivo. Esto se realiza consultando la clase de objeto Dependencia personalizada (CuDep) para los objetos cuyo descriptor de dependencia coincide con el nombre lógico de este dispositivo. Si se encuentra una coincidencia, el método sale con un error. Es posible que un dispositivo no esté definido si se ha listado como dependiente de otro dispositivo.
- Suprimir archivos especiales y números mayores y menores. Si no se han encontrado errores, el método puede suprimir información personalizada. En primer lugar, suprima los archivos especiales del directorio /dev . A continuación, suprima todas las asignaciones de número menor. Si el último número menor se ha suprimido para un número importante determinado, libere también el número mayor, utilizando la subrutina relmajor . El método Undefine nunca debe eliminar objetos del controlador de dispositivo personalizado (CuDvDr ) clase de objeto directamente, pero siempre debe utilizar las rutinas proporcionadas. Si las asignaciones de número menor se registran con la subrutina gennit , todo lo anterior se puede llevar a cabo utilizando la subrutina reldevno .
- Suprimir todos los atributos del dispositivo de la clase de objeto Atributo personalizado (CuAt). Simplemente suprima todos los objetos CuAt cuyo descriptor de nombre de dispositivo coincida con el nombre lógico de este dispositivo. No es un error si las rutinas ODM utilizadas para suprimir los atributos indican que no se han suprimido objetos. Esto indica que el dispositivo no tiene atributos que se hayan modificado a partir de los valores predeterminados.
- Suprima el objeto VPD personalizado (CuVPD) para el dispositivo, si tiene uno.
- Suprima los objetos Dependencia personalizada (CuDep) que indican otros dispositivos que son dependientes de este dispositivo.
- Suprima el objeto Dispositivo personalizado (CuDv) del dispositivo.
- Cierre todas las clases de objeto y termine ODM. Salga con un código de salida 0 (cero) si no hay errores.
Archivos
| Elemento | Descripción |
|---|---|
| Directorio /dev | Contiene los archivos especiales del dispositivo. |