Subversion Repositories Kolibri OS

Rev

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)