/*
* 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,
CMDirmode,
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__
legOS-0.2.4 is released under the