static int qual_syscall(const char *s, const unsigned int bitflag, const int not) { int p; unsigned int i; int rc = -1; if (*s >= '0' && *s <= '9') { i = string_to_uint(s); if (i >= MAX_NSYSCALLS) return -1; qualify_one(i, bitflag, not, -1); return 0; } for (p = 0; p < SUPPORTED_PERSONALITIES; p++) { for (i = 0; i < nsyscall_vec[p]; i++) { if (sysent_vec[p][i].sys_name && strcmp(s, sysent_vec[p][i].sys_name) == 0 ) { qualify_one(i, bitflag, not, p); rc = 0; } } } return rc; }
void set_local_time(char *buf) { time_t t; t=string_to_uint(buf); //printf("I get %s %d\n",buf,strlen(buf)); //printf("%u\n",(unsigned)t); stime(&t); printf("%s\n",ctime(&t)); printf("Set Time Successed. . .\n"); }
static int qual_desc(const char *s, const unsigned int bitflag, const int not) { if (*s >= '0' && *s <= '9') { int desc = string_to_uint(s); if (desc < 0 || desc > 0x7fff) /* paranoia */ return -1; qualify_one(desc, bitflag, not, -1); return 0; } return -1; }
uint8_t stream_read_uint8(stream_t* stream) { uint8_t value = 0; if (stream_is_binary(stream)) stream_read(stream, &value, 1); else { char buffer[6] = {0}; string_t str = stream_read_string_buffer(stream, buffer, 6); value = (uint8_t)string_to_uint(str.str, str.length, false); } return value; }
uint8_t stream_read_uint8( stream_t* stream ) { uint8_t value = 0; if( stream_is_binary( stream ) ) stream_read( stream, &value, 1 ); else { char* str = stream_read_string( stream ); value = (uint8_t)string_to_uint( str, false ); string_deallocate( str ); } return value; }
uint32_t stream_read_uint32(stream_t* stream) { uint32_t value = 0; if (stream_is_binary(stream)) { stream_read(stream, &value, 4); if (stream->swap) value = byteorder_swap32(value); } else { char buffer[12] = {0}; string_t str = stream_read_string_buffer(stream, buffer, 12); value = (uint32_t)string_to_uint(str.str, str.length, false); } return value; }
uint32_t stream_read_uint32( stream_t* stream ) { uint32_t value = 0; if( stream_is_binary( stream ) ) { stream_read( stream, &value, 4 ); if( stream && stream->swap ) value = byteorder_swap32( value ); } else { char* str = stream_read_string( stream ); value = string_to_uint( str, false ); string_deallocate( str ); } return value; }
static bool qualify_syscall_number(const char *s, struct number_set *set) { int n = string_to_uint(s); if (n < 0) return false; bool done = false; for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) { if ((unsigned) n >= nsyscall_vec[p]) continue; add_number_to_set_array(n, set, p); done = true; } return done; }
static int qual_signal(const char *s, const unsigned int bitflag, const int not) { unsigned int i; if (*s >= '0' && *s <= '9') { int signo = string_to_uint(s); if (signo < 0 || signo > 255) return -1; qualify_one(signo, bitflag, not, -1); return 0; } if (strncasecmp(s, "SIG", 3) == 0) s += 3; for (i = 0; i <= NSIG; i++) { if (strcasecmp(s, signame(i) + 3) == 0) { qualify_one(i, bitflag, not, -1); return 0; } } return -1; }
static ssize_t rsc_ops_write(struct file *fp, const char __user *user_buffer, size_t count, loff_t *position) { char buf[MAX_MSG_BUFFER], rsc_type_str[6] = {}, rpm_set[8] = {}, key_str[6] = {}; int i, pos, set = -1, nelems; char *cmp; uint32_t rsc_type, rsc_id, key, data; struct msm_rpm_request *req; count = min(count, sizeof(buf) - 1); if (copy_from_user(&buf, user_buffer, count)) return -EFAULT; buf[count] = '\0'; cmp = strstrip(buf); sscanf(cmp, "%7s %5s %u %d %n", rpm_set, rsc_type_str, &rsc_id, &nelems, &pos); if (strlen(rpm_set) > 6 || strlen(rsc_type_str) > 4) { pr_err("Invalid value of set or resource type\n"); goto err; } if (!strcmp(rpm_set, "active")) set = 0; else if (!strcmp(rpm_set, "sleep")) set = 1; rsc_type = string_to_uint(rsc_type_str); if (set < 0 || nelems < 0) { pr_err("Invalid value of set or nelems\n"); goto err; } if (nelems > MAX_KEY_VALUE_PAIRS) { pr_err("Exceeded max no of key-value entries\n"); goto err; } req = msm_rpm_create_request(set, rsc_type, rsc_id, nelems); if (!req) return -ENOMEM; for (i = 0; i < nelems; i++) { cmp += pos; sscanf(cmp, "%5s %n", key_str, &pos); if (strlen(key_str) > 4) { pr_err("Key value cannot be more than 4 charecters"); goto err; } key = string_to_uint(key_str); if (!key) { pr_err("Key values entered incorrectly\n"); goto err; } cmp += pos; sscanf(cmp, "%u %n", &data, &pos); if (msm_rpm_add_kvp_data(req, key, (void *)&data, sizeof(data))) goto err_request; } if (msm_rpm_wait_for_ack(msm_rpm_send_request(req))) pr_err("Sending the RPM message failed\n"); else pr_info("RPM message sent succesfully\n"); err_request: msm_rpm_free_request(req); err: return count; }