IBASE MRS-801-RE User Manual

Page 77

Advertising
background image

Copyright © 2013 IBASE Technology Inc. All Rights Reserved.

69

IBASE Technology Inc.

else if (funcs & (I2C_FUNC_SMBUS_BYTE |

I2C_FUNC_SMBUS_BYTE_DATA |

I2C_FUNC_SMBUS_WORD_DATA))

ret = adt_smbus;

else

ret = adt_dummy;

close(file);

return ret;

}

/* Remove trailing spaces from a string

Return the new string length including the trailing NUL */

static int rtrim(char *s)

{

int i;

for (i = strlen(s) - 1; i >= 0 && (s[i] == ' ' || s[i] == '\n'); i--)

s[i] = '\0';

return i + 2;

}

void free_adapters(struct i2c_adap *adapters)

{

int i;

for (i = 0; adapters[i].name; i++)

free(adapters[i].name);

free(adapters);

}

/* We allocate space for the adapters in bunches. The last item is a

terminator, so here we start with room for 7 adapters, which should

be enough in most cases. If not, we allocate more later as needed. */

#define BUNCH 8

/* n must match the size of adapters at calling time */

static struct i2c_adap *more_adapters(struct i2c_adap *adapters, int n)

Advertising