Merge branch 'master' of https://github.com/86Box/86Box
This commit is contained in:
@@ -343,6 +343,11 @@ mo_load(mo_t *dev, char *fn)
|
|||||||
uint32_t size = 0;
|
uint32_t size = 0;
|
||||||
unsigned int found = 0;
|
unsigned int found = 0;
|
||||||
|
|
||||||
|
if (!dev->drv) {
|
||||||
|
mo_eject(dev->id);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
is_mdi = image_is_mdi(fn);
|
is_mdi = image_is_mdi(fn);
|
||||||
|
|
||||||
dev->drv->fp = plat_fopen(fn, dev->drv->read_only ? "rb" : "rb+");
|
dev->drv->fp = plat_fopen(fn, dev->drv->read_only ? "rb" : "rb+");
|
||||||
@@ -403,7 +408,7 @@ mo_disk_reload(mo_t *dev)
|
|||||||
void
|
void
|
||||||
mo_disk_unload(mo_t *dev)
|
mo_disk_unload(mo_t *dev)
|
||||||
{
|
{
|
||||||
if (dev->drv->fp) {
|
if (dev->drv && dev->drv->fp) {
|
||||||
fclose(dev->drv->fp);
|
fclose(dev->drv->fp);
|
||||||
dev->drv->fp = NULL;
|
dev->drv->fp = NULL;
|
||||||
}
|
}
|
||||||
@@ -412,7 +417,7 @@ mo_disk_unload(mo_t *dev)
|
|||||||
void
|
void
|
||||||
mo_disk_close(mo_t *dev)
|
mo_disk_close(mo_t *dev)
|
||||||
{
|
{
|
||||||
if (dev->drv->fp) {
|
if (dev->drv && dev->drv->fp) {
|
||||||
mo_disk_unload(dev);
|
mo_disk_unload(dev);
|
||||||
|
|
||||||
memcpy(dev->drv->prev_image_path, dev->drv->image_path, sizeof(dev->drv->prev_image_path));
|
memcpy(dev->drv->prev_image_path, dev->drv->image_path, sizeof(dev->drv->prev_image_path));
|
||||||
|
@@ -485,6 +485,11 @@ zip_load(zip_t *dev, char *fn)
|
|||||||
{
|
{
|
||||||
int size = 0;
|
int size = 0;
|
||||||
|
|
||||||
|
if (!dev->drv) {
|
||||||
|
zip_eject(dev->id);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
dev->drv->fp = plat_fopen(fn, dev->drv->read_only ? "rb" : "rb+");
|
dev->drv->fp = plat_fopen(fn, dev->drv->read_only ? "rb" : "rb+");
|
||||||
if (!dev->drv->fp) {
|
if (!dev->drv->fp) {
|
||||||
if (!dev->drv->read_only) {
|
if (!dev->drv->read_only) {
|
||||||
@@ -548,7 +553,7 @@ zip_disk_reload(zip_t *dev)
|
|||||||
void
|
void
|
||||||
zip_disk_unload(zip_t *dev)
|
zip_disk_unload(zip_t *dev)
|
||||||
{
|
{
|
||||||
if (dev->drv->fp) {
|
if (dev->drv && dev->drv->fp) {
|
||||||
fclose(dev->drv->fp);
|
fclose(dev->drv->fp);
|
||||||
dev->drv->fp = NULL;
|
dev->drv->fp = NULL;
|
||||||
}
|
}
|
||||||
@@ -557,7 +562,7 @@ zip_disk_unload(zip_t *dev)
|
|||||||
void
|
void
|
||||||
zip_disk_close(zip_t *dev)
|
zip_disk_close(zip_t *dev)
|
||||||
{
|
{
|
||||||
if (dev->drv->fp) {
|
if (dev->drv && dev->drv->fp) {
|
||||||
zip_disk_unload(dev);
|
zip_disk_unload(dev);
|
||||||
|
|
||||||
memcpy(dev->drv->prev_image_path, dev->drv->image_path, sizeof(dev->drv->prev_image_path));
|
memcpy(dev->drv->prev_image_path, dev->drv->image_path, sizeof(dev->drv->prev_image_path));
|
||||||
|
@@ -160,7 +160,7 @@ cmdfifo_get(voodoo_t *voodoo)
|
|||||||
uint32_t val;
|
uint32_t val;
|
||||||
|
|
||||||
if (!voodoo->cmdfifo_in_sub) {
|
if (!voodoo->cmdfifo_in_sub) {
|
||||||
while (voodoo->cmdfifo_depth_rd == voodoo->cmdfifo_depth_wr) {
|
while (voodoo->fifo_thread_run && (voodoo->cmdfifo_depth_rd == voodoo->cmdfifo_depth_wr)) {
|
||||||
thread_wait_event(voodoo->wake_fifo_thread, -1);
|
thread_wait_event(voodoo->wake_fifo_thread, -1);
|
||||||
thread_reset_event(voodoo->wake_fifo_thread);
|
thread_reset_event(voodoo->wake_fifo_thread);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user