View Javadoc

1   package com.tapina.robe.swi.clib.stdlib;
2   
3   import com.tapina.robe.swi.clib.Stub;
4   import com.tapina.robe.runtime.RawDataBlock;
5   import com.tapina.robe.runtime.Environment;
6   
7   /***
8    * This function allocates space for a1 objects, with each object taking a2 bytes.
9    * The total space allocated is therefore (a1*a2) bytes. The entire space is initialised with each byte zeroed.
10   * Returns: Pointer to space, or NULL if failed (never fails).
11   */
12  public class CAlloc extends Stub {
13      public void executeStub(Environment environment) {
14          final int[] R = environment.getCpu().R;
15          final RawDataBlock block = environment.getMemoryMap().createSystemDataBlock(R[0] * R[1]);
16          R[0] = block.getAddress();
17      }
18  }