# program

callgraph_primes: 1.734117170548895122298750039E+91
processor: ppc
md5sum: 9E406B7AA618331600E1FA750BF83350
callgraph_all_primes:
  {"11": 12, "13": 6, "17": 3, "23": 4, "19": 3, "31": 1, "37": 2, "29": 1, "43": 1, "3": 25, "5": 25, "7": 16, "67": 1, "137": 1, "307": 1, "97": 1}


# program_data

name: _dsp_task
type: struct
value:
  struct _dsp_task
  {
    volatile unsigned int state;
    volatile unsigned int prio;
    volatile unsigned int flags;
    void *iram_maddr;
    u32 iram_len;
    u32 iram_addr;
    void *dram_maddr;
    u32 dram_len;
    u32 dram_addr;
    u16 init_vec;
    u16 resume_vec;
    DSPTaskCallback init_cb;
    DSPTaskCallback res_cb;
    DSPTaskCallback done_cb;
    DSPTaskCallback req_cb;
    _dsp_task *next;
    _dsp_task *prev;
  };


name: _wgpipe
type: union
value:
  union _wgpipe
  {
    volatile unsigned __int8 U8;
    volatile char S8;
    volatile unsigned __int16 U16;
    volatile __int16 S16;
    volatile unsigned int U32;
    volatile int S32;
    volatile float F32;
  };


name: aesndpb_t
type: struct
value:
  struct aesndpb_t
  {
    u32 out_buf;
    u32 buf_start;
    u32 buf_end;
    u32 buf_curr;
    u16 yn1;
    u16 yn2;
    u16 pds;
    u16 freq_h;
    u16 freq_l;
    u16 counter;
    s16 left;
    s16 right;
    u16 volume_l;
    u16 volume_r;
    u32 delay;
    u32 flags;
    u8 _pad[20];
    u32 mram_start;
    u32 mram_curr;
    u32 mram_end;
    u32 stream_last;
    u32 voiceno;
    u32 shift;
    AESNDVoiceCallback cb;
    AESNDAudioCallback audioCB;
  };


name: t_sound_data
type: struct
value:
  struct t_sound_data
  {
    void *out_buf;
    u32 delay_samples;
    u32 flags;
    u32 start_addr;
    u32 end_addr;
    u32 freq;
    s16 left;
    s16 right;
    u32 counter;
    u16 volume_l;
    u16 volume_r;
    u32 start_addr2;
    u32 end_addr2;
    u16 volume2_l;
    u16 volume2_r;
    u32 backup_addr;
    u32 tick_counter;
    ASNDVoiceCallback cb;
    u32 _pad;
  };


name: _excption_frame
type: struct
value:
  struct _excption_frame
  {
    u32 EXCPT_Number;
    u32 SRR0;
    u32 SRR1;
    u32 GPR[32];
    u32 GQR[8];
    u32 CR;
    u32 LR;
    u32 CTR;
    u32 XER;
    u32 MSR;
    u32 DAR;
    u16 state;
    u16 mode;
    f64 FPR[32];
    u64 FPSCR;
    f64 PSFPR[32];
  };


name: _priocntrl
type: struct
value:
  struct _priocntrl
  {
    u32 *minor;
    u32 ready_minor;
    u32 ready_major;
    u32 block_minor;
    u32 block_major;
  };


name: _lwpthrqueue
type: struct
value:
  struct _lwpthrqueue
  {
    $3EC4DDDBCBBDD50239EE2D75ACB5E6B6 queues;
    u32 sync_state;
    u32 mode;
    u32 state;
    u32 timeout_state;
  };


name: _wdcntrl
type: struct
value:
  struct _wdcntrl
  {
    lwp_node node;
    u64 start;
    u32 id;
    u32 state;
    u64 fire;
    wd_service_routine routine;
    void *usr_data;
  };


name: _lwp_objinfo
type: struct
value:
  struct _lwp_objinfo
  {
    u32 min_id;
    u32 max_id;
    u32 max_nodes;
    u32 node_size;
    lwp_obj **local_table;
    void *obj_blocks;
    lwp_queue inactives;
    u32 inactives_cnt;
  };


name: lwp_cpu_budget_algorithms
type: enum
value:
  enum lwp_cpu_budget_algorithms : __int32
  {
    LWP_CPU_BUDGET_ALGO_NONE = 0x0,
    LWP_CPU_BUDGET_ALGO_TIMESLICE = 0x1,
  };


name: _lwpwaitinfo
type: struct
value:
  struct _lwpwaitinfo
  {
    u32 id;
    u32 cnt;
    void *ret_arg;
    void *ret_arg_1;
    u32 option;
    u32 ret_code;
    lwp_queue block2n;
    lwp_thrqueue *queue;
  };


name: _lwpcntrl
type: struct
value:
  struct __attribute__((aligned(8))) _lwpcntrl
  {
    lwp_obj object;
    u8 cur_prio;
    u8 real_prio;
    u32 suspendcnt;
    u32 res_cnt;
    u32 isr_level;
    u32 cur_state;
    u32 cpu_time_budget;
    lwp_cpu_budget_algorithms budget_algo;
    _Bool is_preemptible;
    lwp_waitinfo wait;
    prio_cntrl priomap;
    wd_cntrl timer;
    void *(*entry)(void *);
    void *arg;
    void *stack;
    u32 stack_size;
    u8 stack_allocated;
    lwp_queue *ready;
    lwp_thrqueue join_list;
    frame_context context;
    void *libc_reent;
  };


name: bte_pcb
type: struct
value:
  struct bte_pcb
  {
    u8 err;
    u32 state;
    void *cbarg;
    ctrl_req_t *ctrl_req_head;
    ctrl_req_t *ctrl_req_tail;
    lwpq_t cmdq;
    bd_addr bdaddr;
    l2cap_pcb *ctl_pcb;
    l2cap_pcb *data_pcb;
    s32 (*recv)(void *, void *, u16);
    s32 (*conn_cfm)(void *, bte_pcb *, u8);
    s32 (*disconn_cfm)(void *, bte_pcb *, u8);
  };


name: ctrl_req_t
type: struct
value:
  struct ctrl_req_t
  {
    u8 err;
    pbuf *p;
    bte_pcb *pcb;
    bte_state state;
    s32 (*sent)(void *, bte_pcb *, u8);
    ctrl_req_t *next;
  };


name: pbuf
type: struct
value:
  struct pbuf
  {
    pbuf *next;
    void *payload;
    u16_t tot_len;
    u16_t len;
    u16_t flags;
    u16_t ref;
  };


name: bte_state
type: enum
value:
  enum bte_state : __int32
  {
    STATE_NOTREADY = 0xFFFFFFFF,
    STATE_READY = 0x0,
    STATE_CONNECTING = 0x1,
    STATE_CONNECTED = 0x2,
    STATE_DISCONNECTING = 0x3,
    STATE_DISCONNECTED = 0x4,
    STATE_SENDING = 0x5,
    STATE_SENT = 0x6,
    STATE_RECEIVING = 0x7,
    STATE_RECEIVED = 0x8,
    STATE_FAILED = 0x9,
  };


name: l2cap_pcb
type: struct
value:
  struct l2cap_pcb
  {
    l2cap_pcb *next;
    l2cap_state state;
    void *callback_arg;
    u16_t scid;
    u16_t dcid;
    u16_t psm;
    u16_t ursp_id;
    u8_t encrypt;
    l2cap_sig *unrsp_sigs;
    bd_addr remote_bdaddr;
    l2cap_cfg cfg;
    err_t (*l2ca_connect_cfm)(void *, l2cap_pcb *, u16_t, u16_t);
    err_t (*l2ca_disconnect_cfm)(void *, l2cap_pcb *);
    err_t (*l2ca_pong)(void *, l2cap_pcb *, u8_t);
    err_t (*l2ca_connect_ind)(void *, l2cap_pcb *, err_t);
    err_t (*l2ca_disconnect_ind)(void *, l2cap_pcb *, err_t);
    err_t (*l2ca_timeout_ind)(void *, l2cap_pcb *, err_t);
    err_t (*l2ca_recv)(void *, l2cap_pcb *, pbuf *, err_t);
  };


name: l2cap_state
type: enum
value:
  enum l2cap_state : __int32
  {
    L2CAP_CLOSED = 0x0,
    L2CAP_LISTEN = 0x1,
    W4_L2CAP_CONNECT_RSP = 0x2,
    W4_L2CA_CONNECT_RSP = 0x3,
    L2CAP_CONFIG = 0x4,
    L2CAP_OPEN = 0x5,
    W4_L2CAP_DISCONNECT_RSP = 0x6,
    W4_L2CA_DISCONNECT_RSP = 0x7,
  };


name: l2cap_sig
type: struct
value:
  struct __attribute__((aligned(4))) l2cap_sig
  {
    l2cap_sig *next;
    pbuf *p;
    u16_t sigid;
    u16_t ertx;
    u8_t rtx;
    u8_t nrtx;
  };


name: l2cap_cfg
type: struct
value:
  struct __attribute__((aligned(4))) l2cap_cfg
  {
    u16_t inmtu;
    u16_t outmtu;
    u16_t influshto;
    u16_t outflushto;
    pbuf *opt;
    u8_t cfgto;
    u8_t l2capcfg;
  };


name: hci_inq_res
type: struct
value:
  struct __attribute__((aligned(4))) hci_inq_res
  {
    hci_inq_res *next;
    bd_addr bdaddr;
    u8_t cod[3];
    u8_t psrm;
    u8_t psm;
    u16_t co;
  };


name: hci_version_info
type: struct
value:
  struct hci_version_info
  {
    u8_t hci_version;
    u16_t hci_revision;
    u8_t lmp_version;
    u16_t manufacturer;
    u16_t lmp_subversion;
  };


name: hci_pcb
type: struct
value:
  struct hci_pcb
  {
    void *cbarg;
    s8_t num_cmd;
    u16_t acl_mtu;
    u8_t sco_mtu;
    u16_t acl_max_pkt;
    u16_t sco_max_pkt;
    u32_t flags;
    u8_t flow;
    u16_t host_num_acl;
    u16_t pkt_type;
    u8_t features[8];
    bd_addr bdaddr;
    hci_version_info info;
    hci_inq_res *ires;
    hci_link_key *keyres;
    err_t (*pin_req)(void *, bd_addr *);
    err_t (*cmd_complete)(void *, hci_pcb *, u8_t, u8_t, u8_t);
    err_t (*link_key_not)(void *, bd_addr *, u8_t *);
    err_t (*conn_complete)(void *, bd_addr *);
    err_t (*inq_complete)(void *, hci_pcb *, hci_inq_res *, u16_t);
    err_t (*wlp_complete)(void *, bd_addr *);
    err_t (*conn_req)(void *, bd_addr *, u8_t *, u8_t);
  };


name: $85CBA52425A96A90E67A4BDDD77F89DF
type: enum
value:
  enum $85CBA52425A96A90E67A4BDDD77F89DF : __int32
  {
    PBUF_TRANSPORT = 0x0,
    PBUF_LINK = 0x1,
    PBUF_RAW = 0x2,
  };


name: $890BAC7FA7C9E31DA6E1F11E4F5DE7CC
type: enum
value:
  enum $890BAC7FA7C9E31DA6E1F11E4F5DE7CC : __int32
  {
    PBUF_POOL = 0x0,
    PBUF_RAM = 0x1,
    PBUF_ROM = 0x2,
    PBUF_REF = 0x3,
  };


name: bt_state
type: struct
value:
  struct bt_state
  {
    err_t last_err;
    syswd_t timer_svc;
    lwpq_t hci_cmdq;
    u8_t hci_cmddone;
    u8_t hci_inited;
    u8_t num_maxdevs;
    u8_t num_founddevs;
    inquiry_info_ex *info;
    btecallback cb;
    void *usrdata;
  };


name: hci_link
type: struct
value:
  struct hci_link
  {
    hci_link *next;
    bd_addr bdaddr;
    u16_t connhdl;
    pbuf *p;
    u16_t len;
    u8_t pb;
    u32_t link_mode;
  };


name: l2cap_seg
type: struct
value:
  struct l2cap_seg
  {
    l2cap_seg *next;
    bd_addr bdaddr;
    pbuf *p;
    u16_t len;
    l2cap_hdr *l2caphdr;
    l2cap_pcb *pcb;
  };


name: l2cap_pcb_listen
type: struct
value:
  struct l2cap_pcb_listen
  {
    l2cap_pcb_listen *next;
    l2cap_state state;
    void *callback_arg;
    u16_t psm;
    bd_addr bdaddr;
    err_t (*l2ca_connect_ind)(void *, l2cap_pcb *, err_t);
  };


