/*
	 Copyright 2001 (c) by Authors,
	 Swiss Federal Institute of Technology,
	 Computer Engineering and Networks Laboratory.
 
	 TOPSY -- A Teachable Operating System.
	 Implementation of a tiny and simple
	 micro kernel for teaching purposes.
 
	 For further information, please visit http://www.tik.ee.ethz.ch/~topsy
 
	 This software is provided under the terms of the GNU General Public 
	 Licence. A full copy of the GNU GPL is provided in the file COPYING 
	 found in the development root of Topsy.
*/

#ifndef _UCODE_H_
#define _UCODE_H_


#include "types.h"


typedef struct uEng_uCodeInfo
{
  uint32 *code;
  int length;
}
* uEng_uCodeInfo;

static inline uint32 uCode_RelocateBranchField(uint32 code, uint16 offset);
void            uCode_RelocateBranches(uEng_uCodeInfo info, uint16 offset);
uEng_uCodeInfo  uCode_Add_rtn(uEng_uCodeInfo info);
uEng_uCodeInfo  uCode_Add_immed(uEng_uCodeInfo info, uint32 data);


#endif
