| (libc_gpu_support)= | |
| # Supported Functions | |
| The following functions and headers are supported at least partially on the | |
| device. Some functions are implemented fully on the GPU, while others require a | |
| {ref}`remote procedure call <libc_gpu_rpc>`. | |
| ## ctype.h | |
| | Function Name | Available | RPC Required | | |
| | ------------- | ----------- | ------------ | | |
| | isalnum | {{ check }} | | | |
| | isalpha | {{ check }} | | | |
| | isascii | {{ check }} | | | |
| | isblank | {{ check }} | | | |
| | iscntrl | {{ check }} | | | |
| | isdigit | {{ check }} | | | |
| | isgraph | {{ check }} | | | |
| | islower | {{ check }} | | | |
| | isprint | {{ check }} | | | |
| | ispunct | {{ check }} | | | |
| | isspace | {{ check }} | | | |
| | isupper | {{ check }} | | | |
| | isxdigit | {{ check }} | | | |
| | toascii | {{ check }} | | | |
| | tolower | {{ check }} | | | |
| | toupper | {{ check }} | | | |
| ## string.h | |
| | Function Name | Available | RPC Required | | |
| | ------------- | ----------- | ------------ | | |
| | bcmp | {{ check }} | | | |
| | bcopy | {{ check }} | | | |
| | bzero | {{ check }} | | | |
| | memccpy | {{ check }} | | | |
| | memchr | {{ check }} | | | |
| | memcmp | {{ check }} | | | |
| | memcpy | {{ check }} | | | |
| | memmem | {{ check }} | | | |
| | memmove | {{ check }} | | | |
| | mempcpy | {{ check }} | | | |
| | memrchr | {{ check }} | | | |
| | memset | {{ check }} | | | |
| | stpcpy | {{ check }} | | | |
| | stpncpy | {{ check }} | | | |
| | strcat | {{ check }} | | | |
| | strchr | {{ check }} | | | |
| | strchrnul | {{ check }} | | | |
| | strcmp | {{ check }} | | | |
| | strcoll | {{ check }} | | | |
| | strcpy | {{ check }} | | | |
| | strcspn | {{ check }} | | | |
| | strdup | {{ check }} | | | |
| | strerror | {{ check }} | | | |
| | strlcat | {{ check }} | | | |
| | strlcpy | {{ check }} | | | |
| | strlen | {{ check }} | | | |
| | strncat | {{ check }} | | | |
| | strncmp | {{ check }} | | | |
| | strncpy | {{ check }} | | | |
| | strndup | {{ check }} | | | |
| | strnlen | {{ check }} | | | |
| | strpbrk | {{ check }} | | | |
| | strrchr | {{ check }} | | | |
| | strsep | {{ check }} | | | |
| | strspn | {{ check }} | | | |
| | strstr | {{ check }} | | | |
| | strtok | {{ check }} | | | |
| | strtok_r | {{ check }} | | | |
| | strxfrm | {{ check }} | | | |
| ## strings.h | |
| | Function Name | Available | RPC Required | | |
| | ------------- | ----------- | ------------ | | |
| | bcmp | {{ check }} | | | |
| | bcopy | {{ check }} | | | |
| | bzero | {{ check }} | | | |
| | strcasecmp | {{ check }} | | | |
| | strcasestr | {{ check }} | | | |
| | index | {{ check }} | | | |
| | rindex | {{ check }} | | | |
| ## stdbit.h | |
| | Function Name | Available | RPC Required | | |
| | ---------------------------- | ----------- | ------------ | | |
| | stdc_leading_zeros_uc | {{ check }} | | | |
| | stdc_leading_zeros_us | {{ check }} | | | |
| | stdc_leading_zeros_ui | {{ check }} | | | |
| | stdc_leading_zeros_ul | {{ check }} | | | |
| | stdc_leading_zeros_ull | {{ check }} | | | |
| | stdc_trailing_zeros_uc | {{ check }} | | | |
| | stdc_trailing_zeros_us | {{ check }} | | | |
| | stdc_trailing_zeros_ui | {{ check }} | | | |
| | stdc_trailing_zeros_ul | {{ check }} | | | |
| | stdc_trailing_zeros_ull | {{ check }} | | | |
| | stdc_trailing_ones_uc | {{ check }} | | | |
| | stdc_trailing_ones_us | {{ check }} | | | |
| | stdc_trailing_ones_ui | {{ check }} | | | |
| | stdc_trailing_ones_ul | {{ check }} | | | |
| | stdc_trailing_ones_ull | {{ check }} | | | |
| | stdc_first_leading_zero_uc | {{ check }} | | | |
| | stdc_first_leading_zero_us | {{ check }} | | | |
| | stdc_first_leading_zero_ui | {{ check }} | | | |
| | stdc_first_leading_zero_ul | {{ check }} | | | |
| | stdc_first_leading_zero_ull | {{ check }} | | | |
| | stdc_first_leading_one_uc | {{ check }} | | | |
| | stdc_first_leading_one_us | {{ check }} | | | |
| | stdc_first_leading_one_ui | {{ check }} | | | |
| | stdc_first_leading_one_ul | {{ check }} | | | |
| | stdc_first_leading_one_ull | {{ check }} | | | |
| | stdc_first_trailing_zero_uc | {{ check }} | | | |
| | stdc_first_trailing_zero_us | {{ check }} | | | |
| | stdc_first_trailing_zero_ui | {{ check }} | | | |
| | stdc_first_trailing_zero_ul | {{ check }} | | | |
| | stdc_first_trailing_zero_ull | {{ check }} | | | |
| | stdc_first_trailing_one_uc | {{ check }} | | | |
| | stdc_first_trailing_one_us | {{ check }} | | | |
| | stdc_first_trailing_one_ui | {{ check }} | | | |
| | stdc_first_trailing_one_ul | {{ check }} | | | |
| | stdc_first_trailing_one_ull | {{ check }} | | | |
| | stdc_count_zeros_uc | {{ check }} | | | |
| | stdc_count_zeros_us | {{ check }} | | | |
| | stdc_count_zeros_ui | {{ check }} | | | |
| | stdc_count_zeros_ul | {{ check }} | | | |
| | stdc_count_zeros_ull | {{ check }} | | | |
| | stdc_count_ones_uc | {{ check }} | | | |
| | stdc_count_ones_us | {{ check }} | | | |
| | stdc_count_ones_ui | {{ check }} | | | |
| | stdc_count_ones_ul | {{ check }} | | | |
| | stdc_count_ones_ull | {{ check }} | | | |
| | stdc_has_single_bit_uc | {{ check }} | | | |
| | stdc_has_single_bit_us | {{ check }} | | | |
| | stdc_has_single_bit_ui | {{ check }} | | | |
| | stdc_has_single_bit_ul | {{ check }} | | | |
| | stdc_has_single_bit_ull | {{ check }} | | | |
| | stdc_bit_width_uc | {{ check }} | | | |
| | stdc_bit_width_us | {{ check }} | | | |
| | stdc_bit_width_ui | {{ check }} | | | |
| | stdc_bit_width_ul | {{ check }} | | | |
| | stdc_bit_width_ull | {{ check }} | | | |
| | stdc_bit_floor_uc | {{ check }} | | | |
| | stdc_bit_floor_us | {{ check }} | | | |
| | stdc_bit_floor_ui | {{ check }} | | | |
| | stdc_bit_floor_ul | {{ check }} | | | |
| | stdc_bit_floor_ull | {{ check }} | | | |
| | stdc_bit_ceil_uc | {{ check }} | | | |
| | stdc_bit_ceil_us | {{ check }} | | | |
| | stdc_bit_ceil_ui | {{ check }} | | | |
| | stdc_bit_ceil_ul | {{ check }} | | | |
| | stdc_bit_ceil_ull | {{ check }} | | | |
| ## stdlib.h | |
| | Function Name | Available | RPC Required | | |
| | ------------- | ----------- | ------------ | | |
| | abs | {{ check }} | | | |
| | atoi | {{ check }} | | | |
| | atof | {{ check }} | | | |
| | atol | {{ check }} | | | |
| | atoll | {{ check }} | | | |
| | exit | {{ check }} | {{ check }} | | |
| | abort | {{ check }} | {{ check }} | | |
| | system | {{ check }} | {{ check }} | | |
| | labs | {{ check }} | | | |
| | llabs | {{ check }} | | | |
| | div | {{ check }} | | | |
| | ldiv | {{ check }} | | | |
| | lldiv | {{ check }} | | | |
| | bsearch | {{ check }} | | | |
| | qsort | {{ check }} | | | |
| | qsort_r | {{ check }} | | | |
| | strtod | {{ check }} | | | |
| | strtof | {{ check }} | | | |
| | strtol | {{ check }} | | | |
| | strtold | {{ check }} | | | |
| | strtoll | {{ check }} | | | |
| | strtoul | {{ check }} | | | |
| | strtoull | {{ check }} | | | |
| | srand | {{ check }} | | | |
| | rand | {{ check }} | | | |
| ## inttypes.h | |
| | Function Name | Available | RPC Required | | |
| | ------------- | ----------- | ------------ | | |
| | imaxabs | {{ check }} | | | |
| | imaxdiv | {{ check }} | | | |
| | strtoimax | {{ check }} | | | |
| | strtoumax | {{ check }} | | | |
| ## stdio.h | |
| | Function Name | Available | RPC Required | | |
| | ------------- | ----------- | ------------ | | |
| | feof | {{ check }} | {{ check }} | | |
| | ferror | {{ check }} | {{ check }} | | |
| | clearerr | {{ check }} | {{ check }} | | |
| | fseek | {{ check }} | {{ check }} | | |
| | ftell | {{ check }} | {{ check }} | | |
| | fflush | {{ check }} | {{ check }} | | |
| | fgetc | {{ check }} | {{ check }} | | |
| | fgets | {{ check }} | {{ check }} | | |
| | ungetc | {{ check }} | {{ check }} | | |
| | getc | {{ check }} | {{ check }} | | |
| | getchar | {{ check }} | {{ check }} | | |
| | puts | {{ check }} | {{ check }} | | |
| | fputs | {{ check }} | {{ check }} | | |
| | fputc | {{ check }} | {{ check }} | | |
| | fwrite | {{ check }} | {{ check }} | | |
| | remove | {{ check }} | {{ check }} | | |
| | rename | {{ check }} | {{ check }} | | |
| | putc | {{ check }} | {{ check }} | | |
| | printf | {{ check }} | {{ check }} | | |
| | vprintf | {{ check }} | {{ check }} | | |
| | fprintf | {{ check }} | {{ check }} | | |
| | vfprintf | {{ check }} | {{ check }} | | |
| | sprintf | {{ check }} | | | |
| | snprintf | {{ check }} | | | |
| | vsprintf | {{ check }} | | | |
| | vsnprintf | {{ check }} | | | |
| | sscanf | {{ check }} | | | |
| | scanf | {{ check }} | {{ check }} | | |
| | fscanf | {{ check }} | {{ check }} | | |
| | putchar | {{ check }} | {{ check }} | | |
| | fclose | {{ check }} | {{ check }} | | |
| | fopen | {{ check }} | {{ check }} | | |
| | fread | {{ check }} | {{ check }} | | |
| ## time.h | |
| | Function Name | Available | RPC Required | | |
| | ------------- | ----------- | ------------ | | |
| | clock | {{ check }} | | | |
| | clock_gettime | {{ check }} | | | |
| | nanosleep | {{ check }} | | | |
| | strftime | {{ check }} | | | |
| | strftime_l | {{ check }} | | | |
| ## assert.h | |
| | Function Name | Available | RPC Required | | |
| | --------------- | ----------- | ------------ | | |
| | assert | {{ check }} | {{ check }} | | |
| | `__assert_fail` | {{ check }} | {{ check }} | | |