name: pbuf_flag
type: enum
value:
  enum pbuf_flag : __int32
  {
    PBUF_POOL_0 = 0x0,
    PBUF_RAM_0 = 0x1,
    PBUF_ROM_0 = 0x2,
    PBUF_REF_0 = 0x3,
  };


name: _usb_p
type: struct
value:
  struct _usb_p
  {
    s32 fd;
    u8 acl_out;
    u8 acl_in;
    u8 hci_evt;
    u8 hci_ctrl;
    u32 vid;
    u32 pid;
    u8 openstate;
    pbcallback closecb;
    pbcallback unregcb;
  };


name: uip_ip_hdr
type: struct
value:
  struct uip_ip_hdr
  {
    u16_t _v_hl_tos;
    u16_t _len;
    u16_t _id;
    u16_t _offset;
    u16_t _ttl_proto;
    u16_t _chksum;
    uip_ip_addr src;
    uip_ip_addr dst;
  };


name: uip_pbuf
type: struct
value:
  struct uip_pbuf
  {
    uip_pbuf *next;
    void *payload;
    u16_t tot_len;
    u16_t len;
    u16_t flags;
    u16_t ref;
  };


name: uip_icmp_dur_type
type: enum
value:
  enum uip_icmp_dur_type : __int32
  {
    UIP_ICMP_DUR_NET = 0x0,
    UIP_ICMP_DUR_HOST = 0x1,
    UIP_ICMP_DUR_PROTO = 0x2,
    UIP_ICMP_DUR_PORT = 0x3,
    UIP_ICMP_DUR_FRAG = 0x4,
    UIP_ICMP_DUR_SR = 0x5,
  };


name: uip_netif
type: struct
value:
  struct __attribute__((aligned(4))) uip_netif
  {
    uip_netif *next;
    uip_ip_addr ip_addr;
    uip_ip_addr netmask;
    uip_ip_addr gw;
    s8_t (*input)(uip_pbuf *, uip_netif *);
    s8_t (*output)(uip_netif *, uip_pbuf *, uip_ip_addr *);
    s8_t (*linkoutput)(uip_netif *, uip_pbuf *);
    void *state;
    u8_t hwaddr_len;
    u8_t hwaddr[6];
    u16_t mtu;
    u8_t flags;
    s8_t name[2];
    u8_t num;
  };


name: $B5B6695B06E160385121B1409298782A
type: enum
value:
  enum $B5B6695B06E160385121B1409298782A : __int32
  {
    UIP_PBUF_TRANSPORT = 0x0,
    UIP_PBUF_IP = 0x1,
    UIP_PBUF_LINK = 0x2,
    UIP_PBUF_RAW = 0x3,
  };


name: $A4C895BC8E6F645B8A0F7AC584098BDA
type: enum
value:
  enum $A4C895BC8E6F645B8A0F7AC584098BDA : __int32
  {
    UIP_PBUF_POOL = 0x0,
    UIP_PBUF_RAM = 0x1,
    UIP_PBUF_ROM = 0x2,
    UIP_PBUF_REF = 0x3,
  };


name: uip_tcp_hdr
type: struct
value:
  struct uip_tcp_hdr
  {
    u16_t src;
    u16_t dst;
    u32_t seqno;
    u32_t ackno;
    u16_t _hdrlen_rsvd_flags;
    u16_t wnd;
    u16_t chksum;
    u16_t urgp;
  };


name: uip_tcp_state
type: enum
value:
  enum uip_tcp_state : __int32
  {
    UIP_CLOSED = 0x0,
    UIP_LISTEN = 0x1,
    UIP_SYN_SENT = 0x2,
    UIP_SYN_RCVD = 0x3,
    UIP_ESTABLISHED = 0x4,
    UIP_FIN_WAIT_1 = 0x5,
    UIP_FIN_WAIT_2 = 0x6,
    UIP_CLOSE_WAIT = 0x7,
    UIP_CLOSING = 0x8,
    UIP_LAST_ACK = 0x9,
    UIP_TIME_WAIT = 0xA,
  };


name: uip_tcpseg
type: struct
value:
  struct uip_tcpseg
  {
    uip_tcpseg *next;
    uip_pbuf *p;
    u8_t *dataptr;
    u16_t len;
    uip_tcp_hdr *tcphdr;
  };


name: uip_tcp_pcb
type: struct
value:
  struct __attribute__((aligned(4))) uip_tcp_pcb
  {
    uip_ip_addr local_ip;
    uip_ip_addr remote_ip;
    u16_t so_options;
    u8_t tos;
    u8_t ttl;
    uip_tcp_pcb *next;
    uip_tcp_state state;
    u8_t prio;
    void *cb_arg;
    u16_t local_port;
    u16_t remote_port;
    u8_t flags;
    u32_t rcv_nxt;
    u16_t rcv_wnd;
    u32_t tmr;
    u8_t polltmr;
    u8_t pollinterval;
    u16_t rtime;
    u16_t mss;
    u32_t rttest;
    u32_t rtseq;
    s16_t sa;
    s16_t sv;
    u16_t rto;
    u8_t nrtx;
    u32_t lastack;
    u8_t dupacks;
    u16_t cwnd;
    u16_t ssthresh;
    u32_t snd_nxt;
    u32_t snd_max;
    u32_t snd_wnd;
    u32_t snd_wl1;
    u32_t snd_wl2;
    u32_t snd_lbb;
    u16_t acked;
    u16_t snd_buf;
    u8_t snd_queuelen;
    uip_tcpseg *unsent;
    uip_tcpseg *unacked;
    uip_tcpseg *ooseq;
    s8_t (*accept)(void *, uip_tcp_pcb *, s8_t);
    s8_t (*connected)(void *, uip_tcp_pcb *, s8_t);
    s8_t (*poll)(void *, uip_tcp_pcb *);
    s8_t (*sent)(void *, uip_tcp_pcb *, u16_t);
    s8_t (*recv)(void *, uip_tcp_pcb *, uip_pbuf *, s8_t);
    void (*errf)(void *, s8_t);
    u32_t keepalive;
    u8_t keepcnt;
  };


name: uip_tcp_pcb_listen
type: struct
value:
  struct uip_tcp_pcb_listen
  {
    uip_ip_addr local_ip;
    uip_ip_addr remote_ip;
    u16_t so_options;
    u8_t tos;
    u8_t ttl;
    uip_tcp_pcb_listen *next;
    uip_tcp_state state;
    u8_t prio;
    void *cb_arg;
    u16_t local_port;
    s8_t (*accept)(void *, uip_tcp_pcb *, s8_t);
  };


name: uip_pbuf_layer
type: enum
value:
  enum uip_pbuf_layer : __int32
  {
    UIP_PBUF_TRANSPORT_0 = 0x0,
    UIP_PBUF_IP_0 = 0x1,
    UIP_PBUF_LINK_0 = 0x2,
    UIP_PBUF_RAW_0 = 0x3,
  };


name: uip_pbuf_flag
type: enum
value:
  enum uip_pbuf_flag : __int32
  {
    UIP_PBUF_POOL_0 = 0x0,
    UIP_PBUF_RAM_0 = 0x1,
    UIP_PBUF_ROM_0 = 0x2,
    UIP_PBUF_REF_0 = 0x3,
  };


name: uip_arp_hdr
type: struct
value:
  struct uip_arp_hdr
  {
    uip_eth_hdr ethhdr;
    u16_t hwtype;
    u16_t protocol;
    u16_t _hwlen_protolen;
    u16_t opcode;
    uip_eth_addr shwaddr;
    uip_ip_addr2 sipaddr;
    uip_eth_addr dhwaddr;
    uip_ip_addr2 dipaddr;
  };


name: uip_ethip_hdr
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(2))) uip_ethip_hdr
  {
    uip_eth_hdr ethhdr;
    uip_ip_hdr ip;
  };


name: arp_state
type: enum
value:
  enum arp_state : __int32
  {
    ARP_STATE_EMPTY = 0x0,
    ARP_STATE_PENDING = 0x1,
    ARP_STATE_STABLE = 0x2,
    ARP_STATE_EXPIRED = 0x3,
  };


name: arp_entry
type: struct
value:
  struct __attribute__((aligned(4))) arp_entry
  {
    uip_ip_addr ipaddr;
    uip_eth_addr ethaddr;
    arp_state state;
    u8_t time;
  };


name: bba_descr
type: struct
value:
  struct bba_descr
  {
    unsigned __int32 status : 8;
    unsigned __int32 packet_len : 12;
    unsigned __int32 next_packet_ptr : 12;
  };


name: sockaddr_in
type: struct
value:
  struct sockaddr_in
  {
    u8 sin_len;
    u8 sin_family;
    u16 sin_port;
    in_addr sin_addr;
    s8 sin_zero[8];
  };


name: dbginterface
type: struct
value:
  struct dbginterface
  {
    s32 fhndl;
    int (*open)(dbginterface *);
    int (*close)(dbginterface *);
    int (*wait)(dbginterface *);
    int (*read)(dbginterface *, void *, int);
    int (*write)(dbginterface *, const void *, int);
  };


name: tcpip_sock
type: struct
value:
  struct tcpip_sock
  {
    tcpip_sock *next;
    uip_tcp_pcb *pcb;
    uip_pbuf *lastdata;
    s32 lastoffset;
    s32 recvevt;
    s32 sendevt;
    s32 flags;
    s32 err;
    s32 socket;
  };


name: gdbstub_threadinfo
type: struct
value:
  struct gdbstub_threadinfo
  {
    unsigned __int8 display[256];
    unsigned __int8 more_display[256];
    unsigned __int8 name[256];
  };


name: DISC_INTERFACE_STRUCT
type: struct
value:
  struct DISC_INTERFACE_STRUCT
  {
    unsigned int ioType;
    unsigned int features;
    FN_MEDIUM_STARTUP startup;
    FN_MEDIUM_ISINSERTED isInserted;
    FN_MEDIUM_READSECTORS readSectors;
    FN_MEDIUM_WRITESECTORS writeSectors;
    FN_MEDIUM_CLEARSTATUS clearStatus;
    FN_MEDIUM_SHUTDOWN shutdown;
  };


name: _Bigint
type: struct
value:
  struct _Bigint
  {
    _Bigint *_next;
    int _k;
    int _maxwds;
    int _sign;
    int _wds;
    __ULong _x[1];
  };


name: __tm
type: struct
value:
  struct __tm
  {
    int __tm_sec;
    int __tm_min;
    int __tm_hour;
    int __tm_mday;
    int __tm_mon;
    int __tm_year;
    int __tm_wday;
    int __tm_yday;
    int __tm_isdst;
  };


name: _on_exit_args
type: struct
value:
  struct _on_exit_args
  {
    void *_fnargs[32];
    void *_dso_handle[32];
    __ULong _fntypes;
    __ULong _is_cxa;
  };


name: _atexit
type: struct
value:
  struct _atexit
  {
    _atexit *_next;
    int _ind;
    void (*_fns[32])(void);
    _on_exit_args _on_exit_args;
  };


name: __sFILE
type: struct
value:
  struct __attribute__((aligned(8))) __sFILE
  {
    unsigned __int8 *_p;
    int _r;
    int _w;
    __int16 _flags;
    __int16 _file;
    __sbuf _bf;
    int _lbfsize;
    void *_cookie;
    int (*_read)(_reent *, void *, unsigned __int8 *, int);
    int (*_write)(_reent *, void *, const unsigned __int8 *, int);
    _fpos_t (*_seek)(_reent *, void *, _fpos_t, int);
    int (*_close)(_reent *, void *);
    __sbuf _ub;
    unsigned __int8 *_up;
    int _ur;
    unsigned __int8 _ubuf[3];
    unsigned __int8 _nbuf[1];
    __sbuf _lb;
    int _blksize;
    _fpos_t _offset;
    _reent *_data;
    _flock_t _lock;
    _mbstate_t _mbstate;
    int _flags2;
  };


name: _reent
type: struct
value:
  struct _reent
  {
    int _errno;
    __FILE *_stdin;
    __FILE *_stdout;
    __FILE *_stderr;
    int _inc;
    unsigned __int8 _emergency[25];
    int _current_category;
    const unsigned __int8 *_current_locale;
    int __sdidinit;
    void (*__cleanup)(_reent *);
    _Bigint *_result;
    int _result_k;
    _Bigint *_p5s;
    _Bigint **_freelist;
    int _cvtlen;
    unsigned __int8 *_cvtbuf;
    $3972115793918C958116A201E22C75EF _new;
    _atexit *_atexit;
    _atexit _atexit0;
    void (**_sig_func)(int);
    _glue __sglue;
    __FILE __sf[3];
  };


