| 1 | 4 | atypic | /**
 | 
      
         | 2 |  |  |  * \file
 | 
      
         | 3 |  |  |  * Interface for the Contiki shell.
 | 
      
         | 4 |  |  |  * \author Adam Dunkels <adam@dunkels.com>
 | 
      
         | 5 |  |  |  *
 | 
      
         | 6 |  |  |  * Some of the functions declared in this file must be implemented as
 | 
      
         | 7 |  |  |  * a shell back-end in the architecture specific files of a Contiki
 | 
      
         | 8 |  |  |  * port.
 | 
      
         | 9 |  |  |  */
 | 
      
         | 10 |  |  |  
 | 
      
         | 11 |  |  |  
 | 
      
         | 12 |  |  | /*
 | 
      
         | 13 |  |  |  * Copyright (c) 2003, Adam Dunkels.
 | 
      
         | 14 |  |  |  * All rights reserved.
 | 
      
         | 15 |  |  |  *
 | 
      
         | 16 |  |  |  * Redistribution and use in source and binary forms, with or without
 | 
      
         | 17 |  |  |  * modification, are permitted provided that the following conditions
 | 
      
         | 18 |  |  |  * are met:
 | 
      
         | 19 |  |  |  * 1. Redistributions of source code must retain the above copyright
 | 
      
         | 20 |  |  |  *    notice, this list of conditions and the following disclaimer.
 | 
      
         | 21 |  |  |  * 2. Redistributions in binary form must reproduce the above copyright
 | 
      
         | 22 |  |  |  *    notice, this list of conditions and the following disclaimer in the
 | 
      
         | 23 |  |  |  *    documentation and/or other materials provided with the distribution.
 | 
      
         | 24 |  |  |  * 3. The name of the author may not be used to endorse or promote
 | 
      
         | 25 |  |  |  *    products derived from this software without specific prior
 | 
      
         | 26 |  |  |  *    written permission.
 | 
      
         | 27 |  |  |  *
 | 
      
         | 28 |  |  |  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
 | 
      
         | 29 |  |  |  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | 
      
         | 30 |  |  |  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
      
         | 31 |  |  |  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
 | 
      
         | 32 |  |  |  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
      
         | 33 |  |  |  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 | 
      
         | 34 |  |  |  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | 
      
         | 35 |  |  |  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 | 
      
         | 36 |  |  |  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 | 
      
         | 37 |  |  |  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
      
         | 38 |  |  |  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
      
         | 39 |  |  |  *
 | 
      
         | 40 |  |  |  * This file is part of the Contiki desktop OS.
 | 
      
         | 41 |  |  |  *
 | 
      
         | 42 |  |  |  * $Id: shell.h,v 1.1 2006/06/07 09:43:54 adam Exp $
 | 
      
         | 43 |  |  |  *
 | 
      
         | 44 |  |  |  */
 | 
      
         | 45 |  |  | #ifndef __SHELL_H__
 | 
      
         | 46 |  |  | #define __SHELL_H__
 | 
      
         | 47 |  |  |  
 | 
      
         | 48 |  |  | /**
 | 
      
         | 49 |  |  |  * Initialize the shell.
 | 
      
         | 50 |  |  |  *
 | 
      
         | 51 |  |  |  * Called when the shell front-end process starts. This function may
 | 
      
         | 52 |  |  |  * be used to start listening for signals.
 | 
      
         | 53 |  |  |  */
 | 
      
         | 54 |  |  | void shell_init(void);
 | 
      
         | 55 |  |  |  
 | 
      
         | 56 |  |  | /**
 | 
      
         | 57 |  |  |  * Start the shell back-end.
 | 
      
         | 58 |  |  |  *
 | 
      
         | 59 |  |  |  * Called by the front-end when a new shell is started.
 | 
      
         | 60 |  |  |  */
 | 
      
         | 61 |  |  | void shell_start(void);
 | 
      
         | 62 |  |  |  
 | 
      
         | 63 |  |  | /**
 | 
      
         | 64 |  |  |  * Process a shell command.
 | 
      
         | 65 |  |  |  *
 | 
      
         | 66 |  |  |  * This function will be called by the shell GUI / telnet server whan
 | 
      
         | 67 |  |  |  * a command has been entered that should be processed by the shell
 | 
      
         | 68 |  |  |  * back-end.
 | 
      
         | 69 |  |  |  *
 | 
      
         | 70 |  |  |  * \param command The command to be processed.
 | 
      
         | 71 |  |  |  */
 | 
      
         | 72 |  |  | void shell_input(char *command);
 | 
      
         | 73 |  |  |  
 | 
      
         | 74 |  |  | /**
 | 
      
         | 75 |  |  |  * Quit the shell.
 | 
      
         | 76 |  |  |  *
 | 
      
         | 77 |  |  |  */
 | 
      
         | 78 |  |  | void shell_quit(char *);
 | 
      
         | 79 |  |  |  
 | 
      
         | 80 |  |  |  
 | 
      
         | 81 |  |  | /**
 | 
      
         | 82 |  |  |  * Print a string to the shell window.
 | 
      
         | 83 |  |  |  *
 | 
      
         | 84 |  |  |  * This function is implemented by the shell GUI / telnet server and
 | 
      
         | 85 |  |  |  * can be called by the shell back-end to output a string in the
 | 
      
         | 86 |  |  |  * shell window. The string is automatically appended with a linebreak.
 | 
      
         | 87 |  |  |  *
 | 
      
         | 88 |  |  |  * \param str1 The first half of the string to be output.
 | 
      
         | 89 |  |  |  * \param str2 The second half of the string to be output.
 | 
      
         | 90 |  |  |  */
 | 
      
         | 91 |  |  | void shell_output(char *str1, char *str2);
 | 
      
         | 92 |  |  |  
 | 
      
         | 93 |  |  | /**
 | 
      
         | 94 |  |  |  * Print a prompt to the shell window.
 | 
      
         | 95 |  |  |  *
 | 
      
         | 96 |  |  |  * This function can be used by the shell back-end to print out a
 | 
      
         | 97 |  |  |  * prompt to the shell window.
 | 
      
         | 98 |  |  |  *
 | 
      
         | 99 |  |  |  * \param prompt The prompt to be printed.
 | 
      
         | 100 |  |  |  *
 | 
      
         | 101 |  |  |  */
 | 
      
         | 102 |  |  | void shell_prompt(char *prompt);
 | 
      
         | 103 |  |  |  
 | 
      
         | 104 |  |  | #endif /* __SHELL_H__ */
 |