Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
RDSALLOC(3)		     RDS PHYSICAL FUNCTIONS		     RDSALLOC(3)

NAME
      rdsalloc - memory allocation function

SYNOPSIS
      #include "rdsnnn.h"
	char *rdsalloc( Size, Heap )
	  unsigned int Size;
	  char	       Heap;

PARAMETER
     Size		 memory size to allocate

     Heap		 takes the values RDS_ALLOC_BLOCK or RDS_ALLOC_HEAP (two
			 defined constants).

DESCRIPTION
     The  rdsalloc function can do memory allocation by block or by heap. If the
     user wants to allocate by block, he sets the parameter Heap to the constant
     RDS_ALLOC_BLOCK else, he wants to allocate by heap so the parameter Heap is
     set to RDS_ALLOC_HEAP.  If rdsalloc  is  used  with  the  constant  RDS_AL-
     LOC_BLOCK	then  rdsalloc is used as standard language C function malloc().
     If the user allocates by heap then : At the first allocation of  the  block
     of  size the parameter 'Size', a heap of size multiple of the block Size is
     allocated. When another allocation of the same size is done then if the the
     heap isn't full then a pointer (of size='Size') is returned else a new heap
     is allocated and a pointer returned. Like this, the user  does  really  one
     allocation  (he  has many pointers) to minimize fragmentation. Heap alloca-
     tion is useful if the user has to allocate many pointers of the  same  size
     (ex: rdsrec_list structure).

     Note: Memory place allocated is set to NULL.

RETURN VALUE
     pointer to the allocated memory is returned.

ERRORS
     "Rds202: rdsalloc error, can't continue !"
	    it's impossible to allocate the memory size desired.

EXAMPLE
	   #include "rdsnnn.h"
	main()
	 {
	    rdsrec_list *Rectangle;
	    rdsfig_list *Figure;
	  Rectangle =
	       (rdsrec_list *) rdsalloc (sizeof(rdsrec_list *),RDS_ALLOC_HEAP);
	  Figure    =
	       (rdsfig_list *) rdsalloc (sizeof(rdsfig_list *),RDS_ALLOC_BLOCK);
	 }

SEE ALSO
     librds, rdsfree

ASIM/LIP6			 October 1, 1997		     RDSALLOC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rdsalloc&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help