name: $3972115793918C958116A201E22C75EF
type: union
value:
  union $3972115793918C958116A201E22C75EF
  {
    $8ACA9A40C6B448F1A72A678089C97653 _reent;
    $ED3DB687D525D6C8806C89E49A18AF2F _unused;
  };


name: $8ACA9A40C6B448F1A72A678089C97653
type: struct
value:
  struct $8ACA9A40C6B448F1A72A678089C97653
  {
    unsigned int _unused_rand;
    unsigned __int8 *_strtok_last;
    unsigned __int8 _asctime_buf[26];
    __tm _localtime_buf;
    int _gamma_signgam;
    unsigned __int64 _rand_next;
    _rand48 _r48;
    _mbstate_t _mblen_state;
    _mbstate_t _mbtowc_state;
    _mbstate_t _wctomb_state;
    unsigned __int8 _l64a_buf[8];
    unsigned __int8 _signal_buf[24];
    int _getdate_err;
    _mbstate_t _mbrlen_state;
    _mbstate_t _mbrtowc_state;
    _mbstate_t _mbsrtowcs_state;
    _mbstate_t _wcrtomb_state;
    _mbstate_t _wcsrtombs_state;
    int _h_errno;
  };


name: _rand48
type: struct
value:
  struct _rand48
  {
    unsigned __int16 _seed[3];
    unsigned __int16 _mult[3];
    unsigned __int16 _add;
  };


name: $ED3DB687D525D6C8806C89E49A18AF2F
type: struct
value:
  struct $ED3DB687D525D6C8806C89E49A18AF2F
  {
    unsigned __int8 *_nextf[30];
    unsigned int _nmalloc[30];
  };


name: stat
type: struct
value:
  struct stat
  {
    dev_t st_dev;
    ino_t st_ino;
    mode_t st_mode;
    nlink_t st_nlink;
    uid_t st_uid;
    gid_t st_gid;
    dev_t st_rdev;
    off_t st_size;
    time_t st_atime;
    int st_spare1;
    time_t st_mtime;
    int st_spare2;
    time_t st_ctime;
    int st_spare3;
    int st_blksize;
    int st_blocks;
    int st_spare4[2];
  };


name: statvfs
type: struct
value:
  struct statvfs
  {
    unsigned int f_bsize;
    unsigned int f_frsize;
    fsblkcnt_t f_blocks;
    fsblkcnt_t f_bfree;
    fsblkcnt_t f_bavail;
    fsfilcnt_t f_files;
    fsfilcnt_t f_ffree;
    fsfilcnt_t f_favail;
    unsigned int f_fsid;
    unsigned int f_flag;
    unsigned int f_namemax;
  };


name: devoptab_t
type: struct
value:
  struct devoptab_t
  {
    const unsigned __int8 *name;
    int structSize;
    int (*open_r)(_reent *, void *, const unsigned __int8 *, int, int);
    int (*close_r)(_reent *, int);
    ssize_t (*write_r)(_reent *, int, const unsigned __int8 *, size_t);
    ssize_t (*read_r)(_reent *, int, unsigned __int8 *, size_t);
    off_t (*seek_r)(_reent *, int, off_t, int);
    int (*fstat_r)(_reent *, int, stat *);
    int (*stat_r)(_reent *, const unsigned __int8 *, stat *);
    int (*link_r)(_reent *, const unsigned __int8 *, const unsigned __int8 *);
    int (*unlink_r)(_reent *, const unsigned __int8 *);
    int (*chdir_r)(_reent *, const unsigned __int8 *);
    int (*rename_r)(_reent *, const unsigned __int8 *, const unsigned __int8 *);
    int (*mkdir_r)(_reent *, const unsigned __int8 *, int);
    int dirStateSize;
    DIR_ITER *(*diropen_r)(_reent *, DIR_ITER *, const unsigned __int8 *);
    int (*dirreset_r)(_reent *, DIR_ITER *);
    int (*dirnext_r)(_reent *, DIR_ITER *, unsigned __int8 *, stat *);
    int (*dirclose_r)(_reent *, DIR_ITER *);
    int (*statvfs_r)(_reent *, const unsigned __int8 *, statvfs *);
    int (*ftruncate_r)(_reent *, int, off_t);
    int (*fsync_r)(_reent *, int);
    void *deviceData;
    int (*chmod_r)(_reent *, const unsigned __int8 *, mode_t);
    int (*fchmod_r)(_reent *, int, mode_t);
  };


name: pvd_s
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(1))) pvd_s
  {
    unsigned __int8 id[8];
    unsigned __int8 system_id[32];
    unsigned __int8 volume_id[32];
    unsigned __int8 zero[8];
    unsigned int total_sector_le;
    unsigned int total_sect_be;
    unsigned __int8 zero2[32];
    unsigned int volume_set_size;
    unsigned int volume_seq_nr;
    unsigned __int16 sector_size_le;
    unsigned __int16 sector_size_be;
    unsigned int path_table_len_le;
    unsigned int path_table_len_be;
    unsigned int path_table_le;
    unsigned int path_table_2nd_le;
    unsigned int path_table_be;
    unsigned int path_table_2nd_be;
    u8 root[34];
    unsigned __int8 volume_set_id[128];
    unsigned __int8 publisher_id[128];
    unsigned __int8 data_preparer_id[128];
    unsigned __int8 application_id[128];
    unsigned __int8 copyright_file_id[37];
    unsigned __int8 abstract_file_id[37];
    unsigned __int8 bibliographical_file_id[37];
  };


name: PATHTABLE_ENTRY
type: struct
value:
  struct PATHTABLE_ENTRY
  {
    u8 name_length;
    u8 extended_sectors;
    __attribute__((packed)) __attribute__((aligned(1))) u32 sector;
    u16 parent;
    unsigned __int8 name[128];
  };


name: pentry_s
type: struct
value:
  struct pentry_s
  {
    u16 index;
    u32 childCount;
    PATHTABLE_ENTRY table_entry;
    pentry_s *children;
  };


name: dentry_s
type: struct
value:
  struct dentry_s
  {
    unsigned __int8 name[128];
    u32 sector;
    u32 size;
    u8 flags;
    u32 fileCount;
    PATH_ENTRY *path_entry;
    dentry_s *children;
  };


name: iso9660mount_s
type: struct
value:
  struct iso9660mount_s
  {
    const DISC_INTERFACE *disc_interface;
    __attribute__((aligned(32))) u8 read_buffer[32768];
    u8 cluster_buffer[32768];
    u32 cache_start;
    u32 cache_sectors;
    _Bool iso_unicode;
    PATH_ENTRY *iso_rootentry;
    PATH_ENTRY *iso_currententry;
    unsigned __int8 volume_id[32];
  };


name: mad_error
type: enum
value:
  enum mad_error : __int32
  {
    MAD_ERROR_NONE = 0x0,
    MAD_ERROR_BUFLEN = 0x1,
    MAD_ERROR_BUFPTR = 0x2,
    MAD_ERROR_NOMEM = 0x31,
    MAD_ERROR_LOSTSYNC = 0x101,
    MAD_ERROR_BADLAYER = 0x102,
    MAD_ERROR_BADBITRATE = 0x103,
    MAD_ERROR_BADSAMPLERATE = 0x104,
    MAD_ERROR_BADEMPHASIS = 0x105,
    MAD_ERROR_BADCRC = 0x201,
    MAD_ERROR_BADBITALLOC = 0x211,
    MAD_ERROR_BADSCALEFACTOR = 0x221,
    MAD_ERROR_BADFRAMELEN = 0x231,
    MAD_ERROR_BADBIGVALUES = 0x232,
    MAD_ERROR_BADBLOCKTYPE = 0x233,
    MAD_ERROR_BADSCFSI = 0x234,
    MAD_ERROR_BADDATAPTR = 0x235,
    MAD_ERROR_BADPART3LEN = 0x236,
    MAD_ERROR_BADHUFFTABLE = 0x237,
    MAD_ERROR_BADHUFFDATA = 0x238,
    MAD_ERROR_BADSTEREO = 0x239,
  };


name: mad_stream
type: struct
value:
  struct mad_stream
  {
    const u8 *buffer;
    const u8 *bufend;
    u32 skiplen;
    s32 sync;
    u32 freerate;
    const u8 *this_frame;
    const u8 *next_frame;
    mad_bitptr ptr;
    mad_bitptr anc_ptr;
    u32 anc_bitlen;
    u8 (*main_data)[2567];
    u32 md_len;
    s32 options;
    mad_error error;
  };


name: mad_mode
type: enum
value:
  enum mad_mode : __int32
  {
    MAD_MODE_SINGLE_CHANNEL = 0x0,
    MAD_MODE_DUAL_CHANNEL = 0x1,
    MAD_MODE_JOINT_STEREO = 0x2,
    MAD_MODE_STEREO = 0x3,
  };


name: mad_emphasis
type: enum
value:
  enum mad_emphasis : __int32
  {
    MAD_EMPHASIS_NONE = 0x0,
    MAD_EMPHASIS_50_15_US = 0x1,
    MAD_EMPHASIS_CCITT_J_17 = 0x3,
    MAD_EMPHASIS_RESERVED = 0x2,
  };


name: mad_header
type: struct
value:
  struct mad_header
  {
    mad_layer layer;
    mad_mode mode;
    s32 mode_extension;
    mad_emphasis emphasis;
    u32 bitrate;
    u32 samplerate;
    u16 crc_check;
    u16 crc_target;
    s32 flags;
    s32 private_bits;
    mad_timer_t duration;
  };


name: mad_frame
type: struct
value:
  struct mad_frame
  {
    mad_header header;
    s32 options;
    mad_fixed_t sbsample[2][36][32];
    mad_fixed_t (*overlap)[2][32][18];
  };


name: mad_pcm
type: struct
value:
  struct mad_pcm
  {
    u32 samplerate;
    u16 channels;
    u16 length;
    mad_fixed_t samples[2][1152];
  };


name: _eqstate_s
type: struct
value:
  struct _eqstate_s
  {
    f32 lf;
    f32 f1p0;
    f32 f1p1;
    f32 f1p2;
    f32 f1p3;
    f32 hf;
    f32 f2p0;
    f32 f2p1;
    f32 f2p2;
    f32 f2p3;
    f32 sdm1;
    f32 sdm2;
    f32 sdm3;
    f32 lg;
    f32 mg;
    f32 hg;
  };


name: mad_header_0
type: struct
value:
  struct mad_header_0
  {
    mad_layer layer;
    mad_mode mode;
    s32 mode_extension;
    mad_emphasis emphasis;
    u32 bitrate;
    u32 samplerate;
    u16 crc_check;
    u16 crc_target;
    s32 flags;
    s32 private_bits;
    mad_timer_t_0 duration;
  };


name: mad_frame_0
type: struct
value:
  struct mad_frame_0
  {
    mad_header_0 header;
    s32 options;
    mad_fixed_t sbsample[2][36][32];
    mad_fixed_t (*overlap)[2][32][18];
  };


name: mad_decoder_mode
type: enum
value:
  enum mad_decoder_mode : __int32
  {
    MAD_DECODER_MODE_SYNC = 0x0,
    MAD_DECODER_MODE_ASYNC = 0x1,
  };


name: mad_flow
type: enum
value:
  enum mad_flow : __int32
  {
    MAD_FLOW_CONTINUE = 0x0,
    MAD_FLOW_STOP = 0x10,
    MAD_FLOW_BREAK = 0x11,
    MAD_FLOW_IGNORE = 0x20,
  };


name: $C685AEF482F95D9F02F65A2F7DAB6DF4
type: struct
value:
  struct $C685AEF482F95D9F02F65A2F7DAB6DF4
  {
    mad_stream stream;
    mad_frame_0 frame;
    mad_synth synth;
  };


name: mad_decoder
type: struct
value:
  struct mad_decoder
  {
    mad_decoder_mode mode;
    s32 options;
    $741660B00A2DA0D0D6BE43AA43D3E9FB async;
    $C685AEF482F95D9F02F65A2F7DAB6DF4 *sync;
    void *cb_data;
    mad_flow (*input_func)(void *, mad_stream *);
    mad_flow (*header_func)(void *, const mad_header_0 *);
    mad_flow (*filter_func)(void *, const mad_stream *, mad_frame_0 *);
    mad_flow (*output_func)(void *, const mad_header_0 *, mad_pcm *);
    mad_flow (*error_func)(void *, mad_stream *, mad_frame_0 *);
    mad_flow (*message_func)(void *, void *, u32 *);
  };


