ent_fastwrt Ethernet Device Handler Entry Point

Purpose

Note: This function is supported in AIX® 5.1 and earlier only.

Provides a faster means for a kernel user to transmit data from the Ethernet device.

Syntax

#include <sys/device.h>
#include <sys/comio.h>
#include <sys/entuser.h>
#include <sys/mbuf.h>

int ent_fastwrt(devno, m)
int  devno;
struct mbuf * m;

Description

By using the ent_fastwrt entry point, a kernel-mode user can transmit data more quickly than through the normal write system call. The address of the ent_fastwrt entry point, along with the devno parameter, is given to a kernel-mode caller by way of the CIO_GET_FASTWRT entioctl operation.

The ent_fastwrt entry point works with an Ethernet High-Performance LAN adapter that has been correctly configured for use on a qualified network. Consult the adapter specifications for more information on configuring the network adapter and network qualifications.

Parameters

Item Description
devno Specifies major and minor device numbers.
m Points to an mbuf structure containing the caller's data.

Execution Environment

The ent_fastwrt entry point can be called from the kernel process environment or the interrupt environment. If the ent_fastwrt function is called from the interrupt environment it is the responsibility of the caller to ensure that the interrupt level is ENT_OFF_LEVEL, as defined in the /usr/include/sys/entuser.h file, or a less-favored priority.

The ent_fastwrt entry point does not support a multiple-packet write. The m_nextpkt field in the mbuf structure is ignored by the device driver.

The ent_fastwrt entry point does not support a write extension. The mbufs are freed when the transmit is complete, and no transmit acknowledgement is sent to the caller. If these defaults are not appropriate, use the normal entwrite entry point.

The entwrite entry point assumes a trusted caller. The parameter checking done in the normal entwrite entry point is not done in the ent_fastwrt entry point. The caller should ensure such things as a valid devno parameter and a valid mbuf length.

Return Values

Item Description
ENODEV Indicates that a minor number is not valid.
EAGAIN Indicates that the transmit queue is full.