adding s2w from maxwen's hellboy kernel

didn't finish, stopped at line 1756 of maxwen's