open-src/xserver/xorg/sun-src/os/solaris/mdb/modules/Xserver_clients.c
author Alan Coopersmith <Alan.Coopersmith@Sun.COM>
Sat, 20 Feb 2010 16:30:16 -0800
changeset 908 ee1047befc15
parent 907 open-src/util/mdb-tools/src/modules/Xserver_clients.c@3c35d611cdaa
child 919 425233ae7236
permissions -rw-r--r--
6928167 Integrate X server mdb module into xorg-server build & packages
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     1
/*
905
d2b59d5a79ed 6926932 Removal of Xsun on SPARC [PSARC 2008/033]: X consolidation portion
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 851
diff changeset
     2
 * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
     3
 * Use is subject to license terms.
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     4
 *
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     5
 * Permission is hereby granted, free of charge, to any person obtaining a
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     6
 * copy of this software and associated documentation files (the
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     7
 * "Software"), to deal in the Software without restriction, including
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     8
 * without limitation the rights to use, copy, modify, merge, publish,
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     9
 * distribute, and/or sell copies of the Software, and to permit persons
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    10
 * to whom the Software is furnished to do so, provided that the above
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    11
 * copyright notice(s) and this permission notice appear in all copies of
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    12
 * the Software and that both the above copyright notice(s) and this
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    13
 * permission notice appear in supporting documentation.
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    14
 * 
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    15
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    16
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    17
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    18
 * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    19
 * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    20
 * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    21
 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    22
 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    23
 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    24
 *
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    25
 * Except as contained in this notice, the name of a copyright holder
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    26
 * shall not be used in advertising or otherwise to promote the sale, use
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    27
 * or other dealings in this Software without prior written authorization
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    28
 * of the copyright holder.
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    29
 */
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    30
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    31
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    32
#include <sys/mdb_modapi.h>
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    33
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    34
#include "xorg-server.h"
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    35
#include "dixstruct.h"
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    36
#include "misc.h"
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    37
#include "os/osdep.h"
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    38
#include "IA/interactive_srv.h"
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    39
#include "Xserver_mdb.h"
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    40
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    41
struct client_walk_data {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    42
    uintptr_t client_next;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    43
    uintptr_t clients_end;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    44
    ClientRec client_data;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    45
};
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    46
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    47
/* Copied from dix/privates.c in Xorg 1.6 */
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    48
struct _Private {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    49
    int state;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    50
    pointer value;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    51
};
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    52
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    53
/*
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    54
 * Initialize the client walker by either using the given starting address,
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    55
 * or reading the value of the server's "clients" pointer.  We also allocate
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    56
 * a  for storage, and save this using the walk_data pointer.
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    57
 */
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    58
_X_HIDDEN int
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    59
client_walk_init(mdb_walk_state_t *wsp)
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    60
{
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    61
    struct client_walk_data *cwda;
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    62
    short max_clients = MAXCLIENTS;
905
d2b59d5a79ed 6926932 Removal of Xsun on SPARC [PSARC 2008/033]: X consolidation portion
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 851
diff changeset
    63
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    64
# define CUR_MAX_CLIENTS "currentMaxClients"
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    65
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    66
    if (wsp->walk_addr == NULL) {
905
d2b59d5a79ed 6926932 Removal of Xsun on SPARC [PSARC 2008/033]: X consolidation portion
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 851
diff changeset
    67
       /* Xorg 1.6 - clients is the array itself */
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    68
       GElf_Sym clients_sym;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    69
       if (mdb_lookup_by_name("clients", &clients_sym) == -1) {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    70
	   mdb_warn("failed to lookup 'clients'");
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    71
	   return (WALK_ERR);
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    72
       }
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
    73
       wsp->walk_addr = clients_sym.st_value;
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    74
       if (mdb_readvar(&max_clients, CUR_MAX_CLIENTS) == -1) {
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    75
	   mdb_warn("failed to read '%s'", CUR_MAX_CLIENTS);
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    76
	   return (WALK_ERR);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    77
       } else {
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    78
	   mdb_printf("%s = %d\n", CUR_MAX_CLIENTS, max_clients);
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    79
       }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    80
    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    81
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    82
    wsp->walk_data = mdb_alloc(sizeof (struct client_walk_data), UM_SLEEP);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    83
    cwda = (struct client_walk_data *) wsp->walk_data;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    84
    cwda->clients_end = wsp->walk_addr + (max_clients * (sizeof(void *)));
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    85
    return (WALK_NEXT);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    86
}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    87
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    88
/*
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    89
 * At each step, read a client struct into our private storage, and then invoke
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    90
 * the callback function.  We terminate when we reach the end of the clients
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    91
 * array.
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    92
 */
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    93
_X_HIDDEN int
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    94
client_walk_step(mdb_walk_state_t *wsp)
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    95
{
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    96
	int status;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    97
	uintptr_t clientPtr;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    98
	struct client_walk_data *cwda =
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    99
	  (struct client_walk_data *) wsp->walk_data;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   100
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   101
	if (wsp->walk_addr == NULL)
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   102
		return (WALK_DONE);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   103
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   104
	do {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   105
	    if (mdb_vread(&clientPtr, sizeof (void *), wsp->walk_addr) == -1) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   106
		mdb_warn("failed to read client table entry at %p", wsp->walk_addr);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   107
		return (WALK_DONE);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   108
	    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   109
	    if (clientPtr == NULL) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   110
#ifdef DEBUG
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   111
		mdb_printf("NULL entry at %p", wsp->walk_addr);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   112
#endif
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   113
		wsp->walk_addr += sizeof(void *);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   114
	    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   115
	    if (wsp->walk_addr >= cwda->clients_end) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   116
#ifdef DEBUG
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   117
		mdb_printf("End of client list at %p", cwda->clients_end);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   118
#endif
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   119
		return (WALK_DONE);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   120
	    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   121
	} while (clientPtr == NULL);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   122
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   123
	if (clientPtr == NULL) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   124
	    return (WALK_DONE);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   125
	}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   126
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   127
	if (mdb_vread(&(cwda->client_data), sizeof (ClientRec), (uintptr_t) clientPtr) == -1) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   128
		mdb_warn("failed to read client data at %p", wsp->walk_addr);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   129
		return (WALK_DONE);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   130
	}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   131
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   132
	status = wsp->walk_callback(wsp->walk_addr, &(cwda->client_data),
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   133
	  wsp->walk_cbdata);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   134
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   135
	wsp->walk_addr = wsp->walk_addr + sizeof(void *);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   136
	return (status);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   137
}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   138
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   139
/*
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   140
 * The walker's fini function is invoked at the end of each walk.  Since we
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   141
 * dynamically allocated a proc_t in client_walk_init, we must free it now.
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   142
 */
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
   143
