/../
#define THIRTY_TWO_BYTES (32)
#define SIXTY_FOUR_BYTES (64)
#define TWO_HUNDREND_FIFTY_SIX_BYTES (256)
#define FIVE_HUNDREND_TWELVE_BYTES (512)
#define ONE_KILOBYTE 1024 /*1024*/
#define FOUR_KILOBYTES (4*1024)
/* 4 KB */
#define SIXTEEN_KILOBYTES (4*FOUR_KILOBYTES) /*
16 KB */
#define SIXTY_FOUR_KILOBYTES (16*FOUR_KILOBYTES) /*
64 KB */
#define TWO_FIFTY_SIX_KILOBYTES (64*FOUR_KILOBYTES) /*
256 KB */
#define HALF_MEGABYTE (128*FOUR_KILOBYTES)
/* 512 KB */
#define FOUR_MEGABYTES (1024*FOUR_KILOBYTES) /* 4
MB */
#define SIXTEEN_MEGABYTES (4096*FOUR_KILOBYTES) /*
16 MB */
#define THIRTY_TWO_MEGABYTES (8192*FOUR_KILOBYTES) /* 32 MB
*/
#define SIXTY_FOUR_MEGABYTES (2*THIRTY_TWO_MEGABYTES) /* 64
MB */
/../
long block_size(long size_requested)
{
long result = 0;
log_entry(E_WARNINGS_LOG,
"ECN_LIBMEM_CAT:0003: in libmem:block_size");
if (size_requested <= THIRTY_TWO_BYTES)
{
result = THIRTY_TWO_BYTES;
}
else if (size_requested <= SIXTY_FOUR_BYTES)
{
result = SIXTY_FOUR_BYTES;
}
else if (size_requested <=
TWO_HUNDREND_FIFTY_SIX_BYTES)
{
result = TWO_HUNDREND_FIFTY_SIX_BYTES;
}
else if (size_requested <=
FIVE_HUNDREND_TWELVE_BYTES)
{
result = FIVE_HUNDREND_TWELVE_BYTES;
}
else if (size_requested <= ONE_KILOBYTE)
{
result = ONE_KILOBYTE;
}
else if (size_requested <= FOUR_KILOBYTES)
{
result = FOUR_KILOBYTES;
}
else if ((size_requested > FOUR_KILOBYTES) &&
(size_requested <= SIXTEEN_KILOBYTES))
{
result = SIXTEEN_KILOBYTES;
}
else if ((size_requested > SIXTEEN_KILOBYTES) &&
(size_requested <= SIXTY_FOUR_KILOBYTES))
{
result = SIXTY_FOUR_KILOBYTES;
}
else if ((size_requested > SIXTY_FOUR_KILOBYTES)
&& (size_requested <= TWO_FIFTY_SIX_KILOBYTES))
{
result = TWO_FIFTY_SIX_KILOBYTES;
}
else if ((size_requested >
TWO_FIFTY_SIX_KILOBYTES) && (size_requested <=
HALF_MEGABYTE))
{
result = HALF_MEGABYTE;
}
else if ((size_requested > HALF_MEGABYTE) &&
(size_requested <= FOUR_MEGABYTES))
{
result = FOUR_MEGABYTES;
}
else if ((size_requested > FOUR_MEGABYTES) &&
(size_requested <= SIXTEEN_MEGABYTES))
else if ((size_requested > SIXTEEN_MEGABYTES) &&
(size_requested <= THIRTY_TWO_MEGABYTES))
{
result = THIRTY_TWO_MEGABYTES;
}
else if ((size_requested > THIRTY_TWO_MEGABYTES)
&& (size_requested <= SIXTY_FOUR_MEGABYTES))
{
result = SIXTY_FOUR_MEGABYTES;
}
else
{
log_entry(E_WARNINGS_LOG,
"ECN_LIBMEM_CAT:0003: Memory size requested %d exceeded \
maximum pre-defined block size. Allocating
memory requested.",
size_requested);
result = size_requested;
}
log_entry(E_WARNINGS_LOG,
"ECN_LIBMEM_CAT:0003: in libmem:block_size returning %d",
result);
return result;
}
See koodilõik pärineb absoluutselt elutähtsa enterprais sõnumirouteri sortsust. Nimetatud sõnumirouteri on valmistanud üks Kreekamaa tarkvarafirma, üle-Euroopalise vähempakkumiskonkursi võitja. Kood on kasutusel enamiku Euroopa Liidu riikide tolliasutustes.