name: $FA4D6F282674BF13856A4EDE6E5F7B8E
type: enum
value:
  enum $FA4D6F282674BF13856A4EDE6E5F7B8E : __int32
  {
    MAD_FLAG_NPRIVATE_III = 0x7,
    MAD_FLAG_INCOMPLETE = 0x8,
    MAD_FLAG_PROTECTION = 0x10,
    MAD_FLAG_COPYRIGHT = 0x20,
    MAD_FLAG_ORIGINAL = 0x40,
    MAD_FLAG_PADDING = 0x80,
    MAD_FLAG_I_STEREO = 0x100,
    MAD_FLAG_MS_STEREO = 0x200,
    MAD_FLAG_FREEFORMAT = 0x400,
    MAD_FLAG_LSF_EXT = 0x1000,
    MAD_FLAG_MC_EXT = 0x2000,
    MAD_FLAG_MPEG_2_5_EXT = 0x4000,
  };


name: $A3163D0D68420EE91B47DDE571C5A2EA
type: enum
value:
  enum $A3163D0D68420EE91B47DDE571C5A2EA : __int32
  {
    MAD_PRIVATE_HEADER = 0x100,
    MAD_PRIVATE_III = 0x1F,
  };


name: $08B9670B45384779B6BBDAEC1FE255EC
type: struct
value:
  struct $08B9670B45384779B6BBDAEC1FE255EC
  {
    unsigned __int16 final : 1;
    unsigned __int16 bits : 3;
    unsigned __int16 offset : 12;
  };


name: $77CAAB4AEE26312759D1ADE2F79E3988
type: struct
value:
  struct $77CAAB4AEE26312759D1ADE2F79E3988
  {
    unsigned __int16 final : 1;
    unsigned __int16 hlen : 3;
    unsigned __int16 v : 1;
    unsigned __int16 w : 1;
    unsigned __int16 x : 1;
    unsigned __int16 y : 1;
  };


name: huffquad
type: union
value:
  union huffquad
  {
    $08B9670B45384779B6BBDAEC1FE255EC ptr;
    $77CAAB4AEE26312759D1ADE2F79E3988 value;
    unsigned __int16 final : 1;
  };


name: $106309557072ED24FFC6501157E33D17
type: struct
value:
  struct $106309557072ED24FFC6501157E33D17
  {
    unsigned __int16 final : 1;
    unsigned __int16 hlen : 3;
    unsigned __int16 x : 4;
    unsigned __int16 y : 4;
  };


name: huffpair
type: union
value:
  union huffpair
  {
    $08B9670B45384779B6BBDAEC1FE255EC ptr;
    $106309557072ED24FFC6501157E33D17 value;
    unsigned __int16 final : 1;
  };


name: $0DD38655D6F22DF29EFFDD449E7BB190
type: enum
value:
  enum $0DD38655D6F22DF29EFFDD449E7BB190 : __int32
  {
    MAD_OPTION_IGNORECRC = 0x1,
    MAD_OPTION_HALFSAMPLERATE = 0x2,
  };


name: $7A78E5585DDD9C4ED5C5DD23F3185DD0
type: struct
value:
  struct __attribute__((aligned(4))) $7A78E5585DDD9C4ED5C5DD23F3185DD0
  {
    u32 sblimit;
    const u8 offsets[30];
  };


name: $5158FC8F9C4087F6909F904927CD1694
type: enum
value:
  enum $5158FC8F9C4087F6909F904927CD1694 : __int32
  {
    count1table_select = 0x1,
    scalefac_scale = 0x2,
    preflag = 0x4,
    mixed_block_flag = 0x8,
  };


name: channel
type: struct
value:
  struct __attribute__((aligned(2))) channel
  {
    u16 part2_3_length;
    u16 big_values;
    u16 global_gain;
    u16 scalefac_compress;
    u8 flags;
    u8 block_type;
    u8 table_select[3];
    u8 subblock_gain[3];
    u8 region0_count;
    u8 region1_count;
    u8 scalefac[39];
  };


name: sideinfo
type: struct
value:
  struct __attribute__((aligned(4))) sideinfo
  {
    u32 main_data_begin;
    u32 private_bits;
    u8 scfsi[2];
    granule gr[2];
  };


name: mad_units
type: enum
value:
  enum mad_units : __int32
  {
    MAD_UNITS_HOURS = 0xFFFFFFFE,
    MAD_UNITS_MINUTES = 0xFFFFFFFF,
    MAD_UNITS_SECONDS = 0x0,
    MAD_UNITS_DECISECONDS = 0xA,
    MAD_UNITS_CENTISECONDS = 0x64,
    MAD_UNITS_MILLISECONDS = 0x3E8,
    MAD_UNITS_8000_HZ = 0x1F40,
    MAD_UNITS_11025_HZ = 0x2B11,
    MAD_UNITS_12000_HZ = 0x2EE0,
    MAD_UNITS_16000_HZ = 0x3E80,
    MAD_UNITS_22050_HZ = 0x5622,
    MAD_UNITS_24000_HZ = 0x5DC0,
    MAD_UNITS_32000_HZ = 0x7D00,
    MAD_UNITS_44100_HZ = 0xAC44,
    MAD_UNITS_48000_HZ = 0xBB80,
    MAD_UNITS_24_FPS = 0x18,
    MAD_UNITS_25_FPS = 0x19,
    MAD_UNITS_30_FPS = 0x1E,
    MAD_UNITS_48_FPS = 0x30,
    MAD_UNITS_50_FPS = 0x32,
    MAD_UNITS_60_FPS = 0x3C,
    MAD_UNITS_75_FPS = 0x4B,
    MAD_UNITS_23_976_FPS = 0xFFFFFFE8,
    MAD_UNITS_24_975_FPS = 0xFFFFFFE7,
    MAD_UNITS_29_97_FPS = 0xFFFFFFE2,
    MAD_UNITS_47_952_FPS = 0xFFFFFFD0,
    MAD_UNITS_49_95_FPS = 0xFFFFFFCE,
    MAD_UNITS_59_94_FPS = 0xFFFFFFC4,
  };


name: _modinstr
type: struct
value:
  struct _modinstr
  {
    s8 name[23];
    u32 length;
    u8 finetune;
    u8 volume;
    u32 loop_start;
    u32 loop_end;
    u32 loop_length;
    u32 looped;
    s8 *data;
  };


name: _mod
type: struct
value:
  struct _mod
  {
    u32 loaded;
    s8 name[21];
    MOD_INSTR instrument[31];
    s32 num_patterns;
    u8 song_length;
    u8 ciaa;
    u8 song[128];
    s8 id[4];
    u8 *patterndata;
    s32 num_instr;
    s32 num_voices;
    s32 num_channels;
    u8 *mixingbuf;
    s32 mixingbuflen;
    s32 shiftval;
    u32 channel_active[32];
    s32 patterndelay;
    s32 speed;
    s32 bpm;
    s32 songpos;
    s32 patternline;
    s32 patternline_jumpto;
    s32 patternline_jumpcount;
    s32 speedcounter;
    s32 freq;
    s32 bits;
    s32 channels;
    u32 playpos[32];
    u8 instnum[32];
    u16 chanfreq[32];
    u16 channote[32];
    u8 volume[32];
    u8 effect[32];
    u8 effectop[32];
    u8 last_effect[32];
    u16 portamento_to[32];
    u8 porta_speed[32];
    u8 retrigger_counter[32];
    u8 arp_counter;
    u8 sintabpos[32];
    u8 vib_freq[32];
    u8 vib_depth[32];
    u16 vib_basefreq[32];
    u8 trem_basevol[32];
    u8 trem_freq[32];
    u8 trem_depth[32];
    u32 glissando[32];
    u8 trem_wave[32];
    u8 vib_wave[32];
    u8 nextinstr[32];
    u16 nextnote[32];
    u32 samplespertick;
    u32 samplescounter;
    u8 *modraw;
    u32 *bpmtab;
    u32 *inctab;
    u32 notebeats;
    void (*callback)(void *);
    u8 musicvolume;
    u8 sfxvolume;
    u32 set;
    u32 *notify;
  };


name: _modinstr_0
type: struct
value:
  struct _modinstr_0
  {
    s8 name[23];
    u32 length;
    u8 finetune;
    u8 volume;
    u32 loop_start;
    u32 loop_end;
    u32 loop_length;
    BOOL looped;
    s8 *data;
  };


name: _mod_0
type: struct
value:
  struct _mod_0
  {
    BOOL loaded;
    s8 name[21];
    MOD_INSTR_0 instrument[31];
    s32 num_patterns;
    u8 song_length;
    u8 ciaa;
    u8 song[128];
    s8 id[4];
    u8 *patterndata;
    s32 num_instr;
    s32 num_voices;
    s32 num_channels;
    u8 *mixingbuf;
    s32 mixingbuflen;
    s32 shiftval;
    BOOL channel_active[32];
    s32 patterndelay;
    s32 speed;
    s32 bpm;
    s32 songpos;
    s32 patternline;
    s32 patternline_jumpto;
    s32 patternline_jumpcount;
    s32 speedcounter;
    s32 freq;
    s32 bits;
    s32 channels;
    u32 playpos[32];
    u8 instnum[32];
    u16 chanfreq[32];
    u16 channote[32];
    u8 volume[32];
    u8 effect[32];
    u8 effectop[32];
    u8 last_effect[32];
    u16 portamento_to[32];
    u8 porta_speed[32];
    u8 retrigger_counter[32];
    u8 arp_counter;
    u8 sintabpos[32];
    u8 vib_freq[32];
    u8 vib_depth[32];
    u16 vib_basefreq[32];
    u8 trem_basevol[32];
    u8 trem_freq[32];
    u8 trem_depth[32];
    BOOL glissando[32];
    u8 trem_wave[32];
    u8 vib_wave[32];
    u8 nextinstr[32];
    u16 nextnote[32];
    u32 samplespertick;
    u32 samplescounter;
    u8 *modraw;
    u32 *bpmtab;
    u32 *inctab;
    u32 notebeats;
    void (*callback)(void *);
    u8 musicvolume;
    u8 sfxvolume;
    BOOL set;
    BOOL *notify;
  };


name: _modsndbuf
type: struct
value:
  struct _modsndbuf
  {
    u32 freq;
    u16 fmt;
    u32 chans;
    f32 samples;
    void *usr_data;
    void (*callback)(void *, u8 *, u32);
  };


name: _modplay
type: struct
value:
  struct _modplay
  {
    MOD_0 mod;
    BOOL playing;
    BOOL paused;
    BOOL bits;
    BOOL stereo;
    BOOL manual_polling;
    u32 playfreq;
    u32 numSFXChans;
    MODSNDBUF soundBuf;
  };


name: _gx_rmodeobj
type: struct
value:
  struct __attribute__((aligned(4))) _gx_rmodeobj
  {
    u32 viTVMode;
    u16 fbWidth;
    u16 efbHeight;
    u16 xfbHeight;
    u16 viXOrigin;
    u16 viYOrigin;
    u16 viWidth;
    u16 viHeight;
    u32 xfbMode;
    u8 field_rendering;
    u8 aa;
    u8 sample_pattern[12][2];
    u8 vfilter[7];
  };


name: _console_data_s
type: struct
value:
  struct _console_data_s
  {
    void *destbuffer;
    unsigned __int8 *font;
    int con_xres;
    int con_yres;
    int con_stride;
    int target_x;
    int target_y;
    int tgt_stride;
    int cursor_row;
    int cursor_col;
    int saved_row;
    int saved_col;
    int con_rows;
    int con_cols;
    unsigned int foreground;
    unsigned int background;
  };


name: $E3C90A5C9840ACD976022590D62C2BBA
type: enum
value:
  enum $E3C90A5C9840ACD976022590D62C2BBA : __int32
  {
    STD_IN = 0x0,
    STD_OUT = 0x1,
    STD_ERR = 0x2,
    STD_MAX = 0x10,
  };


name: _mqcntrl
type: struct
value:
  struct _mqcntrl
  {
    lwp_thrqueue wait_queue;
    mq_attr attr;
    u32 max_pendingmsgs;
    u32 num_pendingmsgs;
    u32 max_msgsize;
    lwp_queue pending_msgs;
    mq_buffer *msq_buffers;
    mq_notifyhandler notify_handler;
    void *notify_arg;
    lwp_queue inactive_msgs;
  };


name: _heap_block_st
type: struct
value:
  struct _heap_block_st
  {
    u32 back_flag;
    u32 front_flag;
    heap_block *next;
    heap_block *prev;
  };


name: _heap_cntrl_st
type: struct
value:
  struct _heap_cntrl_st
  {
    heap_block *start;
    heap_block *final;
    heap_block *first;
    heap_block *perm_null;
    heap_block *last;
    u32 pg_size;
    u32 reserved;
  };


