1*fcf3ce44SJohn Forte /* 2*fcf3ce44SJohn Forte * CDDL HEADER START 3*fcf3ce44SJohn Forte * 4*fcf3ce44SJohn Forte * The contents of this file are subject to the terms of the 5*fcf3ce44SJohn Forte * Common Development and Distribution License (the "License"). 6*fcf3ce44SJohn Forte * You may not use this file except in compliance with the License. 7*fcf3ce44SJohn Forte * 8*fcf3ce44SJohn Forte * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*fcf3ce44SJohn Forte * or http://www.opensolaris.org/os/licensing. 10*fcf3ce44SJohn Forte * See the License for the specific language governing permissions 11*fcf3ce44SJohn Forte * and limitations under the License. 12*fcf3ce44SJohn Forte * 13*fcf3ce44SJohn Forte * When distributing Covered Code, include this CDDL HEADER in each 14*fcf3ce44SJohn Forte * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*fcf3ce44SJohn Forte * If applicable, add the following below this CDDL HEADER, with the 16*fcf3ce44SJohn Forte * fields enclosed by brackets "[]" replaced with your own identifying 17*fcf3ce44SJohn Forte * information: Portions Copyright [yyyy] [name of copyright owner] 18*fcf3ce44SJohn Forte * 19*fcf3ce44SJohn Forte * CDDL HEADER END 20*fcf3ce44SJohn Forte */ 21*fcf3ce44SJohn Forte /* 22*fcf3ce44SJohn Forte * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*fcf3ce44SJohn Forte * Use is subject to license terms. 24*fcf3ce44SJohn Forte */ 25*fcf3ce44SJohn Forte 26*fcf3ce44SJohn Forte /* 27*fcf3ce44SJohn Forte * The sole purpose of this file is to document our violations of the DDI 28*fcf3ce44SJohn Forte * in Solaris and to get ddict to run on the data services stack. 29*fcf3ce44SJohn Forte * Definitions and declarations contained in this file are never compiled 30*fcf3ce44SJohn Forte * into the code. It is only included if we are running ddict on our src. 31*fcf3ce44SJohn Forte * 32*fcf3ce44SJohn Forte * IMPORTANT NOTE: 33*fcf3ce44SJohn Forte * Many of the declarations are not correct. It does not matter. 34*fcf3ce44SJohn Forte * Structure declarations only define the fields we require. 35*fcf3ce44SJohn Forte * Structures which we use in an opaque manner are defined as void * 36*fcf3ce44SJohn Forte */ 37*fcf3ce44SJohn Forte 38*fcf3ce44SJohn Forte #ifndef _SYS_CONTRACT_H 39*fcf3ce44SJohn Forte #define _SYS_CONTRACT_H 40*fcf3ce44SJohn Forte 41*fcf3ce44SJohn Forte #ifdef __cplusplus 42*fcf3ce44SJohn Forte extern "C" { 43*fcf3ce44SJohn Forte #endif 44*fcf3ce44SJohn Forte 45*fcf3ce44SJohn Forte /* 46*fcf3ce44SJohn Forte * Define our interfaces for nsctl because ddict is stupid 47*fcf3ce44SJohn Forte * about intermodule dependencies 48*fcf3ce44SJohn Forte */ 49*fcf3ce44SJohn Forte #include <sys/nsctl/nsctl_inter.h> 50*fcf3ce44SJohn Forte 51*fcf3ce44SJohn Forte /* 52*fcf3ce44SJohn Forte * Define our ncall interfaces 53*fcf3ce44SJohn Forte */ 54*fcf3ce44SJohn Forte #include <sys/nsctl/ncall_inter.h> 55*fcf3ce44SJohn Forte 56*fcf3ce44SJohn Forte /* 57*fcf3ce44SJohn Forte * The STRUCT_DECL definitions in the ddict headers are fouled up 58*fcf3ce44SJohn Forte * we include our own model.h here to redefine it to avoid errors. 59*fcf3ce44SJohn Forte */ 60*fcf3ce44SJohn Forte #if !defined(_SunOS_5_6) 61*fcf3ce44SJohn Forte #include <sys/nsctl/model.h> 62*fcf3ce44SJohn Forte #endif 63*fcf3ce44SJohn Forte 64*fcf3ce44SJohn Forte /* 65*fcf3ce44SJohn Forte * General violations 66*fcf3ce44SJohn Forte * Everybody violates these 67*fcf3ce44SJohn Forte * Why are they called ddi if it is not part of it? 68*fcf3ce44SJohn Forte */ 69*fcf3ce44SJohn Forte 70*fcf3ce44SJohn Forte #define DDI_PROP_NOTPROM 0 71*fcf3ce44SJohn Forte 72*fcf3ce44SJohn Forte int ddi_rele_driver(void) { } 73*fcf3ce44SJohn Forte int ddi_hold_installed_driver(void) { } 74*fcf3ce44SJohn Forte 75*fcf3ce44SJohn Forte /* 76*fcf3ce44SJohn Forte * SV module violations 77*fcf3ce44SJohn Forte */ 78*fcf3ce44SJohn Forte void *curthread; 79*fcf3ce44SJohn Forte int devcnt; 80*fcf3ce44SJohn Forte 81*fcf3ce44SJohn Forte /* 82*fcf3ce44SJohn Forte * The following from vnode.h 83*fcf3ce44SJohn Forte */ 84*fcf3ce44SJohn Forte typedef struct vode { 85*fcf3ce44SJohn Forte int v_lock; /* SDBC uses this too */ 86*fcf3ce44SJohn Forte int v_type; /* nskern too */ 87*fcf3ce44SJohn Forte int v_rdev; /* nskern too */ 88*fcf3ce44SJohn Forte } vnode_t; 89*fcf3ce44SJohn Forte 90*fcf3ce44SJohn Forte #define FOLLOW 0 91*fcf3ce44SJohn Forte #define NULLVPP NULL 92*fcf3ce44SJohn Forte #define AT_RDEV 0 93*fcf3ce44SJohn Forte #define VOP_GETATTR(vp, vap, f, cr) ((void)0) 94*fcf3ce44SJohn Forte #define VN_RELE(vp) ((void)0) 95*fcf3ce44SJohn Forte 96*fcf3ce44SJohn Forte /* 97*fcf3ce44SJohn Forte * The fields we use from vattr_t 98*fcf3ce44SJohn Forte */ 99*fcf3ce44SJohn Forte typedef struct vattr { 100*fcf3ce44SJohn Forte uint_t va_mask; 101*fcf3ce44SJohn Forte dev_t va_rdev; 102*fcf3ce44SJohn Forte int va_size; /* nskern */ 103*fcf3ce44SJohn Forte } vattr_t; 104*fcf3ce44SJohn Forte 105*fcf3ce44SJohn Forte int lookupname(void, void, void, void, void) { } 106*fcf3ce44SJohn Forte 107*fcf3ce44SJohn Forte /* 108*fcf3ce44SJohn Forte * End of SV module violations 109*fcf3ce44SJohn Forte */ 110*fcf3ce44SJohn Forte 111*fcf3ce44SJohn Forte /* 112*fcf3ce44SJohn Forte * DSW/II module violations 113*fcf3ce44SJohn Forte */ 114*fcf3ce44SJohn Forte 115*fcf3ce44SJohn Forte /* 116*fcf3ce44SJohn Forte * This is really bogus that ddict does not understand sys/inttypes.h 117*fcf3ce44SJohn Forte */ 118*fcf3ce44SJohn Forte #define INT32_MIN 0 119*fcf3ce44SJohn Forte #define INT32_MAX 0 120*fcf3ce44SJohn Forte #define INT64_MAX 0 121*fcf3ce44SJohn Forte 122*fcf3ce44SJohn Forte /* 123*fcf3ce44SJohn Forte * End of DSW/II module violations 124*fcf3ce44SJohn Forte */ 125*fcf3ce44SJohn Forte 126*fcf3ce44SJohn Forte /* 127*fcf3ce44SJohn Forte * UNISTAT module violations 128*fcf3ce44SJohn Forte */ 129*fcf3ce44SJohn Forte 130*fcf3ce44SJohn Forte void mod_miscops; 131*fcf3ce44SJohn Forte typedef enum { B_FALSE, B_TRUE } boolean_t; 132*fcf3ce44SJohn Forte 133*fcf3ce44SJohn Forte /* 134*fcf3ce44SJohn Forte * End of UNISTAT module violations 135*fcf3ce44SJohn Forte */ 136*fcf3ce44SJohn Forte 137*fcf3ce44SJohn Forte /* 138*fcf3ce44SJohn Forte * NSCTL module violations 139*fcf3ce44SJohn Forte */ 140*fcf3ce44SJohn Forte #define ERESTART 0 141*fcf3ce44SJohn Forte #define EUSERS 0 142*fcf3ce44SJohn Forte #define ENAMETOOLONG 0 143*fcf3ce44SJohn Forte #define ENOSYS 0 144*fcf3ce44SJohn Forte #define FOPEN 0 145*fcf3ce44SJohn Forte int ddi_name_to_major() { } 146*fcf3ce44SJohn Forte /* 147*fcf3ce44SJohn Forte * End of NSCTL module violations 148*fcf3ce44SJohn Forte */ 149*fcf3ce44SJohn Forte 150*fcf3ce44SJohn Forte /* 151*fcf3ce44SJohn Forte * NSKERN module violations 152*fcf3ce44SJohn Forte */ 153*fcf3ce44SJohn Forte #define UL_GETFSIZE 0 154*fcf3ce44SJohn Forte #define USHRT_MAX 0 155*fcf3ce44SJohn Forte 156*fcf3ce44SJohn Forte typedef u_longlong_t rlim64_t; 157*fcf3ce44SJohn Forte int ulimit() { } 158*fcf3ce44SJohn Forte int maxphys; 159*fcf3ce44SJohn Forte 160*fcf3ce44SJohn Forte #define AT_SIZE 0 161*fcf3ce44SJohn Forte #define VBLK 0 162*fcf3ce44SJohn Forte #define VCHR 0 163*fcf3ce44SJohn Forte #define VREG 0 164*fcf3ce44SJohn Forte #define VLNK 0 165*fcf3ce44SJohn Forte 166*fcf3ce44SJohn Forte #define VOP_CLOSE(vp, f, c, o, cr) ((void)0) 167*fcf3ce44SJohn Forte #define VOP_RWLOCK(vp, w) ((void)0) 168*fcf3ce44SJohn Forte #define VOP_RWUNLOCK(vp, w) ((void)0) 169*fcf3ce44SJohn Forte #define VOP_READ(vp, uiop, iof, cr) ((void)0) 170*fcf3ce44SJohn Forte #define VOP_WRITE(vp, uiop, iof, cr) ((void)0) 171*fcf3ce44SJohn Forte 172*fcf3ce44SJohn Forte int vn_open(char *pnamep, void seg, int filemode, int createmode, 173*fcf3ce44SJohn Forte struct vnode **vpp, void crwhy, mode_t umask) { } 174*fcf3ce44SJohn Forte 175*fcf3ce44SJohn Forte /* 176*fcf3ce44SJohn Forte * End of NSKERN module violations 177*fcf3ce44SJohn Forte */ 178*fcf3ce44SJohn Forte 179*fcf3ce44SJohn Forte /* 180*fcf3ce44SJohn Forte * NVRAM module violations 181*fcf3ce44SJohn Forte */ 182*fcf3ce44SJohn Forte #define MMU_PAGESIZE 0 183*fcf3ce44SJohn Forte 184*fcf3ce44SJohn Forte #ifndef MAXNAMELEN 185*fcf3ce44SJohn Forte #define MAXNAMELEN 1 186*fcf3ce44SJohn Forte #endif 187*fcf3ce44SJohn Forte 188*fcf3ce44SJohn Forte #define DEVMAP_DEFAULTS 0 189*fcf3ce44SJohn Forte #define PFN_INVALID -1 190*fcf3ce44SJohn Forte 191*fcf3ce44SJohn Forte char hw_serial[1]; 192*fcf3ce44SJohn Forte int mmu_ptob(void arg) { } 193*fcf3ce44SJohn Forte int roundup(void arg) { } 194*fcf3ce44SJohn Forte 195*fcf3ce44SJohn Forte /* 196*fcf3ce44SJohn Forte * End of NVRAM module violations 197*fcf3ce44SJohn Forte */ 198*fcf3ce44SJohn Forte 199*fcf3ce44SJohn Forte /* 200*fcf3ce44SJohn Forte * RDCSVR (SNDR) module 201*fcf3ce44SJohn Forte * Contract PSARC 2001/699 202*fcf3ce44SJohn Forte */ 203*fcf3ce44SJohn Forte #define DUP_DONE 0 204*fcf3ce44SJohn Forte #define DUP_ERROR 0 205*fcf3ce44SJohn Forte #define DUP_INPROGRESS 0 206*fcf3ce44SJohn Forte #define DUP_NEW 0 207*fcf3ce44SJohn Forte #define DUP_DROP 0 208*fcf3ce44SJohn Forte 209*fcf3ce44SJohn Forte #define RPC_MAXDATASIZE 0 210*fcf3ce44SJohn Forte 211*fcf3ce44SJohn Forte 212*fcf3ce44SJohn Forte typedef void * file_t; /* opaque */ 213*fcf3ce44SJohn Forte typedef void SVCXPRT; /* opaque */ 214*fcf3ce44SJohn Forte typedef void SVCMASTERXPRT; /* opaque */ 215*fcf3ce44SJohn Forte typedef void xdrproc_t; /* opaque */ 216*fcf3ce44SJohn Forte typedef int enum_t; 217*fcf3ce44SJohn Forte 218*fcf3ce44SJohn Forte typedef struct svc_req { /* required fields */ 219*fcf3ce44SJohn Forte int rq_vers; 220*fcf3ce44SJohn Forte int rq_proc; 221*fcf3ce44SJohn Forte } svc_req_t; 222*fcf3ce44SJohn Forte 223*fcf3ce44SJohn Forte void SVC_FREEARGS(void xprt, void a, void *b) { } 224*fcf3ce44SJohn Forte void SVC_DUP(void xprt, void req, void i, void j, void *dr) { } 225*fcf3ce44SJohn Forte void svcerr_systemerr(void xprt) { } 226*fcf3ce44SJohn Forte void svcerr_noproc(void xprt) { } 227*fcf3ce44SJohn Forte void SVC_DUPDONE(void xprt, void dr, void a, void b, void c) { } 228*fcf3ce44SJohn Forte 229*fcf3ce44SJohn Forte SVCXPRT *svc_tli_kcreate(void *f, void *n, void *b, void **x, void *t, 230*fcf3ce44SJohn Forte uint_t c, uint_t d) { } 231*fcf3ce44SJohn Forte 232*fcf3ce44SJohn Forte /* 233*fcf3ce44SJohn Forte * non-ddi not under contracts 234*fcf3ce44SJohn Forte */ 235*fcf3ce44SJohn Forte struct netbuf { 236*fcf3ce44SJohn Forte int maxlen; 237*fcf3ce44SJohn Forte int len; 238*fcf3ce44SJohn Forte char *buf; 239*fcf3ce44SJohn Forte } 240*fcf3ce44SJohn Forte 241*fcf3ce44SJohn Forte /* 242*fcf3ce44SJohn Forte * End of RDCSRV module Contracts 243*fcf3ce44SJohn Forte */ 244*fcf3ce44SJohn Forte 245*fcf3ce44SJohn Forte /* 246*fcf3ce44SJohn Forte * RDC (SNDR) module 247*fcf3ce44SJohn Forte * Contract PSARC 2001/699 248*fcf3ce44SJohn Forte */ 249*fcf3ce44SJohn Forte 250*fcf3ce44SJohn Forte typedef u_longlong_t rpcproc_t; 251*fcf3ce44SJohn Forte typedef u_longlong_t xdrproc_t; 252*fcf3ce44SJohn Forte typedef u_longlong_t rpcvers_t; 253*fcf3ce44SJohn Forte #define __dontcare__ -1 254*fcf3ce44SJohn Forte #define RPC_INTR 0 255*fcf3ce44SJohn Forte #define RPC_SUCCESS 0 256*fcf3ce44SJohn Forte #define RPC_TLIERROR 0 257*fcf3ce44SJohn Forte #define RPC_XPRTFAILED 0 258*fcf3ce44SJohn Forte #define RPC_VERSMISMATCH 0 259*fcf3ce44SJohn Forte #define RPC_PROGVERSMISMATCH 0 260*fcf3ce44SJohn Forte #define RPC_INPROGRESS 0 261*fcf3ce44SJohn Forte 262*fcf3ce44SJohn Forte #define ENOEXEC 0 263*fcf3ce44SJohn Forte #define EBADF 0 264*fcf3ce44SJohn Forte 265*fcf3ce44SJohn Forte /* 266*fcf3ce44SJohn Forte * XDR routines 267*fcf3ce44SJohn Forte * from rpc/xdr.h 268*fcf3ce44SJohn Forte */ 269*fcf3ce44SJohn Forte typedef void * XDR; /* opaque */ 270*fcf3ce44SJohn Forte int xdr_void() { } 271*fcf3ce44SJohn Forte int xdr_int() { } 272*fcf3ce44SJohn Forte int xdr_union() { } 273*fcf3ce44SJohn Forte int xdr_enum() { } 274*fcf3ce44SJohn Forte int xdr_u_int() { } 275*fcf3ce44SJohn Forte int xdr_u_longlong_t() { } 276*fcf3ce44SJohn Forte int xdr_opaque() { } 277*fcf3ce44SJohn Forte int xdr_bytes() { } 278*fcf3ce44SJohn Forte int xdr_array() { } 279*fcf3ce44SJohn Forte #define NULL_xdrproc_t ((xdrproc_t)0) 280*fcf3ce44SJohn Forte 281*fcf3ce44SJohn Forte /* 282*fcf3ce44SJohn Forte * The following imported rpc/clnt.h 283*fcf3ce44SJohn Forte */ 284*fcf3ce44SJohn Forte 285*fcf3ce44SJohn Forte /* Client is mostly opaque exccept for the following */ 286*fcf3ce44SJohn Forte 287*fcf3ce44SJohn Forte typedef struct __client { /* required fields */ 288*fcf3ce44SJohn Forte void *cl_auth; 289*fcf3ce44SJohn Forte bool_t cl_nosignal; 290*fcf3ce44SJohn Forte } CLIENT; 291*fcf3ce44SJohn Forte 292*fcf3ce44SJohn Forte #define CLSET_PROGRESS 0 293*fcf3ce44SJohn Forte #define KNC_STRSIZE 128 294*fcf3ce44SJohn Forte struct knetconfig { 295*fcf3ce44SJohn Forte unsigned int knc_semantics; 296*fcf3ce44SJohn Forte caddr_t knc_protofmly; 297*fcf3ce44SJohn Forte caddr_t knc_proto; 298*fcf3ce44SJohn Forte dev_t knc_rdev; 299*fcf3ce44SJohn Forte }; 300*fcf3ce44SJohn Forte 301*fcf3ce44SJohn Forte void *clnt_sperrno() { } 302*fcf3ce44SJohn Forte void IS_UNRECOVERABLE_RPC(a) { } 303*fcf3ce44SJohn Forte void CLNT_CONTROL(cl, request, info) { } 304*fcf3ce44SJohn Forte void AUTH_DESTROY(void *a) { } 305*fcf3ce44SJohn Forte void CLNT_DESTROY(void *a) { } 306*fcf3ce44SJohn Forte 307*fcf3ce44SJohn Forte int clnt_tli_kcreate(void *a, void *b, void c, void d, void e, void f, 308*fcf3ce44SJohn Forte void *g, void **h) { } 309*fcf3ce44SJohn Forte 310*fcf3ce44SJohn Forte int clnt_tli_kinit(void *h, void *config, void *addr, uint_t a, int b, 311*fcf3ce44SJohn Forte void *c) { } 312*fcf3ce44SJohn Forte 313*fcf3ce44SJohn Forte void CLNT_CALL(void, void, void, void, void, void, void) { } 314*fcf3ce44SJohn Forte 315*fcf3ce44SJohn Forte /* 316*fcf3ce44SJohn Forte * The following imported from rpc/svc.h 317*fcf3ce44SJohn Forte */ 318*fcf3ce44SJohn Forte void svc_sendreply() { } 319*fcf3ce44SJohn Forte void svcerr_decode() { } 320*fcf3ce44SJohn Forte void SVC_GETARGS() { } 321*fcf3ce44SJohn Forte 322*fcf3ce44SJohn Forte /* 323*fcf3ce44SJohn Forte * The following imported from sys/file.h 324*fcf3ce44SJohn Forte */ 325*fcf3ce44SJohn Forte 326*fcf3ce44SJohn Forte void getf(void) { } 327*fcf3ce44SJohn Forte void releasef(void) { } 328*fcf3ce44SJohn Forte 329*fcf3ce44SJohn Forte /* 330*fcf3ce44SJohn Forte * Not under contract 331*fcf3ce44SJohn Forte */ 332*fcf3ce44SJohn Forte void sigintr(void) { } 333*fcf3ce44SJohn Forte void sigunintr(void) { } 334*fcf3ce44SJohn Forte dev_t expldev() { } 335*fcf3ce44SJohn Forte 336*fcf3ce44SJohn Forte /* 337*fcf3ce44SJohn Forte * End of RDC module 338*fcf3ce44SJohn Forte */ 339*fcf3ce44SJohn Forte 340*fcf3ce44SJohn Forte /* 341*fcf3ce44SJohn Forte * SDBC module violations 342*fcf3ce44SJohn Forte */ 343*fcf3ce44SJohn Forte 344*fcf3ce44SJohn Forte /* 345*fcf3ce44SJohn Forte * devid uses internal structure 346*fcf3ce44SJohn Forte * from sys/ddi_impldefs.h 347*fcf3ce44SJohn Forte */ 348*fcf3ce44SJohn Forte typedef struct impl_devid { 349*fcf3ce44SJohn Forte uchar_t did_type_hi; 350*fcf3ce44SJohn Forte uchar_t did_type_lo; 351*fcf3ce44SJohn Forte } impl_devid_t; 352*fcf3ce44SJohn Forte 353*fcf3ce44SJohn Forte #define DEVID_GETTYPE(devid) 0 354*fcf3ce44SJohn Forte #define DEVID_SCSI_SERIAL 0 355*fcf3ce44SJohn Forte 356*fcf3ce44SJohn Forte #define ENOLINK 0 /* NCALL too */ 357*fcf3ce44SJohn Forte #define E2BIG 0 358*fcf3ce44SJohn Forte #define ENOENT 0 359*fcf3ce44SJohn Forte #define EIDRM 0 360*fcf3ce44SJohn Forte 361*fcf3ce44SJohn Forte #define B_KERNBUF 0 362*fcf3ce44SJohn Forte #define KSTAT_TYPE_RAW 0 363*fcf3ce44SJohn Forte #define MAXPATHLEN 0 364*fcf3ce44SJohn Forte 365*fcf3ce44SJohn Forte #define VN_HOLD(bp) ((void)0) 366*fcf3ce44SJohn Forte 367*fcf3ce44SJohn Forte /* Page list IO stuff */ 368*fcf3ce44SJohn Forte typedef struct page { 369*fcf3ce44SJohn Forte int v_count; /* sdbc */ 370*fcf3ce44SJohn Forte } page_t; 371*fcf3ce44SJohn Forte page_t kvp; /* We use the kernel segment */ 372*fcf3ce44SJohn Forte int page_add(void) { } 373*fcf3ce44SJohn Forte int page_find(void) { } 374*fcf3ce44SJohn Forte int page_list_concat(void) { } 375*fcf3ce44SJohn Forte int pageio_setup(void) { } 376*fcf3ce44SJohn Forte int pageio_done(void) { } 377*fcf3ce44SJohn Forte 378*fcf3ce44SJohn Forte void kobj_getsymvalue(void) { } 379*fcf3ce44SJohn Forte int ddi_dev_pathname(void) { } 380*fcf3ce44SJohn Forte 381*fcf3ce44SJohn Forte /* 382*fcf3ce44SJohn Forte * HACK ALERT 383*fcf3ce44SJohn Forte * struct buf hack for ddict. 384*fcf3ce44SJohn Forte * SDBC currently violates in struct buf 385*fcf3ce44SJohn Forte * b_pages 386*fcf3ce44SJohn Forte * b_proc 387*fcf3ce44SJohn Forte * which we will define as the pad fields for ddict since 388*fcf3ce44SJohn Forte * we can not overload the definition of struct buf with our own stuff. 389*fcf3ce44SJohn Forte */ 390*fcf3ce44SJohn Forte 391*fcf3ce44SJohn Forte #define b_pages b_pad7 /* b_pages in struct buf */ 392*fcf3ce44SJohn Forte #define b_proc b_pad8 /* b_proc in struct buf */ 393*fcf3ce44SJohn Forte #define b_forw b_pad1 /* b_forw in struct buf */ 394*fcf3ce44SJohn Forte #define b_back b_pad2 /* b_back in struct buf */ 395*fcf3ce44SJohn Forte 396*fcf3ce44SJohn Forte /* 397*fcf3ce44SJohn Forte * End of SDBC moduel violations 398*fcf3ce44SJohn Forte */ 399*fcf3ce44SJohn Forte 400*fcf3ce44SJohn Forte /* 401*fcf3ce44SJohn Forte * SCMTEST module violations 402*fcf3ce44SJohn Forte */ 403*fcf3ce44SJohn Forte 404*fcf3ce44SJohn Forte #define ESRCH 0 /* NCALL too */ 405*fcf3ce44SJohn Forte 406*fcf3ce44SJohn Forte /* 407*fcf3ce44SJohn Forte * End of SCMTEST module violations 408*fcf3ce44SJohn Forte */ 409*fcf3ce44SJohn Forte /* 410*fcf3ce44SJohn Forte * SFTM module violations 411*fcf3ce44SJohn Forte * Note: XXX This list is currently incomplete 412*fcf3ce44SJohn Forte */ 413*fcf3ce44SJohn Forte 414*fcf3ce44SJohn Forte typedef void * cqe_t; /* opaque */ 415*fcf3ce44SJohn Forte typedef void * fcal_packet_t; /* opaque */ 416*fcf3ce44SJohn Forte typedef void * soc_response_t; /* opaque */ 417*fcf3ce44SJohn Forte typedef void * la_els_logi_t; /* opaque */ 418*fcf3ce44SJohn Forte typedef void * la_els_adisc_t; /* opaque */ 419*fcf3ce44SJohn Forte typedef void * fcp_rsp_t; /* opaque */ 420*fcf3ce44SJohn Forte typedef void * soc_request_t; /* opaque */ 421*fcf3ce44SJohn Forte typedef void * els_payload_t; /* opaque */ 422*fcf3ce44SJohn Forte typedef void * la_els_logo_t; /* opaque */ 423*fcf3ce44SJohn Forte typedef void * fc_frame_header_t; /* opaque */ 424*fcf3ce44SJohn Forte 425*fcf3ce44SJohn Forte typedef struct la_els_prli_s { 426*fcf3ce44SJohn Forte uchar_t ls_code; 427*fcf3ce44SJohn Forte uchar_t page_length; 428*fcf3ce44SJohn Forte ushort_t payload_length; 429*fcf3ce44SJohn Forte uchar_t service_params[1]; 430*fcf3ce44SJohn Forte } la_els_prli_t; 431*fcf3ce44SJohn Forte 432*fcf3ce44SJohn Forte typedef la_els_prli_t la_els_prli_reply_t; 433*fcf3ce44SJohn Forte typedef la_els_prli_t la_els_prlo_t; 434*fcf3ce44SJohn Forte typedef la_els_prli_t la_els_prlo_reply_t; 435*fcf3ce44SJohn Forte 436*fcf3ce44SJohn Forte /* 437*fcf3ce44SJohn Forte * The following from /usr/include/sys/fc4/fcp.h 438*fcf3ce44SJohn Forte */ 439*fcf3ce44SJohn Forte typedef struct fcp_cntl { 440*fcf3ce44SJohn Forte uchar_t cntl_reserved_1 : 5, 441*fcf3ce44SJohn Forte cntl_qtype : 3; 442*fcf3ce44SJohn Forte uchar_t cntl_kill_tsk : 1, 443*fcf3ce44SJohn Forte cntl_clr_aca : 1, 444*fcf3ce44SJohn Forte cntl_reset : 1, 445*fcf3ce44SJohn Forte cntl_reserved_2 : 2, 446*fcf3ce44SJohn Forte cntl_clr_tsk : 1, 447*fcf3ce44SJohn Forte cntl_abort_tsk : 1, 448*fcf3ce44SJohn Forte cntl_reserved_3 : 1; 449*fcf3ce44SJohn Forte uchar_t cntl_reserved_4 : 6, 450*fcf3ce44SJohn Forte cntl_read_data : 1, 451*fcf3ce44SJohn Forte cntl_write_data : 1; 452*fcf3ce44SJohn Forte } fcp_cntl_t; 453*fcf3ce44SJohn Forte 454*fcf3ce44SJohn Forte typedef struct fcp_ent_addr { 455*fcf3ce44SJohn Forte ushort_t ent_addr_0; 456*fcf3ce44SJohn Forte ushort_t ent_addr_1; 457*fcf3ce44SJohn Forte ushort_t ent_addr_2; 458*fcf3ce44SJohn Forte ushort_t ent_addr_3; 459*fcf3ce44SJohn Forte } fcp_ent_addr_t; 460*fcf3ce44SJohn Forte 461*fcf3ce44SJohn Forte typedef struct fcp_cmd_s { 462*fcf3ce44SJohn Forte fcp_ent_addr_t fcp_ent_addr; 463*fcf3ce44SJohn Forte fcp_cntl_t fcp_cntl; 464*fcf3ce44SJohn Forte uchar_t fcp_cdb[1]; 465*fcf3ce44SJohn Forte int fcp_data_len; 466*fcf3ce44SJohn Forte } fcp_cmd_t; 467*fcf3ce44SJohn Forte 468*fcf3ce44SJohn Forte typedef struct fcal_transport { 469*fcf3ce44SJohn Forte uchar_t dummy1; 470*fcf3ce44SJohn Forte uchar_t dummy2; 471*fcf3ce44SJohn Forte } fcal_transport_t; 472*fcf3ce44SJohn Forte 473*fcf3ce44SJohn Forte /* 474*fcf3ce44SJohn Forte * End of SFTM module violations 475*fcf3ce44SJohn Forte */ 476*fcf3ce44SJohn Forte 477*fcf3ce44SJohn Forte /* 478*fcf3ce44SJohn Forte * STE module violations 479*fcf3ce44SJohn Forte */ 480*fcf3ce44SJohn Forte 481*fcf3ce44SJohn Forte typedef void la_wwn_t; /* opaque */ 482*fcf3ce44SJohn Forte /* WWN formats from sys/fcal/fcal_linkapp.h */ 483*fcf3ce44SJohn Forte typedef union la_wwn { 484*fcf3ce44SJohn Forte uchar_t raw_wwn[8]; 485*fcf3ce44SJohn Forte struct { 486*fcf3ce44SJohn Forte uint_t naa_id : 4; 487*fcf3ce44SJohn Forte uint_t nport_id : 12; 488*fcf3ce44SJohn Forte uint_t wwn_hi : 16; 489*fcf3ce44SJohn Forte uint_t wwn_lo; 490*fcf3ce44SJohn Forte } w; 491*fcf3ce44SJohn Forte } la_wwn_t; 492*fcf3ce44SJohn Forte 493*fcf3ce44SJohn Forte insque(void) { } 494*fcf3ce44SJohn Forte remque(void) { } 495*fcf3ce44SJohn Forte snprintf(void) { } 496*fcf3ce44SJohn Forte 497*fcf3ce44SJohn Forte /* 498*fcf3ce44SJohn Forte * STE uses inq_serial and inq_ackqreqq from struct scsi_inquiry 499*fcf3ce44SJohn Forte */ 500*fcf3ce44SJohn Forte #define inq_serial inq_pid 501*fcf3ce44SJohn Forte #define inq_ackqreqq inq_pid 502*fcf3ce44SJohn Forte /* 503*fcf3ce44SJohn Forte * End of STE module violations 504*fcf3ce44SJohn Forte */ 505*fcf3ce44SJohn Forte 506*fcf3ce44SJohn Forte /* 507*fcf3ce44SJohn Forte * NCALL module violations 508*fcf3ce44SJohn Forte */ 509*fcf3ce44SJohn Forte #define ENONET 0 510*fcf3ce44SJohn Forte 511*fcf3ce44SJohn Forte /* NCALLSRV */ 512*fcf3ce44SJohn Forte typedef int bool_t; 513*fcf3ce44SJohn Forte 514*fcf3ce44SJohn Forte /* NCALLIP */ 515*fcf3ce44SJohn Forte #ifndef TRUE 516*fcf3ce44SJohn Forte #define TRUE 1 517*fcf3ce44SJohn Forte #endif 518*fcf3ce44SJohn Forte 519*fcf3ce44SJohn Forte #ifndef FALSE 520*fcf3ce44SJohn Forte #define FALSE 0 521*fcf3ce44SJohn Forte #endif 522*fcf3ce44SJohn Forte 523*fcf3ce44SJohn Forte #define ERANGE 0 524*fcf3ce44SJohn Forte #define ENODATA 0 525*fcf3ce44SJohn Forte 526*fcf3ce44SJohn Forte #define RPC_TIMEDOUT 0 527*fcf3ce44SJohn Forte 528*fcf3ce44SJohn Forte /* 529*fcf3ce44SJohn Forte * End of NCALL violations 530*fcf3ce44SJohn Forte */ 531*fcf3ce44SJohn Forte #ifdef __cplusplus 532*fcf3ce44SJohn Forte } 533*fcf3ce44SJohn Forte #endif 534*fcf3ce44SJohn Forte 535*fcf3ce44SJohn Forte #endif /* _SYS_CONTRACT_H */ 536