Latest compatible version of Classicube from the original GitHub repository (https://github.com/ClassiCube/ClassiCube) that can be compiled on Classicube for PowerMac PPC running Mac OS X 10.4.

This commit is contained in:
Andrei Alexandru
2025-12-17 13:17:57 +02:00
commit c71492f846
1248 changed files with 422858 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
/*
* Copyright (c) 2021 Max Thomas
* This file is part of DSiWifi and is distributed under the MIT license.
* See dsiwifi_license.txt for terms of use.
*/
#ifndef _WMI_H
#define _WMI_H
#include "common.h"
#include "lwip/err.h"
#include "lwip/netif.h"
// Commands
#define WMI_CONNECT_CMD (0x0001)
#define WMI_DISCONNECT_CMD (0x0003)
#define WMI_SYNCHRONIZE_CMD (0x0004)
#define WMI_CREATE_PSTREAM_CMD (0x0005)
#define WMI_START_SCAN_CMD (0x0007)
#define WMI_SET_SCAN_PARAMS_CMD (0x0008)
#define WMI_SET_BSS_FILTER_CMD (0x0009)
#define WMI_SET_PROBED_SSID_CMD (0x000A)
#define WMI_SET_DISCONNECT_TIMEOUT_CMD (0x000D)
#define WMI_GET_CHANNEL_LIST_CMD (0x000E)
#define WMI_GET_STATISTICS_CMD (0x0010)
#define WMI_SET_CHANNEL_PARAMS_CMD (0x0011)
#define WMI_SET_POWER_MODE_CMD (0x0012)
#define WMI_ADD_CIPHER_KEY_CMD (0x0016)
#define WMI_SET_TX_PWR_CMD (0x001B)
#define WMI_DELETE_BAD_AP_CMD (0x001F)
#define WMI_TARGET_ERROR_REPORT_BITMASK_CMD (0x0022)
#define WMI_WMIX_CMD (0x002E)
#define WMI_SET_FIXRATES_CMD (0x0034)
#define WMI_SET_BT_STATUS_CMD (0x003B)
#define WMI_SET_KEEPALIVE_CMD (0x003D)
#define WMI_SET_WSC_STATUS_CMD (0x0041)
#define WMI_SET_HEARTBEAT_TIMEOUT_CMD (0x0047)
#define WMI_SET_FRAMERATES_CMD (0x0048)
// WMIX Commands
#define WMIX_DBGLOG_CFG_MODULE_CMD (0x2009)
#define WMIX_DBGLOG_EVENT (0x3008)
// Nintendo specific?
#define WMI_SET_BITRATE_CMD (0xF000)
// Reponses
#define WMI_GET_CHANNEL_LIST_RESP (0x000E)
#define WMI_READY_EVENT (0x1001)
#define WMI_CONNECT_EVENT (0x1002)
#define WMI_DISCONNECT_EVENT (0x1003)
#define WMI_BSS_INFO_EVENT (0x1004)
#define WMI_CMD_ERROR_EVENT (0x1005)
#define WMI_REG_DOMAIN_EVENT (0x1006)
#define WMI_PSTREAM_TIMEOUT_EVENT (0x1007)
#define WMI_NEIGHBOR_REPORT_EVENT (0x1008)
#define WMI_TKIP_MICERR_EVENT (0x1009)
#define WMI_SCAN_COMPLETE_EVENT (0x100A)
#define WMI_REPORT_STATISTICS_EVENT (0x100B)
#define WMI_RSSI_THRESHOLD_EVENT (0x100C)
#define WMI_TARGET_ERROR_REPORT_EVENT (0x100D)
#define WMI_OPT_RX_FRAME_EVENT (0x100E)
#define WMI_REPORT_ROAM_TBL_EVENT (0x100F)
#define WMI_EXTENSION_EVENT (0x1010)
#define WMI_ACL_DATA_EVENT (0x1025)
typedef struct gtk_keyinfo gtk_keyinfo;
void wmi_handle_pkt(u16 pkt_cmd, u8* pkt_data, u32 len, u32 ack_len);
void wmi_send_pkt(u16 wmi_type, u8 ack_type, const void* data, u16 len);
void wmi_scan();
void wmi_dbgoff();
void wmi_add_cipher_key(u8 idx, u8 usage, const u8* key, const u8* rsc);
void wmi_tick(void);
void wmi_post_handshake(const u8* tk, const gtk_keyinfo* gtk_info, const u8* rsc);
void wmi_disconnect_cmd();
void wmi_tick_display();
bool wmi_is_ready();
void data_send_wpa_handshake2(const u8* dst_bssid, const u8* src_bssid, u64 replay_cnt);
void data_send_wpa_handshake4(const u8* dst_bssid, const u8* src_bssid, u64 replay_cnt);
void data_send_ip(const u8* dst_bssid, const u8* src_bssid, void* ip_data, u32 ip_data_len);
void data_send_link(void* ip_data, u32 ip_data_len);
void data_handle_auth(u8* pkt_data, u32 len, const u8* dev_bssid, const u8* ap_bssid);
void data_send_to_lwip(void* data, u32 len);
bool wmi_handshake_done();
err_t ath_init_fn(struct netif *netif);
err_t ath_link_output(struct netif *netif, struct pbuf *p);
u8* wmi_get_mac();
u8* wmi_get_ap_mac();
#endif // _WMI_H