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
Applications / Re: Creating some apps RPM packages
« on: July 05, 2021, 04:31:10 pm »
But I still haven't full started with the RPM installers. On my last attempts I got stuck with the WPS integration to create icons and set the properties of WPS objects (Path, working directory, etc). I usually get the answer that it works, but I'm doing it wrong, but nobody tells me how to do it right.

I do this using REXX scripts. This is called from the %post section of the .spec file for installation and from the %postun section for uninstallation. My restartwps.exe utility is also used to restart the desktop correctly.

My .spec:

REXX scripts and restartwps.exe:

(see "restartwps.exe -?" for help)

How to create a WPS object from an RPM spec is explained here (as source code comments):

and a practical example:

Hardware / Re: Hardware Wiki report
« on: June 27, 2021, 11:27:52 am »
I think that product is targeting the daughter.

Applications / Re: patched PmMerge
« on: June 24, 2021, 08:29:01 pm »
Actually, it might indeed be a memory problem: a couple of secondary windows are created (and closed with exit) until I get a bunch of memory error messages, obviously one error message per attempt to open an additional window.

It's possible that PM (including the PM drivers) has some problem allocating memory. Potentially, because they have to allocate from some limited memory pool or region.

Applications / Re: patched PmMerge
« on: June 24, 2021, 08:22:25 pm »
With the already mentioned config and with the ORIGINAL pmmerge, I do not get a hang on either testcase.
However, teststart2 eventually reports this:

SYS0008: There is not enough memory available to process this command.
All available memory is in use.

However, I cannot see memory depleting, therefore I think the root cause if something else. In any case, this seems to be a bug in the REXX interpreter.

What I can also see for testcase2 is that the initial window does not properly draw which might be a PM problem.
If this stuff crashes for you then there might be an SMP issue with PM (as I am only running on one core). I wouldn't be surprised.

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.

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

                        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.

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).

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!

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.

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

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.

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.

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.


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.

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?

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?

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.

Pages: [1] 2 3 ... 55