Lines Matching refs:arc

101     FSArchive *const arc = file->arc;  in FSi_EndCommand()  local
102 if (arc) in FSi_EndCommand()
104 FSFile **pp = &arc->list; in FSi_EndCommand()
120 arc->command = command; in FSi_EndCommand()
121 arc->result = ret; in FSi_EndCommand()
163 FSArchive * const arc = file->arc; in FSi_InvokeCommand() local
166 const void *(*table) = (const void*)arc->vtbl; in FSi_InvokeCommand()
188 result = arc->vtbl->command(__VA_ARGS__); \ in FSi_InvokeCommand()
195 (void)arc->vtbl->command(__VA_ARGS__); \ in FSi_InvokeCommand()
202 FS_INVOKE_METHOD_(ReadFile, arc, file, arg->buffer, &arg->length); in FSi_InvokeCommand()
205 FS_INVOKE_METHOD_(WriteFile, arc, file, arg->buffer, &arg->length); in FSi_InvokeCommand()
208 FS_INVOKE_METHOD_(SeekDirectory, arc, file, arg->id, arg->position); in FSi_InvokeCommand()
211 FS_INVOKE_METHOD_(ReadDirectory, arc, file, arg->info); in FSi_InvokeCommand()
214 …FS_INVOKE_METHOD_(FindPath, arc, arg->baseid, arg->relpath, &arg->target_id, arg->target_is_direct… in FSi_InvokeCommand()
217 FS_INVOKE_METHOD_(GetPath, arc, file, arg->is_directory, arg->buffer, &arg->length); in FSi_InvokeCommand()
220 FS_INVOKE_METHOD_(OpenFileFast, arc, file, arg->id, arg->mode); in FSi_InvokeCommand()
223 FS_INVOKE_METHOD_(OpenFileDirect, arc, file, arg->top, arg->bottom, &arg->id); in FSi_InvokeCommand()
226 FS_INVOKE_METHOD_(CloseFile, arc, file); in FSi_InvokeCommand()
229 FS_NOTIFY_EVENT_(Activate, arc); in FSi_InvokeCommand()
232 FS_NOTIFY_EVENT_(Idle, arc); in FSi_InvokeCommand()
235 FS_NOTIFY_EVENT_(Suspend, arc); in FSi_InvokeCommand()
238 FS_NOTIFY_EVENT_(Resume, arc); in FSi_InvokeCommand()
241 FS_INVOKE_METHOD_(OpenFile, arc, file, arg->baseid, arg->relpath, arg->mode); in FSi_InvokeCommand()
244 FS_INVOKE_METHOD_(SeekFile, arc, file, &arg->offset, arg->from); in FSi_InvokeCommand()
247 FS_INVOKE_METHOD_(GetFileLength, arc, file, &arg->length); in FSi_InvokeCommand()
250 FS_INVOKE_METHOD_(GetFilePosition, arc, file, &arg->position); in FSi_InvokeCommand()
254 FS_NOTIFY_EVENT_(Mount, arc); in FSi_InvokeCommand()
257 FS_NOTIFY_EVENT_(Unmount, arc); in FSi_InvokeCommand()
260 FS_INVOKE_METHOD_(GetArchiveCaps, arc, &arg->caps); in FSi_InvokeCommand()
263 FS_INVOKE_METHOD_(CreateFile, arc, arg->baseid, arg->relpath, arg->permit); in FSi_InvokeCommand()
266 FS_INVOKE_METHOD_(DeleteFile, arc, arg->baseid, arg->relpath); in FSi_InvokeCommand()
269 …FS_INVOKE_METHOD_(RenameFile, arc, arg->baseid_src, arg->relpath_src, arg->baseid_dst, arg->relpat… in FSi_InvokeCommand()
272 FS_INVOKE_METHOD_(GetPathInfo, arc, arg->baseid, arg->relpath, arg->info); in FSi_InvokeCommand()
275 FS_INVOKE_METHOD_(SetPathInfo, arc, arg->baseid, arg->relpath, arg->info); in FSi_InvokeCommand()
278 FS_INVOKE_METHOD_(CreateDirectory, arc, arg->baseid, arg->relpath, arg->permit); in FSi_InvokeCommand()
281 FS_INVOKE_METHOD_(DeleteDirectory, arc, arg->baseid, arg->relpath); in FSi_InvokeCommand()
284 …FS_INVOKE_METHOD_(RenameDirectory, arc, arg->baseid_src, arg->relpath_src, arg->baseid_dst, arg->r… in FSi_InvokeCommand()
287 FS_INVOKE_METHOD_(GetArchiveResource, arc, arg->resource); in FSi_InvokeCommand()
290 FS_INVOKE_METHOD_(FlushFile, arc, file); in FSi_InvokeCommand()
293 FS_INVOKE_METHOD_(SetFileLength, arc, file, arg->length); in FSi_InvokeCommand()
296 FS_INVOKE_METHOD_(OpenDirectory, arc, file, arg->baseid, arg->relpath, arg->mode); in FSi_InvokeCommand()
299 FS_INVOKE_METHOD_(CloseDirectory, arc, file); in FSi_InvokeCommand()
302 FS_INVOKE_METHOD_(SetSeekCache, arc, file, arg->buf, arg->buf_size); in FSi_InvokeCommand()
319 … OS_TWarning("archive \"%s:\" cannot support command %d.\n", FS_GetArchiveName(arc), command); in FSi_InvokeCommand()
347 static FSFile *FSi_NextCommand(FSArchive *arc, BOOL owner) in FSi_NextCommand() argument
353 if ((arc->flag & FS_ARCHIVE_FLAG_CANCELING) != 0) in FSi_NextCommand()
355 FSFile *p = arc->list; in FSi_NextCommand()
356 arc->flag &= ~FS_ARCHIVE_FLAG_CANCELING; in FSi_NextCommand()
365 q = arc->list; in FSi_NextCommand()
376 if (((arc->flag & FS_ARCHIVE_FLAG_SUSPENDING) == 0) && in FSi_NextCommand()
377 ((arc->flag & FS_ARCHIVE_FLAG_SUSPEND) == 0) && arc->list) in FSi_NextCommand()
380 const BOOL is_started = ((arc->flag & FS_ARCHIVE_FLAG_RUNNING) == 0); in FSi_NextCommand()
383 arc->flag |= FS_ARCHIVE_FLAG_RUNNING; in FSi_NextCommand()
388 (void)FSi_InvokeCommand(arc->list, FS_COMMAND_ACTIVATE); in FSi_NextCommand()
394 next = arc->list; in FSi_NextCommand()
411 if ((arc->flag & FS_ARCHIVE_FLAG_RUNNING) != 0) in FSi_NextCommand()
415 tmp.arc = arc; in FSi_NextCommand()
416 arc->flag &= ~FS_ARCHIVE_FLAG_RUNNING; in FSi_NextCommand()
420 if ((arc->flag & FS_ARCHIVE_FLAG_SUSPENDING) != 0) in FSi_NextCommand()
422 arc->flag &= ~FS_ARCHIVE_FLAG_SUSPENDING; in FSi_NextCommand()
423 arc->flag |= FS_ARCHIVE_FLAG_SUSPEND; in FSi_NextCommand()
424 OS_WakeupThread(&arc->queue); in FSi_NextCommand()
450 FSArchive * const arc = file->arc; in FSi_ExecuteAsyncCommand() local
476 file = FSi_NextCommand(arc, TRUE); in FSi_ExecuteAsyncCommand()
492 FSArchive * const arc = file->arc; in FSi_ExecuteSyncCommand() local
499 file = FSi_NextCommand(arc, TRUE); in FSi_ExecuteSyncCommand()
521 FSArchive * const arc = file->arc; in FSi_SendCommand() local
527 if (!arc) in FSi_SendCommand()
547 if ((arc->flag & FS_ARCHIVE_FLAG_UNLOADING) != 0) in FSi_SendCommand()
554 for (pp = &arc->list; *pp; pp = &(*pp)->next) in FSi_SendCommand()
565 FSFile *next = FSi_NextCommand(arc, FALSE); in FSi_SendCommand()
622 FSArchive *arc = arc_list; in FS_FindArchive() local
623 for (; arc; arc = arc->next) in FS_FindArchive()
625 if (FS_IsArchiveLoaded(arc)) in FS_FindArchive()
627 const char *arcname = FS_GetArchiveName(arc); in FS_FindArchive()
635 return arc; in FS_FindArchive()
652 FSArchive *arc = arc_list; in FS_GetArchiveResultCode() local
653 while (arc && (arc != (const FSArchive *)path_or_archive)) in FS_GetArchiveResultCode()
655 arc = arc->next; in FS_GetArchiveResultCode()
657 if (!arc) in FS_GetArchiveResultCode()
659 arc = FS_NormalizePath((const char *)path_or_archive, NULL, NULL); in FS_GetArchiveResultCode()
662 return arc ? arc->result : FS_RESULT_ERROR; in FS_GetArchiveResultCode()
691 FSArchive *arc = NULL; in FS_SetCurrentDirectory() local
699 arc = FS_NormalizePath(path, &baseid, relpath); in FS_SetCurrentDirectory()
700 if (arc) in FS_SetCurrentDirectory()
703 current_dir_pos.arc = arc; in FS_SetCurrentDirectory()
709 if (arc->vtbl->FindPath != NULL) in FS_SetCurrentDirectory()
714 dir->arc = arc; in FS_SetCurrentDirectory()
774 FSArchive *arc = NULL; in FS_NormalizePath() local
779 if (current_dir_pos.arc == NULL) in FS_NormalizePath()
781 current_dir_pos.arc = arc_list; in FS_NormalizePath()
790 arc = current_dir_pos.arc; in FS_NormalizePath()
806 arc = current_dir_pos.arc; in FS_NormalizePath()
827 arc = FS_FindArchive(path, i); in FS_NormalizePath()
828 if (!arc) in FS_NormalizePath()
897 return stickyFailure ? NULL : arc; in FS_NormalizePath()
1035 if (current_dir_pos.arc == p_arc) in FS_ReleaseArchiveName()
1037 current_dir_pos.arc = NULL; in FS_ReleaseArchiveName()
1052 const char *FS_GetArchiveName(const FSArchive *arc) in FS_GetArchiveName() argument
1055 return (arc->name.ptr[3] != '\0') ? (const char *)arc->name.pack : arc->name.ptr; in FS_GetArchiveName()
1057 return arc->name.ptr; in FS_GetArchiveName()
1074 BOOL FS_MountArchive(FSArchive *arc, void *userdata, in FS_MountArchive() argument
1079 SDK_NULL_ASSERT(arc); in FS_MountArchive()
1080 SDK_ASSERT(!FS_IsArchiveLoaded(arc)); in FS_MountArchive()
1082 arc->userdata = userdata; in FS_MountArchive()
1083 arc->vtbl = vtbl; in FS_MountArchive()
1088 tmp->arc = arc; in FS_MountArchive()
1091 arc->flag |= FS_ARCHIVE_FLAG_LOADED; in FS_MountArchive()
1104 BOOL FS_UnmountArchive(FSArchive *arc) in FS_UnmountArchive() argument
1107 SDK_NULL_ASSERT(arc); in FS_UnmountArchive()
1112 if (FS_IsArchiveLoaded(arc)) in FS_UnmountArchive()
1116 BOOL bak_state = FS_SuspendArchive(arc); in FS_UnmountArchive()
1117 FSFile *file = arc->list; in FS_UnmountArchive()
1118 arc->flag |= FS_ARCHIVE_FLAG_UNLOADING; in FS_UnmountArchive()
1125 arc->list = NULL; in FS_UnmountArchive()
1128 (void)FS_ResumeArchive(arc); in FS_UnmountArchive()
1135 tmp->arc = arc; in FS_UnmountArchive()
1138 arc->flag &= ~(FS_ARCHIVE_FLAG_CANCELING | in FS_UnmountArchive()
1193 BOOL FS_ResumeArchive(FSArchive *arc) in FS_ResumeArchive() argument
1197 SDK_NULL_ASSERT(arc); in FS_ResumeArchive()
1200 retval = !FS_IsArchiveSuspended(arc); in FS_ResumeArchive()
1203 arc->flag &= ~FS_ARCHIVE_FLAG_SUSPEND; in FS_ResumeArchive()
1209 file = FSi_NextCommand(arc, TRUE); in FS_ResumeArchive()
1230 void FS_NotifyArchiveAsyncEnd(FSArchive *arc, FSResult ret) in FS_NotifyArchiveAsyncEnd() argument
1232 FSFile *file = arc->list; in FS_NotifyArchiveAsyncEnd()
1244 file = FSi_NextCommand(arc, TRUE); in FS_NotifyArchiveAsyncEnd()