Rev 6917 | Rev 7121 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6917 | Rev 6974 | ||
---|---|---|---|
Line 2546... | Line 2546... | ||
2546 | * eсx = slot number |
2546 | * eсx = slot number |
2547 | Returned value: |
2547 | Returned value: |
2548 | * eax = if successful - pointer to a memory with data |
2548 | * eax = if successful - pointer to a memory with data |
2549 | * eax = 1 - error |
2549 | * eax = 1 - error |
2550 | * eax = -1 - main list area not found |
2550 | * eax = -1 - main list area not found |
- | 2551 | Remarks: |
|
- | 2552 | * The function must be used in conjunction with 68.11. The |
|
- | 2553 | application must pre-initialize the local heap by calling 68.11. |
|
Line 2551... | Line 2554... | ||
2551 | 2554 | ||
2552 | ---------------------- Constants for registers: ---------------------- |
2555 | ---------------------- Constants for registers: ---------------------- |
2553 | eax - SF_CLIPBOARD (54) |
2556 | eax - SF_CLIPBOARD (54) |
2554 | ebx - SSF_READ_CB (1) |
2557 | ebx - SSF_READ_CB (1) |
Line 2955... | Line 2958... | ||
2955 | * eax = 1 - not enough memory |
2958 | * eax = 1 - not enough memory |
2956 | Remarks: |
2959 | Remarks: |
2957 | * There is another way to dynamically allocate/free memory - |
2960 | * There is another way to dynamically allocate/free memory - |
2958 | subfunctions 12, 13 and 20 of function 68, but after creation |
2961 | subfunctions 12, 13 and 20 of function 68, but after creation |
2959 | of the process heap 64 function call will be ignored. |
2962 | of the process heap 64 function call will be ignored. |
- | 2963 | * The function cannot be used together with 68.11, 68.12, 68.13. |
|
- | 2964 | The function call will be ignored after creation of process heap |
|
- | 2965 | with function 68.11. |
|
Line 2960... | Line 2966... | ||
2960 | 2966 | ||
2961 | ---------------------- Constants for registers: ---------------------- |
2967 | ---------------------- Constants for registers: ---------------------- |
2962 | eax - SF_MEMORY_RESIZE (64) |
2968 | eax - SF_MEMORY_RESIZE (64) |
2963 | ====================================================================== |
2969 | ====================================================================== |
Line 3256... | Line 3262... | ||
3256 | 3262 | ||
3257 | ---------------------- Constants for registers: ---------------------- |
3263 | ---------------------- Constants for registers: ---------------------- |
3258 | eax - SF_SYS_MISC (68) |
3264 | eax - SF_SYS_MISC (68) |
3259 | ebx - SSF_WRITE_MSR (4) |
3265 | ebx - SSF_WRITE_MSR (4) |
3260 | ====================================================================== |
3266 | ====================================================================== |
3261 | === Function 68, subfunction 11 - manually initialize process heap === |
3267 | === Function 68, subfunction 11 - initialize process heap ============ |
3262 | ====================================================================== |
3268 | ====================================================================== |
3263 | Parameters: |
3269 | Parameters: |
3264 | * eax = 68 - function number |
3270 | * eax = 68 - function number |
3265 | * ebx = 11 - subfunction number |
3271 | * ebx = 11 - subfunction number |
Line 3411... | Line 3417... | ||
3411 | * ecx = new size in bytes |
3417 | * ecx = new size in bytes |
3412 | * edx = pointer to already allocated block |
3418 | * edx = pointer to already allocated block |
3413 | Returned value: |
3419 | Returned value: |
3414 | * eax = pointer to the reallocated block, 0 = error |
3420 | * eax = pointer to the reallocated block, 0 = error |
3415 | Remarks: |
3421 | Remarks: |
- | 3422 | * Before this call one must initialize process heap by call to |
|
- | 3423 | subfunction 11. |
|
3416 | * The function allocates an integer number of pages (4 Kb) in such |
3424 | * The function allocates an integer number of pages (4 Kb) in such |
3417 | way that the real size of allocated block is more than or equal to |
3425 | way that the real size of allocated block is more than or equal to |
3418 | requested size. |
3426 | requested size. |
3419 | * If edx=0, the function call is equivalent to memory allocation |
3427 | * If edx=0, the function call is equivalent to memory allocation |
3420 | with subfunction 12. Otherwise the block at edx |
3428 | with subfunction 12. Otherwise the block at edx |
Line 3473... | Line 3481... | ||
3473 | * E_NOTFOUND = 5 |
3481 | * E_NOTFOUND = 5 |
3474 | * E_ACCESS = 10 |
3482 | * E_ACCESS = 10 |
3475 | * E_NOMEM = 30 |
3483 | * E_NOMEM = 30 |
3476 | * E_PARAM = 33 |
3484 | * E_PARAM = 33 |
3477 | Remarks: |
3485 | Remarks: |
- | 3486 | * Before this call one must initialize process heap by call to |
|
- | 3487 | subfunction 11. |
|
3478 | * If a new area is created, access flags set maximal rights |
3488 | * If a new area is created, access flags set maximal rights |
3479 | for other processes. An attempt from other process to open |
3489 | for other processes. An attempt from other process to open |
3480 | with denied rights will fail with error code E_ACCESS. |
3490 | with denied rights will fail with error code E_ACCESS. |
3481 | * The process which has created an area always has write access. |
3491 | * The process which has created an area always has write access. |
Line 3582... | Line 3592... | ||
3582 | Returned value: |
3592 | Returned value: |
3583 | * eax = pointer to the loaded file, or zero |
3593 | * eax = pointer to the loaded file, or zero |
3584 | * edx = size of the loaded file, or zero |
3594 | * edx = size of the loaded file, or zero |
3585 | Remarks: |
3595 | Remarks: |
3586 | * function loads file and unpacks, if necessary |
3596 | * function loads file and unpacks, if necessary |
- | 3597 | * Before this call one must initialize process heap by call to |
|
- | 3598 | subfunction 11. |
|
Line 3587... | Line 3599... | ||
3587 | 3599 | ||
3588 | ---------------------- Constants for registers: ---------------------- |
3600 | ---------------------- Constants for registers: ---------------------- |
3589 | eax - SF_SYS_MISC (68) |
3601 | eax - SF_SYS_MISC (68) |
3590 | ebx - SSF_LOAD_FILE (27) |
3602 | ebx - SSF_LOAD_FILE (27) |