import init.${ro.hardware}.usb.rc
import init.${ro.hardware}.power.rc

on fs
    mount_all /vendor/etc/init/fstab.${ro.hardware}
    swapon_all /vendor/etc/init/fstab.${ro.hardware}

on post-fs
    # set RLIMIT_MEMLOCK to 64MB
    setrlimit 8 67108864 67108864

on init
    # For legacy support
    # See storage config details at http://source.android.com/tech/storage/
    # since /storage is mounted on post-fs in init.rc
    symlink /sdcard /storage/sdcard0

    # Initialize cpusets to boot-time values
    write /dev/cpuset/foreground/cpus 0-7
    write /dev/cpuset/background/cpus 0-7
    write /dev/cpuset/system-background/cpus 0-7
    write /dev/cpuset/top-app/cpus 0-7

on early-boot
    mount debugfs debugfs /sys/kernel/debug
    chmod 755 /sys/kernel/debug
    chmod 755 /sys/kernel/debug/sync
    chown graphics graphics /sys/kernel/debug/sync/sw_sync
    chmod 777 /sys/kernel/debug/sync/sw_sync
    chown graphics graphics /sys/kernel/debug/sync/info

on zygote-start
    mkdir /data/vendor/wifi 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi

on property:sys.boot_completed=1
    # update cpuset now that processors are up
    # Foreground should contain most cores (7 is reserved for top-app)
    write /dev/cpuset/foreground/cpus 0-6

    # top-app gets all cpus (including reserved #7)
    write /dev/cpuset/top-app/cpus 0-7

    #background contains a small subset (generally one little core)
    write /dev/cpuset/background/cpus 0

    # add system-background cpuset, a new cpuset for system services
    # that should not run on larger cores
    # system-background is for system tasks that should only run on
    # little cores, not on bigs to be used only by init
    write /dev/cpuset/system-background/cpus 0-3

service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
                       -Dnl80211 -g@android:wpa_wlan0
    interface android.hardware.wifi.supplicant@1.0::ISupplicant default
    interface android.hardware.wifi.supplicant@1.1::ISupplicant default
    socket wpa_wlan0 dgram 660 wifi wifi
    class main
    disabled
    oneshot
