1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
psp_extern! {
    #![name = "sceWlanDrv"]
    #![flags = 0x4001]
    #![version = (0x00, 0x00)]

    #[psp(0x93440B11)]
    /// Determine if the wlan device is currently powered on
    ///
    /// # Return Value
    ///
    /// 0 if off, 1 if on
    pub fn sceWlanDevIsPowerOn() -> i32;

    #[psp(0xD7763699)]
    /// Determine the state of the Wlan power switch
    ///
    /// # Return Value
    ///
    /// 0 if off, 1 if on
    pub fn sceWlanGetSwitchState() -> i32;

    #[psp(0x0C622081)]
    /// Get the Ethernet Address of the wlan controller
    ///
    /// # Parameters
    ///
    /// - `ether_addr`: pointer to an output buffer of u8 (NOTE: it only writes
    ///   to 6 bytes, but requests 8 so pass it 8 bytes just in case)
    ///
    /// # Return Value
    ///
    /// 0 on success, < 0 on error
    pub fn sceWlanGetEtherAddr(ether_addr: *mut u8) -> i32;
}

psp_extern! {
    #![name = "sceWlanDrv_lib"]
    #![flags = 0x4001]
    #![version = (0x00, 0x00)]

    #[psp(0x482CAE9A)]
    /// Attach to the wlan device
    ///
    /// # Return Value
    ///
    /// 0 on success, < 0 on error.
    pub fn sceWlanDevAttach() -> i32;

    #[psp(0xC9A8CAB7)]
    /// Detach from the wlan device
    ///
    /// # Return Value
    ///
    /// 0 on success, < 0 on error
    pub fn sceWlanDevDetach() -> i32;
}