Example #1
0
void OSystem_Wii::deleteMutex(MutexRef mutex) {
	s32 res = LWP_MutexDestroy(*(mutex_t *) mutex);

	if (res)
		printf("ERROR destroying mutex %p (%d)\n", mutex, res);

	free(mutex);
}
Example #2
0
void CMEM2Alloc::cleanup(void)
{
	LWP_MutexDestroy(m_mutex);
	m_mutex = 0;
	m_first = 0;
	// Try to release the range we took through SYS functions
	if (SYS_GetArena2Lo() == m_endAddress)
		SYS_SetArena2Lo(m_baseAddress);
	m_baseAddress = 0;
	m_endAddress = 0;
}
Example #3
0
int __libogc_lock_close(int *lock)
{
	s32 ret;
	mutex_t plock;
	
	if(!lock || *lock==LWP_MUTEX_NULL) return -1;
	
	plock = (mutex_t)*lock;
	ret = LWP_MutexDestroy(plock);
	*lock = LWP_MUTEX_NULL;
	return ret;
}
Example #4
0
int __libogc_lock_close(int *lock)
{
	s32 ret;
	mutex_t plock;

	if(!lock || *lock==0) return -1;

	plock = (mutex_t)*lock;
	ret = LWP_MutexDestroy(plock);
	if(ret==0) *lock = 0;

	return ret;
}
Example #5
0
void ntfsDeinitVolume (ntfs_vd *vd)
{
    // Sanity check
    if (!vd) {
        errno = ENODEV;
        return;
    }

    // Lock
    ntfsLock(vd);

    // Close any directories which are still open (lazy programmers!)
    ntfs_dir_state *nextDir = vd->firstOpenDir;
    while (nextDir) {
        ntfs_log_warning("Cleaning up orphaned directory @ %p\n", nextDir);
        ntfsCloseDir(nextDir);
        nextDir = nextDir->nextOpenDir;
    }

    // Close any files which are still open (lazy programmers!)
    ntfs_file_state *nextFile = vd->firstOpenFile;
    while (nextFile) {
        ntfs_log_warning("Cleaning up orphaned file @ %p\n", nextFile);
        ntfsCloseFile(nextFile);
        nextFile = nextFile->nextOpenFile;
    }

    // Reset open directory and file stats
    vd->openDirCount = 0;
    vd->openFileCount = 0;
    vd->firstOpenDir = NULL;
    vd->firstOpenFile = NULL;

    // Close the volumes current directory (if any)
    //if (vd->cwd_ni) {
        //ntfsCloseEntry(vd, vd->cwd_ni);
        //vd->cwd_ni = NULL;
    //}

    // Force the underlying device to sync
    ntfs_device_sync(vd->dev);

    // Unlock
    ntfsUnlock(vd);
#ifndef LIBXENON
    // Deinitialise the volume lock
    LWP_MutexDestroy(vd->lock);
#endif
    return;
}
Example #6
0
void destroyBlinkTexts(struct stBlinkTextsGroup *stBlinkTexts) {
unsigned char i;
    if (stBlinkTexts->intThreadId!=LWP_THREAD_NULL) {
        while (LWP_MutexLock(stBlinkTexts->mtxThread)) {}
        for (i=0;i<stBlinkTexts->chBlinkTextsCount;i++) {
            stBlinkTexts->stBlinkTexts[i].stBlinkTimer.blnRunning=false;
            free(stBlinkTexts->stBlinkTexts[i].strBlinkText);
            stBlinkTexts->stBlinkTexts[i].strBlinkText=NULL;
        }
        LWP_MutexUnlock(stBlinkTexts->mtxThread);
        LWP_JoinThread(stBlinkTexts->intThreadId,NULL);
        LWP_MutexDestroy(stBlinkTexts->mtxThread);
        stBlinkTexts->intThreadId=LWP_THREAD_NULL;
        stBlinkTexts->mtxThread=LWP_MUTEX_NULL;
    }
}
Example #7
0
void log_console_deinit(void) {
	u16 i;

	if (log_size && log) {
		for (i = 0; i < log_size; ++i)
			if (log[i])
				free(log[i]);

		free(log);
		log = NULL;
	}

	log_size = 0;
	log_next = 0;

	devoptab_list[STD_OUT] = dot_video;
	devoptab_list[STD_ERR] = dot_video;

	VIDEO_SetPostRetraceCallback(rcb);
	LWP_MutexDestroy(console_mutex);
	dot_video = NULL;
}
Example #8
0
s32 USBStorageOGC_Close(usbstorage_handle *dev)
{
	if(dev != NULL)
	{
		important_storage_data *d = (important_storage_data*)0x932C1000;
		d->sector_size = __sector_size;
		d->sector_count = __sector_count;
		d->lun = __lun;
		d->vid = __vid;
		d->pid = __pid;
		d->tag = dev->tag;
		d->interface = dev->interface;
		d->usb_fd = dev->usb_fd;
		d->ep_in = dev->ep_in;
		d->ep_out = dev->ep_out;
		DCFlushRange((void*)0x932C1000, sizeof(important_storage_data));
	}
	__mounted = false;
	__lun = 0;
	__vid = 0;
	__pid = 0;

	if (dev->usb_fd != -1)
		USB_OGC_CloseDevice(&dev->usb_fd);

	LWP_MutexDestroy(dev->lock);
	SYS_RemoveAlarm(dev->alarm);

	if(dev->sector_size)
		free(dev->sector_size);

	if (dev->buffer)
		__lwp_heap_free(&__heap, dev->buffer);

	memset(dev, 0, sizeof(*dev));
	dev->usb_fd = -1;
	return 0;
}
Example #9
0
s32 USBStorage_Close(usbstorage_handle *dev)
{
	__mounted = false;
	__lun = 0;
	__vid = 0;
	__pid = 0;

	if (dev->usb_fd != -1)
		USB_CloseDevice(&dev->usb_fd);

	LWP_MutexDestroy(dev->lock);
	SYS_RemoveAlarm(dev->alarm);

	if(dev->sector_size)
		free(dev->sector_size);

	if (dev->buffer)
		__lwp_heap_free(&__heap, dev->buffer);

	memset(dev, 0, sizeof(*dev));
	dev->usb_fd = -1;
	return 0;
}
Example #10
0
void mutex_destroy(bor_mutex *mutex)
{
	LWP_MutexDestroy(*mutex);
	free(mutex);
}
Example #11
0
	~mutex() noexcept
	{
		LWP_MutexDestroy(mutex_);
	}