name: _lwpmutexattr
type: struct
value:
  struct __attribute__((aligned(4))) _lwpmutexattr
  {
    u32 mode;
    u32 nest_behavior;
    u8 prioceil;
    u8 onlyownerrelease;
  };


name: _lwpmutex
type: struct
value:
  struct _lwpmutex
  {
    lwp_thrqueue wait_queue;
    lwp_mutex_attr atrrs;
    u32 lock;
    u32 nest_cnt;
    u32 blocked_cnt;
    lwp_cntrl *holder;
  };


name: _heap_iblock_st
type: struct
value:
  struct _heap_iblock_st
  {
    u32 free_blocks;
    u32 free_size;
    u32 used_blocks;
    u32 used_size;
  };


name: $E862053799AC7846ABB9DB3BC016FB7C
type: enum
value:
  enum $E862053799AC7846ABB9DB3BC016FB7C : __int32
  {
    CONF_VIDEO_NTSC = 0x0,
    CONF_VIDEO_PAL = 0x1,
    CONF_VIDEO_MPAL = 0x2,
  };


name: _horVer
type: struct
value:
  struct _horVer
  {
    u16 dispPosX;
    u16 dispPosY;
    u16 dispSizeX;
    u16 dispSizeY;
    u16 adjustedDispPosX;
    u16 adjustedDispPosY;
    u16 adjustedDispSizeY;
    u16 adjustedPanPosY;
    u16 adjustedPanSizeY;
    u16 fbSizeX;
    u16 fbSizeY;
    u16 panPosX;
    u16 panPosY;
    u16 panSizeX;
    u16 panSizeY;
    u32 fbMode;
    u32 nonInter;
    u32 tv;
    u8 wordPerLine;
    u8 std;
    u8 wpl;
    void *bufAddr;
    u32 tfbb;
    u32 bfbb;
    u8 xof;
    s32 black;
    s32 threeD;
    void *rbufAddr;
    u32 rtfbb;
    u32 rbfbb;
    const _timing *timing;
  };


name: _timing
type: struct
value:
  struct _timing
  {
    u8 equ;
    u16 acv;
    u16 prbOdd;
    u16 prbEven;
    u16 psbOdd;
    u16 psbEven;
    u8 bs1;
    u8 bs2;
    u8 bs3;
    u8 bs4;
    u16 be1;
    u16 be2;
    u16 be3;
    u16 be4;
    u16 nhlines;
    u16 hlw;
    u8 hsy;
    u8 hcs;
    u8 hce;
    u8 hbe640;
    u16 hbs640;
  };


name: _padstatus
type: struct
value:
  struct __attribute__((aligned(2))) _padstatus
  {
    u16 button;
    s8 stickX;
    s8 stickY;
    s8 substickX;
    s8 substickY;
    u8 triggerL;
    u8 triggerR;
    u8 analogA;
    u8 analogB;
    s8 err;
  };


name: _keyinput
type: struct
value:
  struct _keyinput
  {
    s8 stickX;
    s8 stickY;
    s8 substickX;
    s8 substickY;
    u8 triggerL;
    u8 triggerR;
    u16 up;
    u16 down;
    u16 state;
    u32 chan;
  };


name: _dvddiskid
type: struct
value:
  struct _dvddiskid
  {
    s8 gamename[4];
    s8 company[2];
    u8 disknum;
    u8 gamever;
    u8 streaming;
    u8 streambufsize;
    u8 pad[22];
  };


name: _dvdcmdblk
type: struct
value:
  struct __attribute__((aligned(8))) _dvdcmdblk
  {
    lwp_node node;
    u32 cmd;
    s32 state;
    s64 offset;
    u32 len;
    void *buf;
    u32 currtxsize;
    u32 txdsize;
    dvddiskid *id;
    dvdcbcallback cb;
    void *usrdata;
  };


name: _syssramex
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(2))) _syssramex
  {
    u8 flash_id[2][12];
    u32 wirelessKbd_id;
    u16 wirelessPad_id[4];
    u8 dvderr_code;
    u8 __padding0;
    u16 flashID_chksum[2];
    u8 __padding1[4];
  };


name: _dvdcmdl
type: struct
value:
  struct __attribute__((aligned(8))) _dvdcmdl
  {
    s32 cmd;
    void *buf;
    u32 len;
    s64 offset;
    dvdcallbacklow cb;
  };


name: _exibus_priv
type: struct
value:
  struct _exibus_priv
  {
    EXICallback CallbackEXI;
    EXICallback CallbackTC;
    EXICallback CallbackEXT;
    u32 imm_len;
    void *imm_buff;
    u32 lockeddev;
    u32 flags;
    u32 lck_cnt;
    u32 exi_id;
    u64 exi_idtime;
    lwp_queue lckd_dev;
    u32 lckd_dev_bits;
  };


name: $230AFB51CDAAF3311021854EF4072616
type: enum
value:
  enum $230AFB51CDAAF3311021854EF4072616 : __int32
  {
    ARQ_TASK_READY = 0x0,
    ARQ_TASK_RUNNING = 0x1,
    ARQ_TASK_FINISHED = 0x2,
  };


name: _arq_request
type: struct
value:
  struct _arq_request
  {
    lwp_node node;
    u32 owner;
    u32 dir;
    u32 prio;
    u32 state;
    u32 aram_addr;
    u32 mram_addr;
    u32 len;
    ARQCallback callback;
  };


name: _arqm_info
type: struct
value:
  struct _arqm_info
  {
    ARQRequest arqhandle;
    ARQMCallback callback;
    void *buffer;
    u32 file_len;
    u32 read_len;
    u32 aram_start;
    u32 curr_read_offset;
    u32 curr_aram_offset;
    volatile BOOL polled;
  };


name: __syscalls_t
type: struct
value:
  struct __syscalls_t
  {
    void *(*sbrk_r)(_reent *, ptrdiff_t);
    int (*lock_init)(int *, int);
    int (*lock_close)(int *);
    int (*lock_release)(int *);
    int (*lock_acquire)(int *);
    void (*malloc_lock)(_reent *);
    void (*malloc_unlock)(_reent *);
    void (*exit)(int);
    int (*gettod_r)(_reent *, timeval *, timezone *);
  };


name: $50DEF62A2E1D91A9DFCA651445824B16
type: enum
value:
  enum $50DEF62A2E1D91A9DFCA651445824B16 : __int32
  {
    CONF_SHUTDOWN_STANDBY = 0x0,
    CONF_SHUTDOWN_IDLE = 0x1,
  };


name: _syssram
type: struct
value:
  struct _syssram
  {
    u16 checksum;
    u16 checksum_inv;
    u32 ead0;
    u32 ead1;
    u32 counter_bias;
    s8 display_offsetH;
    u8 ntd;
    u8 lang;
    u8 flags;
  };


name: _sys_fontheader
type: struct
value:
  struct _sys_fontheader
  {
    u16 font_type;
    u16 first_char;
    u16 last_char;
    u16 inval_char;
    u16 asc;
    u16 desc;
    u16 width;
    u16 leading;
    u16 cell_width;
    u16 cell_height;
    u32 sheet_size;
    u16 sheet_format;
    u16 sheet_column;
    u16 sheet_row;
    u16 sheet_width;
    u16 sheet_height;
    u16 width_table;
    u32 sheet_image;
    u32 sheet_fullsize;
    u8 c0;
    u8 c1;
    u8 c2;
    u8 c3;
  };


name: _alarm_st
type: struct
value:
  struct _alarm_st
  {
    lwp_obj object;
    wd_cntrl alarm;
    u64 ticks;
    u64 periodic;
    u64 start_per;
    alarmcallback alarmhandler;
    void *cb_arg;
  };


name: _yay0header
type: struct
value:
  struct _yay0header
  {
    unsigned int id;
    unsigned int dec_size;
    unsigned int links_offset;
    unsigned int chunks_offset;
  };


name: __gx_regdef
type: struct
value:
  struct __gx_regdef
  {
    u16 cpSRreg;
    u16 cpCRreg;
    u16 cpCLreg;
    u16 xfFlush;
    u16 xfFlushExp;
    u16 xfFlushSafe;
    u32 gxFifoInited;
    u32 vcdClear;
    u32 VATTable;
    u32 mtxIdxLo;
    u32 mtxIdxHi;
    u32 texCoordManually;
    u32 vcdLo;
    u32 vcdHi;
    u32 vcdNrms;
    u32 dirtyState;
    u32 perf0Mode;
    u32 perf1Mode;
    u32 cpPerfMode;
    u32 VAT0reg[8];
    u32 VAT1reg[8];
    u32 VAT2reg[8];
    u32 texMapSize[8];
    u32 texMapWrap[8];
    u32 sciTLcorner;
    u32 sciBRcorner;
    u32 lpWidth;
    u32 genMode;
    u32 suSsize[8];
    u32 suTsize[8];
    u32 tevTexMap[16];
    u32 tevColorEnv[16];
    u32 tevAlphaEnv[16];
    u32 tevSwapModeTable[8];
    u32 tevRasOrder[11];
    u32 tevTexCoordEnable;
    u32 tevIndMask;
    u32 texCoordGen[8];
    u32 texCoordGen2[8];
    u32 dispCopyCntrl;
    u32 dispCopyDst;
    u32 dispCopyTL;
    u32 dispCopyWH;
    u32 texCopyCntrl;
    u32 texCopyDst;
    u32 texCopyTL;
    u32 texCopyWH;
    u32 peZMode;
    u32 peCMode0;
    u32 peCMode1;
    u32 peCntrl;
    u32 chnAmbColor[2];
    u32 chnMatColor[2];
    u32 chnCntrl[4];
    GXTexRegion texRegion[24];
    GXTlutRegion tlutRegion[20];
    u8 saveDLctx;
    u8 gxFifoUnlinked;
    u8 texCopyZTex;
    u8 _pad;
  };


name: __gxfifo
type: struct
value:
  struct __gxfifo
  {
    volatile unsigned int buf_start;
    volatile unsigned int buf_end;
    volatile unsigned int size;
    volatile unsigned int hi_mark;
    volatile unsigned int lo_mark;
    volatile unsigned int rd_ptr;
    volatile unsigned int wt_ptr;
    volatile unsigned int rdwt_dst;
    volatile unsigned __int8 fifo_wrap;
    volatile unsigned __int8 cpufifo_ready;
    volatile unsigned __int8 gpfifo_ready;
    u8 _pad[93];
  };


name: __gx_litobj
type: struct
value:
  struct __gx_litobj
  {
    u32 _pad[3];
    u32 col;
    f32 a0;
    f32 a1;
    f32 a2;
    f32 k0;
    f32 k1;
    f32 k2;
    f32 px;
    f32 py;
    f32 pz;
    f32 nx;
    f32 ny;
    f32 nz;
  };


name: __gx_texobj
type: struct
value:
  struct __gx_texobj
  {
    u32 tex_filt;
    u32 tex_lod;
    u32 tex_size;
    u32 tex_maddr;
    u32 usr_data;
    u32 tex_fmt;
    u32 tex_tlut;
    u16 tex_tile_cnt;
    u8 tex_tile_type;
    u8 tex_flag;
  };


name: __gx_texregion
type: struct
value:
  struct __gx_texregion
  {
    u32 tmem_even;
    u32 tmem_odd;
    u16 size_even;
    u16 size_odd;
    u8 ismipmap;
    u8 iscached;
    u8 _pad[2];
  };


name: __gx_tlutregion
type: struct
value:
  struct __gx_tlutregion
  {
    u32 tmem_addr_conf;
    u32 tmem_addr_base;
    u32 tlut_maddr;
    u16 tlut_nentries;
    u8 _pad[2];
  };


name: _card_file
type: struct
value:
  struct __attribute__((aligned(4))) _card_file
  {
    s32 chn;
    s32 filenum;
    s32 offset;
    s32 len;
    u16 iblock;
  };


name: _card_dir
type: struct
value:
  struct _card_dir
  {
    s32 chn;
    u32 fileno;
    u32 filelen;
    u8 permissions;
    u8 filename[32];
    u8 gamecode[4];
    u8 company[2];
    _Bool showall;
  };


name: _card_stat
type: struct
value:
  struct _card_stat
  {
    u8 filename[32];
    u32 len;
    u32 time;
    u8 gamecode[4];
    u8 company[2];
    u8 banner_fmt;
    u32 icon_addr;
    u16 icon_fmt;
    u16 iconfmt[8];
    u16 icon_speed;
    u16 iconspeed[8];
    u32 comment_addr;
    u32 offset_banner;
    u32 offset_banner_tlut;
    u32 offset_icon[8];
    u32 offset_icon_tlut[8];
    u32 offset_data;
  };


