示例#1
0
int init_module(void)
{
    cbuffer = create_cbuffer_t(MAX_ITEMS_CBUF);

    if (!cbuffer) {
    return -ENOMEM;
  }

  

    sema_init(&sem_cons, 0);
    sema_init(&sem_prod, 0);
    sema_init(&mutex, 1);

    proc_entry = proc_create_data("fifoproc",0666, NULL, &proc_entry_fops, NULL);
    
      if (proc_entry == NULL) {
      destroy_cbuffer_t(cbuffer);
      printk(KERN_INFO "Fifoproc: No puedo crear la entrada en proc\n");
      return  -ENOMEM;
  }
      
  printk(KERN_INFO "Fifoproc: Cargado el Modulo.\n");

    return 0;
}
示例#2
0
文件: charfifo.c 项目: tombe85/lin
/* Función exit module */
void cleanup_module( void )
{
    /* Eliminamos el dispositivo de tipo char */
    unregister_chrdev(Major, DEVICE_NAME);

    destroy_cbuffer_t(cbuffer);

    /* Informamos */
    printk(KERN_INFO "fifoproc: Module unloaded.\n");
}
示例#3
0
void cleanup_module( void )
{
	destroy_cbuffer_t(cbuffer);      
	unregister_chrdev(Major, DEVICE_NAME);      
	
	 
	
		
  	printk(KERN_INFO "Fifoproc: Module unloaded.\n");
}
示例#4
0
/*-----------------------------------------------------------------------------------*/
void mbox_free(struct sys_mbox *mbox) {
	if ((mbox != NULL )) {

		sys_sem_free(mbox->not_empty);
		sys_sem_free(mbox->not_full);

		pthread_mutex_destroy(mbox->mutex);
		free(mbox->mutex);
		destroy_cbuffer_t(mbox->cbuffer);

		mbox->not_empty = mbox->not_full = NULL;
		mbox->mutex = NULL;
		mbox->cbuffer = NULL;

		free(mbox);

	}
}
示例#5
0
void cleanup_module(void)
{
    remove_proc_entry("fifoproc", NULL);
    destroy_cbuffer_t(cbuffer);
    printk(KERN_INFO "Fifoproc: Modulo descargado.\n");
}