Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Lars

Pages: [1] 2 3 ... 55
1
Shared folders are for a completely different purpose.
They allow folders on the host to be accessible from the guest. And not the other way around.
I have a download folder (NTFS) under Win10 that I make accessible in the OS/2 guest. That works fine. The OS/2 guest needs to assign a drive letter for this folder. This is exactly what the shared folder support allows to do.

2
Applications / Re: patched PmMerge
« on: June 18, 2021, 07:06:03 pm »
kernel W4, 14.201_a, eCS 2.2 beta, running with 1 core unter Virtualbox:

directly traps with a Ring 0 trap on boot. The trap triggers in DOSCALL1.DLL, but the actual Ring 0 trap happens in PMDD.SYS:

 Slot  Pid  Ppid Csid Ord  Sta Pri  pTSD     pPTDA    pTCB     Disp SG Name
*0019# 0015 0014 0015 0001 run 0300 f9f9f000 fefb59e0 feef840c 0ee8 00 DHCPSTRT
 
eax=7cd00047 ebx=0000efc0 ecx=00000007 edx=00000020 esi=0004a338 edi=26cb0000
eip=0000c541 esp=0008ef98 ebp=0004a30c iopl=2 -- -- -- nv up ei pl nz na pe nc
cs=ffef ss=0047 ds=0053 es=0053 fs=150b gs=0000  cr2=00000000  cr3=00200000
ffef:0000c541 66ea6477fc1f5b00 jmp       005b:1ffc7764


# ln ffef:c541
 
ffef:0000c53c DOSCALL1 UT32_TARGET + 5


# ln %1ffc7764
 
%1ffc7764 DOSCALL1 UT32_RETURN

The instruction directly before the "jmp" is an (indirect) call to DOSDEVIOCTL, in case that matters. But I would think it is a IOCTL call into PMDD.SYS.
 



# .maamc ffef:c541
 
 
*har     par      cpg        va    flg next prev link hash hob   hal
 0119 %feb98830 00000010 %1ffd0000 3d9 0118 011a 0000 0000 0132 0000  hco=00164
 hob   har hobnxt flgs own  hmte  sown,cnt lt st xf
 0132  0119 0000  0838 012a 012a  0000 00  00 00 00 shared    c:doscall1.dll
 hco=00164 pco=ffe0970f  hconext=00130 hptda=0531 f=1c  pid=0016 c:dhcpcd.exe
 hco=00130 pco=ffe0960b  hconext=000e3 hptda=0469 f=1c  pid=0015 c:dhcpstrt.exe
 hco=000e3 pco=ffe0948a  hconext=00107 hptda=0459 f=1c  pid=0014 c:dhcpstrt.com
...


#
                        TRAP SCREEN INFORMATION
OS/2 Kernel Revision 14.201_W4
Exception in module: PMDD   
 TRAP 000d       ERRCD=0000  ERACC=****  ERLIM=********
EAX=7cd00000  EBX=f9f902f2  ECX=00000020  EDX=0000005b
ESI=feef0000  EDI=26cb0010  EBP=00045bf8  FLG=00012292
CS:EIP=0d00:00000a8b  CSACC=009b  CSLIM=00000d10
SS:ESP=0030:00005b8c  SSACC=1097  SSLIM=00004ebf
DS=0cf8  DSACC=0093  DSLIM=000000d0  CR0=8001003b
ES=0000  ESACC=****  ESLIM=********  CR2=1fec9b80
FS=0000  FSACC=****  FSLIM=********
GS=0000  GSACC=****  GSLIM=********

I have a full trap dump, in case that helps.


3
Comments, Suggestions & Questions / Re: Hobbes (Files) Reoganization
« on: June 12, 2021, 03:08:30 pm »
It's not zero or one. You can keep say the last 3 driver versions or so. But it would be helpful to clearly separate the very latest from the rest. The intention is: make a new user take the latest version. Only if that fails, should he delve into it more deeply and try an older version.

Maybe an archive directory with the very same sublayout as the existing main dir would help. Whenever something is superseded by newer stuff, then move the existing stuff to the same subdir in that archive directory.

I myself keep older versions of my USB drivers only for a limited time. But since I properly tagged my source files, I would be able to recreate exactly one specific version (for example, to recreate an error case).

4
Seems that Martin has successfully turned off this ad crap. I l no longer get ads, even with the plain Google browser.
Thanks for that!

5
The QSINIT API allows you to ask for 512 byte sectors of memory. It can only be used by exactly one app at a time and I doubt that there is some protection against multiple users. Also, you will then lose all ability to use it as a RAM disc. The mem cannot be shared between RAM disc and other use. It's all or nothing.

6
I installed AD blocker on my Android phone. Otherwise, the site would become close to unusable.

7
it seems that with the help of GPT.FLT (that can modify the IORBs passed between OS2DASD.DMD and the ADD drivers), you can also address sectors beyond the ABSOLUTE 2TB limit and that OS2AHCI.ADD has some sort of extension to use 48 bits of LBA address. Potentially what I proposed earlier on.

I didn't see your proposal so I wrote my own  :)

