1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-22 08:48:26 +02:00

atusb/fw/: convert functions returning "int" to "bool"

Firmware size is down from 5612 to 3590 bytes. Wow !
This commit is contained in:
Werner Almesberger 2013-03-29 19:14:11 -03:00
parent c9ab070ffd
commit a8db238cbb
15 changed files with 74 additions and 61 deletions

View File

@ -1,8 +1,8 @@
/*
* fw/board.h - Board-specific functions and definitions
*
* Written 2008-2011 by Werner Almesberger
* Copyright 2008-2011 Werner Almesberger
* Written 2008-2011, 2013 by Werner Almesberger
* Copyright 2008-2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -13,6 +13,7 @@
#ifndef BOARD_H
#define BOARD_H
#include <stdbool.h>
#include <stdint.h>
@ -87,7 +88,7 @@ void panic(void);
uint64_t timer_read(void);
void timer_init(void);
int gpio(uint8_t port, uint8_t data, uint8_t dir, uint8_t mask, uint8_t *res);
bool gpio(uint8_t port, uint8_t data, uint8_t dir, uint8_t mask, uint8_t *res);
void gpio_cleanup(void);
void board_init(void);

View File

@ -1,8 +1,8 @@
/*
* fw/board_app.c - Board-specific functions (for the application)
*
* Written 2011 by Werner Almesberger
* Copyright 2011 Werner Almesberger
* Written 2011, 2013 by Werner Almesberger
* Copyright 2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -12,6 +12,7 @@
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#include <avr/io.h>
@ -92,7 +93,7 @@ void timer_init(void)
}
int gpio(uint8_t port, uint8_t data, uint8_t dir, uint8_t mask, uint8_t *res)
bool gpio(uint8_t port, uint8_t data, uint8_t dir, uint8_t mask, uint8_t *res)
{
EIMSK = 0; /* recover INT_RF to ATUSB_GPIO_CLEANUP or an MCU reset */

View File

