Files
OpenCellular/util/misc_util.h
Guenter Roeck 7ce63a09f9 ectool: Upgrade to improved ioctl format
Support both old and new ioctl formats at the same time.
Auto-detect the ioctl format used by the kernel.

BUG=chromium:481710
BRANCH=None
TEST=Work on Samus with kernel 4.4 and 3.8/3.14/3.18

Change-Id: I31d7ce5b517b4b5af8e2b617e386c3cfd3276f20
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/331830
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
2016-04-12 19:00:36 -07:00

66 lines
1.9 KiB
C

/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef __UTIL_MISC_UTIL_H
#define __UTIL_MISC_UTIL_H
/* Don't use a macro where an inline will do... */
static inline int MIN(int a, int b) { return a < b ? a : b; }
static inline int MAX(int a, int b) { return a > b ? a : b; }
/**
* Write a buffer to the file.
*
* @param filename Target filename
* @param buf Buffer to write
* @param size Size of buffer in bytes
* @return non-zero if error
*/
int write_file(const char *filename, const char *buf, int size);
/**
* Read a file into a newly-allocated buffer.
*
* @param filename Source filename
* @param size Size of data in bytes will be stored here on success.
* @return A newly allocated buffer with the data, which must be freed with
* free() by the caller, or NULL if error.
*/
char *read_file(const char *filename, int *size);
/**
* Check if a string contains only printable characters.
*
* @param buf Null-terminated string to check
* @return non-zero if buf contains only printable characters; zero if not.
*/
int is_string_printable(const char *buf);
/**
* Get the versions of the command supported by the EC.
*
* @param cmd Command
* @param pmask Destination for version mask; will be set to 0 on
* error.
* @return 0 if success, <0 if error
*/
int ec_get_cmd_versions(int cmd, uint32_t *pmask);
/**
* Return non-zero if the EC supports the command and version
*
* @param cmd Command to check
* @param ver Version to check
* @return non-zero if command version supported; 0 if not.
*/
int ec_cmd_version_supported(int cmd, int ver);
/**
* Return 1 is the current kernel version is greater or equal to
* <major>.<minor>.<sublevel>
*/
int kernel_version_ge(int major, int minor, int sublevel);
#endif