public FileHandle Open(string FileName, HleIoFlags Flags, SceMode Mode) { var PathInfo = HleIoManager.ParsePath(FileName); PathInfo.HleIoDrvFileArg.HleIoDriver.IoOpen(PathInfo.HleIoDrvFileArg, PathInfo.LocalPath, Flags, Mode); //return new FileHandle(this.HleIoManager, PathInfo.HleIoDrvFileArg); return new FileHandle(PathInfo.HleIoDrvFileArg); }
public int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { var PspIoDrvFileArgPartition = Alloc(new PspIoDrvFileArg() { fs_num = 0, drv = PspMemory.PointerToPspAddressUnsafe(PspIoDrv), }); var FileNamePartition = Alloc(FileName); try { //Console.Error.WriteLineColored(ConsoleColor.Blue, "{0}", FileName); //Console.Error.WriteLineColored(ConsoleColor.Blue, "{0}", Flags); //Console.Error.WriteLineColored(ConsoleColor.Blue, "{0}", (int)Flags); return((int)HleInterop.ExecuteFunctionNow( PspIoDrvFuncs->IoOpen, PspIoDrvFileArgPartition.Low, FileNamePartition.Low, Flags, Mode )); } finally { FileNamePartition.DeallocateFromParent(); } }
public int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { //HleInterop.ExecuteFunctionNow(PspIoDrvFuncs->IoOpen); ConsoleUtils.SaveRestoreConsoleColor(ConsoleColor.Red, () => { Console.WriteLine("Not Implemented: GuestHleIoDriver.IoOpen"); }); //throw new NotImplementedException(); return 0; }
public FileHandle Open(string fileName, HleIoFlags flags, SceMode mode) { var pathInfo = _hleIoManager.ParsePath(fileName); pathInfo.HleIoDrvFileArg.HleIoDriver.IoOpen(pathInfo.HleIoDrvFileArg, pathInfo.LocalPath, flags, mode); //return new FileHandle(this.HleIoManager, PathInfo.HleIoDrvFileArg); return(new FileHandle(pathInfo.HleIoDrvFileArg)); }
public int sceIoOpenAsync(string FileName, HleIoFlags Flags, SceMode Mode) { var FileHandle = sceIoOpen(FileName, Flags, Mode); var File = HleState.HleIoManager.HleIoDrvFileArgPool.Get(FileHandle); File.AsyncLastResult = FileHandle; return(FileHandle); }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { try { HleIoDrvFileArg.FileArgument = ZipArchive[FileName].OpenUncompressedStream(); return(0); } catch (KeyNotFoundException) { throw new FileNotFoundException("Can't find file '" + FileName + "' on ZipFile"); } }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { var RealFileName = GetFullNormalizedAndSanitizedPath(FileName); FileMode FileMode = FileMode.Open; FileAccess FileAccess = 0; bool Append = Flags.HasFlag(HleIoFlags.Append); bool Read = Flags.HasFlag(HleIoFlags.Read); bool Write = Flags.HasFlag(HleIoFlags.Write); bool Truncate = Flags.HasFlag(HleIoFlags.Truncate); bool Create = Flags.HasFlag(HleIoFlags.Create); if (Read) { FileAccess |= FileAccess.Read; } if (Write) { FileAccess |= FileAccess.Write; } if (Append) { FileMode = FileMode.OpenOrCreate; } else if (Create) { FileMode = FileMode.Create; } else if (Truncate) { FileMode = FileMode.Truncate; } //if (Append) FileMode |= FileMode.Open; var Stream = File.Open(RealFileName, FileMode, FileAccess, FileShare.Delete | FileShare.ReadWrite); HleIoDrvFileArg.FileArgument = Stream; if (Append) { Stream.Position = Stream.Length; } return(0); }
public SceUID _sceIoOpen(string FileName, HleIoFlags Flags, SceMode Mode, bool Async) { var Info = HleIoManager.ParsePath(FileName); try { ConsoleUtils.SaveRestoreConsoleColor(ConsoleColor.DarkGreen, () => { Console.WriteLine("Opened ({0}): '{1}'", Async ? "Async" : "NO Async", FileName); }); Info.HleIoDrvFileArg.HleIoDriver.IoOpen(Info.HleIoDrvFileArg, Info.LocalPath, Flags, Mode); Info.HleIoDrvFileArg.FullFileName = FileName; var Uid = HleIoManager.HleIoDrvFileArgPool.Create(Info.HleIoDrvFileArg); if (Async) { Info.HleIoDrvFileArg.AsyncLastResult = (long)Uid; } return(Uid); } catch (IOException IOException) { Logger.Error("IOException: {0}", IOException); } catch (InvalidOperationException InvalidOperationException) { Logger.Error("InvalidOperationException: {0}", InvalidOperationException); } finally { if (!Async) { _DelayIo(IoDelayType.Open); } } if (Async) { Info.HleIoDrvFileArg.AsyncLastResult = (long)SceKernelErrors.ERROR_ERRNO_FILE_NOT_FOUND; return(HleIoManager.HleIoDrvFileArgPool.Create(Info.HleIoDrvFileArg)); } else { //Console.Error.WriteLine("Didn't find file '{0}'", FileName); throw new SceKernelException(SceKernelErrors.ERROR_ERRNO_FILE_NOT_FOUND, $"Didn't find file '{FileName}'"); } }
public int sceIoOpen(string FileName, HleIoFlags Flags, SceMode Mode) { var Info = HleState.HleIoManager.ParsePath(FileName); try { Info.HleIoDrvFileArg.HleIoDriver.IoOpen(Info.HleIoDrvFileArg, Info.LocalPath, Flags, Mode); return(HleState.HleIoManager.HleIoDrvFileArgPool.Create(Info.HleIoDrvFileArg)); } catch (DirectoryNotFoundException) { } catch (FileNotFoundException) { } Console.Error.WriteLine("Didn't find file '{0}'", FileName); return(unchecked ((int)SceKernelErrors.ERROR_ERRNO_FILE_NOT_FOUND)); }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { var RealFileName = GetFullNormalizedAndSanitizedPath(FileName); FileMode FileMode = FileMode.Open; FileAccess FileAccess = 0; bool Append = (Flags & HleIoFlags.Append) != 0; bool Read = (Flags & HleIoFlags.Read) != 0; bool Write = (Flags & HleIoFlags.Write) != 0; bool Truncate = (Flags & HleIoFlags.Truncate) != 0; bool Create = (Flags & HleIoFlags.Create) != 0; if (Read) FileAccess |= FileAccess.Read; if (Write) FileAccess |= FileAccess.Write; if (Append) { FileMode = FileMode.OpenOrCreate; } else if (Create) { FileMode = FileMode.Create; } else if (Truncate) { FileMode = FileMode.Truncate; } //if (Append) FileMode |= FileMode.Open; var Stream = File.Open(RealFileName, FileMode, FileAccess, FileShare.Delete | FileShare.ReadWrite); HleIoDrvFileArg.FileArgument = Stream; if (Append) { Stream.Position = Stream.Length; } return 0; }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { // disc0:/sce_lbn0x5fa0_size0x1428 //Console.WriteLine(":::::::::" + FileName); if (FileName.StartsWith("/sce_")) { int Sector = 0, Size = 0; var Parts = FileName.Substring(5).Split('_'); foreach (var Part in Parts) { if (Part.StartsWith("lbn")) { var Number = Part.Substring(3); Sector = NumberUtils.ParseIntegerConstant(Number); } else if (Part.StartsWith("size")) { var Number = Part.Substring(4); Size = NumberUtils.ParseIntegerConstant(Number); } else { throw(new NotImplementedException("Can't handle special filename '" + FileName + "' part '" + Part + "'")); } //Console.WriteLine(Part); } //Console.WriteLine("SPECIAL({0}, {1})", lbn, size); //Console.WriteLine("SPECIAL!!!!!!!!!!!!!!!!!!!!"); HleIoDrvFileArg.FileArgument = Iso.Stream.SliceWithLength(Sector * IsoFile.SectorSize, Size); return(0); } //Console.WriteLine(FileName); var IsoNode = Iso.Root.Locate(FileName); HleIoDrvFileArg.FileArgument = IsoNode.Open(); return(0); }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { var RealFileName = GetFullNormalizedAndSanitizedPath(FileName); FileMode FileMode = FileMode.Open; FileAccess FileAccess = 0; bool Append = (Flags & HleIoFlags.Append) != 0; bool Read = (Flags & HleIoFlags.Read) != 0; bool Write = (Flags & HleIoFlags.Write) != 0; bool Truncate = (Flags & HleIoFlags.Truncate) != 0; bool Create = (Flags & HleIoFlags.Create) != 0; if (Append) { FileMode = FileMode.Append; } else if (Create) { FileMode = FileMode.Create; } else if (Truncate) { FileMode = FileMode.Truncate; } if (Read) { FileAccess |= FileAccess.Read; } if (Write) { FileAccess |= FileAccess.Write; } //if (Append) FileMode |= FileMode.Open; HleIoDrvFileArg.FileArgument = File.Open(RealFileName, FileMode, FileAccess, FileShare.Read); return(0); }
public SceUID sceIoOpen(string FileName, HleIoFlags Flags, SceMode Mode) { return(_sceIoOpen(FileName, Flags, Mode, Async: false)); }
public virtual int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { return(ParentDriver.IoOpen(HleIoDrvFileArg, FileName, Flags, Mode)); }
public int sceIoReopen(string NewFileName, HleIoFlags SceIoFlags, SceMode SceMode, SceUID FileDescriptor) { //throw(new NotImplementedException()); return(0); }
public SceUID sceIoOpenAsync(string FileName, HleIoFlags Flags, SceMode Mode) { var FileId = (SceUID)_sceIoOpen(FileName, Flags, Mode, Async: true); var File = HleIoManager.HleIoDrvFileArgPool.Get(FileId); File.AsyncLastResult = (long)FileId; _DelayIo(IoDelayType.Open); //PspRtc.slee return FileId; }
public SceUID sceIoOpen(string FileName, HleIoFlags Flags, SceMode Mode) { return _sceIoOpen(FileName, Flags, Mode, Async: false); }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { throw new NotImplementedException(); }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { ReLocatePathHandle(ref HleIoDrvFileArg, ref FileName); return HleIoDrvFileArg.HleIoDriver.IoOpen(HleIoDrvFileArg, FileName, Flags, Mode); }
public StdHandle sceKernelStderrReopen(string File, HleIoFlags Flags, Vfs.SceMode Mode) { StdError = (StdHandle)IoFileMgrForUser.sceIoOpen(File, Flags, Mode); return StdError; }
public SceUID sceIoOpenAsync(string FileName, HleIoFlags Flags, SceMode Mode) { return (SceUID)_sceIoOpen(FileName, Flags, Mode, Async: true); }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { // Ignore the filename in "umd0:xxx". // Using umd0: is always opening the whole UMD in sector block mode, // ignoring the file name specified after the colon. if (HleIoDrvFileArg.DriverName.ToLower().StartsWith("umd")) { FileName = ""; } // disc0:/sce_lbn0x5fa0_size0x1428 //Console.WriteLine(":::::::::" + FileName); if (FileName == "") { HleIoDrvFileArg.FileArgument = new IsoFileArgument() { IsoNode = null, StartSector = 0, Size = Iso.Stream.Length, Stream = Iso.Stream, }; return 0; } if (FileName.StartsWith("/sce_")) { int Sector = 0, Size = 0; var Parts = FileName.Substring(5).Split('_'); foreach (var Part in Parts) { if (Part.StartsWith("lbn")) { var Number = Part.Substring(3); Sector = NumberUtils.ParseIntegerConstant(Number, 16); } else if (Part.StartsWith("size")) { var Number = Part.Substring(4); Size = NumberUtils.ParseIntegerConstant(Number, 16); } else { throw(new NotImplementedException("Can't handle special filename '" + FileName + "' part '" + Part + "'")); } //Console.WriteLine(Part); } //Console.WriteLine("SPECIAL({0}, {1})", lbn, size); //Console.WriteLine("SPECIAL!!!!!!!!!!!!!!!!!!!!"); HleIoDrvFileArg.FileArgument = new IsoFileArgument() { IsoNode = null, StartSector = Sector, Size = Size, Stream = Iso.Stream.SliceWithLength(Sector * IsoFile.SectorSize, Size), }; return 0; } //Console.WriteLine(FileName); var IsoNode = Iso.Root.Locate(FileName); ; HleIoDrvFileArg.FileArgument = new IsoFileArgument() { IsoNode = IsoNode, StartSector = IsoNode.DirectoryRecord.Extent, Size = IsoNode.DirectoryRecord.Size, Stream = IsoNode.Open(), }; return 0; }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { try { HleIoDrvFileArg.FileArgument = ZipArchive[FileName].OpenUncompressedStream(); return 0; } catch (KeyNotFoundException) { throw(new FileNotFoundException("Can't find file '" + FileName + "' on ZipFile")); } }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { ReLocatePathHandle(ref HleIoDrvFileArg, ref FileName); return(HleIoDrvFileArg.HleIoDriver.IoOpen(HleIoDrvFileArg, FileName, Flags, Mode)); }
public int sceIoReopen(string NewFileName, HleIoFlags SceIoFlags, SceMode SceMode, SceUID FileDescriptor) { throw(new NotImplementedException()); }
public int sceIoOpen(string FileName, HleIoFlags Flags, SceMode Mode) { var Info = HleState.HleIoManager.ParsePath(FileName); try { Info.HleIoDrvFileArg.HleIoDriver.IoOpen(Info.HleIoDrvFileArg, Info.LocalPath, Flags, Mode); return HleState.HleIoManager.HleIoDrvFileArgPool.Create(Info.HleIoDrvFileArg); } catch (DirectoryNotFoundException) { } catch (FileNotFoundException) { } Console.Error.WriteLine("Didn't find file '{0}'", FileName); return unchecked((int)SceKernelErrors.ERROR_ERRNO_FILE_NOT_FOUND); }
public SceUID sceIoOpenAsync(string FileName, HleIoFlags Flags, SceMode Mode) { return((SceUID)_sceIoOpen(FileName, Flags, Mode, Async: true)); }
public virtual int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { return ParentDriver.IoOpen(HleIoDrvFileArg, FileName, Flags, Mode); }
public StdHandle sceKernelStdoutReopen(string File, HleIoFlags Flags, Vfs.SceMode Mode) { StdOut = (StdHandle)IoFileMgrForUser.sceIoOpen(File, Flags, Mode); //Console.WriteLine("StdOut: {0}", StdOut); return StdOut; }
public int sceIoOpenAsync(string FileName, HleIoFlags Flags, SceMode Mode) { var FileHandle = sceIoOpen(FileName, Flags, Mode); var File = HleState.HleIoManager.HleIoDrvFileArgPool.Get(FileHandle); File.AsyncLastResult = FileHandle; return FileHandle; }
public SceUID _sceIoOpen(string FileName, HleIoFlags Flags, SceMode Mode, bool Async) { try { var Info = HleIoManager.ParsePath(FileName); Console.WriteLine("Opened ({3}) '{0}' with driver '{1}' and local path '{2}' : '{2}'", FileName, Info.HleIoDriver, Info.LocalPath, Async ? "Async" : "NO Async"); Info.HleIoDrvFileArg.HleIoDriver.IoOpen(Info.HleIoDrvFileArg, Info.LocalPath, Flags, Mode); Info.HleIoDrvFileArg.FullFileName = FileName; return HleIoManager.HleIoDrvFileArgPool.Create(Info.HleIoDrvFileArg); } catch (DirectoryNotFoundException) { } catch (FileNotFoundException) { } catch (InvalidOperationException InvalidOperationException) { Console.Error.WriteLine(InvalidOperationException); } catch (IOException IOException) { Console.Error.WriteLine(IOException); } finally { _DelayIo(IoDelayType.Open); } //Console.Error.WriteLine("Didn't find file '{0}'", FileName); throw (new SceKernelException(SceKernelErrors.ERROR_ERRNO_FILE_NOT_FOUND, String.Format("Didn't find file '{0}'", FileName))); }
public StdHandle sceKernelStdoutReopen(string File, HleIoFlags Flags, Vfs.SceMode Mode) { StdOut = (StdHandle)IoFileMgrForUser.sceIoOpen(File, Flags, Mode); //Console.WriteLine("StdOut: {0}", StdOut); return(StdOut); }
public SceUID _sceIoOpen(string FileName, HleIoFlags Flags, SceMode Mode, bool Async) { var Info = HleIoManager.ParsePath(FileName); try { Console.WriteLine("Opened ({3}) '{0}' with driver '{1}' and local path '{2}' : '{2}'", FileName, Info.HleIoDriver, Info.LocalPath, Async ? "Async" : "NO Async"); Info.HleIoDrvFileArg.HleIoDriver.IoOpen(Info.HleIoDrvFileArg, Info.LocalPath, Flags, Mode); Info.HleIoDrvFileArg.FullFileName = FileName; var Uid = HleIoManager.HleIoDrvFileArgPool.Create(Info.HleIoDrvFileArg); if (Async) { Info.HleIoDrvFileArg.AsyncLastResult = (long)Uid; } return Uid; } catch (IOException IOException) { Logger.Notice("IOException: {0}", IOException); } catch (InvalidOperationException InvalidOperationException) { Logger.Warning("InvalidOperationException: {0}", InvalidOperationException); } finally { if (!Async) { _DelayIo(IoDelayType.Open); } } if (Async) { Info.HleIoDrvFileArg.AsyncLastResult = (long)SceKernelErrors.ERROR_ERRNO_FILE_NOT_FOUND; return HleIoManager.HleIoDrvFileArgPool.Create(Info.HleIoDrvFileArg); } else { //Console.Error.WriteLine("Didn't find file '{0}'", FileName); throw (new SceKernelException(SceKernelErrors.ERROR_ERRNO_FILE_NOT_FOUND, String.Format("Didn't find file '{0}'", FileName))); } }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { // disc0:/sce_lbn0x5fa0_size0x1428 //Console.WriteLine(":::::::::" + FileName); if (FileName.StartsWith("/sce_")) { int Sector = 0, Size = 0; var Parts = FileName.Substring(5).Split('_'); foreach (var Part in Parts) { if (Part.StartsWith("lbn")) { var Number = Part.Substring(3); Sector = NumberUtils.ParseIntegerConstant(Number); } else if (Part.StartsWith("size")) { var Number = Part.Substring(4); Size = NumberUtils.ParseIntegerConstant(Number); } else { throw(new NotImplementedException("Can't handle special filename '" + FileName + "' part '" + Part + "'")); } //Console.WriteLine(Part); } //Console.WriteLine("SPECIAL({0}, {1})", lbn, size); //Console.WriteLine("SPECIAL!!!!!!!!!!!!!!!!!!!!"); HleIoDrvFileArg.FileArgument = Iso.Stream.SliceWithLength(Sector * IsoFile.SectorSize, Size); return 0; } //Console.WriteLine(FileName); var IsoNode = Iso.Root.Locate(FileName); HleIoDrvFileArg.FileArgument = IsoNode.Open(); return 0; }
public StdHandle sceKernelStderrReopen(string File, HleIoFlags Flags, Vfs.SceMode Mode) { StdError = (StdHandle)IoFileMgrForUser.sceIoOpen(File, Flags, Mode); return(StdError); }
public override int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { //if (Mode) // ... return(base.IoOpen(HleIoDrvFileArg, FileName, Flags, Mode)); }
public override int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { //if (Mode) // ... return base.IoOpen(HleIoDrvFileArg, FileName, Flags, Mode); }
public unsafe int IoOpen(HleIoDrvFileArg HleIoDrvFileArg, string FileName, HleIoFlags Flags, SceMode Mode) { // Ignore the filename in "umd0:xxx". // Using umd0: is always opening the whole UMD in sector block mode, // ignoring the file name specified after the colon. if (HleIoDrvFileArg.DriverName.ToLower().StartsWith("umd")) { FileName = ""; } // disc0:/sce_lbn0x5fa0_size0x1428 //Console.WriteLine(":::::::::" + FileName); if (FileName == "") { HleIoDrvFileArg.FileArgument = new IsoFileArgument() { IsoNode = null, StartSector = 0, Size = Iso.Stream.Length, Stream = Iso.Stream, }; return(0); } if (FileName.StartsWith("/sce_")) { int Sector = 0, Size = 0; var Parts = FileName.Substring(5).Split('_'); foreach (var Part in Parts) { if (Part.StartsWith("lbn")) { var Number = Part.Substring(3); Sector = NumberUtils.ParseIntegerConstant(Number, 16); } else if (Part.StartsWith("size")) { var Number = Part.Substring(4); Size = NumberUtils.ParseIntegerConstant(Number, 16); } else { throw(new NotImplementedException("Can't handle special filename '" + FileName + "' part '" + Part + "'")); } //Console.WriteLine(Part); } //Console.WriteLine("SPECIAL({0}, {1})", lbn, size); //Console.WriteLine("SPECIAL!!!!!!!!!!!!!!!!!!!!"); HleIoDrvFileArg.FileArgument = new IsoFileArgument() { IsoNode = null, StartSector = Sector, Size = Size, Stream = Iso.Stream.SliceWithLength(Sector * IsoFile.SectorSize, Size), }; return(0); } //Console.WriteLine(FileName); var IsoNode = Iso.Root.Locate(FileName); ; HleIoDrvFileArg.FileArgument = new IsoFileArgument() { IsoNode = IsoNode, StartSector = IsoNode.DirectoryRecord.Extent, Size = IsoNode.DirectoryRecord.Size, Stream = IsoNode.Open(), }; return(0); }