/* Inicializa el módulo - Registra el dispositivo de carácter */ int init_module() { /* Registra el dispositivo de carácter (por lo menos lo intenta) */ Major = module_register_chrdev(0, DEVICE_NAME, &Fops); /* Valores negativos significan un error */ if (Major < 0) { printk ("dispositivo %s falló con %d\n", "Lo siento, registrando el carácter", Major); return Major; } printk ("%s El número mayor del dispositivo es %d.\n", "El registro es un éxito.", Major); printk ("si quieres hablar con el controlador del dispositivo,\n"); printk ("tendrás que crear un fichero de dispositivo. \n"); printk ("Te sugerimos que uses:\n"); printk ("mknod <nombre> c %d <menor>\n", Major); printk ("Puedes probar diferentes números menores %s", "y ver que pasa.\n"); return 0; }
void soundcard_init (void) { #ifndef MODULE module_register_chrdev (sound_major, "sound", &sound_fops); chrdev_registered = 1; #endif soundcard_configured = 1; sndtable_init (); /* Initialize call tables and detect cards */ #ifdef CONFIG_LOWLEVEL_SOUND { extern void sound_init_lowlevel_drivers (void); sound_init_lowlevel_drivers (); } #endif if (sndtable_get_cardcount () == 0) return; /* No cards detected */ #ifdef CONFIG_AUDIO if (num_audiodevs) /* Audio devices present */ { DMAbuf_init (); audio_init (); } #endif #ifdef CONFIG_MIDI if (num_midis) MIDIbuf_init (); #endif #ifdef CONFIG_SEQUENCER if (num_midis + num_synths) sequencer_init (); #endif }
int init_module (void) { int err; int ints[21]; int i; if (connect_wrapper (WRAPPER_VERSION) < 0) { printk ("Sound: Incompatible kernel (wrapper) version\n"); return -EINVAL; } /* * "sound=" command line handling by Harald Milz. */ i = 0; while (i < 20 && sound[i]) ints[i + 1] = sound[i++]; ints[0] = i; if (i) sound_setup ("sound=", ints); err = module_register_chrdev (sound_major, "sound", &sound_fops); if (err) { printk ("sound: driver already loaded/included in kernel\n"); return err; } chrdev_registered = 1; soundcard_init (); if (sound_nblocks >= 1024) printk ("Sound warning: Deallocation table was too small.\n"); return 0; }