1*6cf21d56SGarrett Wollman%{ 2*6cf21d56SGarrett Wollman/* 3*6cf21d56SGarrett Wollman * Copyright is disclaimed as to the contents of this file. 4*6cf21d56SGarrett Wollman */ 5*6cf21d56SGarrett Wollman 6*6cf21d56SGarrett Wollman#include <sys/types.h> 7*6cf21d56SGarrett Wollman 8*6cf21d56SGarrett Wollman#include <string.h> 9*6cf21d56SGarrett Wollman#include <limits.h> 10*6cf21d56SGarrett Wollman 11*6cf21d56SGarrett Wollman#include "getconf.h" 12*6cf21d56SGarrett Wollman 13*6cf21d56SGarrett Wollman/* 14*6cf21d56SGarrett Wollman * Override gperf's built-in external scope. 15*6cf21d56SGarrett Wollman */ 16*6cf21d56SGarrett Wollmanstatic const struct map *in_word_set(const char *str); 17*6cf21d56SGarrett Wollman 18*6cf21d56SGarrett Wollman%} 19*6cf21d56SGarrett Wollmanstruct map { const char *name; uintmax_t value; int valid; }; 20*6cf21d56SGarrett Wollman%% 21*6cf21d56SGarrett WollmanUCHAR_MAX, UCHAR_MAX 22*6cf21d56SGarrett WollmanUINT_MAX, UINT_MAX 23*6cf21d56SGarrett WollmanULLONG_MAX, ULLONG_MAX 24*6cf21d56SGarrett WollmanULONG_MAX, ULONG_MAX 25*6cf21d56SGarrett WollmanUSHRT_MAX, USHRT_MAX 26*6cf21d56SGarrett Wollman%% 27*6cf21d56SGarrett Wollmanint 28*6cf21d56SGarrett Wollmanfind_unsigned_limit(const char *name, uintmax_t *value) 29*6cf21d56SGarrett Wollman{ 30*6cf21d56SGarrett Wollman const struct map *rv; 31*6cf21d56SGarrett Wollman 32*6cf21d56SGarrett Wollman rv = in_word_set(name); 33*6cf21d56SGarrett Wollman if (rv != NULL) { 34*6cf21d56SGarrett Wollman if (rv->valid) { 35*6cf21d56SGarrett Wollman *value = rv->value; 36*6cf21d56SGarrett Wollman return 1; 37*6cf21d56SGarrett Wollman } 38*6cf21d56SGarrett Wollman return -1; 39*6cf21d56SGarrett Wollman } 40*6cf21d56SGarrett Wollman return 0; 41*6cf21d56SGarrett Wollman} 42