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

FreeBSD Manual Pages

  
 
  

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  pa-
       rameter	Heap  is  set to RDS_ALLOC_HEAP.  If rdsalloc is used with the
       constant	RDS_ALLOC_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 re-
       turned. Like this, the user does	really one  allocation	(he  has  many
       pointers)  to  minimize fragmentation. Heap allocation 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.0>

home | help