The TOFFEE Project
The TOFFEE Project

Videos :: Linux ioctl() API interface

Written by: Kiran Kankipati - Published: 11-Oct-2017

Download/watch this video - 251 Linux ioctl( ) API interface - Introduction - Episode 1
[+] watch in dailymotion

net-tools (ioctl APIs - user-space side):
net-tools -
net-tools Project -
net-tools Linux Foundation Wiki -
net-tools Git source -
ifconfig.c -

Download/watch this video - 252 Linux ioctl( ) API interface - Kernel Examples - Episode 2
[+] watch in dailymotion

Carrier grade -
Carrier Grade Linux -
High Availability (HA) -
Redundancy(engineering) -

Kernel Source (ioctl APIs - kernel-space side):
/net/core/dev_ioctl.c -
/net/core/dev.c -
The Linux Channel video series:
Linux Kernel net_device data-structure -
Linux Kernel Networking Sub-system -
Linux Kernel /proc Interface -
Linux Kernel sk_buff data-structure - Episode-1 to Episode-10 -
Linux Kernel sk_buff data-structure - Episode-11 to Episode-18 -

Download/watch this video - 253 Linux ioctl API interface - Sample Code - Kernel Module - User App - Episode 3
[+] watch in dailymotion

Download this episode my entire kernel module sample code, make file, clean script HERE.

Device Drivers, Part 9: I/O Control in Linux - by Anil Kumar Pugalia <email_at_sarika-pugs_dot_com> -
The Linux Kernel Module Programming Guide - Chapter 7. Talking To Device Files -
(NOTE: Sample example source-code mentioned here will not work as it is in newer kernels. It needs porting.)

Download/watch this video - 254 Linux ioctl() API interface - copy_from_user() and copy_to_user() - Episode 4
[+] watch in dailymotion

/include/linux/uaccess.h - copy_from_user(), copy_to_user() -
/arch/x86/include/asm/uaccess_32.h - raw_copy_from_user(), raw_copy_to_user() [x86 32-bit]
/arch/x86/include/asm/uaccess_64.h - raw_copy_from_user(), raw_copy_to_user() [x86 64-bit]
/arch/arm/include/asm/uaccess.h - raw_copy_from_user(), raw_copy_to_user() [arm]
/arch/arm64/include/asm/uaccess.h- raw_copy_from_user(), raw_copy_to_user() [arm 64-bit]

As discussed in the video (Episode 4), we cannot use memcpy() to communicate between user-space applications (processes). Since each process has its own virtual memory space. Instead we need to use standard Linux predefined IPC (for example: sockets, message queues, pipes, signals and so on), which in turn built via APIs such as: copy_from_user() and copy_to_user().
copy_from_user() and copy_to_user()
Notice: copy_from_user() and copy_to_user() looks similar to memcpy() in terms of their function arguments.
copy_from_user() and copy_to_user() vs memcpy()
Here is the Kernel source API flow of the copy_from_user() and copy_to_user() APIs. As discussed in the video, eventually it transitions from architecture (or platform) independent code to the platform (or hardware/CPU) dependent code:
copy_from_user() and copy_to_user() Kernel Source API path

Suggested Topics:

Linux Kernel programming
Linux Kernel TCP Congestion Control Algorithms
Linux Kernel struct socket and struct sock data-structure
Linux Kernel /proc Interface
Linux ioctl() API interface
Linux Kernel Network Programming
Linux Kernel Programming
Linux Kernel sk_buff data-structure - Episode-11 to Episode-18
Linux Kernel sk_buff data-structure - Episode-1 to Episode-10
Linux Kernel net_device data-structure
Linux Kernel dst_entry data-structure
Linux Kernel struct ethhdr data-structure
Linux Kernel struct iphdr data-structure
Linux Kernel struct tcphdr data-structure
Linux Kernel struct udphdr data-structure
Linux Kernel Networking Sub-system
Linux Kernel Compilation
Linux Kernel Architecture - Generic


Recommended Topics:

SD-WAN Last Mile Connectivity challenge:
Software-Defined Wide Area Networking (SD-WAN) is a new innovative way to provide optimal application performance by redefining branch office networking. Unlike traditional expensive private WAN connection technologies such as MPLS, etc., SD-WAN delivers increased network performance and cost reduction. SD-WAN solution decouple network software services from the underlying hardware via software abstraction.
TOFFEE-DataCenter WAN Optimization deployment in SD-WAN Applications

SD-WAN Infrastructure using TOFFEE-DataCenter as one of its building components:
TOFFEE-DataCenter WAN Optimization within SD-WAN Infrastructure

MySQL Database Network Data - WAN Acceleration:

Skype VOIP Data - WAN Acceleration:
  > reduce/eliminate Jitter
  > no more call drops
  > accelerate any VOIP (including long-distance Skype calls)

Hardware Compression and Decompression Accelerator Cards:
TOFFEE Architecture with Compression and Decompression Accelerator Card

Learn Linux Systems Software and Kernel Programming:
Linux, Kernel, Networking and Systems-Software online classes

The TOFFEE Project - v8.15 :: Updated: 21-Apr-2018 :: © 2018 :: Author: Kiran Kankipati
Your IP: :: Browser: CCBot/2.0 (