name: card_header
type: struct
value:
  struct card_header
  {
    u32 serial[8];
    u16 device_id;
    u16 size;
    u16 encoding;
    u8 padding[470];
    u16 chksum1;
    u16 chksum2;
  };


name: card_direntry
type: struct
value:
  struct card_direntry
  {
    u8 gamecode[4];
    u8 company[2];
    u8 pad_00;
    u8 bannerfmt;
    u8 filename[32];
    u32 lastmodified;
    u32 iconaddr;
    u16 iconfmt;
    u16 iconspeed;
    u8 permission;
    u8 copytimes;
    u16 block;
    u16 length;
    u16 pad_01;
    u32 commentaddr;
  };


name: card_bat
type: struct
value:
  struct card_bat
  {
    u16 chksum1;
    u16 chksum2;
    u16 updated;
    u16 freeblocks;
    u16 lastalloc;
    u16 fat[4092];
  };


name: _card_block
type: struct
value:
  struct _card_block
  {
    u8 cmd[9];
    u32 cmd_len;
    u32 cmd_mode;
    u32 cmd_blck_cnt;
    u32 cmd_sector_addr;
    u32 cmd_retries;
    u32 attached;
    s32 result;
    u32 cid;
    u16 card_size;
    u32 mount_step;
    u32 format_step;
    u32 sector_size;
    u16 blocks;
    u32 latency;
    u32 cipher;
    u32 key[3];
    u32 transfer_cnt;
    u16 curr_fileblock;
    card_file *curr_file;
    card_dat *curr_dir;
    card_bat *curr_fat;
    void *workarea;
    void *cmd_usr_buf;
    lwpq_t wait_sync_queue;
    syswd_t timeout_svc;
    dsptask_t dsp_task;
    cardcallback card_ext_cb;
    cardcallback card_tx_cb;
    cardcallback card_exi_cb;
    cardcallback card_api_cb;
    cardcallback card_xfer_cb;
    cardcallback card_erase_cb;
    cardcallback card_unlock_cb;
  };


name: $20DA8EA3A1A50095F1DEB1E79BA23CA7
type: struct
value:
  struct $20DA8EA3A1A50095F1DEB1E79BA23CA7
  {
    unsigned __int32 tcint : 1;
    unsigned __int32 tcintmsk : 1;
    unsigned __int32 comerr : 1;
    unsigned __int32 rdstint : 1;
    unsigned __int32 rdstintmsk : 1;
    unsigned __int32 pad2 : 4;
    unsigned __int32 outlen : 7;
    unsigned __int32 pad1 : 1;
    unsigned __int32 inlen : 7;
    unsigned __int32 pad0 : 5;
    unsigned __int32 channel : 2;
    unsigned __int32 tstart : 1;
  };


name: _sipacket
type: struct
value:
  struct _sipacket
  {
    s32 chan;
    void *out;
    u32 out_bytes;
    void *in;
    u32 in_bytes;
    SICallback callback;
    u64 fire;
  };


name: _tplimgheader
type: struct
value:
  struct _tplimgheader
  {
    u16 height;
    u16 width;
    u32 fmt;
    void *data;
    u32 wraps;
    u32 wrapt;
    u32 minfilter;
    u32 magfilter;
    f32 lodbias;
    u8 edgelod;
    u8 minlod;
    u8 maxlod;
    u8 unpacked;
  };


name: __va_list_tag
type: struct
value:
  struct __va_list_tag
  {
    unsigned __int8 gpr;
    unsigned __int8 fpr;
    unsigned __int16 reserved;
    void *overflow_arg_area;
    void *reg_save_area;
  };


name: $DE88DEC3ABAE907752EA7D0CD3E2E452
type: struct
value:
  struct $DE88DEC3ABAE907752EA7D0CD3E2E452
  {
    u32 ioctl;
    void *buffer_in;
    u32 len_in;
    void *buffer_io;
    u32 len_io;
  };


name: $B7D851E424F6E77C075D62E6C64F06D8
type: struct
value:
  struct $B7D851E424F6E77C075D62E6C64F06D8
  {
    u32 ioctl;
    u32 argcin;
    u32 argcio;
    _ioctlv *argv;
  };


name: $7B540117E1AD757164466AA7618F0DA9
type: union
value:
  union $7B540117E1AD757164466AA7618F0DA9
  {
    $D9D8E68445ADE46D0A7AE6F152E30BC5 open;
    $C3ED59ACA2058142105FC8478EA0D1A5 read;
    $C3ED59ACA2058142105FC8478EA0D1A5 write;
    $E277E37A2013AB2BBD19D78FD63752E5 seek;
    $DE88DEC3ABAE907752EA7D0CD3E2E452 ioctl;
    $B7D851E424F6E77C075D62E6C64F06D8 ioctlv;
    u32 args[5];
  };


name: _ipcreq
type: struct
value:
  struct _ipcreq
  {
    u32 cmd;
    s32 result;
    $3ACB6BCB4A63A27DF1DDAF6B951389C4 _anon_0;
    $7B540117E1AD757164466AA7618F0DA9 _anon_1;
    ipccallback cb;
    void *usrdata;
    u32 relnch;
    lwpq_t syncqueue;
    u32 magic;
    u8 pad1[12];
  };


name: _ipcreqres
type: struct
value:
  struct _ipcreqres
  {
    u32 cnt_sent;
    u32 cnt_queue;
    u32 req_send_no;
    u32 req_queue_no;
    _ipcreq *reqs[16];
  };


name: _ioctlvfmt_cbdata
type: struct
value:
  struct _ioctlvfmt_cbdata
  {
    ipccallback user_cb;
    void *user_data;
    s32 num_bufs;
    u32 hId;
    _ioctlvfmt_bufent *bufs;
  };


name: _usbendpointdesc
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(1))) _usbendpointdesc
  {
    u8 bLength;
    u8 bDescriptorType;
    u8 bEndpointAddress;
    u8 bmAttributes;
    u16 wMaxPacketSize;
    u8 bInterval;
  };


name: _usbinterfacedesc
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(1))) _usbinterfacedesc
  {
    u8 bLength;
    u8 bDescriptorType;
    u8 bInterfaceNumber;
    u8 bAlternateSetting;
    u8 bNumEndpoints;
    u8 bInterfaceClass;
    u8 bInterfaceSubClass;
    u8 bInterfaceProtocol;
    u8 iInterface;
    u8 *extra;
    u16 extra_size;
    _usbendpointdesc *endpoints;
  };


name: _usbconfdesc
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(1))) _usbconfdesc
  {
    u8 bLength;
    u8 bDescriptorType;
    u16 wTotalLength;
    u8 bNumInterfaces;
    u8 bConfigurationValue;
    u8 iConfiguration;
    u8 bmAttributes;
    u8 bMaxPower;
    _usbinterfacedesc *interfaces;
  };


name: _usbdevdesc
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(2))) _usbdevdesc
  {
    u8 bLength;
    u8 bDescriptorType;
    u16 bcdUSB;
    u8 bDeviceClass;
    u8 bDeviceSubClass;
    u8 bDeviceProtocol;
    u8 bMaxPacketSize0;
    u16 idVendor;
    u16 idProduct;
    u16 bcdDevice;
    u8 iManufacturer;
    u8 iProduct;
    u8 iSerialNumber;
    u8 bNumConfigurations;
    _usbconfdesc *configurations;
  };


name: umouse
type: struct
value:
  struct umouse
  {
    _Bool connected;
    _Bool has_wheel;
    s32 fd;
    u8 configuration;
    u32 interface;
    u32 altInterface;
    u8 ep;
    u32 ep_size;
  };


name: _tikview
type: struct
value:
  struct _tikview
  {
    u32 view;
    __attribute__((packed)) __attribute__((aligned(1))) u64 ticketid;
    u32 devicetype;
    u64 titleid;
    u16 access_mask;
    u8 reserved[60];
    u8 cidx_mask[64];
    u16 padding;
    tiklimit limits[8];
  };


name: _tmd_content
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(4))) _tmd_content
  {
    u32 cid;
    u16 index;
    u16 type;
    u64 size;
    sha1 hash;
  };


name: _tmd
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(4))) _tmd
  {
    sig_issuer issuer;
    u8 version;
    u8 ca_crl_version;
    u8 signer_crl_version;
    u8 fill2;
    u64 sys_version;
    u64 title_id;
    u32 title_type;
    u16 group_id;
    u16 zero;
    u16 region;
    u8 ratings[16];
    u8 reserved[12];
    u8 ipc_mask[12];
    u8 reserved2[18];
    u32 access_rights;
    u16 title_version;
    u16 num_contents;
    u16 boot_index;
    u16 fill3;
    tmd_content contents[];
  };


name: _cert_header
type: struct
value:
  struct _cert_header
  {
    sig_issuer issuer;
    u32 cert_type;
    unsigned __int8 cert_name[64];
    u32 cert_id;
  };


name: es_fd
type: struct
value:
  struct __attribute__((aligned(8))) es_fd
  {
    s32 cfd;
    u64 titleID;
    tmd_content content;
    void *iobuf;
    mutex_t mutex;
  };


name: $19C285A571FCBEEDD44A2D48D7265F05
type: struct
value:
  struct $19C285A571FCBEEDD44A2D48D7265F05
  {
    unsigned __int8 filepathOld[64];
    unsigned __int8 filepathNew[64];
  };


name: $1401F20813E387A86440E696DB63C4A7
type: struct
value:
  struct $1401F20813E387A86440E696DB63C4A7
  {
    u32 owner_id;
    u16 group_id;
    unsigned __int8 filepath[64];
    u8 ownerperm;
    u8 groupperm;
    u8 otherperm;
    u8 attributes;
    u8 pad0[2];
  };


name: $976D0FC20155F7DBC1BFD4175FCF4006
type: struct
value:
  struct $976D0FC20155F7DBC1BFD4175FCF4006
  {
    ioctlv vector[4];
    u32 usage1;
    u8 pad0[28];
    u32 usage2;
  };


name: $8F1C5A90B7EB0ADCEF45BE8064CC1EDF
type: struct
value:
  struct $8F1C5A90B7EB0ADCEF45BE8064CC1EDF
  {
    u32 a;
    u32 b;
    u32 c;
    u32 d;
    u32 e;
    u32 f;
    u32 g;
  };


name: $D8619534B5C126C46647986E5116971F
type: union
value:
  union $D8619534B5C126C46647986E5116971F
  {
    $19C285A571FCBEEDD44A2D48D7265F05 fsrename;
    $1401F20813E387A86440E696DB63C4A7 fsattr;
    $AFD44F682D26696F2BA817079316925C fsreaddir;
    $976D0FC20155F7DBC1BFD4175FCF4006 fsusage;
    $8F1C5A90B7EB0ADCEF45BE8064CC1EDF fsstats;
  };


name: isfs_cb
type: struct
value:
  struct isfs_cb
  {
    unsigned __int8 filepath[64];
    $D8619534B5C126C46647986E5116971F _anon_0;
    isfscallback cb;
    void *usrdata;
    u32 functype;
    void *funcargv[8];
  };


name: $DFB1821C3B3F98E0ED16E10D51CF6EA7
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(1))) $DFB1821C3B3F98E0ED16E10D51CF6EA7
  {
    u8 bDescriptorType;
    u16 wDescriptorLength;
  };


name: _usbhiddesc
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(1))) _usbhiddesc
  {
    u8 bLength;
    u8 bDescriptorType;
    u16 bcdHID;
    u8 bCountryCode;
    u8 bNumDescriptors;
    $DFB1821C3B3F98E0ED16E10D51CF6EA7 descr[1];
  };


name: _usb_cb_list
type: struct
value:
  struct _usb_cb_list
  {
    usbcallback cb;
    void *userdata;
    $56B8819DB0C01F9F294C7B454557B8E9 _anon_0;
  };


name: _usbv5_host
type: struct
value:
  struct _usbv5_host
  {
    usb_device_entry attached_devices[32];
    _usb_cb_list_0 remove_cb[32];
    s32 fd;
    _usb_cb_list_0 *device_change_notify;
  };


name: $ACE9BC417EAA3F2043E8CEDC44E32020
type: struct
value:
  struct $ACE9BC417EAA3F2043E8CEDC44E32020
  {
    u8 bmRequestType;
    u8 bmRequest;
    u16 wValue;
    u16 wIndex;
    u16 wLength;
    void *rpData;
  };


name: $87E8D1088C633A9D0D2D9ECFFD741961
type: struct
value:
  struct __attribute__((aligned(2))) $87E8D1088C633A9D0D2D9ECFFD741961
  {
    void *rpData;
    u16 wLength;
    u8 pad[4];
    u8 bEndpoint;
  };


