sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

osLeoDiskInit.c (1013B)


      1 #include "libultra_internal.h"
      2 #include "PR/rcp.h"
      3 #include "PR/os.h"
      4 
      5 OSPiHandle __Dom2SpeedParam;
      6 OSPiHandle *__osDiskHandle;
      7 
      8 OSPiHandle *osLeoDiskInit(void) {
      9     s32 saveMask;
     10 
     11     __Dom2SpeedParam.type = DEVICE_TYPE_64DD;
     12     __Dom2SpeedParam.baseAddress = PHYS_TO_K1(PI_DOM2_ADDR1);
     13     __Dom2SpeedParam.latency = 3;
     14     __Dom2SpeedParam.pulse = 6;
     15     __Dom2SpeedParam.pageSize = 6;
     16     __Dom2SpeedParam.relDuration = 2;
     17 #ifdef VERSION_SH
     18     __Dom2SpeedParam.domain = 1;
     19 #endif
     20     IO_WRITE(PI_BSD_DOM2_LAT_REG, __Dom2SpeedParam.latency);
     21     IO_WRITE(PI_BSD_DOM2_PWD_REG, __Dom2SpeedParam.pulse);
     22     IO_WRITE(PI_BSD_DOM2_PGS_REG, __Dom2SpeedParam.pageSize);
     23     IO_WRITE(PI_BSD_DOM2_RLS_REG, __Dom2SpeedParam.relDuration);
     24     bzero(&__Dom2SpeedParam.transferInfo, sizeof(__OSTranxInfo));
     25     saveMask = __osDisableInt();
     26     __Dom2SpeedParam.next = __osPiTable;
     27     __osPiTable = &__Dom2SpeedParam;
     28     __osDiskHandle = &__Dom2SpeedParam;
     29     __osRestoreInt(saveMask);
     30     return &__Dom2SpeedParam;
     31 }