On Sun, Jul 20, 2008 at 12:47:38PM -0400, Jon Smirl wrote: > On 7/20/08, Jon Smirl <[EMAIL PROTECTED]> wrote: > > On 7/20/08, Ben Dooks <[EMAIL PROTECTED]> wrote: > > > On Sat, Jul 19, 2008 at 08:46:41PM -0400, Jon Smirl wrote: > > > > There are a lot places in the i2c API where int is used when the > > > > parameter can't be negative. For example, there are more.... > > > > > > > > /* > > > > * The master routines are the ones normally used to transmit data to > > devices > > > > * on a bus (or read from them). Apart from two basic transfer > > functions to > > > > * transmit one message at a time, a more complex version can be used > > to > > > > * transmit an arbitrary number of messages without interruption. > > > > */ > > > > extern int i2c_master_send(struct i2c_client *,const char* ,int); > > > > extern int i2c_master_recv(struct i2c_client *,char* ,int); > > > > > > > > /* Transfer num messages. > > > > */ > > > > extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg > > > > *msgs, int num); > > > > > > > > u8 level; /* nesting level for lockdep */ > > > > > > > > > > > > Wouldn't these generate more efficient code if switched to uints? > > > > > > > > > I'm not sure, most of the time there's not a lot of difference > > > between the signed and unsigned case. If you can provide an example > > > of where this is actually true then I would be interested to see... > > > > > > Assigning between lengths causes sign extended instructions. Mixing > > signed and unsigned in expressions can cause them too.
Entirely dependant on the architecture, so very rarely see anything like this happening on ARM. > > You get the best code generation by using int or unsigned int as > > appropriate and supplying the compiler with the correct description of > > the variable. > > The compiler is also able to catch more errors. If the math can only > yield a negative result and it is being compared to a unsigned int, > you'll get compiler errors like " expression is constant". The compiler checking argument is the most compelling of these, are you offering to do the necessary changes, or is this fishing to find someone else to do it? -- Ben ([EMAIL PROTECTED], http://www.fluff.org/) 'a smiley only costs 4 bytes' _______________________________________________ i2c mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/i2c
