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()
118 if (!FSi_IsEventCommand(command) && (arc != NULL)) 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()
366 q = arc->list; in FSi_NextCommand()
377 if (((arc->flag & FS_ARCHIVE_FLAG_SUSPENDING) == 0) && in FSi_NextCommand()
378 ((arc->flag & FS_ARCHIVE_FLAG_SUSPEND) == 0) && arc->list) in FSi_NextCommand()
381 const BOOL is_started = owner && ((arc->flag & FS_ARCHIVE_FLAG_RUNNING) == 0); in FSi_NextCommand()
384 arc->flag |= FS_ARCHIVE_FLAG_RUNNING; in FSi_NextCommand()
389 (void)FSi_InvokeCommand(arc->list, FS_COMMAND_ACTIVATE); in FSi_NextCommand()
395 next = arc->list; in FSi_NextCommand()
412 if ((arc->flag & FS_ARCHIVE_FLAG_RUNNING) != 0) in FSi_NextCommand()
416 tmp.arc = arc; in FSi_NextCommand()
417 arc->flag &= ~FS_ARCHIVE_FLAG_RUNNING; in FSi_NextCommand()
421 if ((arc->flag & FS_ARCHIVE_FLAG_SUSPENDING) != 0) in FSi_NextCommand()
423 arc->flag &= ~FS_ARCHIVE_FLAG_SUSPENDING; in FSi_NextCommand()
424 arc->flag |= FS_ARCHIVE_FLAG_SUSPEND; in FSi_NextCommand()
425 OS_WakeupThread(&arc->queue); in FSi_NextCommand()
451 FSArchive * const arc = file->arc; in FSi_ExecuteAsyncCommand() local
477 file = FSi_NextCommand(arc, TRUE); in FSi_ExecuteAsyncCommand()
498 FSArchive * const arc = file->arc; in FSi_ExecuteSyncCommand() local
503 file = FSi_NextCommand(arc, TRUE); in FSi_ExecuteSyncCommand()
526 FSArchive * const arc = file->arc; in FSi_SendCommand() local
533 if (!arc) in FSi_SendCommand()
553 if ((arc->flag & FS_ARCHIVE_FLAG_UNLOADING) != 0) in FSi_SendCommand()
560 for (pp = &arc->list; *pp; pp = &(*pp)->next) in FSi_SendCommand()
565 owner = (arc->list == file) && ((arc->flag & FS_ARCHIVE_FLAG_RUNNING) == 0); in FSi_SendCommand()
572 FSFile *next = FSi_NextCommand(arc, owner); in FSi_SendCommand()
629 FSArchive *arc = arc_list; in FS_FindArchive() local
630 for (; arc; arc = arc->next) in FS_FindArchive()
632 if (FS_IsArchiveLoaded(arc)) in FS_FindArchive()
634 const char *arcname = FS_GetArchiveName(arc); in FS_FindArchive()
642 return arc; in FS_FindArchive()
659 FSArchive *arc = arc_list; in FS_GetArchiveResultCode() local
660 while (arc && (arc != (const FSArchive *)path_or_archive)) in FS_GetArchiveResultCode()
662 arc = arc->next; in FS_GetArchiveResultCode()
664 if (!arc) in FS_GetArchiveResultCode()
666 arc = FS_NormalizePath((const char *)path_or_archive, NULL, NULL); in FS_GetArchiveResultCode()
669 return arc ? arc->result : FS_RESULT_ERROR; in FS_GetArchiveResultCode()
698 FSArchive *arc = NULL; in FS_SetCurrentDirectory() local
706 arc = FS_NormalizePath(path, &baseid, relpath); in FS_SetCurrentDirectory()
707 if (arc) in FS_SetCurrentDirectory()
710 current_dir_pos.arc = arc; in FS_SetCurrentDirectory()
716 if (arc->vtbl->FindPath != NULL) in FS_SetCurrentDirectory()
721 dir->arc = arc; in FS_SetCurrentDirectory()
781 FSArchive *arc = NULL; in FS_NormalizePath() local
786 if (current_dir_pos.arc == NULL) in FS_NormalizePath()
788 current_dir_pos.arc = arc_list; in FS_NormalizePath()
797 arc = current_dir_pos.arc; in FS_NormalizePath()
813 arc = current_dir_pos.arc; in FS_NormalizePath()
834 arc = FS_FindArchive(path, i); in FS_NormalizePath()
835 if (!arc) in FS_NormalizePath()
904 return stickyFailure ? NULL : arc; in FS_NormalizePath()
1042 if (current_dir_pos.arc == p_arc) in FS_ReleaseArchiveName()
1044 current_dir_pos.arc = NULL; in FS_ReleaseArchiveName()
1059 const char *FS_GetArchiveName(const FSArchive *arc) in FS_GetArchiveName() argument
1062 return (arc->name.ptr[3] != '\0') ? (const char *)arc->name.pack : arc->name.ptr; in FS_GetArchiveName()
1064 return arc->name.ptr; in FS_GetArchiveName()
1081 BOOL FS_MountArchive(FSArchive *arc, void *userdata, in FS_MountArchive() argument
1086 SDK_NULL_ASSERT(arc); in FS_MountArchive()
1087 SDK_ASSERT(!FS_IsArchiveLoaded(arc)); in FS_MountArchive()
1089 arc->userdata = userdata; in FS_MountArchive()
1090 arc->vtbl = vtbl; in FS_MountArchive()
1095 tmp->arc = arc; in FS_MountArchive()
1098 arc->flag |= FS_ARCHIVE_FLAG_LOADED; in FS_MountArchive()
1111 BOOL FS_UnmountArchive(FSArchive *arc) in FS_UnmountArchive() argument
1114 SDK_NULL_ASSERT(arc); in FS_UnmountArchive()
1119 if (FS_IsArchiveLoaded(arc)) in FS_UnmountArchive()
1123 BOOL bak_state = FS_SuspendArchive(arc); in FS_UnmountArchive()
1124 FSFile *file = arc->list; in FS_UnmountArchive()
1125 arc->flag |= FS_ARCHIVE_FLAG_UNLOADING; in FS_UnmountArchive()
1132 arc->list = NULL; in FS_UnmountArchive()
1135 (void)FS_ResumeArchive(arc); in FS_UnmountArchive()
1142 tmp->arc = arc; in FS_UnmountArchive()
1145 arc->flag &= ~(FS_ARCHIVE_FLAG_CANCELING | in FS_UnmountArchive()
1200 BOOL FS_ResumeArchive(FSArchive *arc) in FS_ResumeArchive() argument
1204 SDK_NULL_ASSERT(arc); in FS_ResumeArchive()
1207 retval = !FS_IsArchiveSuspended(arc); in FS_ResumeArchive()
1210 arc->flag &= ~FS_ARCHIVE_FLAG_SUSPEND; in FS_ResumeArchive()
1216 file = FSi_NextCommand(arc, TRUE); in FS_ResumeArchive()
1237 void FS_NotifyArchiveAsyncEnd(FSArchive *arc, FSResult ret) in FS_NotifyArchiveAsyncEnd() argument
1239 FSFile *file = arc->list; in FS_NotifyArchiveAsyncEnd()
1251 file = FSi_NextCommand(arc, TRUE); in FS_NotifyArchiveAsyncEnd()