name: $FADB8A880A561F6C391788D81417DEEF
type: struct
value:
  struct __attribute__((aligned(2))) $FADB8A880A561F6C391788D81417DEEF
  {
    void *rpData;
    u16 wLength;
    u8 bEndpoint;
  };


name: $C7D7CE9CCF5F356608FD6F4F6B41C201
type: struct
value:
  struct __attribute__((aligned(4))) $C7D7CE9CCF5F356608FD6F4F6B41C201
  {
    void *rpData;
    void *rpPacketSizes;
    u8 bPackets;
    u8 bEndpoint;
  };


name: $B1EB4C944FB66B0A6072DF7946C7BF66
type: union
value:
  union $B1EB4C944FB66B0A6072DF7946C7BF66
  {
    $ACE9BC417EAA3F2043E8CEDC44E32020 ctrl;
    $87E8D1088C633A9D0D2D9ECFFD741961 bulk;
    $FADB8A880A561F6C391788D81417DEEF intr;
    $C7D7CE9CCF5F356608FD6F4F6B41C201 iso;
    $34D2955F834A50CFADCC18192DFE0E3D notify;
    u8 class;
    u32 hid_intr_dir;
    u32 align_pad[4];
  };


name: _usb_msg
type: struct
value:
  struct _usb_msg
  {
    s32 fd;
    u32 heap_buffers;
    $B1EB4C944FB66B0A6072DF7946C7BF66 _anon_0;
    usbcallback cb;
    void *userdata;
    ioctlv vec[7];
  };


name: __argv
type: struct
value:
  struct __argv
  {
    int argvMagic;
    unsigned __int8 *commandLine;
    int length;
    int argc;
    unsigned __int8 **argv;
    unsigned __int8 **endARGV;
  };


name: hostent
type: struct
value:
  struct hostent
  {
    unsigned __int8 *h_name;
    unsigned __int8 **h_aliases;
    u16 h_addrtype;
    u16 h_length;
    unsigned __int8 **h_addr_list;
  };


name: $D4CEF22DBE77A9192406A8D59AB1F7D0
type: enum
value:
  enum $D4CEF22DBE77A9192406A8D59AB1F7D0 : __int32
  {
    IOCTL_SO_ACCEPT = 0x1,
    IOCTL_SO_BIND = 0x2,
    IOCTL_SO_CLOSE = 0x3,
    IOCTL_SO_CONNECT = 0x4,
    IOCTL_SO_FCNTL = 0x5,
    IOCTL_SO_GETPEERNAME = 0x6,
    IOCTL_SO_GETSOCKNAME = 0x7,
    IOCTL_SO_GETSOCKOPT = 0x8,
    IOCTL_SO_SETSOCKOPT = 0x9,
    IOCTL_SO_LISTEN = 0xA,
    IOCTL_SO_POLL = 0xB,
    IOCTLV_SO_RECVFROM = 0xC,
    IOCTLV_SO_SENDTO = 0xD,
    IOCTL_SO_SHUTDOWN = 0xE,
    IOCTL_SO_SOCKET = 0xF,
    IOCTL_SO_GETHOSTID = 0x10,
    IOCTL_SO_GETHOSTBYNAME = 0x11,
    IOCTL_SO_GETHOSTBYADDR = 0x12,
    IOCTLV_SO_GETNAMEINFO = 0x13,
    IOCTL_SO_UNK14 = 0x14,
    IOCTL_SO_INETATON = 0x15,
    IOCTL_SO_INETPTON = 0x16,
    IOCTL_SO_INETNTOP = 0x17,
    IOCTLV_SO_GETADDRINFO = 0x18,
    IOCTL_SO_SOCKATMARK = 0x19,
    IOCTLV_SO_UNK1A = 0x1A,
    IOCTLV_SO_UNK1B = 0x1B,
    IOCTLV_SO_GETINTERFACEOPT = 0x1C,
    IOCTLV_SO_SETINTERFACEOPT = 0x1D,
    IOCTL_SO_SETINTERFACE = 0x1E,
    IOCTL_SO_STARTUP = 0x1F,
    IOCTL_SO_ICMPSOCKET = 0x30,
    IOCTLV_SO_ICMPPING = 0x31,
    IOCTL_SO_ICMPCANCEL = 0x32,
    IOCTL_SO_ICMPCLOSE = 0x33,
  };


name: init_data
type: struct
value:
  struct init_data
  {
    u32 state;
    s32 fd;
    s32 prevres;
    s32 result;
    syswd_t alarm;
    u32 retries;
    netcallback cb;
    void *usrdata;
    u8 *buf;
  };


name: setsockopt_params
type: struct
value:
  struct setsockopt_params
  {
    u32 socket;
    u32 level;
    u32 optname;
    u32 optlen;
    u8 optval[20];
  };


name: _sdiorequest
type: struct
value:
  struct _sdiorequest
  {
    u32 cmd;
    u32 cmd_type;
    u32 rsp_type;
    u32 arg;
    u32 blk_cnt;
    u32 blk_size;
    void *dma_addr;
    u32 isdma;
    u32 pad0;
  };


name: $DEBAB8AF99B256E7BD5D4786319A611B
type: enum
value:
  enum $DEBAB8AF99B256E7BD5D4786319A611B : __int32
  {
    CONF_BIGARRAY = 0x1,
    CONF_SMALLARRAY = 0x2,
    CONF_BYTE = 0x3,
    CONF_SHORT = 0x4,
    CONF_LONG = 0x5,
    CONF_BOOL = 0x7,
  };


name: $B1453ACFB5C14F3A98D8A4899C8A62D3
type: enum
value:
  enum $B1453ACFB5C14F3A98D8A4899C8A62D3 : __int32
  {
    CONF_REGION_JP = 0x0,
    CONF_REGION_US = 0x1,
    CONF_REGION_EU = 0x2,
    CONF_REGION_KR = 0x4,
    CONF_REGION_CN = 0x5,
  };


name: $F6284A7327B765DB7C3A1CCD47BDBE2D
type: enum
value:
  enum $F6284A7327B765DB7C3A1CCD47BDBE2D : __int32
  {
    CONF_AREA_JPN = 0x0,
    CONF_AREA_USA = 0x1,
    CONF_AREA_EUR = 0x2,
    CONF_AREA_AUS = 0x3,
    CONF_AREA_BRA = 0x4,
    CONF_AREA_TWN = 0x5,
    CONF_AREA_ROC = 0x6,
    CONF_AREA_KOR = 0x7,
    CONF_AREA_HKG = 0x8,
    CONF_AREA_ASI = 0x9,
    CONF_AREA_LTN = 0xA,
    CONF_AREA_SAF = 0xB,
    CONF_AREA_CHN = 0xC,
  };


name: _conf_pads
type: struct
value:
  struct _conf_pads
  {
    u8 num_registered;
    conf_pad_device registered[10];
    conf_pad_device active[4];
    conf_pad_device balance_board;
    conf_pad_device unknown;
  };


name: usbstorage_handle
type: struct
value:
  struct usbstorage_handle
  {
    u8 configuration;
    u32 interface;
    u32 altInterface;
    u8 bInterfaceSubClass;
    u8 ep_in;
    u8 ep_out;
    u8 max_lun;
    u32 *sector_size;
    s32 usb_fd;
    mutex_t lock;
    syswd_t alarm;
    s32 retval;
    u32 tag;
    u8 suspended;
    u8 *buffer;
  };


name: raw_device_command
type: struct
value:
  struct raw_device_command
  {
    uint8_t command[16];
    uint8_t command_length;
    uint8_t flags;
    uint8_t scsi_status;
    void *data;
    size_t data_length;
  };


name: NANDBootInfo
type: struct
value:
  struct NANDBootInfo
  {
    u32 checksum;
    u32 argsoff;
    u8 unk1;
    u8 unk2;
    u8 apptype;
    u8 titletype;
    u32 launchcode;
    u32 unknown[2];
    u64 launcher;
    u8 argbuf[4096];
  };


name: StateFlags
type: struct
value:
  struct StateFlags
  {
    u32 checksum;
    u8 flags;
    u8 type;
    u8 discstate;
    u8 returnto;
    u32 unknown[6];
  };


name: md4_ctx
type: struct
value:
  struct md4_ctx
  {
    uint32_t A;
    uint32_t B;
    uint32_t C;
    uint32_t D;
    uint32_t total[2];
    uint32_t buflen;
    uint32_t buffer[32];
  };


name: SMBDIRENTRY
type: struct
value:
  struct __attribute__((aligned(4))) SMBDIRENTRY
  {
    u64 size;
    u64 ctime;
    u64 atime;
    u64 mtime;
    u32 attributes;
    u16 sid;
    unsigned __int8 name[768];
  };


name: _smbsession
type: struct
value:
  struct __attribute__((aligned(4))) _smbsession
  {
    u16 TID;
    u16 PID;
    u16 UID;
    u16 MID;
    u32 sKey;
    u32 capabilities;
    u32 MaxBuffer;
    u16 MaxMpx;
    u16 MaxVCS;
    u8 challenge[10];
    u8 p_domain[64];
    s64 timeOffset;
    u16 count;
    u16 eos;
    _Bool challengeUsed;
    u8 securityLevel;
  };


name: _smbhandle
type: struct
value:
  struct __attribute__((aligned(4))) _smbhandle
  {
    lwp_obj object;
    unsigned __int8 *user;
    unsigned __int8 *pwd;
    unsigned __int8 *share_name;
    unsigned __int8 *server_name;
    s32 sck_server;
    sockaddr_in server_addr;
    _Bool conn_valid;
    SMBSESSION session;
    NBTSMB message;
    _Bool unicode;
  };


name: dirent
type: struct
value:
  struct __attribute__((aligned(4))) dirent
  {
    ino_t d_ino;
    unsigned __int8 d_type;
    unsigned __int8 d_name[768];
  };


name: SMBFILESTRUCT
type: struct
value:
  struct __attribute__((aligned(8))) SMBFILESTRUCT
  {
    SMBFILE handle;
    off_t offset;
    off_t len;
    unsigned __int8 filename[4096];
    unsigned __int16 access;
    int env;
    u32 attributes;
  };


name: SMBDIRSTATESTRUCT
type: struct
value:
  struct __attribute__((aligned(8))) SMBDIRSTATESTRUCT
  {
    SMBDIRENTRY smbdir;
    int env;
    unsigned __int8 dir[4096];
  };


name: smb_write_cache
type: struct
value:
  struct __attribute__((aligned(8))) smb_write_cache
  {
    u64 used;
    size_t len;
    SMBFILESTRUCT *file;
    void *ptr;
  };


name: smb_env
type: struct
value:
  struct __attribute__((aligned(8))) smb_env
  {
    unsigned __int8 *name;
    int pos;
    devoptab_t *devoptab;
    SMBCONN smbconn;
    u8 SMBCONNECTED;
    unsigned __int8 currentpath[4096];
    _Bool first_item_dir;
    _Bool diropen_root;
    smb_write_cache SMBWriteCache;
    smb_cache_page *SMBReadAheadCache;
    int SMB_RA_pages;
    mutex_t _SMB_mutex;
  };


name: USBKeyboard_eventType
type: enum
value:
  enum USBKeyboard_eventType : __int32
  {
    USBKEYBOARD_PRESSED = 0x0,
    USBKEYBOARD_RELEASED = 0x1,
    USBKEYBOARD_DISCONNECTED = 0x2,
  };


name: USBKeyboard_led
type: enum
value:
  enum USBKeyboard_led : __int32
  {
    USBKEYBOARD_LEDNUM = 0x0,
    USBKEYBOARD_LEDCAPS = 0x1,
    USBKEYBOARD_LEDSCROLL = 0x2,
  };


name: USBKeyboard_event
type: struct
value:
  struct __attribute__((aligned(4))) USBKeyboard_event
  {
    USBKeyboard_eventType type;
    u8 keyCode;
  };


name: ukbd
type: struct
value:
  struct ukbd
  {
    _Bool connected;
    s32 fd;
    ukbd_data sc_ndata;
    ukbd_data sc_odata;
    u8 leds;
    eventcallback cb;
    u8 configuration;
    u32 interface;
    u32 altInterface;
    u8 ep;
    u32 ep_size;
  };


name: $AF5A5AE325D5AEE6484224FC334BDC97
type: enum
value:
  enum $AF5A5AE325D5AEE6484224FC334BDC97 : __int32
  {
    CONF_LANG_JAPANESE = 0x0,
    CONF_LANG_ENGLISH = 0x1,
    CONF_LANG_GERMAN = 0x2,
    CONF_LANG_FRENCH = 0x3,
    CONF_LANG_SPANISH = 0x4,
    CONF_LANG_ITALIAN = 0x5,
    CONF_LANG_DUTCH = 0x6,
    CONF_LANG_SIMP_CHINESE = 0x7,
    CONF_LANG_TRAD_CHINESE = 0x8,
    CONF_LANG_KOREAN = 0x9,
  };


