vcan_ioctl_cmd

Here is the definition:

typedef enum
  { VCAN_IOCTL_CAN=0,
    VCAN_IOCTL_SETNAME=1,
    VCAN_IOCTL_IDENTIFY=2,
    VCAN_IOCTL_VERSION=3
  } vcan_ioctl_cmd;

This is the data type for all ioctl-commands that can be performed by the driver. The ‘command’ parameter of the ioctl-function has to have a value according to vcan_ioctl_cmd. The driver-function is selected according to the value of that ‘command’ parameter.

VCAN_IOCTL_CAN

This constant specifies that a CAN-status function is to be performed. See also vcan_status_tag.

VCAN_IOCTL_SETNAME

This constant is used to call the set-name function of the driver. A name is assigned to the thread that calls this function. If the thread later crashed without closing the driver, that name can be used to get the appropriate file-handle to the driver back. The name is a string that is given to the ioctl-function as data-pointer.

VCAN_IOCTL_IDENTIFY

This constant is used to call the identify- function of the driver. The driver looks up it’s internal list of thread-names and assigns the file-handle to the objects that are or were used by the thread that was registered with that name. The name is a string that is given to the ioctl-function as data-pointer.

VCAN_IOCTL_VERSION

This constant is used to call the version- function of the driver. The major- and minor version numbers are returned in the data-field of the ioctl-function. This data-field is always a pointer, to the address ‘pointer’ and ‘pointer+1’ the driver’s major version number is written as a short-integer. The driver’s minor version number is written to ‘pointer+2’ and ‘pointer+3’ as a short-integer.