mirror of https://gitlab.com/nakst/essence
fix POSIX subsystem
This commit is contained in:
parent
406229eb9f
commit
4f8618bd23
|
@ -1320,28 +1320,33 @@ extern "C" void _start(EsProcessStartupInformation *_startupInformation) {
|
||||||
SettingsWindowColorUpdated();
|
SettingsWindowColorUpdated();
|
||||||
} else {
|
} else {
|
||||||
EsHandle initialMountPointsBuffer = api.startupInformation->data.initialMountPoints;
|
EsHandle initialMountPointsBuffer = api.startupInformation->data.initialMountPoints;
|
||||||
size_t initialMountPointCount = EsConstantBufferGetSize(initialMountPointsBuffer) / sizeof(EsMountPoint);
|
|
||||||
EsMountPoint *initialMountPoints = (EsMountPoint *) EsHeapAllocate(initialMountPointCount * sizeof(EsMountPoint), false);
|
|
||||||
EsConstantBufferRead(initialMountPointsBuffer, initialMountPoints);
|
|
||||||
|
|
||||||
for (uintptr_t i = 0; i < initialMountPointCount; i++) {
|
|
||||||
NodeAddMountPoint(initialMountPoints[i].prefix, initialMountPoints[i].prefixBytes, initialMountPoints[i].base, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
EsHeapFree(initialMountPoints);
|
|
||||||
EsHandleClose(initialMountPointsBuffer);
|
|
||||||
|
|
||||||
EsHandle initialDevicesBuffer = api.startupInformation->data.initialDevices;
|
EsHandle initialDevicesBuffer = api.startupInformation->data.initialDevices;
|
||||||
size_t initialDevicesCount = EsConstantBufferGetSize(initialDevicesBuffer) / sizeof(EsMessageDevice);
|
|
||||||
EsMessageDevice *initialDevices = (EsMessageDevice *) EsHeapAllocate(initialDevicesCount * sizeof(EsMessageDevice), false);
|
|
||||||
EsConstantBufferRead(initialDevicesBuffer, initialDevices);
|
|
||||||
|
|
||||||
for (uintptr_t i = 0; i < initialDevicesCount; i++) {
|
if (initialMountPointsBuffer) {
|
||||||
api.connectedDevices.Add(initialDevices[i]);
|
size_t initialMountPointCount = EsConstantBufferGetSize(initialMountPointsBuffer) / sizeof(EsMountPoint);
|
||||||
|
EsMountPoint *initialMountPoints = (EsMountPoint *) EsHeapAllocate(initialMountPointCount * sizeof(EsMountPoint), false);
|
||||||
|
EsConstantBufferRead(initialMountPointsBuffer, initialMountPoints);
|
||||||
|
|
||||||
|
for (uintptr_t i = 0; i < initialMountPointCount; i++) {
|
||||||
|
NodeAddMountPoint(initialMountPoints[i].prefix, initialMountPoints[i].prefixBytes, initialMountPoints[i].base, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
EsHeapFree(initialMountPoints);
|
||||||
|
EsHandleClose(initialMountPointsBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
EsHeapFree(initialDevices);
|
if (initialDevicesBuffer) {
|
||||||
EsHandleClose(initialDevicesBuffer);
|
size_t initialDevicesCount = EsConstantBufferGetSize(initialDevicesBuffer) / sizeof(EsMessageDevice);
|
||||||
|
EsMessageDevice *initialDevices = (EsMessageDevice *) EsHeapAllocate(initialDevicesCount * sizeof(EsMessageDevice), false);
|
||||||
|
EsConstantBufferRead(initialDevicesBuffer, initialDevices);
|
||||||
|
|
||||||
|
for (uintptr_t i = 0; i < initialDevicesCount; i++) {
|
||||||
|
api.connectedDevices.Add(initialDevices[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
EsHeapFree(initialDevices);
|
||||||
|
EsHandleClose(initialDevicesBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t m = DESKTOP_MSG_SYSTEM_CONFIGURATION_GET;
|
uint8_t m = DESKTOP_MSG_SYSTEM_CONFIGURATION_GET;
|
||||||
EsBuffer responseBuffer = { .canGrow = true };
|
EsBuffer responseBuffer = { .canGrow = true };
|
||||||
|
|
|
@ -339,6 +339,7 @@ long EsPOSIXSystemCall(long n, long a1, long a2, long a3, long a4, long a5, long
|
||||||
char *_path = EsPOSIXConvertPath((const char *) a1, &pathBytes, false);
|
char *_path = EsPOSIXConvertPath((const char *) a1, &pathBytes, false);
|
||||||
char *path = (char *) __builtin_alloca(pathBytes);
|
char *path = (char *) __builtin_alloca(pathBytes);
|
||||||
EsMemoryCopy(path, _path, pathBytes);
|
EsMemoryCopy(path, _path, pathBytes);
|
||||||
|
EsHeapFree(_path);
|
||||||
|
|
||||||
char **argv = (char **) a2;
|
char **argv = (char **) a2;
|
||||||
char **envp = (char **) a3;
|
char **envp = (char **) a3;
|
||||||
|
|
Loading…
Reference in New Issue