IBASE MRS-801-RE User Manual

Page 78

Advertising
background image

70

MRS-801-RE User Manual

{

struct i2c_adap *new_adapters;

new_adapters = realloc(adapters, (n + BUNCH) * sizeof(struct i2c_adap));

if (!new_adapters) {

free_adapters(adapters);

return NULL;

}

memset(new_adapters + n, 0, BUNCH * sizeof(struct i2c_adap));

return new_adapters;

}

struct i2c_adap *gather_i2c_busses(void)

{

char s[120];

struct dirent *de, *dde;

DIR *dir, *ddir;

FILE *f;

char fstype[NAME_MAX], sysfs[NAME_MAX], n[NAME_MAX];

int foundsysfs = 0;

int count=0;

struct i2c_adap *adapters;

adapters = calloc(BUNCH, sizeof(struct i2c_adap));

if (!adapters)

return NULL;

/* look in /proc/bus/i2c */

if ((f = fopen("/proc/bus/i2c", "r"))) {

while (fgets(s, 120, f)) {

char *algo, *name, *type, *all;

int len_algo, len_name, len_type;

int i2cbus;

algo = strrchr(s, '\t');

*(algo++) = '\0';

len_algo = rtrim(algo);

Advertising