git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

gbdk-lib/include/asm/sm83/string.h

      1 /** @file string.h
      2     Generic string functions.
      3  */
      4 #ifndef STRING_INCLUDE
      5 #define STRING_INCLUDE
      6 
      7 #include <types.h>
      8 
      9 /** Copies the string pointed to by __src__ (including the terminating
     10     `\0' character) to the array pointed to by __dest__.
     11 
     12     The strings may not overlap, and the destination string dest must
     13     be large enough to receive the copy.
     14 
     15     @param dest			Array to copy into
     16     @param src			Array to copy from
     17 
     18     @return 			A pointer to dest
     19 */
     20 char *strcpy(char *dest, const char *src) OLDCALL PRESERVES_REGS(b, c);
     21 
     22 /** Compares strings
     23 
     24     @param s1         First string to compare
     25     @param s2         Second string to compare
     26 
     27     Returns:
     28     \li > 0 if __s1__ > __s2__
     29     \li 0 if __s1__ == __s2__
     30     \li < 0 if __s1__ < __s2__
     31 */
     32 int strcmp(const char *s1, const char *s2) OLDCALL PRESERVES_REGS(b, c);
     33 
     34 /** Copies n bytes from memory area src to memory area dest.
     35 
     36     The memory areas may not overlap.
     37 
     38     @param dest			Buffer to copy into
     39     @param src			Buffer to copy from
     40     @param len			Number of Bytes to copy
     41 */
     42 void *memcpy(void *dest, const void *src, size_t len);
     43 
     44 /** Copies n bytes from memory area src to memory area dest, areas may overlap
     45  */
     46 void *memmove (void *dest, const void *src, size_t n);
     47 
     48 /** Fills the memory region __s__ with __n__ bytes using value __c__
     49 
     50     @param s         Buffer to fill
     51     @param c         char value to fill with (truncated from int)
     52     @param n         Number of bytes to fill
     53 */
     54 void *memset (void *s, int c, size_t n);
     55 
     56 /** Reverses the characters in a string
     57 
     58     @param s         Pointer to string to reverse.
     59 
     60     For example 'abcdefg' will become 'gfedcba'.
     61 
     62     Banked as the string must be modifiable.
     63 
     64     Returns: Pointer to __s__
     65 */
     66 char *reverse(char *s);
     67 
     68 /** Concatenate Strings. Appends string __s2__ to the end of string __s1__
     69 
     70     @param s1         String to append onto
     71     @param s2         String to copy from
     72 
     73     For example 'abc' and 'def' will become 'abcdef'.
     74 
     75     String __s1__ must be large enough to store both __s1__ and __s2__.
     76 
     77     Returns: Pointer to __s1__
     78 */
     79 char *strcat(char *s1, const char *s2);
     80 
     81 /** Calculates the length of a string
     82 
     83     @param s         String to calculate length of
     84 
     85     Returns: Length of string not including the terminating `\0' character.
     86 */
     87 int strlen(const char *s) OLDCALL PRESERVES_REGS(b, c);
     88 
     89 /**Concatenate at most __n__ characters from string __s2__ onto the end of __s1__.
     90 
     91     @param s1         String to append onto
     92     @param s2         String to copy from
     93     @param n          Max number of characters to copy from __s2__
     94 
     95     String __s1__ must be large enough to store both __s1__ and __n__ characters of __s2__
     96 
     97     Returns: Pointer to __s1__
     98 */
     99 char *strncat(char *s1, const char *s2, int n);
    100 
    101 /** Compare strings (at most __n__ characters):
    102 
    103     @param s1         First string to compare
    104     @param s2         Second string to compare
    105     @param n          Max number of characters to compare
    106 
    107     Returns zero if the strings are identical, or non-zero
    108     if they are not (see below).
    109 
    110     Returns:
    111     \li > 0 if __s1__ > __s2__ (at first non-matching byte)
    112     \li 0 if __s1__ == __s2__
    113     \li < 0 if __s1__ < __s2__ (at first non-matching byte)
    114 */
    115 int strncmp(const char *s1, const char *s2, int n);
    116 
    117 /** Copy __n__ characters from string __s2__ to __s1__
    118 
    119 
    120     @param s1         String to copy into
    121     @param s2         String to copy from
    122     @param n          Max number of characters to copy from __s2__
    123 
    124     If __s2__ is shorter than __n__, the remaining
    125     bytes in __s1__ are filled with \0.
    126 
    127     Warning: If there is no \0 in the first __n__ bytes of __s2__ then __s1__
    128     will not be null terminated.
    129 
    130     Returns: Pointer to __s1__
    131 */
    132 char *strncpy(char *s1, const char *s2, int n);
    133 
    134 /** Compare up to __count__ bytes in buffers __buf1__ and __buf2__
    135 
    136     @param buf1         Pointer to First buffer to compare
    137     @param buf2         Pointer to Second buffer to compare
    138     @param count        Max number of bytes to compare
    139 
    140     Returns zero if the buffers are identical, or non-zero
    141     if they are not (see below).
    142 
    143     Returns:
    144     \li > 0 if __buf1__ > __buf2__ (at first non-matching byte)
    145     \li 0 if __buf1__ == __buf2__
    146     \li < 0 if __buf1__ < __buf2__ (at first non-matching byte)
    147 */
    148 int memcmp(const void *buf1, const void *buf2, size_t count) OLDCALL;
    149 
    150 #endif

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.