Advertisement
Yosh

kermit.h

Aug 15th, 2012
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.16 KB | None | 0 0
  1.  
  2. // Authors : Davee, Yosh
  3.  
  4. #ifndef __KERMIT_H__
  5. #define __KERMIT_H__
  6.  
  7. typedef struct KermitPacket_
  8. {
  9.     u32 cmd;            //0x0
  10.     SceUID sema;        //0x4
  11.     struct KermitPacket_ *self; //0x8
  12.     u32 unk_C;          //0xC
  13. } KermitPacket;
  14.  
  15. #define KERMIT_MAX_ARGC     (13)
  16.  
  17. /*
  18.     Issue a command to kermit.
  19.    
  20.     packet:             a kermit packet. Header followed by 64 bit words (LE) as arguements.
  21.     cmd_mode:           a valid command mode type.
  22.     cmd:                a valid command subtype of cmd_mode.
  23.     argc:               the number of 64 bit arguements following the header. Max 13 arguements.
  24.     allow_callback:     set non-zero to use callback permitting semaphore wait.
  25.     resp:               64 bit word returned by the kermit call.
  26.    
  27.     returns 0 on success, else < 0 on error.
  28. */
  29. int sceKermit_driver_4F75AA05(KermitPacket *packet, u32 cmd_mode, u32 cmd, u32 argc, u32 allow_callback, u64 *resp)
  30.  
  31. #define KERMIT_INPUT_MODE   (1)
  32. #define KERMIT_OUTPUT_MODE  (2)
  33.  
  34. /*
  35.     Apply IO to kermit packet.
  36.    
  37.     packet:             a kermit packet. Header followed by 64 bit words (LE) as arguements.
  38.     argc:               the number of arguements in the packet. Max 13 arguements.
  39.     buffer:             the input buffer containing the data to be sent or the output buffer to store data.
  40.     buffer_size:        the size of the input data, else the size of the output buffer.
  41.     io_mode:            KERMIT_INPUT_MODE for data input. KERMIT_OUTPUT_MODE for expecting output data.
  42. */
  43. void sceKermitMemory_driver_AAF047AC(KermitPacket *packet, u32 argc, u8 *buffer, u32 buffer_size, u32 io_mode);
  44.  
  45. /*
  46.     Send data to vita host.
  47.    
  48.     data:               pointer to the data to be sent to host.
  49.     len:                the size of the data to be sent.
  50. */
  51. void sceKermitMemory_driver_80E1240A(u8 *data, u32 len);
  52.  
  53. /*
  54.     Recieve data from vita host.
  55.    
  56.     data:               pointer to buffer to store output data.
  57.     len:                the size of the expected output data.
  58. */
  59. void sceKermitMemory_driver_90B662D0(u8 *data, u32 data_size);
  60.  
  61.  
  62. /* Kermit command modes */
  63. #define KERMIT_MODE_MSFS        (0x3)
  64. #define KERMIT_MODE_FLASHFS     (0x4)
  65. #define KERMIT_MODE_AUDIO       (0x5)
  66. #define KERMIT_MODE_ME          (0x6)
  67. #define KERMIT_MODE_LOWIO       (0x7)
  68. #define KERMIT_MODE_PERIPHERAL  (0x9)
  69. #define KERMIT_MODE_WLAN        (0xA)
  70. #define KERMIT_MODE_USB         (0xC)
  71. #define KERMIT_MODE_UTILITY     (0xD)
  72.  
  73.  
  74. /* kermit KERMIT_MODE_MSFS / KERMIT_MODE_FLASHFS commands */
  75. #define KERMIT_CMD_INIT_FS              (0x0)
  76. #define KERMIT_CMD_EXIT_FS              (0x1)
  77. #define KERMIT_CMD_OPEN_FS              (0x2)
  78. #define KERMIT_CMD_CLOSE_FS             (0x3)
  79. #define KERMIT_CMD_READ_FS              (0x4)
  80. #define KERMIT_CMD_WRITE_FS             (0x5)
  81. #define KERMIT_CMD_SEEK_FS              (0x6)
  82. #define KERMIT_CMD_IOCTL_FS             (0x7)
  83. #define KERMIT_CMD_REMOVE_FS            (0x8)
  84. #define KERMIT_CMD_MKDIR_FS             (0x9)
  85. #define KERMIT_CMD_RMDIR_FS             (0xA)
  86. #define KERMIT_CMD_DOPEN_FS             (0xB)
  87. #define KERMIT_CMD_DCLOSE_FS            (0xC)
  88. #define KERMIT_CMD_DREAD_FS             (0xD)
  89. #define KERMIT_CMD_GETSTAT_FS           (0xE)
  90. #define KERMIT_CMD_CHSTAT_FS            (0xF)
  91. #define KERMIT_CMD_RENAME_FS            (0x10)
  92. #define KERMIT_CMD_CHDIR_FS             (0x11)
  93. #define KERMIT_CMD_DEVCTL               (0x14)
  94.  
  95. /* kermit KERMIT_MODE_AUDIO commands */
  96. #define KERMIT_CMD_INIT_AUDIO_IN        0x0
  97. #define KERMIT_CMD_OUTPUT_1             0x1
  98. #define KERMIT_CMD_OUTPUT_2             0x2
  99. #define KERMIT_CMD_SUSPEND              0x3
  100. #define KERMIT_CMD_RESUME               0x4
  101.  
  102. /* kermit KERMIT_MODE_ME commands */
  103. #define KERMIT_CMD_UNK0                     0x0
  104. #define KERMIT_CMD_SETAVC_TIMESTAMPINTERNAL 0x1
  105. #define KERMIT_CMD_BOOT_START               0x2
  106.  
  107. /* kermit KERMIT_MODE_LOWIO commands */
  108. #define KERMIT_CMD_UNK9     0x9
  109. #define KERMIT_CMD_UNKA     0xA
  110. #define KERMIT_CMD_UNKB     0xB
  111. #define KERMIT_CMD_UNKC     0xC
  112.  
  113. /* kermit KERMIT_MODE_PERIPHERAL commands */
  114. #define KERMIT_CMD_RTC_GET_CURRENT_TICK     (0x0)
  115. #define KERMIT_CMD_ID_STORAGE_LOOKUP        (0x1)
  116. #define KERMIT_CMD_POWER_FREQUENCY          (0x2)
  117. #define KERMIT_CMD_AUDIO_ROUTING            (0x3)
  118. #define KERMIT_CMD_GET_CAMERA_DIRECTION     (0x5)
  119. #define KERMIT_CMD_GET_IDPSC_ENABLE         (0x6)
  120. #define KERMIT_CMD_sub_000028B0             (0x7)
  121. #define KERMIT_CMD_434D0081                 (0x8)
  122. #define KERMIT_CMD_AA2029EC                 (0x9)
  123. #define KERMIT_CMD_910D9C1A                 (0xA)
  124. #define KERMIT_CMD_REQUEST_SUSPEND          (0xB)
  125. #define KERMIT_CMD_IS_FIRST_BOOT            (0xC)
  126. #define KERMIT_CMD_GET_PREFIX_SSID          (0xD)
  127.  
  128. /* kermit KERMIT_MODE_WLAN commands */
  129. #define KERMIT_CMD_INIT                         0x0
  130. #define KERMIT_CMD_GET_SWITCH_INTERNAL_STATE    0x2
  131. #define KERMIT_CMD_GET_ETHER_ADDR               0x3
  132. #define KERMIT_CMD_ADHOC_CTL_INIT               0x6
  133. #define KERMIT_CMD_ADHOC_CTL_TERM               0x7
  134. #define KERMIT_CMD_ADHOC_SCAN                   0x8
  135. #define KERMIT_CMD_ADHOC_JOIN                   0x9
  136. #define KERMIT_CMD_ADHOC_CREATE                 0xA
  137. #define KERMIT_CMD_ADHOC_LEAVE                  0xB
  138. #define KERMIT_CMD_ADHOC_TX_DATA                0xC
  139. #define KERMIT_CMD_ADHOC_RX_DATA                0xD
  140. #define KERMIT_CMD_INET_INIT                    0xE
  141. #define KERMIT_CMD_INET_START                   0xF
  142. #define KERMIT_CMD_INET_TERM                    0x10
  143. #define KERMIT_CMD_INET_SOCKET                  0x11
  144. #define KERMIT_CMD_INET_CLOSE                   0x12
  145. #define KERMIT_CMD_INET_BIND                    0x13
  146. #define KERMIT_CMD_INET_LISTEN                  0x14
  147. #define KERMIT_CMD_INET_CONNECT                 0x15
  148. #define KERMIT_CMD_INET_SHUTDOWN                0x16
  149. #define KERMIT_CMD_INET_POLL                    0x17
  150. #define KERMIT_CMD_INET_ACCEPT                  0x18
  151. #define KERMIT_CMD_INET_GET_PEER_NAME           0x19
  152. #define KERMIT_CMD_INET_GET_SOCK_NAME           0x1A
  153. #define KERMIT_CMD_INET_GET_OPT                 0x1B
  154. #define KERMIT_CMD_INET_SET_OPT                 0x1C
  155. #define KERMIT_CMD_INET_RECV_FROM               0x1D
  156. #define KERMIT_CMD_INET_SENDTO_INTERNAL         0x1E
  157. #define KERMIT_CMD_INET_SOIOCTL                 0x1F
  158. #define KERMIT_CMD_SUSPEND                      0x20
  159. #define KERMIT_CMD_SET_WOL_PARAM                0x22
  160. #define KERMIT_CMD_GET_WOL_INFO                 0x23
  161. #define KERMIT_CMD_SET_HOST_DISCOVER            0x24
  162.  
  163. /* kermit KERMIT_MODE_UTILITY commands */
  164. #define KERMIT_CMD_OSK_START    (0x0)
  165. #define KERMIT_CMD_OSK_SHUTDOWN (0x1)
  166. #define KERMIT_CMD_OSK_UPDATE   (0x3)
  167.  
  168. /* kermit KERMIT_MODE_USB commands */
  169. #define KERMIT_CMD_INIT         0x0
  170. #define KERMIT_CMD_ACTIVATE     0x15
  171. #define KERMIT_CMD_DEACTIVATE   0x16
  172. #define KERMIT_CMD_SET_OP       0x19
  173. #define KERMIT_CMD_SET_OP_BIS   0x1A
  174. #define KERMIT_CMD_UNK1B        0x1B
  175.  
  176.  
  177.  
  178. #define KERMIT_CALLBACK_ENABLE 1
  179. #define KERMIT_CALLBACK_DISABLE 0
  180.  
  181.  
  182. #define KERNEL(x)   ((x & 0x80000000)? 1:0)
  183. #define KERMIT_PACKET(x)    (x | (2-KERNEL(x))*0x20000000)
  184. #define ALIGN_64(x) ((x) & -64)
  185.  
  186.  
  187. #endif /* __KERMIT_H__ */
  188.  
  189.  
  190. // 0xBFC00120 -> SceCtrlData
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement