/* * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * The Original Code is legOS code, released October 17, 1999. * * The Initial Developer of the Original Code is Markus L. Noga. * Portions created by Markus L. Noga are Copyright (C) 1999 * Markus L. Noga. All Rights Reserved. * * Contributor(s): Markus L. Noga <markus@noga.de> */ #ifndef __program_h__ #define __program_h__ #include <config.h> #ifdef CONF_PROGRAM #include <tm.h> // // Definitions // #define PROG_MAX 8 typedef struct { void *text; void *data; void *bss; void *data_orig; size_t text_size; size_t data_size; size_t bss_size; size_t stack_size; size_t start; priority_t prio; size_t downloaded; } program_t; typedef enum { CMDacknowledge, CMDdelete, CMDcreate, CMDoffsets, CMDdata, CMDrun, CMDlast } packet_cmd_t; // // Variables // extern volatile unsigned cprog; // // Functions // /*! \return 0 if invalid */ extern int program_valid(unsigned nr); extern void program_init(); extern void program_shutdown(); #endif // CONF_PROGRAM #endif // __program_h__