components/openssh/dtrace_sftp/sftp64.d
author Tomas Kuthan <tomas.kuthan@oracle.com>
Wed, 15 Jun 2016 02:07:50 -0700
changeset 6189 a95f9f39fc53
parent 3820 1063fcafa7a5
permissions -rw-r--r--
23577308 OpenSSH Makefile: -DWITHOUT_ED25519 left behind
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3820
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     1
/*
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     2
 * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     3
 */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     4
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     5
#pragma D depends_on library net.d
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     6
#pragma D depends_on library io.d
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     7
#pragma D depends_on module lofs
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     8
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
     9
typedef struct sftpinfo {
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    10
	string sfi_user;		/* user name */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    11
	string sfi_operation;		/* SFTP Operation */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    12
	ssize_t sfi_nbytes;		/* bytes transferred, if any */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    13
	string sfi_pathname;		/* pathname of transfer */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    14
	string sfi_fsresource;		/* Dataset(ZFS) or resource name */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    15
} sftpinfo_t;
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    16
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    17
/*
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    18
 * This structure must match the definition of same in sftp_provider_impl.h.
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    19
 */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    20
typedef struct sftpproto {
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    21
	int64_t sftp_nbytes;		/* bytes written or read */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    22
	uint64_t sftp_user;		/* user name */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    23
	uint64_t sftp_operation;	/* SFTP operation */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    24
	uint64_t sftp_raddr;		/* remote address */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    25
	uint64_t sftp_pathname;		/* path with file name */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    26
	int32_t sftp_fd;		/* fd for transfer, if any */
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    27
} sftpproto_t;
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    28
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    29
#pragma D binding "1.6.1" translator
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    30
translator conninfo_t <sftpproto_t *s> {
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    31
	ci_protocol = "tcp";
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    32
	ci_remote = copyinstr((uintptr_t)
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    33
	    *(uint64_t *)copyin((uintptr_t)&s->sftp_raddr, sizeof (uint64_t)));
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    34
	ci_local = "<unknown>";
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    35
};
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    36
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    37
#pragma D binding "1.6.1" translator
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    38
translator sftpinfo_t <sftpproto_t *s> {
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    39
	sfi_user = copyinstr((uintptr_t)
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    40
	    *(uint64_t *)copyin((uintptr_t)&s->sftp_user, sizeof (uint64_t)));
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    41
	sfi_operation = copyinstr((uintptr_t)
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    42
	    *(uint64_t *)copyin((uintptr_t)&s->sftp_operation,
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    43
	    sizeof (uint64_t)));
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    44
	sfi_nbytes =
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    45
	    *(uint64_t *)copyin((uintptr_t)&s->sftp_nbytes, sizeof (uint64_t));
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    46
	sfi_fsresource = stringof(fds[*(int32_t *)copyin((uintptr_t)&s->sftp_fd,
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    47
	    sizeof (int32_t))].fi_fs) == "lofs" ? stringof(((struct loinfo *)
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    48
	    curthread->t_procp->p_user.u_finfo.fi_list[*(int32_t *)copyin(
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    49
	    (uintptr_t)&s->sftp_fd, sizeof (int32_t))].uf_file->f_vnode->
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    50
	    v_vfsp->vfs_data)->li_realvfs->vfs_resource->rs_string) :
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    51
	    stringof(curthread->t_procp->p_user.u_finfo.fi_list[
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    52
	    *(int32_t *)copyin((uintptr_t)&s->sftp_fd, sizeof (int32_t))].
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    53
	    uf_file->f_vnode->v_vfsp->vfs_resource->rs_string);
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    54
	sfi_pathname = copyinstr((uintptr_t)*(uint64_t *)copyin(
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    55
	    (uintptr_t)&s->sftp_pathname, sizeof (uint64_t)));
1063fcafa7a5 20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff changeset
    56
};