_X_HIDDEN void
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   144
client_walk_fini(mdb_walk_state_t *wsp)
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   145
{
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   146
	mdb_free(wsp->walk_data, sizeof (ClientRec));
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   147
}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   148
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
   149
_X_HIDDEN int
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   150
client_pids(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   151
{
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   152
    uintptr_t clientP;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   153
    ClientRec client_data;
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
   154
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   155
	if (argc != 0)
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   156
		return (DCMD_USAGE);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   157
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   158
	/*
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   159
	 * If no client address was specified on the command line, we can
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   160
	 * print out all clients by invoking the walker, using this
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   161
	 * dcmd itself as the callback.
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   162
	 */
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   163
	if (!(flags & DCMD_ADDRSPEC)) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   164
		if (mdb_walk_dcmd("client_walk", "client_pids",
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   165
		    argc, argv) == -1) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   166
			mdb_warn("failed to walk 'client_walk'");
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   167
			return (DCMD_ERR);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   168
		}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   169
		return (DCMD_OK);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   170
	}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   171
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   172
	/*
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   173
	 * If this is the first invocation of the command, print a nice
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   174
	 * header line for the output that will follow.
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   175
	 */
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   176
	if (DCMD_HDRSPEC(flags))
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   177
		mdb_printf("CLIENT SEQUENCE #  FD  PIDS\n");
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   178
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   179
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   180
	if (mdb_vread(&clientP, sizeof (clientP), addr) == sizeof (clientP)) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   181
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   182
	    if (mdb_vread(&client_data, sizeof (client_data), clientP) == sizeof (client_data)) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   183
		mdb_printf("%5d  %10d", client_data.index, client_data.sequence);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   184
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   185
		if (client_data.osPrivate != NULL) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   186
		    OsCommRec oscomm;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   187
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   188
		    if (mdb_vread(&oscomm, sizeof (oscomm),
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   189
		      (uintptr_t)client_data.osPrivate) == sizeof (oscomm)) {
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   190
			ClientProcessPtr cpp = NULL;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   191
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   192
			mdb_printf("%4d ", oscomm.fd);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   193
905
d2b59d5a79ed 6926932 Removal of Xsun on SPARC [PSARC 2008/033]: X consolidation portion
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 851
diff changeset
   194
			/* Xorg 1.6 or later */
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   195
			{
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   196
			    int IAPrivKeyIndex;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   197
			    GElf_Sym privkey_sym;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   198
			    if (mdb_lookup_by_obj("libia.so", "IAPrivKeyIndex",
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   199
						   &privkey_sym) == -1) {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   200
				mdb_warn("failed to lookup 'libia.so`IAPrivKeyIndex'");
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   201
			    } else {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   202
				if (mdb_vread(&IAPrivKeyIndex, sizeof(int),
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   203
					      privkey_sym.st_value) != sizeof(int)) {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   204
				    mdb_warn("failed to read 'IAPrivKeyIndex'");
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   205
				} else {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   206
				    void *dpaddr = &(client_data.devPrivates[IAPrivKeyIndex]);
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   207
				    struct _Private devPriv;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   208
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   209
				    if (mdb_vread(&devPriv, sizeof (devPriv),
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   210
						  (uintptr_t) dpaddr) != sizeof (devPriv)) {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   211
					mdb_warn("failed to read client_data.devPrivates[IAPrivKeyIndex]");
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   212
				    } else {
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
   213
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   214
					void *cppaddr = devPriv.value;
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
   215
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   216
					if (mdb_vread(&cpp, sizeof (cpp), (uintptr_t) cppaddr) != sizeof (cpp)) {
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   217
					    cpp = NULL;
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   218
					    mdb_warn("failed to read client_data.devPrivates[IAPrivKeyIndex].value");
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   219
					}
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   220
				    }
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 492
diff changeset
   221
				}
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   222
			    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   223
			}
908
ee1047befc15 6928167 Integrate X server mdb module into xorg-server build & packages
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
   224
492
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   225
			if (cpp != NULL) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   226
			    ClientProcessRec cpr;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   227
			    ConnectionPidRec pid;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   228
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   229
			    if (mdb_vread(&cpr, sizeof (cpr),
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   230
					  (uintptr_t)cpp) == sizeof (cpr)) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   231
				int i;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   232
				uintptr_t pidP = (uintptr_t) cpr.pids;
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   233
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   234
				for (i = 0; i < cpr.count; i++, pidP += sizeof(pid)) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   235
				    if (mdb_vread(&pid, sizeof (pid), pidP) == sizeof (pid)) {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   236
					mdb_printf("%d ", pid);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   237
				    } else {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   238
					mdb_warn("failed to read pid #%d from %p", i, pidP);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   239
				    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   240
				}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   241
				mdb_printf("\n");
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   242
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   243
			    } else {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   244
				mdb_warn("failed to read struct ClientProcessRec at %p", client_data.osPrivate);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   245
			    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   246
			} else {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   247
			    mdb_printf(" ??? - NULL ClientProcessPtr\n");
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   248
			}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   249
		    } else {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   250
			mdb_warn("failed to read struct OsCommRec at %p", client_data.osPrivate);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   251
		    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   252
		} else {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   253
		    mdb_printf(" ??? - NULL ClientPtr->osPrivate\n");
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   254
		}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   255
	    } else {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   256
		mdb_warn("failed to read ClientRec at %p", clientP);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   257
	    }
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   258
	} else {
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   259
	    mdb_warn("failed to read ClientPtr at %p", addr);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   260
	}
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   261
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   262
	return (DCMD_OK);
abfa40ff15ef 6735204 Port Xsun mdb dcmds/scripts to Xorg and move to open-src tree
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   263
}