diff options
Diffstat (limited to 'src/cache')
| -rw-r--r-- | src/cache/handle.c | 5 | ||||
| -rw-r--r-- | src/cache/handle.h | 1 | ||||
| -rw-r--r-- | src/cache/threaded_waits.c | 7 | ||||
| -rw-r--r-- | src/cache/threaded_waits.h | 1 |
4 files changed, 14 insertions, 0 deletions
diff --git a/src/cache/handle.c b/src/cache/handle.c index 206738e..dddf172 100644 --- a/src/cache/handle.c +++ b/src/cache/handle.c @@ -97,3 +97,8 @@ void cch_handle_disable(struct cch_handle *handle) { cch_threaded_wait_disable(&handle->wait); } + +void cch_handle_enable(struct cch_handle *handle) +{ + cch_threaded_wait_enable(&handle->wait); +} diff --git a/src/cache/handle.h b/src/cache/handle.h index fc84109..007e04d 100644 --- a/src/cache/handle.h +++ b/src/cache/handle.h @@ -18,3 +18,4 @@ s32 cch_handle_read(struct cch_handle *handle, u8 *buf, s32 size); off_t cch_handle_seek(struct cch_handle *handle, off_t offset, s32 whence); bool cch_handle_can_seek(struct cch_handle *handle); void cch_handle_disable(struct cch_handle *handle); +void cch_handle_enable(struct cch_handle *handle); diff --git a/src/cache/threaded_waits.c b/src/cache/threaded_waits.c index 3bf67eb..5990783 100644 --- a/src/cache/threaded_waits.c +++ b/src/cache/threaded_waits.c @@ -76,6 +76,13 @@ void cch_threaded_wait_disable(struct cch_handler_wait *wait) nn_mutex_unlock(&wait->mutex); } +void cch_threaded_wait_enable(struct cch_handler_wait *wait) +{ + nn_mutex_lock(&wait->mutex); + wait->disabled = false; + nn_mutex_unlock(&wait->mutex); +} + void cch_threaded_waits_disable_all(struct cch_handler *handler) { nn_mutex_lock(&handler->mutex); diff --git a/src/cache/threaded_waits.h b/src/cache/threaded_waits.h index ee0838d..f8c05a2 100644 --- a/src/cache/threaded_waits.h +++ b/src/cache/threaded_waits.h @@ -9,6 +9,7 @@ void cch_threaded_waits_init(struct cch_handler *handler); bool cch_threaded_wait_for_range(struct cch_handler *handler, struct cch_backing *backing, struct cch_handler_wait *wait); void cch_threaded_waits_signal_any(struct cch_handler *handler); void cch_threaded_wait_disable(struct cch_handler_wait *wait); +void cch_threaded_wait_enable(struct cch_handler_wait *wait); void cch_threaded_waits_disable_all(struct cch_handler *handler); void cch_threaded_waits_evaluate(struct cch_handler *handler, struct cch_backing *backing); void cch_threaded_waits_close(struct cch_handler *handler); |