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 = owner && ((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
528 if (!arc) in FSi_SendCommand()
548 if ((arc->flag & FS_ARCHIVE_FLAG_UNLOADING) != 0) in FSi_SendCommand()
555 for (pp = &arc->list; *pp; pp = &(*pp)->next) in FSi_SendCommand()
560 owner = (arc->list == file) && ((arc->flag & FS_ARCHIVE_FLAG_RUNNING) == 0); in FSi_SendCommand()
567 FSFile *next = FSi_NextCommand(arc, owner); in FSi_SendCommand()
624 FSArchive *arc = arc_list; in FS_FindArchive() local
625 for (; arc; arc = arc->next) in FS_FindArchive()
627 if (FS_IsArchiveLoaded(arc)) in FS_FindArchive()
629 const char *arcname = FS_GetArchiveName(arc); in FS_FindArchive()
637 return arc; in FS_FindArchive()
654 FSArchive *arc = arc_list; in FS_GetArchiveResultCode() local
655 while (arc && (arc != (const FSArchive *)path_or_archive)) in FS_GetArchiveResultCode()
657 arc = arc->next; in FS_GetArchiveResultCode()
659 if (!arc) in FS_GetArchiveResultCode()
661 arc = FS_NormalizePath((const char *)path_or_archive, NULL, NULL); in FS_GetArchiveResultCode()
664 return arc ? arc->result : FS_RESULT_ERROR; in FS_GetArchiveResultCode()
693 FSArchive *arc = NULL; in FS_SetCurrentDirectory() local
701 arc = FS_NormalizePath(path, &baseid, relpath); in FS_SetCurrentDirectory()
702 if (arc) in FS_SetCurrentDirectory()
705 current_dir_pos.arc = arc; in FS_SetCurrentDirectory()
711 if (arc->vtbl->FindPath != NULL) in FS_SetCurrentDirectory()
716 dir->arc = arc; in FS_SetCurrentDirectory()
776 FSArchive *arc = NULL; in FS_NormalizePath() local
781 if (current_dir_pos.arc == NULL) in FS_NormalizePath()
783 current_dir_pos.arc = arc_list; in FS_NormalizePath()
792 arc = current_dir_pos.arc; in FS_NormalizePath()
808 arc = current_dir_pos.arc; in FS_NormalizePath()
829 arc = FS_FindArchive(path, i); in FS_NormalizePath()
830 if (!arc) in FS_NormalizePath()
899 return stickyFailure ? NULL : arc; in FS_NormalizePath()
1037 if (current_dir_pos.arc == p_arc) in FS_ReleaseArchiveName()
1039 current_dir_pos.arc = NULL; in FS_ReleaseArchiveName()
1054 const char *FS_GetArchiveName(const FSArchive *arc) in FS_GetArchiveName() argument
1057 return (arc->name.ptr[3] != '\0') ? (const char *)arc->name.pack : arc->name.ptr; in FS_GetArchiveName()
1059 return arc->name.ptr; in FS_GetArchiveName()
1076 BOOL FS_MountArchive(FSArchive *arc, void *userdata, in FS_MountArchive() argument
1081 SDK_NULL_ASSERT(arc); in FS_MountArchive()
1082 SDK_ASSERT(!FS_IsArchiveLoaded(arc)); in FS_MountArchive()
1084 arc->userdata = userdata; in FS_MountArchive()
1085 arc->vtbl = vtbl; in FS_MountArchive()
1090 tmp->arc = arc; in FS_MountArchive()
1093 arc->flag |= FS_ARCHIVE_FLAG_LOADED; in FS_MountArchive()
1106 BOOL FS_UnmountArchive(FSArchive *arc) in FS_UnmountArchive() argument
1109 SDK_NULL_ASSERT(arc); in FS_UnmountArchive()
1114 if (FS_IsArchiveLoaded(arc)) in FS_UnmountArchive()
1118 BOOL bak_state = FS_SuspendArchive(arc); in FS_UnmountArchive()
1119 FSFile *file = arc->list; in FS_UnmountArchive()
1120 arc->flag |= FS_ARCHIVE_FLAG_UNLOADING; in FS_UnmountArchive()
1127 arc->list = NULL; in FS_UnmountArchive()
1130 (void)FS_ResumeArchive(arc); in FS_UnmountArchive()
1137 tmp->arc = arc; in FS_UnmountArchive()
1140 arc->flag &= ~(FS_ARCHIVE_FLAG_CANCELING | in FS_UnmountArchive()
1195 BOOL FS_ResumeArchive(FSArchive *arc) in FS_ResumeArchive() argument
1199 SDK_NULL_ASSERT(arc); in FS_ResumeArchive()
1202 retval = !FS_IsArchiveSuspended(arc); in FS_ResumeArchive()
1205 arc->flag &= ~FS_ARCHIVE_FLAG_SUSPEND; in FS_ResumeArchive()
1211 file = FSi_NextCommand(arc, TRUE); in FS_ResumeArchive()
1232 void FS_NotifyArchiveAsyncEnd(FSArchive *arc, FSResult ret) in FS_NotifyArchiveAsyncEnd() argument
1234 FSFile *file = arc->list; in FS_NotifyArchiveAsyncEnd()
1246 file = FSi_NextCommand(arc, TRUE); in FS_NotifyArchiveAsyncEnd()