Subversion Repositories shark

Rev

Rev 501 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include <FTrace_chunk.h>
#include <FTrace_OSD.h>
#include <FTrace_types.h>

#include <kernel/kern.h>
#include <stdlib.h>

SYS_FLAGS FTracef;

extern FTrace_Chunk_Ptr ActualChunk;
extern BYTE OSD_pointers[FTRACE_OSD_CHUNK_HEAD];

void FTrace_fsave()
{

  FTracef = kern_fsave();

}

void FTrace_frestore()
{
                                                                                                                             
  kern_frestore(FTracef);
                                                                                                                             
}

void FTrace_lock()
{

}

void FTrace_unlock()
{
                                                                                                                             
}

void *FTrace_malloc(int size)
{

  return malloc(size);

}

void FTrace_free(void *ptr)
{
                                                                                                                             
  free(ptr);
                                                                                                                             
}

int FTrace_OSD_init()
{

  return 0;

}

int FTrace_OSD_chunk_init(FTrace_Chunk_Ptr c, int size, FTrace_flags flags)
{

  *(DWORD *)(c->osd) = 0;
  *(DWORD *)(c->osd + 4) = (DWORD)(c->sizemask);
  *(DWORD *)(c->osd + 8) = (DWORD)(c->osd + 60);
  *(DWORD *)(c->osd + 12) = 0;
  *(DWORD *)(c->osd + 16) = 0;

  *(DWORD *)(c->osd + 20) = 0;
  *(DWORD *)(c->osd + 24) = 0;
  *(DWORD *)(c->osd + 28) = 0;
  *(DWORD *)(c->osd + 32) = 0;
  *(DWORD *)(c->osd + 36) = 0;

  *(DWORD *)(c->osd + 40) = 0;
  *(DWORD *)(c->osd + 44) = 0;
  *(DWORD *)(c->osd + 48) = 0;
  *(DWORD *)(c->osd + 52) = 0;
  *(DWORD *)(c->osd + 56) = 0;

  return 0;

}

/* OSD Chunk Link */
int FTrace_OSD_chunk_link(FTrace_Chunk_Ptr a, FTrace_Chunk_Ptr b, int osd_flags)
{

  int delta = 0;

  if (osd_flags == FTRACE_OSD_NEXT1)
    delta = 20;
  if (osd_flags == FTRACE_OSD_NEXT2)
    delta = 40;

  if (delta == 0) return -1;

  memcpy((void *)(a->osd+delta),(void *)(b->osd),20);

  return 0;

}

int FTrace_OSD_load_pointers()
{

  if (ActualChunk == NULL) return -1;

  memcpy((void *)OSD_pointers,(void *)ActualChunk->osd,FTRACE_OSD_CHUNK_HEAD);

  return 0;

}

int FTrace_OSD_save_pointers()
{

  if (ActualChunk == NULL) return -1;
                                                                                                                             
  memcpy((void *)ActualChunk->osd,(void *)OSD_pointers,FTRACE_OSD_CHUNK_HEAD);
                                                                                                                             
  return 0;
                                                                                                                             
}

int FTrace_OSD_compress_chunk(int number, void *temp_data, int *data_size)
{

  return 0;

}

int FTrace_OSD_send_chunk(int number, int osd_flag)
{

  return 0;

}