Subversion Repositories Games.Carmageddon

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include "scratch.h"
  2. #include "diag.h"
  3. #include "fwsetup.h"
  4. #include "harness/trace.h"
  5. #include "resource.h"
  6.  
  7. char scratchString[512] = "SCRATCH";
  8.  
  9. // IDA: void* __cdecl BrScratchAllocate(br_size_t size)
  10. void* BrScratchAllocate(br_size_t size) {
  11.     LOG_TRACE("(%d)", size);
  12.  
  13.     if (fw.scratch_inuse != 0) {
  14.         BrFailure("Scratchpad not available");
  15.     }
  16.  
  17.     fw.scratch_last = size;
  18.  
  19.     if (size > fw.scratch_size) {
  20.         if (fw.scratch_ptr != NULL) {
  21.             BrResFree(fw.scratch_ptr);
  22.         }
  23.         fw.scratch_ptr = BrResAllocate(fw.res, size, BR_MEMORY_SCRATCH);
  24.         fw.scratch_size = size;
  25.     }
  26.     fw.scratch_inuse = 1;
  27.     return fw.scratch_ptr;
  28. }
  29.  
  30. // IDA: void __cdecl BrScratchFree(void *scratch)
  31. void BrScratchFree(void* scratch) {
  32.     LOG_TRACE("(%p)", scratch);
  33.  
  34.     fw.scratch_inuse = 0;
  35. }
  36.  
  37. // IDA: void __cdecl BrScratchFlush()
  38. void BrScratchFlush(void) {
  39.     LOG_TRACE("()");
  40.  
  41.     if (fw.scratch_inuse != 0) {
  42.         BrFailure("Scratchpad cannot be flushed while in use");
  43.     }
  44.     if (fw.scratch_ptr != NULL) {
  45.         BrResFree(fw.scratch_ptr);
  46.     }
  47.     fw.scratch_ptr = NULL;
  48.     fw.scratch_size = 0;
  49. }
  50.  
  51. // IDA: br_size_t __cdecl BrScratchInquire()
  52. br_size_t BrScratchInquire(void) {
  53.     LOG_TRACE("()");
  54.  
  55.     return fw.scratch_size;
  56. }
  57.  
  58. // IDA: char* __cdecl BrScratchString()
  59. char* BrScratchString(void) {
  60.     LOG_TRACE9("()");
  61.  
  62.     return scratchString;
  63. }
  64.  
  65. // IDA: br_size_t __cdecl BrScratchStringSize()
  66. br_size_t BrScratchStringSize(void) {
  67.     LOG_TRACE9("()");
  68.  
  69.     return sizeof(scratchString);
  70. }
  71.