@ -1,8 +1,8 @@
/*
* fw/ep0.c - EP0 extension protocol
*
* Written 2008-2011 by Werner Almesberger
* Copyright 2008-2011 Werner Almesberger
* Written 2008-2011, 2013 by Werner Almesberger
* Copyright 2008-2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -11,6 +11,7 @@
*/
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
@ -57,7 +58,7 @@ static void do_buf_write(void *user)
#define BUILD_OFFSET 7 /* '#' plus "65535" plus ' ' */
static int my_setup(const struct setup_request *setup)
static bool my_setup(const struct setup_request *setup)
{
uint16_t req = setup->bmRequestType | setup->bRequest << 8;
unsigned tmp;
@ -254,7 +255,7 @@ static int my_setup(const struct setup_request *setup)
}
static int my_dfu_setup(const struct setup_request *setup)
static bool my_dfu_setup(const struct setup_request *setup)
{
switch (setup->bmRequestType | setup->bRequest << 8) {
case DFU_TO_DEV(DFU_DETACH):

View File

@ -1,8 +1,8 @@
/*
* fw/flash.c - Board-specific flash functions
*
* Written 2011 by Werner Almesberger
* Copyright 2011 Werner Almesberger
* Written 2011, 2013 by Werner Almesberger
* Copyright 2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -11,6 +11,7 @@
*/
#include <stdbool.h>
#include <stdint.h>
#include <avr/boot.h>
@ -29,7 +30,7 @@ void flash_start(void)
}
int flash_can_write(uint16_t size)
bool flash_can_write(uint16_t size)
{
return payload+size <= BOOT_ADDR;
}

View File

@ -118,7 +118,7 @@ static void change_state(uint8_t new)
}
int mac_rx(int on)
bool mac_rx(int on)
{
if (on) {
mac_irq = handle_irq;
@ -178,7 +178,7 @@ static void do_tx(void *user)
}
int mac_tx(uint16_t flags, uint16_t len)
bool mac_tx(uint16_t flags, uint16_t len)
{
if (len > MAX_PSDU)
return 0;

View File

@ -13,13 +13,14 @@
#ifndef MAC_H
#define MAC_H
#include <stdbool.h>
#include <stdint.h>
extern int (*mac_irq)(void);
int mac_rx(int on);
int mac_tx(uint16_t flags, uint16_t len);
bool mac_rx(int on);
bool mac_tx(uint16_t flags, uint16_t len);
void mac_reset(void);
#endif /* !MAC_H */

View File

@ -1,8 +1,8 @@
/*
* fw/sernum.c - ATUSB serial number
*
* Written 2008-2011 by Werner Almesberger
* Copyright 2008-2011 Werner Almesberger
* Written 2008-2011, 2013 by Werner Almesberger
* Copyright 2008-2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -11,6 +11,7 @@
*/
#include <stdbool.h>
#include <stdint.h>
#include "usb.h"
@ -26,7 +27,7 @@ static const uint8_t string_descriptor_0[] = {
};
int sernum_get_descr(uint8_t type, uint8_t index, const uint8_t **reply,
bool sernum_get_descr(uint8_t type, uint8_t index, const uint8_t **reply,
uint8_t *size)
{
if (type != USB_DT_STRING)

View File

@ -1,8 +1,8 @@
/*
* fw/sernum.h - ATUSB serial number
*
* Written 2011 by Werner Almesberger
* Copyright 2011 Werner Almesberger
* Written 2011, 2013 by Werner Almesberger
* Copyright 2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -13,6 +13,7 @@
#ifndef SERNUM_H
#define SERNUM_H
#include <stdbool.h>
#include <stdint.h>
#include "board.h"
@ -20,12 +21,12 @@
#ifdef HAS_BOARD_SERNUM
int sernum_get_descr(uint8_t type, uint8_t index, const uint8_t **reply,
bool sernum_get_descr(uint8_t type, uint8_t index, const uint8_t **reply,
uint8_t *size);
#else /* HAS_BOARD_SERNUM */
static inline int sernum_get_descr(uint8_t type, uint8_t index,
static inline bool sernum_get_descr(uint8_t type, uint8_t index,
const uint8_t **reply, uint8_t *size)
{
return 0;

View File

@ -1,8 +1,8 @@
/*
* fw/spi.c - ATmega8 family SPI I/O
*
* Written 2011 by Werner Almesberger
* Copyright 2011 Werner Almesberger
* Written 2011, 2013 by Werner Almesberger
* Copyright 2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -11,6 +11,7 @@
*/
#include <stdbool.h>
#include <stdint.h>
#include <avr/io.h>
@ -19,7 +20,7 @@
#include "spi.h"
static int spi_initialized = 0;
static bool spi_initialized = 0;
void spi_begin(void)

View File

@ -1,8 +1,8 @@
/*
* fw/usb/atu2.c - Chip-specific driver for Atmel ATxxxU2 USB chips
*
* Written 2008-2011 by Werner Almesberger
* Copyright 2008-2011 Werner Almesberger
* Written 2008-2011, 2013 by Werner Almesberger
* Copyright 2008-2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -18,6 +18,7 @@
* - enumeration often encounters an error -71 (from which it recovers)
*/
#include <stdbool.h>
#include <stdint.h>
#define F_CPU 8000000UL
@ -59,11 +60,10 @@ static void enable_addr(void *user)
}
int set_addr(uint8_t addr)
void set_addr(uint8_t addr)
{
UDADDR = addr;
usb_send(&eps[0], NULL, 0, enable_addr, NULL);
return 1;
}
@ -76,7 +76,7 @@ void usb_ep_change(struct ep_descr *ep)
}
static int ep_setup(void)
static bool ep_setup(void)
{
struct setup_request setup;
@ -96,7 +96,7 @@ static int ep_setup(void)
}
static int ep_rx(struct ep_descr *ep)
static bool ep_rx(struct ep_descr *ep)
{
uint8_t size;

View File

@ -1,8 +1,8 @@
/*
* boot/dfu.c - DFU protocol engine
*
* Written 2008-2011 by Werner Almesberger
* Copyright 2008-2011 Werner Almesberger
* Written 2008-2011, 2013 by Werner Almesberger
* Copyright 2008-2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -25,6 +25,7 @@
*/
#include <stdbool.h>
#include <stdint.h>
#include "usb.h"
@ -81,7 +82,7 @@ const uint8_t config_descriptor[] = {
static uint16_t next_block = 0;
static int did_download;
static bool did_download;
static uint8_t buf[EP0_SIZE];
@ -95,7 +96,7 @@ static void block_write(void *user)
}
static int block_receive(uint16_t length)
static bool block_receive(uint16_t length)
{
static uint16_t size;
@ -115,7 +116,7 @@ static int block_receive(uint16_t length)
}
static int block_transmit(uint16_t length)
static bool block_transmit(uint16_t length)
{
uint16_t got;
@ -134,9 +135,9 @@ static int block_transmit(uint16_t length)
}
static int my_setup(const struct setup_request *setup)
static bool my_setup(const struct setup_request *setup)
{
int ok;
bool ok;
switch (setup->bmRequestType | setup->bRequest << 8) {
case DFU_TO_DEV(DFU_DETACH):

View File

@ -1,8 +1,8 @@
/*
* boot/dfu.h - DFU protocol constants and data structures
*
* Written 2008, 2011 by Werner Almesberger
* Copyright 2008, 2011 Werner Almesberger
* Written 2008, 2011, 2013 by Werner Almesberger
* Copyright 2008, 2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -14,6 +14,7 @@
#ifndef DFU_H
#define DFU_H
#include <stdbool.h>
#include <stdint.h>
#include "usb.h"
@ -101,13 +102,13 @@ extern struct dfu dfu;
void flash_start(void);
int flash_can_write(uint16_t size);
bool flash_can_write(uint16_t size);
void flash_write(const uint8_t *buf, uint16_t size);
void flash_end_write(void);
uint16_t flash_read(uint8_t *buf, uint16_t size);
int dfu_setup_common(const struct setup_request *setup);
int dfu_my_descr(uint8_t type, uint8_t index, const uint8_t **reply,
bool dfu_setup_common(const struct setup_request *setup);
bool dfu_my_descr(uint8_t type, uint8_t index, const uint8_t **reply,
uint8_t *size);
void dfu_init(void);

View File

@ -1,8 +1,8 @@
/*
* boot/dfu_common.c - DFU protocol engine parts common to App/DFU
*
* Written 2008-2011 by Werner Almesberger
* Copyright 2008-2011 Werner Almesberger
* Written 2008-2011, 2013 by Werner Almesberger
* Copyright 2008-2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -25,6 +25,7 @@
*/
#include <stdbool.h>
#include <stdint.h>
#include "usb.h"
@ -65,7 +66,7 @@ struct dfu dfu = {
};
int dfu_setup_common(const struct setup_request *setup)
bool dfu_setup_common(const struct setup_request *setup)
{
switch (setup->bmRequestType | setup->bRequest << 8) {
case DFU_FROM_DEV(DFU_GETSTATUS):
@ -89,7 +90,7 @@ int dfu_setup_common(const struct setup_request *setup)
}
int dfu_my_descr(uint8_t type, uint8_t index, const uint8_t **reply,
bool dfu_my_descr(uint8_t type, uint8_t index, const uint8_t **reply,
uint8_t *size)
{
if (type != DFU_DT_FUNCTIONAL)

View File

@ -1,8 +1,8 @@
/*
* fw/usb/usb.c - USB hardware setup and standard device requests
*
* Written 2008-2011 by Werner Almesberger
* Copyright 2008-2011 Werner Almesberger
* Written 2008-2011, 2013 by Werner Almesberger
* Copyright 2008-2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -16,6 +16,7 @@
* - should support EP clearing and stalling
*/
#include <stdbool.h>
#include <stdint.h>
#include "usb.h"
@ -33,9 +34,9 @@ extern void panic(void);
#define BUG_ON(cond)
#endif
int (*user_setup)(const struct setup_request *setup);
bool (*user_setup)(const struct setup_request *setup);
void (*user_set_interface)(int nth);
int (*user_get_descriptor)(uint8_t type, uint8_t index,
bool (*user_get_descriptor)(uint8_t type, uint8_t index,
const uint8_t **reply, uint8_t *size);
void (*user_reset)(void);
@ -53,7 +54,7 @@ void usb_io(struct ep_descr *ep, enum ep_state state, uint8_t *buf,
}
static int get_descriptor(uint8_t type, uint8_t index, uint16_t length)
static bool get_descriptor(uint8_t type, uint8_t index, uint16_t length)
{
const uint8_t *reply;
uint8_t size;
@ -82,7 +83,7 @@ static int get_descriptor(uint8_t type, uint8_t index, uint16_t length)
}
int handle_setup(const struct setup_request *setup)
bool handle_setup(const struct setup_request *setup)
{
switch (setup->bmRequestType | setup->bRequest << 8) {

View File

@ -1,8 +1,8 @@
/*
* fw/usb//usb.h - USB hardware setup and standard device requests
*
* Written 2008, 2009, 2011 by Werner Almesberger
* Copyright 2008, 2009, 2011 Werner Almesberger
* Written 2008, 2009, 2011, 2013 by Werner Almesberger
* Copyright 2008, 2009, 2011, 2013 Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -15,6 +15,7 @@
#define USB_H
#include <stdbool.h>
#include <stdint.h>
@ -132,9 +133,9 @@ extern const uint8_t device_descriptor[];
extern const uint8_t config_descriptor[];
extern struct ep_descr eps[];
extern int (*user_setup)(const struct setup_request *setup);
extern bool (*user_setup)(const struct setup_request *setup);
extern void (*user_set_interface)(int nth);
extern int (*user_get_descriptor)(uint8_t type, uint8_t index,
extern bool (*user_get_descriptor)(uint8_t type, uint8_t index,
const uint8_t **reply, uint8_t *size);
extern void (*user_reset)(void);
@ -148,8 +149,8 @@ extern void (*user_reset)(void);
void usb_io(struct ep_descr *ep, enum ep_state state, uint8_t *buf,
uint8_t size, void (*callback)(void *user), void *user);
int handle_setup(const struct setup_request *setup);
int set_addr(uint8_t addr);
bool handle_setup(const struct setup_request *setup);
void set_addr(uint8_t addr);
void usb_ep_change(struct ep_descr *ep);
void usb_reset(void);
void usb_init(void);