name: $9AAFB9A7135C23B5348E1E5D23713F49
type: enum
value:
  enum $9AAFB9A7135C23B5348E1E5D23713F49 : __int32
  {
    USBKEYBOARD_LEDNUM_0 = 0x0,
    USBKEYBOARD_LEDCAPS_0 = 0x1,
    USBKEYBOARD_LEDSCROLL_0 = 0x2,
  };


name: keyboard_event_type
type: enum
value:
  enum keyboard_event_type : __int32
  {
    KEYBOARD_CONNECTED = 0x0,
    KEYBOARD_DISCONNECTED = 0x1,
    KEYBOARD_PRESSED = 0x2,
    KEYBOARD_RELEASED = 0x3,
  };


name: keyboard_event
type: struct
value:
  struct __attribute__((aligned(4))) keyboard_event
  {
    keyboard_event_type type;
    u16 modifiers;
    u8 keycode;
    u16 symbol;
  };


name: $BB12C95EF5FD216149163C9A65DAAB8B
type: struct
value:
  struct $BB12C95EF5FD216149163C9A65DAAB8B
  {
    volatile unsigned __int8 head;
    volatile unsigned __int8 tail;
    unsigned __int8 buf[256];
  };


name: wiimote_t
type: struct
value:
  struct __attribute__((aligned(4))) wiimote_t
  {
    int unid;
    lwp_queue cmdq;
    bd_addr bdaddr;
    unsigned __int8 bdaddr_str[18];
    bte_pcb *sock;
    wii_event_cb event_cb;
    int state;
    ubyte leds;
    ubyte battery_level;
    int flags;
    ubyte handshake_state;
    ubyte expansion_state;
    data_req_t *data_req;
    cmd_blk_t *cmd_head;
    cmd_blk_t *cmd_tail;
    accel_t accel_calib;
    expansion_t exp;
    vec3w_t accel;
    orient_t orient;
    gforce_t gforce;
    ir_t ir;
    unsigned __int16 btns;
    unsigned __int16 btns_last;
    unsigned __int16 btns_held;
    unsigned __int16 btns_released;
    wiimote_state_t lstate;
    WIIUSE_EVENT_TYPE_0 event;
    ubyte event_buf[32];
    ubyte motion_plus_id[6];
  };


name: data_req_t
type: struct
value:
  struct data_req_t
  {
    lwp_node node;
    ubyte data[48];
    unsigned int len;
    data_req_s_0 state;
    wiiuse_data_cb cb;
    data_req_t *next;
  };


name: cmd_blk_t
type: struct
value:
  struct cmd_blk_t
  {
    lwp_node node;
    ubyte data[48];
    unsigned int len;
    cmd_blk_s_0 state;
    cmd_blk_cb cb;
    cmd_blk_t *next;
  };


name: accel_t
type: struct
value:
  struct accel_t
  {
    vec3w_t cal_zero;
    vec3w_t cal_g;
    float st_roll;
    float st_pitch;
    float st_alpha;
  };


name: $EEDB31FC402F550D39E459C405C2DA14
type: union
value:
  union $EEDB31FC402F550D39E459C405C2DA14
  {
    nunchuk_t nunchuk;
    classic_ctrl_t classic;
    guitar_hero_3_t gh3;
    wii_board_t wb;
    motion_plus_t mp;
  };


name: nunchuk_t
type: struct
value:
  struct nunchuk_t
  {
    accel_t accel_calib;
    joystick_t js;
    int *flags;
    ubyte btns;
    ubyte btns_last;
    ubyte btns_held;
    ubyte btns_released;
    vec3w_t accel;
    orient_t orient;
    gforce_t gforce;
  };


name: joystick_t
type: struct
value:
  struct joystick_t
  {
    vec2b_t max;
    vec2b_t min;
    vec2b_t center;
    vec2b_t pos;
    float ang;
    float mag;
  };


name: classic_ctrl_t
type: struct
value:
  struct classic_ctrl_t
  {
    __int16 btns;
    __int16 btns_last;
    __int16 btns_held;
    __int16 btns_released;
    ubyte rs_raw;
    ubyte ls_raw;
    float r_shoulder;
    float l_shoulder;
    joystick_t ljs;
    joystick_t rjs;
  };


name: guitar_hero_3_t
type: struct
value:
  struct guitar_hero_3_t
  {
    __int16 btns;
    __int16 btns_last;
    __int16 btns_held;
    __int16 btns_released;
    ubyte wb_raw;
    float whammy_bar;
    ubyte tb_raw;
    int touch_bar;
    joystick_t js;
  };


name: wii_board_t
type: struct
value:
  struct wii_board_t
  {
    float tl;
    float tr;
    float bl;
    float br;
    __int16 rtl;
    __int16 rtr;
    __int16 rbl;
    __int16 rbr;
    __int16 ctl[3];
    __int16 ctr[3];
    __int16 cbl[3];
    __int16 cbr[3];
    float x;
    float y;
  };


name: ir_t
type: struct
value:
  struct ir_t
  {
    ir_dot_t dot[4];
    ubyte num_dots;
    int state;
    int raw_valid;
    sb_t_0 sensorbar;
    float ax;
    float ay;
    float distance;
    float z;
    float angle;
    int smooth_valid;
    float sx;
    float sy;
    float error_cnt;
    float glitch_cnt;
    int valid;
    float x;
    float y;
    aspect_t aspect;
    ir_position_t pos;
    unsigned int vres[2];
    int offset[2];
  };


name: ir_dot_t
type: struct
value:
  struct __attribute__((aligned(2))) ir_dot_t
  {
    ubyte visible;
    __int16 rx;
    __int16 ry;
    ubyte size;
  };


name: sb_t
type: struct
value:
  struct sb_t
  {
    fdot_t_0 dots[2];
    fdot_t_0 acc_dots[2];
    fdot_t_0 rot_dots[2];
    float angle;
    float off_angle;
    float score;
  };


name: wiimote_state_t
type: struct
value:
  struct wiimote_state_t
  {
    unsigned __int16 btns;
    ir_t ir;
    vec3w_t accel;
    expansion_t exp;
  };


name: WIIUSE_EVENT_TYPE
type: enum
value:
  enum WIIUSE_EVENT_TYPE : __int32
  {
    WIIUSE_NONE = 0x0,
    WIIUSE_EVENT = 0x1,
    WIIUSE_STATUS = 0x2,
    WIIUSE_CONNECT = 0x3,
    WIIUSE_DISCONNECT = 0x4,
    WIIUSE_UNEXPECTED_DISCONNECT = 0x5,
    WIIUSE_READ_DATA = 0x6,
    WIIUSE_ACK = 0x7,
    WIIUSE_NUNCHUK_INSERTED = 0x8,
    WIIUSE_NUNCHUK_REMOVED = 0x9,
    WIIUSE_CLASSIC_CTRL_INSERTED = 0xA,
    WIIUSE_CLASSIC_CTRL_REMOVED = 0xB,
    WIIUSE_GUITAR_HERO_3_CTRL_INSERTED = 0xC,
    WIIUSE_GUITAR_HERO_3_CTRL_REMOVED = 0xD,
    WIIUSE_WII_BOARD_INSERTED = 0xE,
    WIIUSE_WII_BOARD_REMOVED = 0xF,
    WIIUSE_MOTION_PLUS_ACTIVATED = 0x10,
    WIIUSE_MOTION_PLUS_REMOVED = 0x11,
  };


name: $FAB7B4B64391C5EBCF7146E923A246CA
type: struct
value:
  struct __attribute__((aligned(4))) $FAB7B4B64391C5EBCF7146E923A246CA
  {
    unsigned int addr;
    uword size;
  };


name: $3CA83B73488CF2510F9BCC4B57A32AC8
type: struct
value:
  struct __attribute__((aligned(4))) $3CA83B73488CF2510F9BCC4B57A32AC8
  {
    unsigned int addr;
    ubyte size;
    ubyte data[16];
  };


name: $FACEDEF70FA9D62F975E4102AC241A1F
type: union
value:
  union $FACEDEF70FA9D62F975E4102AC241A1F
  {
    $FAB7B4B64391C5EBCF7146E923A246CA readdata;
    $3CA83B73488CF2510F9BCC4B57A32AC8 writedata;
    ubyte __data[32];
  };


name: op_t
type: struct
value:
  struct __attribute__((packed)) __attribute__((aligned(1))) op_t
  {
    ubyte cmd;
    $FACEDEF70FA9D62F975E4102AC241A1F _anon_0;
    void *buffer;
    int wait;
  };


name: wiimote_listen_t
type: struct
value:
  struct wiimote_listen_t
  {
    bd_addr bdaddr;
    bte_pcb *sock;
    wiimote_t *(*assign_cb)(bd_addr *);
    wiimote_t *wm;
  };


name: $E98AF214A0BCEE45A88BFA1470CA0E10
type: enum
value:
  enum $E98AF214A0BCEE45A88BFA1470CA0E10 : __int32
  {
    IR_STATE_DEAD = 0x0,
    IR_STATE_GOOD = 0x1,
    IR_STATE_SINGLE = 0x2,
    IR_STATE_LOST = 0x3,
  };


name: _wencstatus
type: struct
value:
  struct _wencstatus
  {
    s32 predictor;
    s16 step_index;
    s32 step;
    s32 prev_sample;
    s16 sample1;
    s16 sample2;
    s32 coeff1;
    s32 coeff2;
    s32 idelta;
  };


name: $44630EE4C0BF56C1D01B1C03B1F5CF6B
type: enum
value:
  enum $44630EE4C0BF56C1D01B1C03B1F5CF6B : __int32
  {
    WPAD_CHAN_ALL = 0xFFFFFFFF,
    WPAD_CHAN_0 = 0x0,
    WPAD_CHAN_1 = 0x1,
    WPAD_CHAN_2 = 0x2,
    WPAD_CHAN_3 = 0x3,
    WPAD_BALANCE_BOARD = 0x4,
    WPAD_MAX_WIIMOTES = 0x5,
  };


name: $5E133567DE956345E74DE1867F547A43
type: enum
value:
  enum $5E133567DE956345E74DE1867F547A43 : __int32
  {
    WPAD_EXP_NONE = 0x0,
    WPAD_EXP_NUNCHUK = 0x1,
    WPAD_EXP_CLASSIC = 0x2,
    WPAD_EXP_GUITARHERO3 = 0x3,
    WPAD_EXP_WIIBOARD = 0x4,
    WPAD_EXP_UNKNOWN = 0xFF,
  };


name: $B06E18B89BA5D52B0325F5D672684A87
type: enum
value:
  enum $B06E18B89BA5D52B0325F5D672684A87 : __int32
  {
    WPAD_FMT_BTNS = 0x0,
    WPAD_FMT_BTNS_ACC = 0x1,
    WPAD_FMT_BTNS_ACC_IR = 0x2,
  };


name: $087402A19386650B65122197B226D040
type: enum
value:
  enum $087402A19386650B65122197B226D040 : __int32
  {
    WPAD_STATE_DISABLED = 0x0,
    WPAD_STATE_ENABLING = 0x1,
    WPAD_STATE_ENABLED = 0x2,
  };


name: _wpad_data
type: struct
value:
  struct _wpad_data
  {
    s16 err;
    u32 data_present;
    u8 battery_level;
    u32 btns_h;
    u32 btns_l;
    u32 btns_d;
    u32 btns_u;
    ir_t ir;
    vec3w_t accel;
    orient_t orient;
    gforce_t gforce;
    expansion_t exp;
  };


name: _wpad_cb
type: struct
value:
  struct _wpad_cb
  {
    wiimote *wm;
    s32 data_fmt;
    s32 queue_head;
    s32 queue_tail;
    s32 queue_full;
    u32 queue_length;
    u32 dropped_events;
    s32 idle_time;
    s32 speaker_enabled;
    _wpad_thresh thresh;
    void *sound_data;
    u32 sound_len;
    u32 sound_off;
    syswd_t sound_alarm;
    WPADData lstate;
    WPADData *queue_ext;
    WPADData queue_int[16];
  };


# instructions

address: 299192
disasm: bl __ios_ioctlvformat_parse
mnemonic: bl
name: __ios_ioctlvformat_parse
type:
  s32(const unsigned __int8 *format, __va_list_tag *args, _ioctlvfmt_cbdata *cbdata, s32 *cnt_in, s32 *cnt_io, _ioctlv **argv, s32 hId)


