Embedded TCP/IP stack  4.7.0
fnet_stdlib.h
1 /**************************************************************************
2 *
3 * Copyright 2008-2018 by Andrey Butok. FNET Community.
4 *
5 ***************************************************************************
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License"); you may
8 * not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
15 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 ***************************************************************************
20 *
21 * Standard functions API.
22 *
23 ***************************************************************************/
24 
25 #ifndef _FNET_STDLIB_H_
26 
27 #define _FNET_STDLIB_H_
28 
35 #include <stdarg.h> /* For va_list etc.*/
36 #include <string.h> /* In case of alternative functions */
37 
38 /**************************************************************************/
43 #define FNET_NULL ((void *)0)
44 
45 /**************************************************************************/
50 #define FNET_RAND_MAX (32767u)
51 
52 /**************************************************************************/
55 typedef unsigned long fnet_size_t;
56 
57 /**************************************************************************/
60 typedef long fnet_ssize_t;
61 
62 /**************************************************************************/
65 typedef unsigned int fnet_flag_t;
66 
67 /**************************************************************************/
70 typedef unsigned int fnet_index_t;
71 
72 /**************************************************************************/
75 typedef char fnet_char_t;
76 
77 /**************************************************************************/
80 typedef enum
81 {
82  FNET_FALSE = 0,
83  FNET_TRUE = 1
84 } fnet_bool_t;
85 
86 /**************************************************************************/
89 typedef enum
90 {
91  FNET_OK = (0),
92  FNET_ERR = (-1)
94 
95 
96 #define FNET_ALIGN_DIV(x, div) ((fnet_uint32_t)((volatile fnet_uint8_t *)(x) + ((div)-1U)) & (~((div)-1U)))
97 
98 #if defined(__cplusplus)
99 extern "C" {
100 #endif
101 
102 /***************************************************************************/
120 #if !FNET_CFG_OVERLOAD_MEMCPY
121 void fnet_memcpy(FNET_COMP_PACKED_VAR void *to_ptr, FNET_COMP_PACKED_VAR const void *from_ptr, fnet_size_t number_of_bytes);
122 #endif
123 
124 /***************************************************************************/
142 void *fnet_memcpy_func(void *to_buf_ptr, const void *from_func_ptr, fnet_size_t to_buf_size);
143 
144 /***************************************************************************/
164 void fnet_memset(void *dest, fnet_uint8_t value, fnet_size_t n);
165 
166 /***************************************************************************/
182 void fnet_memset_zero(void *dest, fnet_size_t n );
183 
184 /***************************************************************************/
204 fnet_int32_t fnet_memcmp(const void *src1, const void *src2, fnet_size_t count );
205 
206 /***************************************************************************/
220 fnet_size_t fnet_strlen (const fnet_char_t *str);
221 
222 /***************************************************************************/
239 fnet_size_t fnet_strnlen (const fnet_char_t *str, fnet_size_t max_len);
240 
241 /***************************************************************************/
257 void fnet_strcat (fnet_char_t *dest, const fnet_char_t *src);
258 
259 /***************************************************************************/
279 void fnet_strlcat (fnet_char_t *dest, const fnet_char_t *src, fnet_size_t n);
280 
281 /***************************************************************************/
296 void fnet_strcpy (fnet_char_t *dest, const fnet_char_t *src);
297 
298 /***************************************************************************/
316 void fnet_strlcpy( fnet_char_t *dest, const fnet_char_t *src, fnet_size_t n );
317 
318 /***************************************************************************/
335 fnet_char_t *fnet_strrchr( const fnet_char_t *str, fnet_char_t chr );
336 
337 /***************************************************************************/
355 
356 /***************************************************************************/
374 fnet_char_t *fnet_strstr( const fnet_char_t *str, const fnet_char_t *substr );
375 
376 /***************************************************************************/
394 fnet_int32_t fnet_strcmp( const fnet_char_t *str1, const fnet_char_t *str2 );
395 
396 /***************************************************************************/
419 fnet_int32_t fnet_strncmp( const fnet_char_t *str1, const fnet_char_t *str2, fnet_size_t n );
420 
421 /***************************************************************************/
442 fnet_int32_t fnet_strcasecmp( const fnet_char_t *str1, const fnet_char_t *str2 );
443 
444 /***************************************************************************/
465 fnet_int32_t fnet_strcmp_splitter( const fnet_char_t *in_str, const fnet_char_t *name, fnet_char_t splitter);
466 
467 /***************************************************************************/
493 fnet_uint32_t fnet_strtoul (const fnet_char_t *str, fnet_char_t **ptr, fnet_size_t base);
494 
495 /***************************************************************************/
525 fnet_char_t *fnet_strtok_r(fnet_char_t *str, const fnet_char_t *delimiter, fnet_char_t **last);
526 
527 /***************************************************************************/
542 
543 /***************************************************************************/
554 fnet_uint32_t fnet_rand( void );
555 
556 /***************************************************************************/
567 void fnet_srand( fnet_uint32_t seed );
568 
569 #if defined(__cplusplus)
570 }
571 #endif
572 
575 #endif /* _FNET_STDLIB_H_ */
fnet_char_t * fnet_strchr(const fnet_char_t *str, fnet_char_t chr)
Locates first occurrence of a character in a string.
void fnet_strlcat(fnet_char_t *dest, const fnet_char_t *src, fnet_size_t n)
Concatenates a string with part of another.
fnet_int32_t fnet_strncmp(const fnet_char_t *str1, const fnet_char_t *str2, fnet_size_t n)
Compares part of two strings.
unsigned int fnet_flag_t
Unsigned integer type representing the bit flag.
Definition: fnet_stdlib.h:65
fnet_int32_t fnet_strcmp(const fnet_char_t *str1, const fnet_char_t *str2)
Compares two strings.
fnet_return_t
General return codes, used by most of API functions.
Definition: fnet_stdlib.h:89
fnet_char_t * fnet_strrchr(const fnet_char_t *str, fnet_char_t chr)
Locates last occurrence of a character in a string.
fnet_uint32_t fnet_strtoul(const fnet_char_t *str, fnet_char_t **ptr, fnet_size_t base)
Converts string to unsigned long integer.
fnet_size_t fnet_strnlen(const fnet_char_t *str, fnet_size_t max_len)
Calculate the length of a fixed-size string.
unsigned long fnet_size_t
Unsigned integer type representing the size in bytes.
Definition: fnet_stdlib.h:55
fnet_int32_t fnet_memcmp(const void *src1, const void *src2, fnet_size_t count)
Compares memory areas.
fnet_uint32_t fnet_rand(void)
Generates a pseudo-random number.
void fnet_strcat(fnet_char_t *dest, const fnet_char_t *src)
Concatenates two strings.
void fnet_srand(fnet_uint32_t seed)
Initializes the pseudo-random number generator.
fnet_char_t * fnet_strstr(const fnet_char_t *str, const fnet_char_t *substr)
Locates a substring.
fnet_int32_t fnet_strcasecmp(const fnet_char_t *str1, const fnet_char_t *str2)
Compares two strings ignoring case.
fnet_bool_t
Boolean type.
Definition: fnet_stdlib.h:80
fnet_char_t fnet_tolower(fnet_char_t to_lower)
Converts letter to lower case.
fnet_char_t * fnet_strtok_r(fnet_char_t *str, const fnet_char_t *delimiter, fnet_char_t **last)
Breaks a string into a sequence of tokens.
void fnet_memset_zero(void *dest, fnet_size_t n)
Sets bytes in memory to zeros.
void fnet_memcpy(FNET_COMP_PACKED_VAR void *to_ptr, FNET_COMP_PACKED_VAR const void *from_ptr, fnet_size_t number_of_bytes)
Copies bytes in memory.
unsigned int fnet_index_t
Unsigned integer type representing the index.
Definition: fnet_stdlib.h:70
char fnet_char_t
Type representing the charecter.
Definition: fnet_stdlib.h:75
void fnet_memset(void *dest, fnet_uint8_t value, fnet_size_t n)
Sets bytes in memory.
fnet_size_t fnet_strlen(const fnet_char_t *str)
Calculates the length of a string.
void * fnet_memcpy_func(void *to_buf_ptr, const void *from_func_ptr, fnet_size_t to_buf_size)
Relocates function in memory.
long fnet_ssize_t
Signed integer type representing the size in bytes.
Definition: fnet_stdlib.h:60
fnet_int32_t fnet_strcmp_splitter(const fnet_char_t *in_str, const fnet_char_t *name, fnet_char_t splitter)
Compares two strings, with additional terminator.
void fnet_strlcpy(fnet_char_t *dest, const fnet_char_t *src, fnet_size_t n)
Copies part of a string.
void fnet_strcpy(fnet_char_t *dest, const fnet_char_t *src)
Copies a string.

© 2005-2020 by Andrej Butok. http://fnet.sourceforge.net