From b07cfde31bf1f2152945b8b049f9e7d92039c612 Mon Sep 17 00:00:00 2001 From: adamdunkels Date: Fri, 25 May 2007 06:40:19 +0000 Subject: [PATCH] Generic API for MAC layers --- core/net/mac/mac.h | 65 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 core/net/mac/mac.h diff --git a/core/net/mac/mac.h b/core/net/mac/mac.h new file mode 100644 index 000000000..d5ebcf6d6 --- /dev/null +++ b/core/net/mac/mac.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2007, Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + * $Id: mac.h,v 1.1 2007/05/25 06:40:19 adamdunkels Exp $ + */ + +/** + * \file + * MAC driver header file + * \author + * Adam Dunkels + */ + +#ifndef __MAC_H__ +#define __MAC_H__ + +/** + * The structure of a device driver for a radio in Contiki. + */ +struct mac_driver { + /** Send a packet from the Rime buffer */ + int (* send)(void); + + /** Read a received packet into the Rime buffer. */ + int (* read)(void); + + /** Set a function to be called when a packet has been received. */ + void (* set_receive_function)(void (*f)(const struct mac_driver *d)); + + /** Turn the MAC layer on. */ + int (* on)(void); + + /** Turn the MAC layer off. */ + int (* off)(void); +}; + + +#endif /* __MAC_H__ */