There are two new CommandCodes: IOCC_GEOMETRY64 (0x13) and IOCC_EXECUTE_IO64 (0x14). They signal the use of new extended IORBs, GEOMETRY64 and IORB_EXECUTEIO64. The only difference from the 32-bit IORBs is that a 64-bit field has been added at the end of the structures to hold ullTotalSectors and ullRBA, respectively. The .ADD code is unchanged except that it now looks at the CmdCode to decide whether to take the LBA from the 32-bit or 64-bit field.

Current versions of AN's 'os2ahci.add' and 'nvme.add' support this interface. It's use comes at a small cost: for requests above 2TB, GPT.FLT has to create a 64-bit version of each request before it sends it to the .ADD. Each request is less than 100 bytes, so the overhead is minimal.

BTW... IOCC_GEOMETRY64 returns the actual number of sectors on a disk - it isn't rounded down to a cylinder boundary. The call can also be used as a safe way to determine if 48/64-bit support is available.

Quote
What is the reason why OS2DASD.DMD cannot be modified? License issues?

Virtually everything above the .ADD/.FLT level is tied to 32-bit LBAs. There's just too much to change.

Hi Rich,

I am always glad to help. Let me know if you need any :-)

Thanks for letting me know the new command codes. For reasons of large floppy support, I also had to add a new (internal) command code to USBMSD.ADD. Now I can check if that conflicts with the new command codes you mentioned.

8
Under UTILS. An APP is something standalone, serving a main purpose. A util is something that supports the user in interfacing with his computer.
But of course, that will always be arguable.
Yes, it is arguable, and I agree "desktop enhancements" should be under UTILS.
..but if
- XWP and XFolder should be consider WPS Utilities (under /pub/os2/util/wps).
- And there is already a structure for each kind of app.  For example, a WPS Calendar is a wps app (/apps/wps)  but there is also "/apps/calendar" which seems the correct place.
It will make "/pub/os2/apps/wps" empty.

Regards

That goes beyond what you have been asking for.
I would refrain from moving things that already exist at their final place. Someone might have a link on some of that.

9
I guess there cannot be a perfect solution as there will likely be multiple places where that 2TB limit will come into play, also thinking about the disk tools.
But it seems that with the help of GPT.FLT (that can modify the IORBs passed between OS2DASD.DMD and the ADD drivers), you can also address sectors beyond the ABSOLUTE 2TB limit and that OS2AHCI.ADD has some sort of extension to use 48 bits of LBA address. Potentially what I proposed earlier on.
What is the reason why OS2DASD.DMD cannot be modified?
License issues?

10
So that also means none of the real GPT partitions can be bigger than 2TB, correct?
If yes, then the sole intention of that filter is to make accessible GPT partitions and not to provide access to larger partitions, correct?

11
Thinking out loud: a transfer IORB for the ADD contains a 16-bit field "Blocksize". For once, that field is pretty useless as up to present day, OS/2 always expects a value of 512. But even if not, the upper say four bits could be used to extend the LBA address. But that would require to update OS2DASD.DMD accordingly. And of course, the ADD to take advantage of those 4 additional bits.

12

The storage driver provides 48 bit LBA addressing. And the GPT filter driver uses this interface. That way you can access a +2TB disc with ArcaOS.


As I understand it, the GPT filter driver will split a 6 TB drive into 3 units of 2 TB each, allowing you to access a 6 TB drive as, for example, E:, F: and G:. This is different from a single drive letter with 6 TB, which is currently only possible on a network drive.
Ok, that pretty much explains it. The drive letter "logically" extends the 32 bit LBA address, providing additional upper bits for the 48 or 64 bits sent to the device to address a sector. At least, that is a good trick but it uses up valuable drive letters.

13
Under UTILS. An APP is something standalone, serving a main purpose. A util is something that supports the user in interfacing with his computer.
But of course, that will always be arguable.

14
1) you are mixing up two points: there is a filter mechanism to suppress GPT disks (instead of erroneously accessing them) and then, there is 48/64 bit LBA support

2) 48/64 bit LBA support: what that can also mean is that the newer 48/64 LBA commands of the command set are supported, simply because newer drives don't support older 32-bit LBA commands anymore. Still, in reality, only the lower 32-bit will be set, the upper bits would be zero. At least I had to do some such with USBMSD.ADD (that supported only some very old SCSI commands with 21-bit LBA support, I updated to newer commands with 32-bit LBA support, supported by the current generation of USB MSD devices). But David will know for sure.

15
ADDs allow 32-bit LBA addressing. With a 512 byte Sector size, that makes up for 2 TB as Neil correctly stated. And for an ADD, the LBA is an absolute value starting from first sector of the disc (as far as I can remember). Which limits the whole disk to 2TB or am I overlooking something ?
Therefore: a 32-bit IFS can address more space (even if it addresses bytewise) then an ADD. An ADD effectively addresses 32+9= 41 bits. The 32-bit IFS can address up to 63 bits (highest bit is reserved for sign bit to support negative file offsets).
That might also explain why network drives could be bigger than 2TB: you do not need an ADD to access data on a network drive. Instead, the IFS will in some form interact with the remote system to access a byte or more. If the remote system supports bigger drives, then that can work.

Example: the Virtualbox "shared folders" support only needs an IFS (for the OS/2 guest). That IFS directly interacts with the drive support of the host OS (Windows, via some access layer, I don't know the technical details).

Pages: [1] 2 3 ... 55