dadkio_rwcmd
struct dadkio_rwcmd dadkio_rwcmd;
bzero((caddr_t)&dadkio_rwcmd, sizeof (struct dadkio_rwcmd));
dadkio_rwcmd.cmd = (dir == DIR_READ) ? DADKIO_RWCMD_READ :
dadkio_rwcmd.blkaddr = blkno;
dadkio_rwcmd.buflen = tmpsec;
dadkio_rwcmd.flags = flags;
dadkio_rwcmd.bufaddr = bufaddr;
if (ioctl(fd, DIOCTL_RWCMD, &dadkio_rwcmd) == -1) {
switch (dadkio_rwcmd.status.status) {
if (dadkio_rwcmd.status.status) {
err_print(dadkrawioerrs[dadkio_rwcmd.status.status],
dadkio_rwcmd.status.failed_blk);
#define RWCMDP(pktp) ((struct dadkio_rwcmd *)((pktp)->cp_bp->b_back))
static void dadk_dk(struct dadk *dadkp, struct dadkio_rwcmd *scmdp,
struct dadkio_rwcmd *rwcmdp;
rwcmdp = (struct dadkio_rwcmd *)pktp->cp_passthru; /* ioctl packet */
static void dadk_recorderr(struct cmpkt *pktp, struct dadkio_rwcmd *rwcmdp);
dadk_recorderr(struct cmpkt *pktp, struct dadkio_rwcmd *rwcmdp)
struct dadkio_rwcmd *rwcmdp = (struct dadkio_rwcmd *)cmdp;
dadk_dk((struct dadk *)bp->av_forw, (struct dadkio_rwcmd *)bp->b_back,
dadk_dk(struct dadk *dadkp, struct dadkio_rwcmd *rwcmdp, struct buf *bp)
struct dadkio_rwcmd *rwcmdp;
rwcmdp = (struct dadkio_rwcmd *)(intptr_t)arg;
kmem_free(rwcmdp, sizeof (struct dadkio_rwcmd));
rwcmd_copyin(struct dadkio_rwcmd *rwcmdp, caddr_t inaddr, int flag)
sizeof (struct dadkio_rwcmd), flag)) {
rwcmd_copyout(struct dadkio_rwcmd *rwcmdp, caddr_t outaddr, int flag)
sizeof (struct dadkio_rwcmd), flag))
struct dadkio_rwcmd *rwcmdp;
rwcmdp = kmem_alloc(sizeof (struct dadkio_rwcmd), KM_SLEEP);
struct dadkio_rwcmd rwcmd;
sizeof (struct dadkio_rwcmd), flag)) {
sizeof (struct dadkio_rwcmd), flag)) {
struct dadkio_rwcmd rwcmd;
sizeof (struct dadkio_rwcmd), flag)) {
{0, DIOCTL_RWCMD, sizeof (struct dadkio_rwcmd), NULL},