From owner-p4-projects@FreeBSD.ORG Sun Aug 21 13:14:41 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C289416A421; Sun, 21 Aug 2005 13:14:40 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 947F516A41F for ; Sun, 21 Aug 2005 13:14:40 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4439243D53 for ; Sun, 21 Aug 2005 13:14:40 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7LDEefc038856 for ; Sun, 21 Aug 2005 13:14:40 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7LDEeVD038848 for perforce@freebsd.org; Sun, 21 Aug 2005 13:14:40 GMT (envelope-from soc-victor@freebsd.org) Date: Sun, 21 Aug 2005 13:14:40 GMT Message-Id: <200508211314.j7LDEeVD038848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82370 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Aug 2005 13:14:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=82370 Change 82370 by soc-victor@soc-victor_82.76.158.176 on 2005/08/21 13:14:13 Finished the SNMP instrumentation for hrPrinterTable. Still need to test it using my dusty parallel printer... Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#22 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c#9 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c#8 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_network_tbl.c#4 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_printer_tbl.c#2 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#25 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#22 (text+ko) ==== @@ -29,9 +29,12 @@ CONTRIB=${.CURDIR}/../../../../contrib/bsnmp MOD= hostres -SRCS= hostres_snmp.c hostres_scalars.c \ - hostres_storage_tbl.c hostres_fs_tbl.c \ - hostres_swrun_tbl.c hostres_swrunperf_tbl.c \ +SRCS= hostres_snmp.c \ + hostres_scalars.c \ + hostres_storage_tbl.c \ + hostres_fs_tbl.c \ + hostres_swrun_tbl.c\ + hostres_swrunperf_tbl.c \ hostres_device_tbl.c \ hostres_processor_tbl.c \ hostres_diskstorage_tbl.c \ ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c#9 (text+ko) ==== @@ -201,7 +201,7 @@ return (DS_DOWN); case DIS_ATTACHED: /* attach method called */ case DIS_BUSY: /* device is open */ - return (DR_RUNNING); + return (DS_RUNNING); default: return (DS_UNKNOWN); } ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c#8 (text+ko) ==== @@ -312,7 +312,7 @@ entry->type = (struct asn_oid)OIDX_hrDeviceDiskStorage; entry->id = oid_zeroDotZero; /*unknown id - FIX ME*/ - entry->status = DR_RUNNING; + entry->status = DS_RUNNING; entry->errors = 0; /*FIX ME*/ snprintf(entry->descr, sizeof(entry->descr) - 1, "%s: <%s, ser. %s> ", @@ -531,7 +531,7 @@ entry->type = (struct asn_oid)OIDX_hrDeviceDiskStorage; entry->id = oid_zeroDotZero; /*unknown id - FIX ME*/ - entry->status = DR_RUNNING; + entry->status = DS_RUNNING; entry->errors = 0; /*FIX ME*/ snprintf(entry->descr, sizeof(entry->descr) - 1, "%s: Memory Disk ", @@ -639,7 +639,7 @@ entry->flags |= HR_DEVICE_IMMUTABLE; entry->type = (struct asn_oid)OIDX_hrDeviceDiskStorage; entry->id = oid_zeroDotZero; /*unknown id - FIX ME*/ - entry->status = DR_RUNNING; + entry->status = DS_RUNNING; entry->errors = 0; /*FIX ME*/ snprintf(entry->descr, sizeof(entry->descr) - 1, "%s: Disk Storage", ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_network_tbl.c#4 (text+ko) ==== @@ -323,7 +323,7 @@ dev_entry->flags |= HR_DEVICE_IMMUTABLE; dev_entry->type = (struct asn_oid)OIDX_hrDeviceNetwork; dev_entry->id = oid_zeroDotZero; /*unknown id - FIX ME*/ - dev_entry->status = DR_RUNNING; + dev_entry->status = DS_RUNNING; dev_entry->errors = 0; /*FIX ME*/ snprintf(dev_entry->descr, sizeof(dev_entry->descr) - 1, "%s: Network device", ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_printer_tbl.c#2 (text+ko) ==== @@ -77,6 +77,8 @@ #include #include #include +#include +#include #define _PATH_PRINTCAP "/etc/printcap" #define _PATH_DEFDEVLP "/dev/lp" @@ -104,44 +106,26 @@ #define DEFUID 1 #define DEFTIMEOUT 120 - struct printer { +struct printer { char *printer; /* printer name */ int remote; /* true if RM points to a remote host */ int rp_matches_local; /* true if rp has same name as us */ - int tof; /* true if we are at top-of-form */ - /* ------------------------------------------------------ */ - char *acct_file; /* AF: accounting file */ - long baud_rate; /* BR: baud rate if lp is a tty */ - long conn_timeout; /* CT: TCP connection timeout */ - long daemon_user; /* DU: daemon user id -- XXX belongs ???? */ - char *form_feed; /* FF: form feed */ - long header_last; /* HL: print header last */ + char *log_file; /* LF: log file */ char *lock_file; /* LO: lock file */ char *lp; /* LP: device name or network address */ - long max_copies; /* MC: maximum number of copies allowed */ - long max_blocks; /* MX: maximum number of blocks to copy */ - long price100; /* PC: price per 100 units of output */ - long page_length; /* PL: page length */ - long page_width; /* PW: page width */ - long page_pwidth; /* PX: page width in pixels */ - long page_plength; /* PY: page length in pixels */ - long resend_copies; /* RC: resend copies to remote host */ - char *restrict_grp; /* RG: restricted group */ + char *remote_host; /* RM: remote machine name */ char *remote_queue; /* RP: remote printer name */ long restricted; /* RS: restricted to those with local accts */ long rw; /* RW: open LP for reading and writing */ - long short_banner; /* SB: short banner */ - long no_copies; /* SC: suppress multiple copies */ + char *spool_dir; /* SD: spool directory */ - long no_formfeed; /* SF: suppress FF on each print job */ - long no_header; /* SH: suppress header page */ + char *stat_recv; /* SR: statistics file, receiving jobs */ char *stat_send; /* SS: statistics file, sending jobs */ char *status_file; /* ST: status file name */ - char *trailer; /* TR: trailer string send when Q empties */ - char *mode_set; /* MS: mode set, a la stty */ + }; @@ -150,11 +134,11 @@ */ + static char *capdb_canonical_name(const char *_bp); static int capdb_getaltlog(char *_bp, const char *_shrt, const char *_lng); -static int capdb_getaltnum(char *_bp, const char *_shrt, - const char *_lng, long _dflt, long *_result); + static int capdb_getaltstr(char *_bp, const char *_shrt, const char *lng, const char *_dflt, char **_result); static int getprintcap_int(char *_bp, struct printer *_pp); @@ -173,6 +157,21 @@ const char *pcaperr(int error); +extern +struct hrDeviceTblEntry* +hrDeviceTblEntry_find_by_name(const char *dev_name); + + +extern +struct hrDeviceTblEntry * +hrDeviceTblEntry_find_by_index(int32_t idx); + + + +extern +void +hrDeviceTblEntry_delete_v( struct hrDeviceTblEntry* entry ); + /* * Read the printcap database for printer `printer' into the @@ -321,30 +320,16 @@ return PCAPERR_OSERR; #define CHK(x) do {if ((x) == PCAPERR_OSERR) return PCAPERR_OSERR;}while(0) - CHK(capdb_getaltstr(bp, "af", "acct.file", 0, &pp->acct_file)); - CHK(capdb_getaltnum(bp, "br", "tty.rate", 0, &pp->baud_rate)); - CHK(capdb_getaltnum(bp, "ct", "remote.timeout", DEFTIMEOUT, - &pp->conn_timeout)); - CHK(capdb_getaltnum(bp, "du", "daemon.user", DEFUID, - &pp->daemon_user)); - CHK(capdb_getaltstr(bp, "ff", "job.formfeed", DEFFF, &pp->form_feed)); + + + CHK(capdb_getaltstr(bp, "lf", "spool.log", _PATH_CONSOLE, &pp->log_file)); CHK(capdb_getaltstr(bp, "lo", "spool.lock", DEFLOCK, &pp->lock_file)); CHK(capdb_getaltstr(bp, "lp", "tty.device", _PATH_DEFDEVLP, &pp->lp)); - CHK(capdb_getaltnum(bp, "mc", "max.copies", DEFMAXCOPIES, - &pp->max_copies)); - CHK(capdb_getaltstr(bp, "ms", "tty.mode", 0, &pp->mode_set)); - CHK(capdb_getaltnum(bp, "mx", "max.blocks", DEFMX, &pp->max_blocks)); - CHK(capdb_getaltnum(bp, "pc", "acct.price", 0, &pp->price100)); - CHK(capdb_getaltnum(bp, "pl", "page.length", DEFLENGTH, - &pp->page_length)); - CHK(capdb_getaltnum(bp, "pw", "page.width", DEFWIDTH, - &pp->page_width)); - CHK(capdb_getaltnum(bp, "px", "page.pwidth", 0, &pp->page_pwidth)); - CHK(capdb_getaltnum(bp, "py", "page.plength", 0, &pp->page_plength)); - CHK(capdb_getaltstr(bp, "rg", "daemon.restrictgrp", 0, - &pp->restrict_grp)); + + + CHK(capdb_getaltstr(bp, "rm", "remote.host", 0, &pp->remote_host)); CHK(capdb_getaltstr(bp, "rp", "remote.queue", DEFLP, &pp->remote_queue)); @@ -354,17 +339,12 @@ CHK(capdb_getaltstr(bp, "ss", "stat.send", 0, &pp->stat_send)); CHK(capdb_getaltstr(bp, "st", "spool.status", DEFSTAT, &pp->status_file)); - CHK(capdb_getaltstr(bp, "tr", "job.trailer", 0, &pp->trailer)); - pp->resend_copies = capdb_getaltlog(bp, "rc", "remote.resend_copies"); pp->restricted = capdb_getaltlog(bp, "rs", "daemon.restricted"); - pp->short_banner = capdb_getaltlog(bp, "sb", "banner.short"); - pp->no_copies = capdb_getaltlog(bp, "sc", "job.no_copies"); - pp->no_formfeed = capdb_getaltlog(bp, "sf", "job.no_formfeed"); - pp->no_header = capdb_getaltlog(bp, "sh", "banner.disable"); - pp->header_last = capdb_getaltlog(bp, "hl", "banner.last"); + + pp->rw = capdb_getaltlog(bp, "rw", "tty.rw"); - pp->tof = !capdb_getaltlog(bp, "fo", "job.topofform"); + /* * Decide if the remote printer name matches the local printer name. @@ -431,20 +411,19 @@ #define cfree(x) do { if (x) free(x); } while(0) cfree(pp->printer); - cfree(pp->acct_file); - cfree(pp->form_feed); + + cfree(pp->log_file); cfree(pp->lock_file); cfree(pp->lp); - cfree(pp->restrict_grp); + cfree(pp->remote_host); cfree(pp->remote_queue); cfree(pp->spool_dir); cfree(pp->stat_recv); cfree(pp->stat_send); cfree(pp->status_file); - cfree(pp->trailer); - cfree(pp->mode_set); + init_printer(pp); } @@ -482,26 +461,8 @@ return PCAPERR_NOTFOUND; } -/* - * The same, only for integers. - */ -static int -capdb_getaltnum(char *bp, const char *shrt, const char *lng, long dflt, - long *result) -{ - int status; - status = cgetnum(bp, (char*)lng, result); - if (status >= 0) - return status; - status = cgetnum(bp, (char *)/*XXX*/shrt, result); - if (status >= 0) - return status; - *result = dflt; - return 0; -} - /* * Likewise for logical values. There's no need for a default parameter * because the default is always false. @@ -538,6 +499,218 @@ return retval; } + +static +struct hrPrinterTblEntry* +hrPrinterEntry_create( const struct hrDeviceTblEntry* devEntry) { + struct + hrPrinterTblEntry *entry = NULL; + + assert(devEntry != NULL); + if (devEntry == NULL) { + return NULL; + } + + if ((entry = malloc(sizeof(*entry))) == NULL) { + syslog(LOG_WARNING, "hrPrinterTable: %s: %m", __func__); + return (NULL); + } + memset(entry, 0, sizeof(*entry)); + entry->index = devEntry->index; + INSERT_OBJECT_INT(entry, &hrState_g.hr_printer_tbl); + return entry; + +} + +static +void +hrPrinterEntry_delete_v( struct hrPrinterTblEntry* entry ) { + assert(entry != NULL); + if (entry == NULL) { + return; + } + TAILQ_REMOVE(&hrState_g.hr_printer_tbl, entry, link); + free(entry); +} + + +static +struct hrPrinterTblEntry * +hrPrinterEntry_find_by_index(int32_t idx) { + + struct hrPrinterTblEntry *entry; + + TAILQ_FOREACH(entry, &hrState_g.hr_printer_tbl, link) + if (entry->index == idx) + return (entry); + return (NULL); +} + + +static +struct hrDeviceTblEntry* +hrDeviceTblEntry_create( const char* dev_name) { + struct + hrDeviceTblEntry *entry; + struct + deviceNameMapEntry *map = NULL; + + + assert(dev_name != NULL); + + if (dev_name == NULL) { + return (NULL); + } + + if (dev_name[0] == '\0') { + return (NULL); + } + + if ((entry = malloc(sizeof(*entry))) == NULL) { + syslog(LOG_WARNING, "hrPrinterTable: %s: %m", __func__); + return (NULL); + } + memset(entry, 0, sizeof(*entry)); + + + STAILQ_FOREACH(map, &hrState_g.device_name_map, link) + if (strcmp(map->name_key, dev_name) == 0) { + entry->index = map->hrIndex; + map->entry_p = entry; + break; + } + + if (map == NULL) { + /* new object - get a new index */ + if (hrState_g.next_hrDevice_index > INT_MAX) { + syslog(LOG_ERR, "%s: hrDeviceTable index wrap", __func__ ); + errx(1, "hrDeviceTable index wrap"); + } + + if ((map = malloc(sizeof(*map))) == NULL) { + syslog(LOG_ERR, "hrPrinterTable: %s: %m", __func__ ); + free(entry); + return (NULL); + } + map->hrIndex = hrState_g.next_hrDevice_index ++; + + memset(&map->name_key[0], 0, sizeof(map->name_key)); + strncpy(map->name_key, dev_name, sizeof(map->name_key) - 1); + + memset(&map->location_key[0], 0, sizeof(map->location_key)); + snprintf(map->location_key, sizeof(map->location_key) - 1, "printer:%s", dev_name); + + + map->entry_p = entry; + STAILQ_INSERT_TAIL(&hrState_g.device_name_map, map, link); + HR_DPRINTF((stderr, "%s at %s added into hrDeviceMap at index=%d\n ", + dev_name, + dev_name, map->hrIndex)); + } else { + HR_DPRINTF((stderr, "%s at %s exists in hrDeviceMap index=%d\n ", + dev_name, + dev_name, map->hrIndex)); + + } + + entry->index = map->hrIndex; + memset(&entry->name[0], 0, sizeof(entry->name)); + strncpy(entry->name, dev_name, sizeof(entry->name) - 1); + + memset(&entry->location[0], 0, sizeof(entry->location)); + snprintf(entry->location, sizeof(entry->location) - 1, "printer:%s", dev_name); + + INSERT_OBJECT_INT(entry, &hrState_g.hr_device_tbl); + + return entry; + +} + +static +void +handle_printer(struct printer *pp) { + struct hrDeviceTblEntry* dev_entry = NULL; + struct hrPrinterTblEntry* printer_entry = NULL; + + if (pp->rp_matches_local != 1) { + HR_DPRINTF((stderr, + "hrPrinterTable: skipped %s because it is not a local one\n", + pp->printer )); + return; + + } + dev_entry = hrDeviceTblEntry_find_by_name(pp->lp); + + if (dev_entry == NULL) { + HR_DPRINTF((stderr, + "hrPrinterTable: %s not in hrDeviceTable\n", + pp->lp )); + dev_entry = hrDeviceTblEntry_create(pp->lp); + if (dev_entry == NULL) { + return; + } + dev_entry->flags |= HR_DEVICE_IMMUTABLE; + dev_entry->type = (struct asn_oid)OIDX_hrDevicePrinter; + dev_entry->id = oid_zeroDotZero; /*unknown id - FIX ME*/ + dev_entry->status = DS_RUNNING; + dev_entry->errors = 0; /*FIX ME*/ + snprintf(dev_entry->descr, sizeof(dev_entry->descr) - 1, + "printer %s: %s ", + pp->printer , + pp->lp); + }else{ + HR_DPRINTF((stderr, + "hrPrinterTable: %s already in hrDeviceTable\n", + pp->lp )); + dev_entry->type = (struct asn_oid)OIDX_hrDevicePrinter; + dev_entry->flags |= HR_DEVICE_IMMUTABLE; + } + + /*Then check hrPrinterTable for this device*/ + printer_entry = hrPrinterEntry_find_by_index(dev_entry->index); + if (printer_entry == NULL) { + printer_entry = hrPrinterEntry_create(dev_entry); + } + assert(printer_entry != NULL); + printer_entry->flags |= HR_PRINTER_FOUND; + printer_entry->status = PS_UNKNOWN; + memset(printer_entry->detectedErrorState, 0, sizeof(printer_entry->detectedErrorState)); + + +} + +static +void +hrPrinter_get_OS_entries(void){ + int status, more; + struct printer myprinter, *pp = &myprinter; + + init_printer(pp); + more = firstprinter(pp, &status); + if (status) + goto errloop; + while (more) { + + do { + HR_DPRINTF((stderr, "*****>Got printer %s", pp->printer)); + + handle_printer(pp); + + more = nextprinter(pp, &status); +errloop: + if (status) + syslog(LOG_WARNING, + "hrPrinterTable: printcap entry for %s has errors, skipping", + pp->printer ? pp->printer : ""); + } while (more && status); + } + + hrState_g.hr_printer_tick = this_tick; + hrState_g.hrPrinter_tbl_age = time(NULL); + +} + + /* * Init the things for hrPrinterTable */ @@ -545,6 +718,8 @@ hrState_g._printcapdb = (char**)malloc ( 2 * sizeof(char*) ); hrState_g._printcapdb[0] = strdup(_PATH_PRINTCAP); hrState_g._printcapdb[1] = NULL; + + hrPrinter_get_OS_entries(); } /* @@ -552,6 +727,16 @@ * It destroys the lists and frees any allocated heap memory */ void fini_hrPrinter_tbl_v(void) { + struct hrPrinterTblEntry *n1 = NULL, *n2 = NULL; + n1 = TAILQ_FIRST(&hrState_g.hr_printer_tbl); + while (n1 != NULL) { + n2 = TAILQ_NEXT(n1, link); + free(n1); + n1 = n2; + + } + TAILQ_INIT(&hrState_g.hr_printer_tbl); + if (hrState_g._printcapdb != NULL) { if (hrState_g._printcapdb[0] != NULL) { free(hrState_g._printcapdb[0]); @@ -568,15 +753,114 @@ void refresh_hrPrinter_tbl_v(void){ + struct hrPrinterTblEntry *entry = NULL, *entry_tmp = NULL; + + if ( this_tick <= hrState_g.hr_printer_tick) { + HR_DPRINTF((stderr, "%s: no refresh needed\n ",__func__)); + return; + } + + + + /*mark each entry as missing*/ + TAILQ_FOREACH(entry, &hrState_g.hr_printer_tbl, link) { + entry->flags &= ~HR_PRINTER_FOUND; + } + + + + hrPrinter_get_OS_entries(); + + /* + * Purge items that disappeared + */ + entry = TAILQ_FIRST(&hrState_g.hr_printer_tbl); + while (entry != NULL) { + entry_tmp = TAILQ_NEXT(entry, link); + if (!(entry->flags & HR_PRINTER_FOUND) ) { + struct hrDeviceTblEntry * dev_entry = NULL; + dev_entry = hrDeviceTblEntry_find_by_index(entry->index); + if (dev_entry != NULL) { + hrDeviceTblEntry_delete_v(dev_entry); + } + hrPrinterEntry_delete_v(entry); + } + entry = entry_tmp; + } + + hrState_g.hr_printer_tick = this_tick; + + hrState_g.hrPrinter_tbl_age = time(NULL); + + HR_DPRINTF((stderr, "%s: refresh DONE\n ",__func__)); + } int op_hrPrinterTable(struct snmp_context *ctx __unused, - struct snmp_value *value __unused, - u_int sub __unused, + struct snmp_value *value, + u_int sub, u_int iidx __unused, - enum snmp_op curr_op __unused) + enum snmp_op curr_op ) { - return (SNMP_ERR_NOSUCHNAME); + struct hrPrinterTblEntry *entry = NULL; + int ret = SNMP_ERR_NOERROR; + + if ( (time(NULL) - hrState_g.hrPrinter_tbl_age) > HR_PRINTER_TBL_REFRESH ) { + HR_DPRINTF((stderr, "%s: need refresh\n ",__func__)); + refresh_hrPrinter_tbl_v(); + } + + + switch (curr_op) { + + case SNMP_OP_GETNEXT: + if ((entry = NEXT_OBJECT_INT(&hrState_g.hr_printer_tbl, + &value->var, sub)) == NULL) { + return (SNMP_ERR_NOSUCHNAME); + } + value->var.len = sub + 1; + value->var.subs[sub] = entry->index; + break; + + case SNMP_OP_GET: + if (value->var.len - sub != 1) { + return (SNMP_ERR_NOSUCHNAME); + } + + if ((entry = + hrPrinterEntry_find_by_index(value->var.subs[sub])) + == NULL) { + return (SNMP_ERR_NOSUCHNAME); + } + break; + + case SNMP_OP_SET: + return (SNMP_ERR_NOT_WRITEABLE); + + case SNMP_OP_ROLLBACK: + case SNMP_OP_COMMIT: + assert(0); + return (SNMP_ERR_NOERROR); + } + + ret = SNMP_ERR_NOERROR; + switch (value->var.subs[sub - 1]) { + case LEAF_hrPrinterStatus: + value->v.integer = entry->status; + break; + case LEAF_hrPrinterDetectedErrorState: + ret = string_get(value, + entry->detectedErrorState, + sizeof(entry->detectedErrorState)); + break; + default: + assert(0); + ret = SNMP_ERR_NOSUCHNAME; + break; + + } + return (ret); + } ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#25 (text+ko) ==== @@ -311,6 +311,15 @@ TAILQ_HEAD(network_tbl, hrNetworkTblEntry); +enum PrinterStatus { + PS_OTHER = 1, + PS_UNKNOWN = 2, + PS_IDLE = 3, + PS_PRINTING = 4, + DS_WARMUP = 5 +}; + + /* * This structure is used to hold a SNMP table entry * for HOST-RESOURCES-MIB's hrPrinterTable @@ -318,7 +327,7 @@ struct hrPrinterTblEntry { int32_t index; - int32_t status; + int32_t status; /*values from PrinterStatus enum above*/ u_char detectedErrorState[2]; TAILQ_ENTRY(hrPrinterTblEntry) link; #define HR_PRINTER_FOUND 0x001 @@ -333,7 +342,7 @@ enum DeviceStatus { DS_UNKNOWN = 1, - DR_RUNNING = 2, + DS_RUNNING = 2, DS_WARNING = 3, DS_TESTING = 4, DS_DOWN = 5 From owner-p4-projects@FreeBSD.ORG Sun Aug 21 17:13:34 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E64E516A421; Sun, 21 Aug 2005 17:13:33 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A38E216A41F for ; Sun, 21 Aug 2005 17:13:33 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5A95243D45 for ; Sun, 21 Aug 2005 17:13:33 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7LHDXKq056633 for ; Sun, 21 Aug 2005 17:13:33 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7LHDWnZ056624 for perforce@freebsd.org; Sun, 21 Aug 2005 17:13:32 GMT (envelope-from scottl@freebsd.org) Date: Sun, 21 Aug 2005 17:13:32 GMT Message-Id: <200508211713.j7LHDWnZ056624@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 82377 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Aug 2005 17:13:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=82377 Change 82377 by scottl@scottl-junior on 2005/08/21 17:13:18 Introduce the topology lock. It covers the reference counting of path components so that peripherals and sims can use path objects without having to lock them. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#16 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#16 (text+ko) ==== @@ -619,6 +619,7 @@ typedef TAILQ_HEAD(cam_isrq, ccb_hdr) cam_isrq_t; static cam_isrq_t cam_bioq; static struct mtx cam_bioq_lock; +static struct mtx cam_topo_lock; /* "Pool" of inactive ccbs managed by xpt_alloc_ccb and xpt_free_ccb */ static SLIST_HEAD(,ccb_hdr) ccb_freeq; @@ -1390,6 +1391,7 @@ STAILQ_INIT(&highpowerq); mtx_init(&cam_bioq_lock, "CAM BIOQ lock", NULL, MTX_DEF); + mtx_init(&cam_topo_lock, "XPT Topology lock", NULL, MTX_DEF); /* * The xpt layer is, itself, the equivelent of a SIM. @@ -3301,7 +3303,6 @@ } case XPT_DEV_MATCH: { - int s; dev_pos_type position_type; struct ccb_dev_match *cdm; @@ -3310,7 +3311,7 @@ /* * Prevent EDT changes while we traverse it. */ - s = splcam(); + mtx_lock(&cam_topo_lock); /* * There are two ways of getting at information in the EDT. * The first way is via the primary EDT tree. It starts @@ -3358,7 +3359,7 @@ break; } - splx(s); + mtx_unlock(&cam_topo_lock); if (cdm->status == CAM_DEV_MATCH_ERROR) start_ccb->ccb_h.status = CAM_REQ_CMP_ERR; @@ -3421,6 +3422,7 @@ csa->ccb_h.path->device->refcount++; } + mtx_lock(&cam_topo_lock); if ((added & AC_FOUND_DEVICE) != 0) { /* * Get this peripheral up to date with all @@ -3435,6 +3437,7 @@ */ xpt_for_all_busses(xptsetasyncbusfunc, cur_entry); } + mtx_unlock(&cam_topo_lock); splx(s); start_ccb->ccb_h.status = CAM_REQ_CMP; break; @@ -3969,7 +3972,6 @@ void xpt_merge_ccb(union ccb *master_ccb, union ccb *slave_ccb) { - GIANT_REQUIRED; /* * Pull fields that are valid for peripheral drivers to set @@ -3986,7 +3988,6 @@ void xpt_setup_ccb(struct ccb_hdr *ccb_h, struct cam_path *path, u_int32_t priority) { - GIANT_REQUIRED; CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_setup_ccb\n")); ccb_h->pinfo.priority = priority; @@ -3998,7 +3999,7 @@ ccb_h->target_id = CAM_TARGET_WILDCARD; if (path->device) { ccb_h->target_lun = path->device->lun_id; - ccb_h->pinfo.generation = ++path->device->ccbq.queue.generation; + atomic_add_int(&ccb_h->pinfo.generation, 1); } else { ccb_h->target_lun = CAM_TARGET_WILDCARD; } @@ -4014,8 +4015,6 @@ struct cam_path *path; cam_status status; - GIANT_REQUIRED; - path = (struct cam_path *)malloc(sizeof(*path), M_CAMXPT, M_NOWAIT); if (path == NULL) { @@ -4032,6 +4031,33 @@ } static cam_status +xpt_clone_path(struct cam_path *old_path_ptr, struct cam_path **new_path_ptr) +{ + struct cam_path *path; + + path = (struct cam_path *)malloc(sizeof(*path), M_CAMXPT, M_NOWAIT); + + if (path == NULL) + return (CAM_RESRC_UNAVAIL); + + mtx_lock(&cam_topo_lock); + path->periph = old_path_ptr->periph; + path->bus = old_path_ptr->bus; + path->target = old_path_ptr->target; + path->device = old_path_ptr->device; + if (path->bus != NULL) + path->bus->refcount++; + if (path->target != NULL) + path->target->refcount++; + if (path->device != NULL) + path->device->refcount++; + mtx_unlock(&cam_topo_lock); + + *new_path_ptr = path; + return (CAM_REQ_CMP); +} + +static cam_status xpt_compile_path(struct cam_path *new_path, struct cam_periph *perph, path_id_t path_id, target_id_t target_id, lun_id_t lun_id) { @@ -4039,7 +4065,6 @@ struct cam_et *target; struct cam_ed *device; cam_status status; - int s; status = CAM_REQ_CMP; /* Completed without error */ target = NULL; /* Wildcarded */ @@ -4049,7 +4074,7 @@ * We will potentially modify the EDT, so block interrupts * that may attempt to create cam paths. */ - s = splcam(); + mtx_lock(&cam_topo_lock); bus = xpt_find_bus(path_id); if (bus == NULL) { status = CAM_PATH_INVALID; @@ -4083,7 +4108,7 @@ } } } - splx(s); + mtx_unlock(&cam_topo_lock); /* * Only touch the user's data if we are successful. @@ -4095,12 +4120,14 @@ new_path->device = device; CAM_DEBUG(new_path, CAM_DEBUG_TRACE, ("xpt_compile_path\n")); } else { + mtx_lock(&cam_topo_lock); if (device != NULL) xpt_release_device(bus, target, device); if (target != NULL) xpt_release_target(bus, target); if (bus != NULL) xpt_release_bus(bus); + mtx_unlock(&cam_topo_lock); } return (status); } @@ -4109,6 +4136,8 @@ xpt_release_path(struct cam_path *path) { CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_release_path\n")); + + mtx_lock(&cam_topo_lock); if (path->device != NULL) { xpt_release_device(path->bus, path->target, path->device); path->device = NULL; @@ -4121,12 +4150,12 @@ xpt_release_bus(path->bus); path->bus = NULL; } + mtx_unlock(&cam_topo_lock); } void xpt_free_path(struct cam_path *path) { - GIANT_REQUIRED; CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_free_path\n")); xpt_release_path(path); @@ -4141,7 +4170,6 @@ int xpt_path_comp(struct cam_path *path1, struct cam_path *path2) { - GIANT_REQUIRED; int retval = 0; @@ -4177,7 +4205,6 @@ void xpt_print_path(struct cam_path *path) { - GIANT_REQUIRED; if (path == NULL) printf("(nopath): "); @@ -4212,8 +4239,6 @@ { struct sbuf sb; - GIANT_REQUIRED; - sbuf_new(&sb, str, str_len, 0); if (path == NULL) @@ -4250,7 +4275,6 @@ path_id_t xpt_path_path_id(struct cam_path *path) { - GIANT_REQUIRED; return(path->bus->path_id); } @@ -4258,7 +4282,6 @@ target_id_t xpt_path_target_id(struct cam_path *path) { - GIANT_REQUIRED; if (path->target != NULL) return (path->target->target_id); @@ -4269,7 +4292,6 @@ lun_id_t xpt_path_lun_id(struct cam_path *path) { - GIANT_REQUIRED; if (path->device != NULL) return (path->device->lun_id); @@ -4280,7 +4302,6 @@ struct cam_sim * xpt_path_sim(struct cam_path *path) { - GIANT_REQUIRED; return (path->bus->sim); } @@ -4288,7 +4309,6 @@ struct cam_periph* xpt_path_periph(struct cam_path *path) { - GIANT_REQUIRED; return (path->periph); } @@ -4419,7 +4439,9 @@ xpt_async(AC_PATH_DEREGISTERED, &bus_path, NULL); /* Release the reference count held while registered. */ + mtx_lock(&cam_topo_lock); xpt_release_bus(bus_path.bus); + mtx_unlock(&cam_topo_lock); xpt_release_path(&bus_path); return (CAM_REQ_CMP); @@ -4499,8 +4521,9 @@ } void -xpt_async(u_int32_t async_code, struct cam_path *path, void *async_arg) +xpt_async(u_int32_t async_code, struct cam_path *opath, void *async_arg) { + struct cam_path *path; struct cam_eb *bus; struct cam_et *target, *next_target; struct cam_ed *device, *next_device; @@ -4511,6 +4534,13 @@ CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_async\n")); /* + * The caller owns the path object that was passed in. Clone + * it so that we don't risk having it disappear on us. + */ + if (xpt_clone_path(opath, &path) != CAM_REQ_CMP) + return; + + /* * Most async events come from a CAM interrupt context. In * a few cases, the error recovery code at the peripheral layer, * which may run from our SWI or a process context, may signal @@ -4577,6 +4607,7 @@ xpt_async_bcast(&xpt_periph->path->device->asyncs, async_code, path, async_arg); splx(s); + xpt_free_path(path); } static void @@ -4808,6 +4839,7 @@ sim->c_handle); sim->flags &= ~CAM_SIM_REL_TIMEOUT_PENDING; } + mtx_lock(&cam_topo_lock); bus = xpt_find_bus(sim->path_id); splx(s); @@ -4815,9 +4847,12 @@ /* * Now that we are unfrozen run the send queue. */ + mtx_unlock(&cam_topo_lock); xpt_run_dev_sendq(bus); + mtx_lock(&cam_topo_lock); } xpt_release_bus(bus); + mtx_unlock(&cam_topo_lock); } else splx(s); } else @@ -4868,8 +4903,6 @@ { union ccb *new_ccb; - GIANT_REQUIRED; - new_ccb = malloc(sizeof(*new_ccb), M_CAMXPT, M_WAITOK); return (new_ccb); } @@ -4879,8 +4912,6 @@ { union ccb *new_ccb; - GIANT_REQUIRED; - new_ccb = malloc(sizeof(*new_ccb), M_CAMXPT, M_NOWAIT); return (new_ccb); } @@ -4929,17 +4960,14 @@ static void xpt_release_bus(struct cam_eb *bus) { - int s; - s = splcam(); + mtx_assert(&cam_topo_lock, MA_OWNED); if ((--bus->refcount == 0) && (TAILQ_FIRST(&bus->et_entries) == NULL)) { TAILQ_REMOVE(&xpt_busses, bus, links); bus_generation++; - splx(s); free(bus, M_CAMXPT); - } else - splx(s); + } } static struct cam_et * @@ -4947,6 +4975,7 @@ { struct cam_et *target; + mtx_assert(&cam_topo_lock, MA_OWNED); target = (struct cam_et *)malloc(sizeof(*target), M_CAMXPT, M_NOWAIT); if (target != NULL) { struct cam_et *cur_target; @@ -4981,18 +5010,15 @@ static void xpt_release_target(struct cam_eb *bus, struct cam_et *target) { - int s; - s = splcam(); + mtx_assert(&cam_topo_lock, MA_OWNED); if ((--target->refcount == 0) && (TAILQ_FIRST(&target->ed_entries) == NULL)) { TAILQ_REMOVE(&bus->et_entries, target, links); bus->generation++; - splx(s); free(target, M_CAMXPT); xpt_release_bus(bus); - } else - splx(s); + } } static struct cam_ed * @@ -5005,6 +5031,7 @@ struct cam_devq *devq; cam_status status; + mtx_assert(&cam_topo_lock, MA_OWNED); /* Make space for us in the device queue on our bus */ devq = bus->sim->devq; status = cam_devq_resize(devq, devq->alloc_queue.array_size + 1); @@ -5097,9 +5124,8 @@ xpt_release_device(struct cam_eb *bus, struct cam_et *target, struct cam_ed *device) { - int s; - s = splcam(); + mtx_assert(&cam_topo_lock, MA_OWNED); if ((--device->refcount == 0) && ((device->flags & CAM_DEV_UNCONFIGURED) != 0)) { struct cam_devq *devq; @@ -5118,13 +5144,11 @@ /* Release our slot in the devq */ devq = bus->sim->devq; cam_devq_resize(devq, devq->alloc_queue.array_size - 1); - splx(s); camq_fini(&device->drvq); camq_fini(&device->ccbq.queue); free(device, M_CAMXPT); xpt_release_target(bus, target); - } else - splx(s); + } } static u_int32_t @@ -5157,6 +5181,7 @@ { struct cam_eb *bus; + mtx_assert(&cam_topo_lock, MA_OWNED); for (bus = TAILQ_FIRST(&xpt_busses); bus != NULL; bus = TAILQ_NEXT(bus, links)) { @@ -5173,6 +5198,7 @@ { struct cam_et *target; + mtx_assert(&cam_topo_lock, MA_OWNED); for (target = TAILQ_FIRST(&bus->et_entries); target != NULL; target = TAILQ_NEXT(target, links)) { @@ -5189,6 +5215,7 @@ { struct cam_ed *device; + mtx_assert(&cam_topo_lock, MA_OWNED); for (device = TAILQ_FIRST(&target->ed_entries); device != NULL; device = TAILQ_NEXT(device, links)) { @@ -6861,10 +6888,12 @@ /* * Scan all installed busses. */ + mtx_lock(&cam_topo_lock); xpt_for_all_busses(xptconfigbuscountfunc, NULL); if (busses_to_config == 0) { /* Call manually because we don't have any busses */ + mtx_unlock(&cam_topo_lock); xpt_finishconfig(xpt_periph, NULL); } else { if (busses_to_reset > 0 && scsi_delay >= 2000) { @@ -6872,6 +6901,7 @@ "devices to settle\n", scsi_delay/1000); } xpt_for_all_busses(xptconfigfunc, NULL); + mtx_unlock(&cam_topo_lock); } } @@ -6937,7 +6967,9 @@ * attached. For any devices like that, announce the * passthrough driver so the user will see something. */ + mtx_lock(&cam_topo_lock); xpt_for_all_devices(xptpassannouncefunc, NULL); + mtx_unlock(&cam_topo_lock); /* Release our hook so that the boot can continue. */ config_intrhook_disestablish(xpt_config_hook); From owner-p4-projects@FreeBSD.ORG Sun Aug 21 17:57:09 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3A7CE16A421; Sun, 21 Aug 2005 17:57:09 +0000 (GMT) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F06B116A41F; Sun, 21 Aug 2005 17:57:08 +0000 (GMT) (envelope-from nate@root.org) Received: from www.cryptography.com (li-22.members.linode.com [64.5.53.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4C8F43D45; Sun, 21 Aug 2005 17:57:08 +0000 (GMT) (envelope-from nate@root.org) Received: from [10.0.0.250] (adsl-64-171-187-4.dsl.snfc21.pacbell.net [64.171.187.4]) by www.cryptography.com (8.12.8/8.12.8) with ESMTP id j7LHv8o5010430 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 21 Aug 2005 10:57:11 -0700 Message-ID: <4308C06E.8040301@root.org> Date: Sun, 21 Aug 2005 10:57:02 -0700 From: Nate Lawson User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Scott Long References: <200508211713.j7LHDWnZ056624@repoman.freebsd.org> In-Reply-To: <200508211713.j7LHDWnZ056624@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Perforce Change Reviews Subject: Re: PERFORCE change 82377 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Aug 2005 17:57:10 -0000 Scott Long wrote: > http://perforce.freebsd.org/chv.cgi?CH=82377 > > Change 82377 by scottl@scottl-junior on 2005/08/21 17:13:18 > > Introduce the topology lock. It covers the reference counting of > path components so that peripherals and sims can use path objects > without having to lock them. > > @@ -4808,6 +4839,7 @@ > sim->c_handle); > sim->flags &= ~CAM_SIM_REL_TIMEOUT_PENDING; > } > + mtx_lock(&cam_topo_lock); > bus = xpt_find_bus(sim->path_id); > splx(s); > > @@ -4815,9 +4847,12 @@ > /* > * Now that we are unfrozen run the send queue. > */ > + mtx_unlock(&cam_topo_lock); > xpt_run_dev_sendq(bus); > + mtx_lock(&cam_topo_lock); > } > xpt_release_bus(bus); > + mtx_unlock(&cam_topo_lock); > } else > splx(s); > } else I've heard of some performance problems from unlocking and relocking in the xpt_start() path for each ccb. I do that in scsi_target. Since this is only once per bus, this may be fine here. There is also a dangling splx() above and a few others left that were obsoleted by your lock. -- Nate From owner-p4-projects@FreeBSD.ORG Sun Aug 21 21:10:28 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8C76216A421; Sun, 21 Aug 2005 21:10:27 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4B53316A41F for ; Sun, 21 Aug 2005 21:10:27 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F051343D45 for ; Sun, 21 Aug 2005 21:10:26 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7LLAQf3074207 for ; Sun, 21 Aug 2005 21:10:26 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7LLAQjV074204 for perforce@freebsd.org; Sun, 21 Aug 2005 21:10:26 GMT (envelope-from soc-victor@freebsd.org) Date: Sun, 21 Aug 2005 21:10:26 GMT Message-Id: <200508212110.j7LLAQjV074204@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82389 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Aug 2005 21:10:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=82389 Change 82389 by soc-victor@soc-victor_82.76.158.176 on 2005/08/21 21:09:43 Finished the SNMP instrumentation for hrPrinterTable. Tested using only one parallel printer. Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#23 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c#9 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c#4 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_printer_tbl.c#3 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#21 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#26 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#9 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#23 (text+ko) ==== ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c#9 (text+ko) ==== @@ -47,6 +47,7 @@ #include #include #include +#include extern struct hrDeviceTblEntry * @@ -169,7 +170,7 @@ strncpy(map->name_key, dev_name, sizeof(map->name_key) - 1); memset(&map->location_key[0], 0, sizeof(map->location_key)); - snprintf(map->location_key, sizeof(map->location_key) - 1, "/dev/%s", dev_name); + snprintf(map->location_key, sizeof(map->location_key) - 1, "%s%s", _PATH_DEV, dev_name); map->entry_p = entry; @@ -189,7 +190,7 @@ strncpy(entry->name, dev_name, sizeof(entry->name) - 1); memset(&entry->location[0], 0, sizeof(entry->location)); - snprintf(entry->location, sizeof(entry->location) - 1, "/dev/%s", dev_name); + snprintf(entry->location, sizeof(entry->location) - 1, "%s%s", _PATH_DEV, dev_name); INSERT_OBJECT_INT(entry, &hrState_g.hr_device_tbl); @@ -223,7 +224,7 @@ if( entry->dev_name[0] == '\0' ) { return; } - snprintf(dev_path, sizeof(dev_path) - 1, "/dev/%s", entry->dev_name); + snprintf(dev_path, sizeof(dev_path) - 1, "%s%s", _PATH_DEV, entry->dev_name); entry->capacity = 0; HR_DPRINTF((stderr,"OPENING device %s\n",dev_path)); fd = open(dev_path, O_RDONLY|O_NONBLOCK); @@ -624,7 +625,7 @@ disk = strsep(&hrState_g.disk_list, " "); if (disk == NULL) break; - snprintf(disk_device, sizeof(disk_device) - 1, "/dev/%s", disk); + snprintf(disk_device, sizeof(disk_device) - 1, "%s%s", _PATH_DEV, disk); /* First check if the disk is in the hrDeviceTable. If not,add it. ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c#4 (text+ko) ==== @@ -39,6 +39,7 @@ #include #include #include +#include /*just some prototypes below*/ void @@ -183,7 +184,7 @@ } assert(entry != NULL); entry->flags |= HR_PARTITION_FOUND; - snprintf(entry->label, sizeof(entry->label) - 1, "/dev/%s", chunk_p->name ); + snprintf(entry->label, sizeof(entry->label) - 1, "%s%s", _PATH_DEV, chunk_p->name ); daddr_t k_size= chunk_p->size/2; /*may overflow the SNMP type*/ entry->size = ( k_size > (daddr_t)INT_MAX ? INT_MAX : k_size ); ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_printer_tbl.c#3 (text+ko) ==== @@ -80,6 +80,7 @@ #include #include + #define _PATH_PRINTCAP "/etc/printcap" #define _PATH_DEFDEVLP "/dev/lp" #define _PATH_DEFSPOOL "/var/spool/output/lpd" @@ -143,20 +144,56 @@ const char *lng, const char *_dflt, char **_result); static int getprintcap_int(char *_bp, struct printer *_pp); -/*static*/int getprintcap(char *printer, struct printer *pp); - static void init_printer(struct printer *pp); -/*static*/int firstprinter(struct printer *pp, int *error); +static int firstprinter(struct printer *pp, int *error); -/*static*/int nextprinter(struct printer *pp, int *error); +static int nextprinter(struct printer *pp, int *error); static void free_printer(struct printer *pp); -/*static*/ void lastprinter(void); +static void lastprinter(void); const char *pcaperr(int error); +static +char * +status_file_name(const struct printer *pp, char *buf, size_t len) +{ + static char staticbuf[MAXPATHLEN]; + + if (buf == 0) + buf = staticbuf; + if (len == 0) + len = MAXPATHLEN; + + if (pp->status_file[0] == '/') + strlcpy(buf, pp->status_file, len); + else + snprintf(buf, len, "%s/%s", pp->spool_dir, pp->status_file); + + return buf; +} + +static +char * +lock_file_name(const struct printer *pp, char *buf, size_t len) +{ + static char staticbuf[MAXPATHLEN]; + + if (buf == 0) + buf = staticbuf; + if (len == 0) + len = MAXPATHLEN; + + if (pp->lock_file[0] == '/') + strlcpy(buf, pp->lock_file, len); + else + snprintf(buf, len, "%s/%s", pp->spool_dir, pp->lock_file); + + return buf; +} + extern struct hrDeviceTblEntry* hrDeviceTblEntry_find_by_name(const char *dev_name); @@ -173,43 +210,7 @@ hrDeviceTblEntry_delete_v( struct hrDeviceTblEntry* entry ); -/* - * Read the printcap database for printer `printer' into the - * struct printer pointed by `pp'. Return values are as for - * cgetent(3): -1 means we could not find what we wanted, -2 - * means a system error occurred (and errno is set), -3 if a - * reference (`tc=') loop was detected, and 0 means success. - * - * Copied from lpr; should add additional capabilities as they - * are required by the other programs in the suite so that - * printcap-reading is consistent across the entire family. - */ -int -getprintcap(char *printer, struct printer *pp) -{ - int status; - char *bp = NULL; - if (hrState_g._printcapdb == NULL) { - assert(0); - return (PCAPERR_OSERR); - } - - /* - * A bug in the declaration of cgetent(3) means that we have - * to hide the constness of its third argument. - int - cgetent(char **buf, char **db_array, char *name); - - */ - - if ((status = cgetent(&bp, hrState_g._printcapdb, (char*)printer)) < 0) - return status; - status = getprintcap_int(bp, pp); - free(bp); - return status; -} - /* * Map the status values returned by cgetfirst/cgetnext into those * used by cgetent, returning truth if there are more records to @@ -554,7 +555,7 @@ hrDeviceTblEntry *entry; struct deviceNameMapEntry *map = NULL; - + assert(dev_name != NULL); @@ -573,12 +574,14 @@ memset(entry, 0, sizeof(*entry)); - STAILQ_FOREACH(map, &hrState_g.device_name_map, link) + + STAILQ_FOREACH(map, &hrState_g.device_name_map, link) { if (strcmp(map->name_key, dev_name) == 0) { entry->index = map->hrIndex; map->entry_p = entry; break; } + } if (map == NULL) { /* new object - get a new index */ @@ -622,15 +625,73 @@ INSERT_OBJECT_INT(entry, &hrState_g.hr_device_tbl); - return entry; + return (entry); } static +enum PrinterStatus +getPrinterSatus(const struct printer *pp) { + char statfile[MAXPATHLEN]; + char lockfile[MAXPATHLEN]; + + char line[128]; + int fd = -1; + FILE* f = NULL; + enum PrinterStatus ps = PS_UNKNOWN; + + lock_file_name(pp, lockfile, sizeof lockfile); + fd = open(lockfile, O_RDONLY); + if (fd < 0 || flock(fd, LOCK_SH|LOCK_NB) == 0) { + (void) close(fd); /* unlocks as well */ + fd = -1; + ps = PS_IDLE; + goto LABEL_DONE; + } + + + status_file_name(pp, statfile, sizeof(statfile)); + f = fopen(statfile, "r"); + if (f == NULL) { + syslog(LOG_ERR, "cannot open status file: %s\n", strerror(errno)); + ps = PS_UNKNOWN; + goto LABEL_DONE; + } + + + + memset(&line[0], '\0', sizeof(line)); + if (fgets(line, sizeof(line) -1, f) == NULL) { + ps = PS_UNKNOWN; + goto LABEL_DONE; + } + if (strstr(line, "is ready and printing") != NULL) { + ps = PS_PRINTING; + goto LABEL_DONE; + } + if (strstr(line, "to become ready (offline?)") != NULL) { + ps = PS_OTHER; + goto LABEL_DONE; + } + + +LABEL_DONE: + if (fd > 0) { + (void) close(fd); /* unlocks as well */ + } + if (f != NULL) { + fclose(f); + } + + return (ps); + +} +static void handle_printer(struct printer *pp) { struct hrDeviceTblEntry* dev_entry = NULL; struct hrPrinterTblEntry* printer_entry = NULL; + char dev_only[128]; if (pp->rp_matches_local != 1) { HR_DPRINTF((stderr, @@ -639,13 +700,36 @@ return; } - dev_entry = hrDeviceTblEntry_find_by_name(pp->lp); + + if (strncmp(pp->lp, _PATH_DEV, strlen(_PATH_DEV)) != 0) { + HR_DPRINTF((stderr, + "hrPrinterTable: skipped %s [device %s] because it is not a local one\n", + pp->printer, + pp->lp )); + return; + + } + memset(&dev_only[0], '\0', sizeof(dev_only)); + snprintf(dev_only, sizeof(dev_only) - 1, "%s", pp->lp + strlen(_PATH_DEV)); + + HR_DPRINTF((stderr, + "hrPrinterTable: printer %s has device %s\n", + pp->printer, + dev_only )); + + + dev_entry = hrDeviceTblEntry_find_by_name(dev_only); if (dev_entry == NULL) { + + HR_DPRINTF((stderr, "hrPrinterTable: %s not in hrDeviceTable\n", pp->lp )); - dev_entry = hrDeviceTblEntry_create(pp->lp); + + + + dev_entry = hrDeviceTblEntry_create(dev_only); if (dev_entry == NULL) { return; } @@ -673,7 +757,7 @@ } assert(printer_entry != NULL); printer_entry->flags |= HR_PRINTER_FOUND; - printer_entry->status = PS_UNKNOWN; + printer_entry->status = getPrinterSatus(pp); memset(printer_entry->detectedErrorState, 0, sizeof(printer_entry->detectedErrorState)); @@ -686,13 +770,14 @@ struct printer myprinter, *pp = &myprinter; init_printer(pp); + HR_DPRINTF((stderr, "---->Getting printers .....\n" )); more = firstprinter(pp, &status); if (status) goto errloop; while (more) { do { - HR_DPRINTF((stderr, "*****>Got printer %s", pp->printer)); + HR_DPRINTF((stderr, "---->Got printer %s\n", pp->printer)); handle_printer(pp); @@ -705,6 +790,7 @@ } while (more && status); } + lastprinter(); hrState_g.hr_printer_tick = this_tick; hrState_g.hrPrinter_tbl_age = time(NULL); ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#21 (text+ko) ==== @@ -154,7 +154,7 @@ mdmaybeload(); hrState_g.md_fd = -1; - snprintf(mddev, sizeof(mddev) - 1, "/dev/%s", MDCTL_NAME); + snprintf(mddev, sizeof(mddev) - 1, "%s%s", _PATH_DEV, MDCTL_NAME); if ((hrState_g.md_fd = open(mddev, O_RDWR)) < 0) { syslog(LOG_ERR, "open %s failed: %m", mddev); } ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#26 (text+ko) ==== @@ -316,7 +316,7 @@ PS_UNKNOWN = 2, PS_IDLE = 3, PS_PRINTING = 4, - DS_WARMUP = 5 + PS_WARMUP = 5 }; ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#9 (text+ko) ==== @@ -41,7 +41,7 @@ #include #include /*for getpagesize()*/ #include - +#include @@ -238,7 +238,7 @@ for (len = 0; len < nswapdev; len++ ) { memset(&swap_w_prefix[0], '\0', sizeof(swap_w_prefix) ); snprintf(swap_w_prefix, sizeof(swap_w_prefix) - 1, - "Swap:/dev/%s", hrState_g.swap_devs[len].ksw_devname); + "Swap:%s%s", _PATH_DEV, hrState_g.swap_devs[len].ksw_devname); entry = hrStorageTblEntry_find_by_name(swap_w_prefix); if (entry != NULL) { entry->flags |= HR_STORAGE_FOUND; From owner-p4-projects@FreeBSD.ORG Sun Aug 21 22:10:22 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 120C616A421; Sun, 21 Aug 2005 22:10:22 +0000 (GMT) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DD85716A41F; Sun, 21 Aug 2005 22:10:21 +0000 (GMT) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5D2C643D48; Sun, 21 Aug 2005 22:10:18 +0000 (GMT) (envelope-from scottl@samsco.org) Received: from [192.168.254.14] (imini.samsco.home [192.168.254.14]) (authenticated bits=0) by pooker.samsco.org (8.13.3/8.13.3) with ESMTP id j7LMKSg7086780; Sun, 21 Aug 2005 16:20:28 -0600 (MDT) (envelope-from scottl@samsco.org) Message-ID: <4308FBC8.3030305@samsco.org> Date: Sun, 21 Aug 2005 16:10:16 -0600 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.7) Gecko/20050416 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Nate Lawson References: <200508211713.j7LHDWnZ056624@repoman.freebsd.org> <4308C06E.8040301@root.org> In-Reply-To: <4308C06E.8040301@root.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.8 required=3.8 tests=ALL_TRUSTED autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on pooker.samsco.org Cc: Perforce Change Reviews , Scott Long Subject: Re: PERFORCE change 82377 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Aug 2005 22:10:22 -0000 Nate Lawson wrote: > Scott Long wrote: > >> http://perforce.freebsd.org/chv.cgi?CH=82377 >> >> Change 82377 by scottl@scottl-junior on 2005/08/21 17:13:18 >> >> Introduce the topology lock. It covers the reference counting of >> path components so that peripherals and sims can use path objects >> without having to lock them. >> >> @@ -4808,6 +4839,7 @@ >> sim->c_handle); >> sim->flags &= ~CAM_SIM_REL_TIMEOUT_PENDING; >> } >> + mtx_lock(&cam_topo_lock); >> bus = xpt_find_bus(sim->path_id); >> splx(s); >> >> @@ -4815,9 +4847,12 @@ >> /* >> * Now that we are unfrozen run the send queue. >> */ >> + mtx_unlock(&cam_topo_lock); >> xpt_run_dev_sendq(bus); >> + mtx_lock(&cam_topo_lock); >> } >> xpt_release_bus(bus); >> + mtx_unlock(&cam_topo_lock); >> } else >> splx(s); >> } else > > > I've heard of some performance problems from unlocking and relocking in > the xpt_start() path for each ccb. I do that in scsi_target. Since > this is only once per bus, this may be fine here. I don't like what I did in here either. I need to think about it more. > > There is also a dangling splx() above and a few others left that were > obsoleted by your lock. > No. The sendq is still only protected by Giant, so the spls are still valid markers. Scott From owner-p4-projects@FreeBSD.ORG Mon Aug 22 20:30:49 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 732ED16A421; Mon, 22 Aug 2005 20:30:49 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4DD8516A41F for ; Mon, 22 Aug 2005 20:30:49 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0349E43D48 for ; Mon, 22 Aug 2005 20:30:48 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7MKUmBj063286 for ; Mon, 22 Aug 2005 20:30:48 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7MKUm24063283 for perforce@freebsd.org; Mon, 22 Aug 2005 20:30:48 GMT (envelope-from jhb@freebsd.org) Date: Mon, 22 Aug 2005 20:30:48 GMT Message-Id: <200508222030.j7MKUm24063283@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 82421 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2005 20:30:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=82421 Change 82421 by jhb@jhb_slimer on 2005/08/22 20:30:35 Merge in some more anti-foot shooting from jhb_lock. Affected files ... .. //depot/projects/smpng/sys/kern/kern_mutex.c#103 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_mutex.c#103 (text+ko) ==== @@ -412,6 +412,9 @@ int rval; MPASS(curthread != NULL); + KASSERT(m->mtx_object.lo_class == &lock_class_mtx_sleep, + ("mtx_trylock() of spin mutex %s @ %s:%d", m->mtx_object.lo_name, + file, line)); if (mtx_owned(m) && (m->mtx_object.lo_flags & LO_RECURSABLE) != 0) { m->mtx_recurse++; @@ -460,6 +463,15 @@ return; } + /* + * If we have already panic'd and this is the thread that called + * panic(), then don't block on any mutexes but silently succeed. + * Otherwise, the kernel will deadlock since the scheduler isn't + * going to run the thread that holds the lock we need. + */ + if (panicstr != NULL && curthread->td_flags & TDF_INPANIC) + return; + if (LOCK_LOG_TEST(&m->mtx_object, opts)) CTR4(KTR_LOCK, "_mtx_lock_sleep: %s contested (lock=%p) at %s:%d", @@ -607,7 +619,7 @@ } if (i < 60000000) DELAY(1); - else if (!kdb_active) { + else if (!kdb_active && !panicstr) { printf("spin lock %s held by %p for > 5 seconds\n", m->mtx_object.lo_name, (void *)m->mtx_lock); #ifdef WITNESS @@ -654,6 +666,15 @@ return; } + /* + * If we failed to unlock this lock and we are a thread that has + * called panic(), it may be due to the bypass in _mtx_lock_sleep() + * above. In that case, just return and leave the lock alone to + * avoid changing the state. + */ + if (panicstr != NULL && curthread->td_flags & TDF_INPANIC) + return; + turnstile_lock(&m->mtx_object); ts = turnstile_lookup(&m->mtx_object); if (LOCK_LOG_TEST(&m->mtx_object, opts)) From owner-p4-projects@FreeBSD.ORG Mon Aug 22 21:40:20 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A76CB16A439; Mon, 22 Aug 2005 21:40:19 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 761A716A435 for ; Mon, 22 Aug 2005 21:40:19 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BF3E143D77 for ; Mon, 22 Aug 2005 21:40:14 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7MLeE0s073591 for ; Mon, 22 Aug 2005 21:40:14 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7MLeEGk073588 for perforce@freebsd.org; Mon, 22 Aug 2005 21:40:14 GMT (envelope-from jhb@freebsd.org) Date: Mon, 22 Aug 2005 21:40:14 GMT Message-Id: <200508222140.j7MLeEGk073588@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 82426 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2005 21:40:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=82426 Change 82426 by jhb@jhb_slimer on 2005/08/22 21:39:57 Use a linker set for the crash events so that it is easier to add new events. Affected files ... .. //depot/projects/smpng/sys/modules/crash/crash.c#15 edit Differences ... ==== //depot/projects/smpng/sys/modules/crash/crash.c#15 (text+ko) ==== @@ -54,37 +54,25 @@ #include #include -#define MAX_EVENT 21 +struct crash_event { + const char *ev_name; + void (*ev_handler)(void); +}; + +SET_DECLARE(crash_event_set, struct crash_event); + +#define CRASH_EVENT(name, function) \ + static struct crash_event function ## _crash_event = \ + { name, function }; \ + DATA_SET(crash_event_set, function ## _crash_event) + +#define MAX_EVENT SET_COUNT(crash_event_set) static struct sx foo, bar, bar2; static struct cv event_cv; static struct mtx event_mtx, test_mtx, test1_mtx, test2_mtx; static struct proc *kthread; static int event; -static const char *event_names[] = { - NULL, /* 0 - no event */ - "help", - "foo then bar", - "bar then foo", - "bar then foo then bar", - "Giant then foo then sleep", - "wakeup then foo then Giant", - "slock foo, upgrade, and release", - "xlock foo, downgrade, and release", - "xlock foo, upgrade", - "slock foo, downgrade", - "slock foo, upgrade, sunlock", - "xlock foo, downgrade, xunlock", - "re-init of test_mtx", - "assert that Giant is locked while it is unlocked", - "assert that foo is slocked while it is xlocked", - "lock test, slock foo, sunlock foo, unlock test", - "use test1 and test2 mutexes to test witness removal", - "try lock tests including recursion test", - "test witness_defineorder and witness_checkorder", - "blow the kernel stack on purpose", - "test deep stack backtraces", -}; static int mod_event(struct module *module, int cmd, void *arg); static int load(void *arg); @@ -92,28 +80,242 @@ static int shutdown(void *arg); static void crash_thread(void *arg); -SYSCTL_NODE(_debug, OID_AUTO, crash, CTLFLAG_RD, 0, "crash tree"); +/* Events. */ + +static void +foo_then_bar(void) +{ + sx_slock(&foo); + sx_slock(&bar); + sx_sunlock(&foo); + sx_sunlock(&bar); +} +CRASH_EVENT("foo then bar", foo_then_bar); + +static void +bar_then_foo(void) +{ + sx_slock(&bar); + sx_slock(&foo); + sx_sunlock(&foo); + sx_sunlock(&bar); +} +CRASH_EVENT("bar then foo", bar_then_foo); + +static void +bar_then_foo_then_bar(void) +{ + sx_slock(&bar); + sx_slock(&foo); + sx_slock(&bar2); + sx_sunlock(&bar2); + sx_sunlock(&foo); + sx_sunlock(&bar); +} +CRASH_EVENT("bar then foo then bar", bar_then_foo_then_bar); + +static void +Giant_then_foo_then_sleep(void) +{ + mtx_lock(&Giant); + sx_slock(&foo); +} +CRASH_EVENT("Giant then foo then sleep", Giant_then_foo_then_sleep); -static int -sysctl_debug_crash_test(SYSCTL_HANDLER_ARGS) +static void +wakeup_then_foo_then_Giant(void) { - int error, i = 0; + sx_sunlock(&foo); + mtx_unlock(&Giant); +} +CRASH_EVENT("wakeup then foo then Giant", wakeup_then_foo_then_Giant); - error = sysctl_handle_int(oidp, &i, sizeof(i), req); - if (error == 0 && req->newptr != NULL) { - if (i >= 1 && i <= MAX_EVENT) { - mtx_lock(&event_mtx); - KASSERT(event == 0, ("event %d was unhandled", event)); - event = i; - cv_signal(&event_cv); - mtx_unlock(&event_mtx); - } else - error = EINVAL; +static void +upgrade_foo(void) +{ + sx_slock(&foo); + if (sx_try_upgrade(&foo) == 0) { + printf("crash: umm, upgrade failed?\n"); + sx_sunlock(&foo); } - return (error); + sx_xunlock(&foo); +} +CRASH_EVENT("slock foo, upgrade, and release", upgrade_foo); + +static void +downgrade_foo(void) +{ + sx_xlock(&foo); + sx_downgrade(&foo); + sx_sunlock(&foo); +} +CRASH_EVENT("xlock foo, downgrade, and release", downgrade_foo); + +static void +upgrade_excl_foo(void) +{ + sx_xlock(&foo); + sx_try_upgrade(&foo); +} +CRASH_EVENT("xlock foo, upgrade", upgrade_excl_foo); + +static void +downgrade_shared_foo(void) +{ + sx_slock(&foo); + sx_downgrade(&foo); +} +CRASH_EVENT("slock foo, downgrade", downgrade_shared_foo); + +static void +sunlock_upgraded_foo(void) +{ + sx_slock(&foo); + sx_try_upgrade(&foo); + sx_sunlock(&foo); +} +CRASH_EVENT("slock foo, upgrade, sunlock", sunlock_upgraded_foo); + +static void +xunlock_downgraded_foo(void) +{ + sx_xlock(&foo); + sx_downgrade(&foo); + sx_xunlock(&foo); +} +CRASH_EVENT("xlock foo, downgrade, xunlock", xunlock_downgraded_foo); + +static void +double_mtx_init(void) +{ + kdb_enter("about to init again"); + mtx_init(&test_mtx, "test", NULL, MTX_DEF); + kdb_enter("if we haven't panic'd by now, ouch. :("); + mtx_destroy(&test_mtx); +} +CRASH_EVENT("re-init of test_mtx", double_mtx_init); + +static void +test_mtx_assert(void) +{ + mtx_assert(&Giant, MA_OWNED); +} +CRASH_EVENT("assert that Giant is locked while it is unlocked", + test_mtx_assert); + +static void +test_sx_assert_slocked(void) +{ + sx_xlock(&foo); + sx_assert(&foo, SX_SLOCKED); + sx_xunlock(&foo); +} +CRASH_EVENT("assert that foo is slocked while it is xlocked", + test_sx_assert_slocked); + +static void +test_sx_and_mtx_order(void) +{ + mtx_lock(&test_mtx); + sx_slock(&foo); + sx_sunlock(&foo); + mtx_unlock(&test_mtx); +} +CRASH_EVENT("lock test, slock foo, sunlock foo, unlock test", + test_sx_and_mtx_order); + +static void +test_witness_removal(void) +{ + bzero(&test1_mtx, sizeof(test1_mtx)); + bzero(&test2_mtx, sizeof(test2_mtx)); + mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF); + kdb_enter("no order yet"); + mtx_lock(&Giant); + mtx_lock(&test1_mtx); + mtx_lock(&test2_mtx); + mtx_unlock(&test2_mtx); + mtx_unlock(&test1_mtx); + mtx_unlock(&Giant); + kdb_enter("test1 and test2 should be ordered"); + mtx_destroy(&test1_mtx); + kdb_enter("test1 should be gone, test2 should be after Giant"); + mtx_destroy(&test2_mtx); + kdb_enter("test1 and test2 should be gone"); +} +CRASH_EVENT("use test1 and test2 mutexes to test witness removal", + test_witness_removal); + +static void +test_try_locks(void) +{ + int status; + + bzero(&test1_mtx, sizeof(test1_mtx)); + bzero(&test2_mtx, sizeof(test2_mtx)); + mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF | MTX_RECURSE); +#define TRYLOCK_TEST(lock, descr) do { \ + status = mtx_trylock((lock)); \ + printf("Try lock of " descr ": %d; recurse = %d\n", \ + status, (lock)->mtx_recurse); \ + if (status) \ + mtx_unlock((lock)); \ +} while(0) + TRYLOCK_TEST(&test1_mtx, "unlocked test1"); + mtx_lock(&test1_mtx); + TRYLOCK_TEST(&test1_mtx, "non-recursive locked test1"); + mtx_unlock(&test1_mtx); + TRYLOCK_TEST(&test2_mtx, "unlocked test2"); + mtx_lock(&test2_mtx); + TRYLOCK_TEST(&test2_mtx, "recursive locked test2"); + mtx_unlock(&test2_mtx); +#undef TRYLOCK_TEST + mtx_destroy(&test1_mtx); + mtx_destroy(&test2_mtx); +} +CRASH_EVENT("try lock tests including recursion test", test_try_locks); + +#if 0 +static void +test_witness_order_funcs(void) +{ + int status; + + bzero(&test1_mtx, sizeof(test1_mtx)); + bzero(&test2_mtx, sizeof(test2_mtx)); + mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF); + kdb_enter("no order yet"); + status = WITNESS_DEFINEORDER(&test1_mtx, &test2_mtx); + printf("Status of test1 -> test2 set order should be 0: %d\n", status); + kdb_enter("order should be test1 then test2"); + printf("Check order of test1 -> test2 should succeed.\n"); + mtx_lock(&test1_mtx); + witness_check_mutex(&test2_mtx); + mtx_unlock(&test1_mtx); + status = WITNESS_DEFINEORDER(&test2_mtx, &test1_mtx); + printf("Status of test2 -> test1 set order should be EDOOFUS: %d\n", + status); + printf("Clearing test order.\n"); + mtx_destroy(&test1_mtx); + mtx_destroy(&test2_mtx); + mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); + mtx_init(&test2_mtx, "test2", NULL, MTX_DEF); + status = WITNESS_DEFINEORDER(&test1_mtx, &test2_mtx); + printf("Status of test1 -> test2 set order should be 0: %d\n", status); + printf("Should get a reversal:\n"); + mtx_lock(&test2_mtx); + mtx_lock(&test1_mtx); + mtx_unlock(&test1_mtx); + mtx_unlock(&test2_mtx); + mtx_destroy(&test1_mtx); + mtx_destroy(&test2_mtx); } -SYSCTL_PROC(_debug_crash, OID_AUTO, test, CTLTYPE_INT | CTLFLAG_RW, 0, 0, - sysctl_debug_crash_test, "I", ""); +CRASH_EVENT("test witness_defineorder and witness_checkorder", + test_witness_order_funcs); +#endif static int blow_stack(void) @@ -125,6 +327,13 @@ } static void +test_double_fault(void) +{ + (void)blow_stack(); +} +CRASH_EVENT("blow the kernel stack on purpose", test_double_fault); + +static void recurse_deep(int depth) { @@ -136,194 +345,84 @@ } static void +test_deep_stack_trace(void) +{ + recurse_deep(0); +} +CRASH_EVENT("test deep stack backtraces", test_deep_stack_trace); + +/* Help event should be last so that it is always event 1. */ + +static void +help(void) +{ + struct crash_event **ev; + + SET_FOREACH(ev, crash_event_set) { + /* Skip null event 0. */ + if ((*ev)->ev_name == NULL) + continue; + printf("%4d %s\n", ev - SET_BEGIN(crash_event_set), + (*ev)->ev_name); + } +} +CRASH_EVENT("help", help); + +/* Null event 0. */ + +static void +nop(void) +{ +} +CRASH_EVENT(NULL, nop); + +SYSCTL_NODE(_debug, OID_AUTO, crash, CTLFLAG_RD, 0, "crash tree"); + +static int +sysctl_debug_crash_test(SYSCTL_HANDLER_ARGS) +{ + int error, i = 0; + + error = sysctl_handle_int(oidp, &i, sizeof(i), req); + if (error == 0 && req->newptr != NULL) { + if (i >= 1 && i < MAX_EVENT) { + mtx_lock(&event_mtx); + KASSERT(event == 0, ("event %d was unhandled", event)); + event = i; + cv_signal(&event_cv); + mtx_unlock(&event_mtx); + } else + error = EINVAL; + } + return (error); +} +SYSCTL_PROC(_debug_crash, OID_AUTO, test, CTLTYPE_INT | CTLFLAG_RW, 0, 0, + sysctl_debug_crash_test, "I", ""); + +static void crash_thread(void *arg) { - int ev, status; + struct crash_event *evp; + int ev; + help(); while (1) { mtx_lock(&event_mtx); while ((ev = event) == 0) cv_wait(&event_cv, &event_mtx); event = 0; mtx_unlock(&event_mtx); - if (ev >= 1 && ev <= MAX_EVENT && event_names[ev] != NULL) - printf("crash: %s\n", event_names[ev]); - switch (ev) { - case -1: + if (ev == -1) { kthread_exit(0); break; - case 0: - break; - case 1: - for (ev = 1; ev <= MAX_EVENT; ev++) - if (event_names[ev] != NULL) - printf("%4d %s\n", ev, - event_names[ev]); - break; - case 2: - sx_slock(&foo); - sx_slock(&bar); - sx_sunlock(&foo); - sx_sunlock(&bar); - break; - case 3: - sx_slock(&bar); - sx_slock(&foo); - sx_sunlock(&foo); - sx_sunlock(&bar); - break; - case 4: - sx_slock(&bar); - sx_slock(&foo); - sx_slock(&bar2); - sx_sunlock(&bar2); - sx_sunlock(&foo); - sx_sunlock(&bar); - break; - case 5: - mtx_lock(&Giant); - sx_slock(&foo); - break; - case 6: - sx_sunlock(&foo); - mtx_unlock(&Giant); - break; - case 7: - sx_slock(&foo); - if (sx_try_upgrade(&foo) == 0) { - printf("crash: umm, upgrade failed?\n"); - sx_sunlock(&foo); - } - sx_xunlock(&foo); - break; - case 8: - sx_xlock(&foo); - sx_downgrade(&foo); - sx_sunlock(&foo); - break; - case 9: - sx_xlock(&foo); - sx_try_upgrade(&foo); - break; - case 10: - sx_slock(&foo); - sx_downgrade(&foo); - break; - case 11: - sx_slock(&foo); - sx_try_upgrade(&foo); - sx_sunlock(&foo); - break; - case 12: - sx_xlock(&foo); - sx_downgrade(&foo); - sx_xunlock(&foo); - break; - case 13: - kdb_enter("about to init again"); - mtx_init(&test_mtx, "test", NULL, MTX_DEF); - kdb_enter("if we haven't panic'd by now, ouch. :("); - mtx_destroy(&test_mtx); - break; - case 14: - mtx_assert(&Giant, MA_OWNED); - break; - case 15: - sx_xlock(&foo); - sx_assert(&foo, SX_SLOCKED); - sx_xunlock(&foo); - break; - case 16: - mtx_lock(&test_mtx); - sx_slock(&foo); - sx_sunlock(&foo); - mtx_unlock(&test_mtx); - break; - case 17: - bzero(&test1_mtx, sizeof(test1_mtx)); - bzero(&test2_mtx, sizeof(test2_mtx)); - mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); - mtx_init(&test2_mtx, "test2", NULL, MTX_DEF); - kdb_enter("no order yet"); - mtx_lock(&Giant); - mtx_lock(&test1_mtx); - mtx_lock(&test2_mtx); - mtx_unlock(&test2_mtx); - mtx_unlock(&test1_mtx); - mtx_unlock(&Giant); - kdb_enter("test1 and test2 should be ordered"); - mtx_destroy(&test1_mtx); - kdb_enter("test1 should be gone, test2 should be after Giant"); - mtx_destroy(&test2_mtx); - kdb_enter("test1 and test2 should be gone"); - break; - case 18: - bzero(&test1_mtx, sizeof(test1_mtx)); - bzero(&test2_mtx, sizeof(test2_mtx)); - mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); - mtx_init(&test2_mtx, "test2", NULL, MTX_DEF | - MTX_RECURSE); -#define TRYLOCK_TEST(lock, descr) do { \ - status = mtx_trylock((lock)); \ - printf("Try lock of " descr ": %d; recurse = %d\n", \ - status, (lock)->mtx_recurse); \ - if (status) \ - mtx_unlock((lock)); \ -} while(0) - TRYLOCK_TEST(&test1_mtx, "unlocked test1"); - mtx_lock(&test1_mtx); - TRYLOCK_TEST(&test1_mtx, "non-recursive locked test1"); - mtx_unlock(&test1_mtx); - TRYLOCK_TEST(&test2_mtx, "unlocked test2"); - mtx_lock(&test2_mtx); - TRYLOCK_TEST(&test2_mtx, "recursive locked test2"); - mtx_unlock(&test2_mtx); -#undef TRYLOCK_TEST - mtx_destroy(&test1_mtx); - mtx_destroy(&test2_mtx); - break; - case 19: - bzero(&test1_mtx, sizeof(test1_mtx)); - bzero(&test2_mtx, sizeof(test2_mtx)); - mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); - mtx_init(&test2_mtx, "test2", NULL, MTX_DEF); - kdb_enter("no order yet"); - status = WITNESS_DEFINEORDER(&test1_mtx, &test2_mtx); - printf("Status of test1 -> test2 set order should be 0: %d\n", - status); - kdb_enter("order should be test1 then test2"); - printf("Check order of test1 -> test2 should succeed.\n"); - mtx_lock(&test1_mtx); - witness_check_mutex(&test2_mtx); - mtx_unlock(&test1_mtx); - status = WITNESS_DEFINEORDER(&test2_mtx, &test1_mtx); - printf("Status of test2 -> test1 set order should be EDOOFUS: %d\n", - status); - printf("Clearing test order.\n"); - mtx_destroy(&test1_mtx); - mtx_destroy(&test2_mtx); - mtx_init(&test1_mtx, "test1", NULL, MTX_DEF); - mtx_init(&test2_mtx, "test2", NULL, MTX_DEF); - status = WITNESS_DEFINEORDER(&test1_mtx, &test2_mtx); - printf("Status of test1 -> test2 set order should be 0: %d\n", - status); - printf("Should get a reversal:\n"); - mtx_lock(&test2_mtx); - mtx_lock(&test1_mtx); - mtx_unlock(&test1_mtx); - mtx_unlock(&test2_mtx); - mtx_destroy(&test1_mtx); - mtx_destroy(&test2_mtx); - break; - case 20: - (void)blow_stack(); - break; - case 21: - recurse_deep(0); - break; - default: - panic("event %d is bogus\n", event); + } + if (ev < 0 || ev >= MAX_EVENT) { + printf("crash: event %d is not defined!\n", event); + continue; } + evp = SET_ITEM(crash_event_set, ev); + printf("crash: %s\n", evp->ev_name); + evp->ev_handler(); } } From owner-p4-projects@FreeBSD.ORG Tue Aug 23 08:45:46 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2271A16A421; Tue, 23 Aug 2005 08:45:46 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BEDFA16A41F for ; Tue, 23 Aug 2005 08:45:45 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6C7D543D46 for ; Tue, 23 Aug 2005 08:45:45 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7N8jjW6011810 for ; Tue, 23 Aug 2005 08:45:45 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7N8jiuT011807 for perforce@freebsd.org; Tue, 23 Aug 2005 08:45:45 GMT (envelope-from soc-cjones@freebsd.org) Date: Tue, 23 Aug 2005 08:45:45 GMT Message-Id: <200508230845.j7N8jiuT011807@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82436 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Aug 2005 08:45:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=82436 Change 82436 by soc-cjones@soc-cjones_ishtar on 2005/08/23 08:45:22 Update 'gvinum help' to list the supported commands; arguments are still not correct. Affected files ... .. //depot/projects/soc2005/gvinum/src/sbin/gvinum/gvinum.c#6 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sbin/gvinum/gvinum.c#6 (text+ko) ==== @@ -361,33 +361,14 @@ gvinum_help(void) { printf("COMMANDS\n" - "attach plex volume [rename]\n" - "attach subdisk plex [offset] [rename]\n" - " Attach a plex to a volume, or a subdisk to a plex.\n" "checkparity plex [-f] [-v]\n" " Check the parity blocks of a RAID-4 or RAID-5 plex.\n" - "concat [-f] [-n name] [-v] drives\n" - " Create a concatenated volume from the specified drives.\n" "create [-f] description-file\n" " Create a volume as described in description-file.\n" - "detach [-f] [plex | subdisk]\n" - " Detach a plex or subdisk from the volume or plex to" - "which it is\n" - " attached.\n" - "dumpconfig [drive ...]\n" - " List the configuration information stored on the" - " specified\n" - " drives, or all drives in the system if no drive names" - " are speci-\n" - " fied.\n" - "info [-v] [-V]\n" - " List information about volume manager state.\n" "init [-S size] [-w] plex | subdisk\n" " Initialize the contents of a subdisk or all the subdisks" " of a\n" " plex to all zeros.\n" - "label volume\n" - " Create a volume label.\n" "l | list [-r] [-s] [-v] [-V] [volume | plex | subdisk]\n" " List information about specified objects.\n" "ld [-r] [-s] [-v] [-V] [volume]\n" @@ -398,8 +379,6 @@ " List information about plexes.\n" "lv [-r] [-s] [-v] [-V] [volume]\n" " List information about volumes.\n" - "mirror [-f] [-n name] [-s] [-v] drives\n" - " Create a mirrored volume from the specified drives.\n" "move | mv -f drive object ...\n" " Move the object(s) to the specified drive.\n" "printconfig [file]\n" @@ -411,8 +390,6 @@ " Change the name of the specified object.\n" "rebuildparity plex [-f] [-v] [-V]\n" " Rebuild the parity blocks of a RAID-4 or RAID-5 plex.\n" - "resetconfig\n" - " Reset the complete vinum configuration.\n" "rm [-f] [-r] volume | plex | subdisk\n" " Remove an object.\n" "saveconfig\n" @@ -428,8 +405,6 @@ " Terminate access to the objects, or stop vinum if no" " parameters\n" " are specified.\n" - "stripe [-f] [-n name] [-v] drives\n" - " Create a striped volume from the specified drives.\n" ); return; From owner-p4-projects@FreeBSD.ORG Tue Aug 23 09:43:58 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D72716A421; Tue, 23 Aug 2005 09:43:58 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 29EC316A41F for ; Tue, 23 Aug 2005 09:43:57 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8435143D53 for ; Tue, 23 Aug 2005 09:43:57 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7N9hvKc021341 for ; Tue, 23 Aug 2005 09:43:57 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7N9hv3t021338 for perforce@freebsd.org; Tue, 23 Aug 2005 09:43:57 GMT (envelope-from soc-bushman@freebsd.org) Date: Tue, 23 Aug 2005 09:43:57 GMT Message-Id: <200508230943.j7N9hv3t021338@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 82439 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Aug 2005 09:43:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=82439 Change 82439 by soc-bushman@soc-bushman_stinger on 2005/08/23 09:43:42 integration made Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/Makefile#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getnetgrent.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getttyent.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_init.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_post.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_wait.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/syslog.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/usleep.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/namespace.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/un-namespace.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isalnum.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isalpha.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isblank.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/iscntrl.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isdigit.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isgraph.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/islower.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isprint.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/ispunct.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isspace.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isupper.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isxdigit.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/nextwctype.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/rpmatch.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/tolower.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/toupper.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctype.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/Makefile.inc#4 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getaddrinfo.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoent.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getservent.c#14 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet6_rth_space.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_pton.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ip6opt.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/rcmd.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/rthdr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/ko_KR.UTF-8.msg#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/ko_KR.eucKR.msg#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/pl_PL.ISO8859-2.msg#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get_entry.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_prepare.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/regex/engine.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/regex/regex.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/regex/regex2.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdio/ungetwc.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdio/vfprintf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdio/vfwscanf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdlib/grantpt.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/stdtime/strftime.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/string/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/string/wcsdup.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/string/wmemchr.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/intro.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/kse.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/mmap.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/read.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/recv.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/uuidgen.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/sys/write.2#2 integrate Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 2/3/94 -# $FreeBSD: src/lib/libc/Makefile,v 1.56 2005/01/15 05:23:56 das Exp $ +# $FreeBSD: src/lib/libc/Makefile,v 1.57 2005/08/06 16:53:54 phk Exp $ # # All library objects contain FreeBSD revision strings by default; they may be # excluded as a space-saving measure. To produce a library that does @@ -58,7 +58,7 @@ CFLAGS+= -DYP .include "${.CURDIR}/yp/Makefile.inc" .endif -.if !defined(NO_HESIOD_LIBC) +.if defined(YES_HESIOD) CFLAGS+= -DHESIOD .endif .if defined(NO_FP_LIBC) ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/Makefile.inc#2 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.121 2005/05/11 14:07:25 delphij Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.122 2005/08/12 22:46:15 simon Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -94,7 +94,8 @@ getfsent.3 getfstype.3 getfsent.3 setfsent.3 \ getfsent.3 setfstab.3 getfsent.3 getfstab.3 MLINKS+=getgrent.3 endgrent.3 getgrent.3 getgrgid.3 getgrent.3 getgrnam.3 \ - getgrent.3 setgrent.3 getgrent.3 setgroupent.3 + getgrent.3 setgrent.3 getgrent.3 setgroupent.3 \ + getgrent.3 getgrent_r.3 getgrent.3 getgrnam_r.3 getgrent.3 getgrgid_r.3 MLINKS+=gethostname.3 sethostname.3 MLINKS+=getnetgrent.3 endnetgrent.3 getnetgrent.3 innetgr.3 \ getnetgrent.3 setnetgrent.3 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getnetgrent.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)getnetgrent.c 8.2 (Berkeley) 4/27/95"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/getnetgrent.c,v 1.33 2005/01/13 18:33:01 jon Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/getnetgrent.c,v 1.34 2005/07/22 22:20:26 jon Exp $"); #include #include @@ -305,22 +305,44 @@ } static int -_buildkey(char *key, const char *str, const char *dom, int *rotation) +_revnetgr_lookup(char* lookupdom, char* map, const char* str, + const char* dom, const char* group) { - (*rotation)++; - if (*rotation > 4) - return(0); - switch(*rotation) { - case(1): sprintf((char *)key, "%s.%s", str, dom ? dom : "*"); - break; - case(2): sprintf((char *)key, "%s.*", str); - break; - case(3): sprintf((char *)key, "*.%s", dom ? dom : "*"); - break; - case(4): sprintf((char *)key, "*.*"); - break; + int y, rv, rot; + char key[MAXHOSTNAMELEN]; + char *result; + int resultlen; + + for (rot = 0; ; rot++) { + switch (rot) { + case(0): snprintf(key, MAXHOSTNAMELEN, "%s.%s", + str, dom?dom:lookupdom); + break; + case(1): snprintf(key, MAXHOSTNAMELEN, "%s.*", + str); + break; + case(2): snprintf(key, MAXHOSTNAMELEN, "*.%s", + dom?dom:lookupdom); + break; + case(3): snprintf(key, MAXHOSTNAMELEN, "*.*"); + break; + default: return(0); + } + y = yp_match(lookupdom, map, key, strlen(key), &result, + &resultlen); + if (y == 0) { + rv = _listmatch(result, group, resultlen); + free(result); + if (rv) return(1); + } else if (y != YPERR_KEY) { + /* + * If we get an error other than 'no + * such key in map' then something is + * wrong and we should stop the search. + */ + return(-1); + } } - return(1); } #endif @@ -331,11 +353,6 @@ innetgr(const char *group, const char *host, const char *user, const char *dom) { char *hst, *usr, *dm; -#ifdef YP - char *result; - int resultlen; - int rv; -#endif /* Sanity check */ if (group == NULL || !strlen(group)) @@ -350,44 +367,36 @@ /* * If we're in NIS-only mode, do the search using * NIS 'reverse netgroup' lookups. + * + * What happens with 'reverse netgroup' lookups: + * + * 1) try 'reverse netgroup' lookup + * 1.a) if host is specified and user is null: + * look in netgroup.byhost + * (try host.domain, host.*, *.domain or *.*) + * if found, return yes + * 1.b) if user is specified and host is null: + * look in netgroup.byuser + * (try host.domain, host.*, *.domain or *.*) + * if found, return yes + * 1.c) if both host and user are specified, + * don't do 'reverse netgroup' lookup. It won't work. + * 1.d) if neither host ane user are specified (why?!?) + * don't do 'reverse netgroup' lookup either. + * 2) if domain is specified and 'reverse lookup' is done: + * 'reverse lookup' was authoritative. bye bye. + * 3) otherwise, too bad, try it the slow way. */ - if (_use_only_yp) { - char _key[MAXHOSTNAMELEN]; - int rot = 0, y = 0; - + if (_use_only_yp && (host == NULL) != (user == NULL)) { + int ret; if(yp_get_default_domain(&_netgr_yp_domain)) return(0); - while(_buildkey(_key, user ? user : host, dom, &rot)) { - y = yp_match(_netgr_yp_domain, user? "netgroup.byuser": - "netgroup.byhost", _key, strlen(_key), &result, - &resultlen); - if (y) { - /* - * If we get an error other than 'no - * such key in map' then something is - * wrong and we should stop the search. - */ - if (y != YPERR_KEY) - break; - } else { - rv = _listmatch(result, group, resultlen); - free(result); - if (rv) - return(1); - else - return(0); - } - } - /* - * Couldn't match using NIS-exclusive mode. If the error - * was YPERR_MAP, then the failure happened because there - * was no netgroup.byhost or netgroup.byuser map. The odds - * are we are talking to a Sun NIS+ server in YP emulation - * mode; if this is the case, then we have to do the check - * the 'old-fashioned' way by grovelling through the netgroup - * map and resolving memberships on the fly. - */ - if (y != YPERR_MAP) + ret = _revnetgr_lookup(_netgr_yp_domain, + host?"netgroup.byhost":"netgroup.byuser", + host?host:user, dom, group); + if (ret == 1) + return(1); + else if (ret == 0 && dom != NULL) return(0); } ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getttyent.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ static char sccsid[] = "@(#)getttyent.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/getttyent.c,v 1.12 2002/02/01 01:32:19 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/getttyent.c,v 1.13 2005/07/25 17:57:15 mdodd Exp $"); #include #include @@ -105,6 +105,10 @@ zapchar = 0; tty.ty_name = p; + tty.ty_status = 0; + tty.ty_window = NULL; + tty.ty_group = _TTYS_NOGROUP; + p = skip(p); if (!*(tty.ty_getty = p)) tty.ty_getty = tty.ty_type = NULL; @@ -121,9 +125,6 @@ p = skip(p); } } - tty.ty_status = 0; - tty.ty_window = NULL; - tty.ty_group = _TTYS_NOGROUP; for (; *p; p = skip(p)) { if (scmp(_TTYS_OFF)) ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/gen/sem.c,v 1.13 2004/02/06 15:15:44 deischen Exp $ + * $FreeBSD: src/lib/libc/gen/sem.c,v 1.14 2005/08/20 07:59:13 stefanf Exp $ */ /* @@ -57,6 +57,7 @@ * sem_post() may need to be wrapped to be signal-safe. */ #include "namespace.h" +#include #include #include #include ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_init.3#2 (text+ko) ==== @@ -25,7 +25,7 @@ .\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/gen/sem_init.3,v 1.17 2004/07/02 16:45:56 ru Exp $ +.\" $FreeBSD: src/lib/libc/gen/sem_init.3,v 1.18 2005/07/13 13:15:21 rwatson Exp $ .\" .Dd February 15, 2000 .Dt SEM_INIT 3 @@ -83,6 +83,7 @@ .El .Sh SEE ALSO .Xr sem_destroy 3 , +.Xr sem_getvalue 3 , .Xr sem_post 3 , .Xr sem_trywait 3 , .Xr sem_wait 3 , ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_post.3#2 (text+ko) ==== @@ -25,7 +25,7 @@ .\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/gen/sem_post.3,v 1.14 2004/07/02 16:45:56 ru Exp $ +.\" $FreeBSD: src/lib/libc/gen/sem_post.3,v 1.15 2005/07/13 13:15:21 rwatson Exp $ .\" .Dd February 15, 2000 .Dt SEM_POST 3 @@ -67,6 +67,7 @@ points to an invalid semaphore. .El .Sh SEE ALSO +.Xr sem_getvalue 3 , .Xr sem_trywait 3 , .Xr sem_wait 3 , .Xr sem 4 ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_wait.3#2 (text+ko) ==== @@ -25,7 +25,7 @@ .\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/gen/sem_wait.3,v 1.12 2004/07/02 16:45:56 ru Exp $ +.\" $FreeBSD: src/lib/libc/gen/sem_wait.3,v 1.13 2005/07/13 13:15:22 rwatson Exp $ .\" .Dd February 15, 2000 .Dt SEM_WAIT 3 @@ -82,6 +82,7 @@ The semaphore value was zero, and thus could not be decremented. .El .Sh SEE ALSO +.Xr sem_getvalue 3 , .Xr sem_post 3 , .Xr sem 4 .Sh STANDARDS ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/syslog.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ static char sccsid[] = "@(#)syslog.c 8.5 (Berkeley) 4/29/95"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/syslog.c,v 1.35 2005/04/08 21:15:38 stefanf Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/syslog.c,v 1.36 2005/08/03 00:45:58 deischen Exp $"); #include "namespace.h" #include @@ -285,7 +285,7 @@ connectlog(); } do { - usleep(1); + _usleep(1); if (send(LogFile, tbuf, cnt, 0) >= 0) { THREAD_UNLOCK(); return; ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/usleep.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ static char sccsid[] = "@(#)usleep.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/usleep.c,v 1.28 2002/12/29 00:59:09 mike Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/usleep.c,v 1.29 2005/08/03 00:44:25 deischen Exp $"); #include "namespace.h" #include @@ -43,7 +43,7 @@ #include "un-namespace.h" int -usleep(useconds) +__usleep(useconds) useconds_t useconds; { struct timespec time_to_sleep; @@ -52,3 +52,6 @@ time_to_sleep.tv_sec = useconds / 1000000; return (_nanosleep(&time_to_sleep, NULL)); } + +__weak_reference(__usleep, usleep); +__weak_reference(__usleep, _usleep); ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/namespace.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/include/namespace.h,v 1.16 2003/05/01 19:03:13 nectar Exp $ + * $FreeBSD: src/lib/libc/include/namespace.h,v 1.17 2005/08/03 00:43:14 deischen Exp $ */ #ifndef _NAMESPACE_H_ @@ -124,6 +124,7 @@ #define sigsuspend _sigsuspend #define socket _socket #define socketpair _socketpair +#define usleep _usleep #define wait4 _wait4 #define waitpid _waitpid #define write _write ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/un-namespace.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/include/un-namespace.h,v 1.13 2003/05/01 19:03:13 nectar Exp $ + * $FreeBSD: src/lib/libc/include/un-namespace.h,v 1.14 2005/08/03 00:43:14 deischen Exp $ */ #ifndef _UN_NAMESPACE_H_ @@ -105,6 +105,7 @@ #undef sigsuspend #undef socket #undef socketpair +#undef usleep #undef wait4 #undef waitpid #undef write ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isalnum.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isalnum.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.19 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.20 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISALNUM 3 .Os .Sh NAME @@ -56,15 +56,11 @@ or .Xr isdigit 3 is true. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -103,7 +99,6 @@ .Xr isalpha 3 , .Xr isdigit 3 , .Xr iswalnum 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isalpha.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isalpha.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.18 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.19 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISALPHA 3 .Os .Sh NAME @@ -56,15 +56,11 @@ or .Xr islower 3 is true. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -101,7 +97,6 @@ .Xr islower 3 , .Xr isupper 3 , .Xr iswalpha 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isblank.3#2 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isblank.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.20 2005/01/20 09:17:03 ru Exp $ +.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.21 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISBLANK 3 .Os .Sh NAME @@ -57,13 +57,8 @@ In the "C" locale .Fn isblank successful test is limited to this characters only. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . .Sh RETURN VALUES @@ -84,7 +79,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswblank 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/iscntrl.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)iscntrl.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.17 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.18 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISCNTRL 3 .Os .Sh NAME @@ -52,15 +52,11 @@ The .Fn iscntrl function tests for any control character. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -91,7 +87,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswcntrl 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isdigit.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isdigit.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.19 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.20 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISDIGIT 3 .Os .Sh NAME @@ -68,13 +68,8 @@ but may recognize additional characters, depending on the current locale setting. .Pp -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . .Sh RETURN VALUES ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isgraph.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isgraph.3 8.2 (Berkeley) 12/11/93 -.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.19 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.20 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISGRAPH 3 .Os .Sh NAME @@ -55,15 +55,11 @@ .Pq Ql "\ " and other locale specific space-like characters. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -106,7 +102,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswgraph 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/islower.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)islower.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.17 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.18 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISLOWER 3 .Os .Sh NAME @@ -52,15 +52,11 @@ The .Fn islower function tests for any lower-case letters. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -90,7 +86,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswlower 3 , -.Xr multibyte 3 , .Xr tolower 3 , .Xr ascii 7 .Sh STANDARDS ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isprint.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isprint.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.20 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.21 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISPRINT 3 .Os .Sh NAME @@ -53,15 +53,11 @@ .Fn isprint function tests for any printing character including space .Pq Ql "\ " . -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -104,7 +100,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswprint 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/ispunct.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ispunct.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.18 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.19 2005/07/17 04:11:05 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISPUNCT 3 .Os .Sh NAME @@ -57,15 +57,11 @@ character for which .Xr isalnum 3 is true. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -96,7 +92,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswpunct 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isspace.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isspace.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.17 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.18 2005/07/17 04:11:06 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISSPACE 3 .Os .Sh NAME @@ -61,13 +61,8 @@ In the "C" locale .Fn isspace successful test is limited to this characters only. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . .Sh RETURN VALUES ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isupper.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isupper.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.18 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.19 2005/07/17 04:11:06 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISUPPER 3 .Os .Sh NAME @@ -52,15 +52,11 @@ The .Fn isupper function tests for any upper-case letter. -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . +.Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): .Pp @@ -90,7 +86,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswupper 3 , -.Xr multibyte 3 , .Xr toupper 3 , .Xr ascii 7 .Sh STANDARDS ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isxdigit.3#2 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isxdigit.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.20 2004/08/21 07:37:08 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.21 2005/07/17 04:11:06 tjr Exp $ .\" -.Dd August 21, 2004 +.Dd July 17, 2005 .Dt ISXDIGIT 3 .Os .Sh NAME @@ -71,13 +71,8 @@ but may recognize additional characters, depending on the current locale setting. .Pp -For single C -.Va char Ns s -locales (see -.Xr multibyte 3 ) -the value of the argument is -representable as an -.Li unsigned char +The value of the argument must be representable as an +.Vt unsigned char or the value of .Dv EOF . .Sh RETURN VALUES @@ -98,7 +93,6 @@ .Sh SEE ALSO .Xr ctype 3 , .Xr iswxdigit 3 , -.Xr multibyte 3 , .Xr ascii 7 .Sh STANDARDS The ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/nextwctype.3#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/locale/nextwctype.3,v 1.2 2005/01/15 11:22:13 ru Exp $ +.\" $FreeBSD: src/lib/libc/locale/nextwctype.3,v 1.3 2005/07/21 10:27:45 tjr Exp $ .\" -.Dd July 8, 2004 +.Dd July 21, 2005 .Dt NEXTWCTYPE 3 .Os .Sh NAME @@ -51,6 +51,17 @@ .Sh RETURN VALUES The .Fn nextwctype -functions returns the next character, or \-1 if there are no more. +function returns the next character, or \-1 if there are no more. +.Sh COMPATIBILITY +This function is a non-standard +.Fx +extension and should not be used where the standard +.Fn iswctype +function would suffice. .Sh SEE ALSO .Xr wctype 3 +.Sh HISTORY +The +.Fn nextwctype +function appeared in +.Fx 5.4 . ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/rpmatch.3#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/locale/rpmatch.3,v 1.2 2005/01/15 11:22:13 ru Exp $ +.\" $FreeBSD: src/lib/libc/locale/rpmatch.3,v 1.3 2005/07/21 10:53:27 tjr Exp $ .\" -.Dd January 6, 2005 +.Dd July 21, 2005 .Dt RPMATCH 3 .Os .Sh NAME @@ -59,3 +59,8 @@ .Sh SEE ALSO .Xr nl_langinfo 3 , .Xr setlocale 3 +.Sh HISTORY +The +.Fn rpmatch +function appeared in >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 23 10:21:44 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E3BA616A421; Tue, 23 Aug 2005 10:21:43 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A14A316A41F for ; Tue, 23 Aug 2005 10:21:43 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5FC4343D45 for ; Tue, 23 Aug 2005 10:21:43 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7NALhsQ023237 for ; Tue, 23 Aug 2005 10:21:43 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7NALhHQ023234 for perforce@freebsd.org; Tue, 23 Aug 2005 10:21:43 GMT (envelope-from soc-cjones@freebsd.org) Date: Tue, 23 Aug 2005 10:21:43 GMT Message-Id: <200508231021.j7NALhHQ023234@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82440 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Aug 2005 10:21:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=82440 Change 82440 by soc-cjones@soc-cjones_ishtar on 2005/08/23 10:21:38 Yeeeeeehaw! We've now got moves working, kernel-panic-less, with one exception: the new sd's consumer is set to 0. Which is, well, wrong. But this is easily fixable, after I get some sleep. Affected files ... .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#11 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#11 (text+ko) ==== @@ -170,6 +170,7 @@ struct gv_sd *newsd, *s, *s2; struct gv_plex *p; struct gv_volume *v; + struct g_consumer *cp; char errstr[ERRBUFSIZ]; printf("gv_move_sd: entering\n"); @@ -235,6 +236,9 @@ } /* Replace the old sd by the new one. */ + cp = cursd->consumer; + g_detach(cp); + printf("gv_move_sd: detached consumer\n"); LIST_FOREACH_SAFE(s, &p->subdisks, in_plex, s2) { printf("gv_move_sd: traversing in_plex list (s: %p, s->name: '%s', s2: %p)\n", s, s->name, s2); printf("gv_move_sd: for sd '%s', consumer = %p\n", s->name, s->consumer); @@ -242,7 +246,7 @@ printf("\thit!\n"); p->sdcount--; err = gv_rm_sd(sc, req, s, 0); - printf("gv_move_sd: removed subdisk\n"); + printf("gv_move_sd: removed old subdisk\n"); if (err) { printf("gv_move_sd: gv_rm_sd = %d\n", err); return err; @@ -252,24 +256,34 @@ } printf("gv_move_sd: completed traversing in_plex\n"); gv_sd_to_plex(p, newsd, 1); - newsd->flags |= GV_SD_NEWBORN; + /* newsd->flags |= GV_SD_NEWBORN; */ printf("gv_move_sd: gave sd to plex, set flags\n"); - gv_drive_modify(d); + gv_drive_modify(d); /* Creates the new providers.... */ printf("gv_move_sd: gv_drive_modify(d)\n"); - /* XXX - how to get the consumer set? s->consumer = g_new_consumer(p->geom); */ - printf("gv_move_sd: set s->consumer to %p\n", s->consumer); + printf("cp=%p, newsd=%p, newsd->provider=%p\n", cp, newsd, newsd->provider); + /* And reconnect the consumer ... */ + err = g_attach(cp, newsd->provider); + printf("gv_move_sd: called g_attach(%p, %p) => %d; new consumer %p\n", cp, newsd->provider, err, newsd->consumer); + if (err) { + g_destroy_consumer(cp); + gctl_error(req, "proposed move would create a loop in GEOM config"); + return err; + } else { + printf("gv_move_sd: set newsd->consumer to %p\n", newsd->consumer); + } + printf("gv_move_sd: before LIST_INSERT_HEAD\n"); LIST_INSERT_HEAD(&sc->subdisks, newsd, sd); - printf("gv_move_sd: inserted sd into subdisks list\n"); + printf("gv_move_sd: inserted newsd into subdisks list\n"); - LIST_FOREACH(s, &sc->subdisks, sd) + /* LIST_FOREACH(s, &sc->subdisks, sd) gv_update_sd_state(s); - printf("gv_move_sd: updated subdisk states\n"); - LIST_FOREACH(p, &sc->plexes, plex) + printf("gv_move_sd: updated subdisk states\n"); + LIST_FOREACH(p, &sc->plexes, plex) gv_update_plex_config(p); - printf("gv_move_sd: updated plex configs\n"); - LIST_FOREACH(v, &sc->volumes, volume) + printf("gv_move_sd: updated plex configs\n"); + LIST_FOREACH(v, &sc->volumes, volume) gv_update_vol_state(v); - printf("gv_move_sd: updated volume states\n"); + printf("gv_move_sd: updated volume states\n"); */ gv_save_config_all(sc); From owner-p4-projects@FreeBSD.ORG Tue Aug 23 14:12:25 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2CD5516A421; Tue, 23 Aug 2005 14:12:25 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DE4B616A41F for ; Tue, 23 Aug 2005 14:12:24 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 673D243D45 for ; Tue, 23 Aug 2005 14:12:24 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7NECOJS038849 for ; Tue, 23 Aug 2005 14:12:24 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7NECO7J038846 for perforce@freebsd.org; Tue, 23 Aug 2005 14:12:24 GMT (envelope-from soc-victor@freebsd.org) Date: Tue, 23 Aug 2005 14:12:24 GMT Message-Id: <200508231412.j7NECO7J038846@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82445 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Aug 2005 14:12:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=82445 Change 82445 by soc-victor@soc-victor_82.76.158.176 on 2005/08/23 14:11:39 1)Start the SNMP work for RFC 4022 (unified IPv4 and IPv6 TCP-MIB): a) Deactivated the old IPv4 only implementation (RFC1213-MIB) which is now deprecated - but covered by RFC 4022 for backward compatibility -. b) Added the boilerplate code for the new RFC 4022 module 2) Fixed a bug in HOST-RESOURCES-MIB's hrPrinterTable: if the printer's device is gone, this means that the printer is missing. 3)Added an example in the agent config file about how HOST-RESOURCES-MIB can be configured. Affected files ... .. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII.c#3 edit .. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII_tree.def#2 edit .. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmpd/snmpd.config#2 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/Makefile#4 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_printer_tbl.c#4 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile#2 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/INET-ADDRESS-MIB.txt#1 add .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/TCP-MIB.txt#1 add .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#1 add .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_tree.def#1 add Differences ... ==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII.c#3 (text+ko) ==== @@ -57,7 +57,9 @@ /* OR registrations */ static u_int ifmib_reg; static u_int ipmib_reg; +#if 0 static u_int tcpmib_reg; +#endif /*0*/ static u_int udpmib_reg; static u_int ipForward_reg; @@ -112,7 +114,9 @@ static const struct asn_oid oid_ifMIB = OIDX_ifMIB; static const struct asn_oid oid_ipMIB = OIDX_ipMIB; +#if 0 static const struct asn_oid oid_tcpMIB = OIDX_tcpMIB; +#endif /*0*/ static const struct asn_oid oid_udpMIB = OIDX_udpMIB; static const struct asn_oid oid_ipForward = OIDX_ipForward; static const struct asn_oid oid_linkDown = OIDX_linkDown; @@ -1441,9 +1445,10 @@ ipmib_reg = or_register(&oid_ipMIB, "The MIB module for managing IP and ICMP implementations, but " "excluding their management of IP routes.", module); - +#if 0 tcpmib_reg = or_register(&oid_tcpMIB, "The MIB module for managing TCP implementations.", module); +#endif /*0*/ udpmib_reg = or_register(&oid_udpMIB, "The MIB module for managing UDP implementations.", module); @@ -1505,7 +1510,9 @@ or_unregister(ipForward_reg); or_unregister(udpmib_reg); +#if 0 or_unregister(tcpmib_reg); +#endif /*0*/ or_unregister(ipmib_reg); or_unregister(ifmib_reg); ==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII_tree.def#2 (text+ko) ==== @@ -148,30 +148,30 @@ (25 icmpOutAddrMasks COUNTER op_icmpstat GET) (26 icmpOutAddrMaskReps COUNTER op_icmpstat GET) ) - (6 tcp - (1 tcpRtoAlgorithm INTEGER op_tcp GET) - (2 tcpRtoMin INTEGER32 op_tcp GET) - (3 tcpRtoMax INTEGER32 op_tcp GET) - (4 tcpMaxConn INTEGER32 op_tcp GET) - (5 tcpActiveOpens COUNTER op_tcp GET) - (6 tcpPassiveOpens COUNTER op_tcp GET) - (7 tcpAttemptFails COUNTER op_tcp GET) - (8 tcpEstabResets COUNTER op_tcp GET) - (9 tcpCurrEstab GAUGE op_tcp GET) - (10 tcpInSegs COUNTER op_tcp GET) - (11 tcpOutSegs COUNTER op_tcp GET) - (12 tcpRetransSegs COUNTER op_tcp GET) - (13 tcpConnTable - (1 tcpConnEntry : IPADDRESS INTEGER IPADDRESS INTEGER op_tcpconn - (1 tcpConnState INTEGER GET) - (2 tcpConnLocalAddress IPADDRESS GET) - (3 tcpConnLocalPort INTEGER GET) - (4 tcpConnRemAddress IPADDRESS GET) - (5 tcpConnRemPort INTEGER GET) - )) - (14 tcpInErrs COUNTER op_tcp GET) - (15 tcpOutRsts COUNTER op_tcp) # don't know - ) +# (6 tcp +# (1 tcpRtoAlgorithm INTEGER op_tcp GET) +# (2 tcpRtoMin INTEGER32 op_tcp GET) +# (3 tcpRtoMax INTEGER32 op_tcp GET) +# (4 tcpMaxConn INTEGER32 op_tcp GET) +# (5 tcpActiveOpens COUNTER op_tcp GET) +# (6 tcpPassiveOpens COUNTER op_tcp GET) +# (7 tcpAttemptFails COUNTER op_tcp GET) +# (8 tcpEstabResets COUNTER op_tcp GET) +# (9 tcpCurrEstab GAUGE op_tcp GET) +# (10 tcpInSegs COUNTER op_tcp GET) +# (11 tcpOutSegs COUNTER op_tcp GET) +# (12 tcpRetransSegs COUNTER op_tcp GET) +# (13 tcpConnTable +# (1 tcpConnEntry : IPADDRESS INTEGER IPADDRESS INTEGER op_tcpconn +# (1 tcpConnState INTEGER GET) +# (2 tcpConnLocalAddress IPADDRESS GET) +# (3 tcpConnLocalPort INTEGER GET) +# (4 tcpConnRemAddress IPADDRESS GET) +# (5 tcpConnRemPort INTEGER GET) +# )) +# (14 tcpInErrs COUNTER op_tcp GET) +# (15 tcpOutRsts COUNTER op_tcp) # don't know +# ) (7 udp (1 udpInDatagrams COUNTER op_udp GET) (2 udpNoPorts COUNTER op_udp GET) ==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmpd/snmpd.config#2 (text+ko) ==== @@ -80,6 +80,13 @@ # begemotSnmpdModulePath."mibII" = "/usr/local/lib/snmp_mibII.so" + +# +# Load HOST-RESOURCES-MIB module +# +begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so" + + # # Netgraph module # ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/Makefile#4 (text+ko) ==== @@ -10,7 +10,8 @@ snmp_hostres \ snmp_mibII \ snmp_netgraph \ - snmp_pf + snmp_pf \ + snmp_tcp46 INCS= snmpmod.h INCSDIR= ${INCLUDEDIR}/bsnmp ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_printer_tbl.c#4 (text+ko) ==== @@ -79,6 +79,7 @@ #include #include #include +#include #define _PATH_PRINTCAP "/etc/printcap" @@ -692,7 +693,8 @@ struct hrDeviceTblEntry* dev_entry = NULL; struct hrPrinterTblEntry* printer_entry = NULL; char dev_only[128]; - + struct stat sb; + if (pp->rp_matches_local != 1) { HR_DPRINTF((stderr, "hrPrinterTable: skipped %s because it is not a local one\n", @@ -717,6 +719,16 @@ pp->printer, dev_only )); + if (stat(pp->lp, &sb) < 0) { + if (errno == ENOENT) { + HR_DPRINTF((stderr, + "hrPrinterTable: printer %s has its device %s missing. SKIPPING it.\n", + pp->printer, + pp->lp)); + return; + } + + } dev_entry = hrDeviceTblEntry_find_by_name(dev_only); ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile#2 (text+ko) ==== @@ -8,8 +8,8 @@ MOD= mibII SRCS= mibII.c mibII_ifmib.c mibII_ip.c mibII_interfaces.c \ mibII_ipaddr.c mibII_ifstack.c mibII_rcvaddr.c \ - mibII_nettomedia.c mibII_tcp.c mibII_udp.c mibII_route.c -XSYM= ipAddrTable ifTable ifRcvAddressEntry ifMIB ipMIB tcpMIB udpMIB \ + mibII_nettomedia.c mibII_udp.c mibII_route.c +XSYM= ipAddrTable ifTable ifRcvAddressEntry ifMIB ipMIB udpMIB \ ipForward ifIndex linkDown linkUp MAN= snmp_mibII.3 From owner-p4-projects@FreeBSD.ORG Tue Aug 23 23:21:29 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 120B616A421; Tue, 23 Aug 2005 23:21:29 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C596E16A41F for ; Tue, 23 Aug 2005 23:21:28 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7242043D49 for ; Tue, 23 Aug 2005 23:21:28 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7NNLSVo077614 for ; Tue, 23 Aug 2005 23:21:28 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7NNLSXA077611 for perforce@freebsd.org; Tue, 23 Aug 2005 23:21:28 GMT (envelope-from soc-victor@freebsd.org) Date: Tue, 23 Aug 2005 23:21:28 GMT Message-Id: <200508232321.j7NNLSXA077611@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82477 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Aug 2005 23:21:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=82477 Change 82477 by soc-victor@soc-victor_82.76.158.176 on 2005/08/23 23:20:55 Finished the SNMP instrumentation for the scalars from the TCP-MIB / RFC 4022 Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#2 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#2 (text+ko) ==== @@ -29,6 +29,42 @@ * TCP-MIB implementation for SNMPd: instrumentation for RFC 4022 covering * both IPv4 and IPv6 objects */ + /* + * The code for this module is based on and inspired by code developed + * by Harti Brandt under the following copyright: + */ +/* + * Copyright (c) 2001-2003 + * Fraunhofer Institute for Open Communication Systems (FhG Fokus). + * All rights reserved. + * + * Author: Harti Brandt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Begemot: bsnmp/snmp_mibII/mibII_tcp.c,v 1.7 2005/05/23 09:03:42 brandt_h Exp $ + * + * tcp + */ #include "asn1.h" #include "snmp.h" @@ -37,18 +73,31 @@ #include "tcp46_tree.h" #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + /*a debug macro*/ #ifndef NDEBUG -#define TCP46_DPRINTF(ARGS) do { \ - fprintf(stderr, "TCP46_DEBUG: "); \ - fprintf ARGS; \ +#define TCP46_DPRINTF(ARGS) do { \ + fprintf(stderr, "TCP46_DEBUG: "); \ + fprintf ARGS; \ } while (0) #else #define TCP46_DPRINTF(ARGS) #endif /*NDEBUG*/ + /*internal id got after we'll register this module with the agent */ static u_int tcp46_registration_id = 0; @@ -62,6 +111,49 @@ +struct tcp_index { + struct asn_oid index; + struct xtcpcb *tp; +}; + +static int +tcp_compare(const void *p1, const void *p2) +{ + int result = 0; + const struct tcp_index *t1 = p1; + const struct tcp_index *t2 = p2; + assert(t1 != NULL); + assert(t2 != NULL); + if (t1 == NULL || t2 == NULL) { + return 0; + } + result = asn_compare_oid(&t1->index, &t2->index); + if ( result == 0 ) { + syslog(LOG_ERR, "tcp46 malfunction: two equal oids."); + assert(0); + } + return result; +} + + +struct tcp46_state { + struct clockinfo clock_info; + uint64_t tcp_tick; /*agent tick when this struct was last updated*/ + struct tcpstat tcpstat; /*holder for tcp stats*/ + struct xinpgen *xinpgen; /*holder for data get via sysctl; malloc'd*/ + size_t xinpgen_len; /*the allocated len of the above vector */ + u_int tcp_estab_count; /*value for the scalar named tcpCurrEstab*/ + u_int tcp4_total; /*the number of tcp4 entries*/ + + struct tcp_index *tcp4oids; /*snmp vector for the tcp4 table; malloc'd*/ + size_t tcp4oids_len; /*the allocated len of the above vector */ +}; + +static +struct tcp46_state tcp46_state_g; + + + /* * TCP mib module initialization hook. * Returns 0 on success, < 0 on error @@ -69,7 +161,18 @@ static int tcp46_init(struct lmodule * mod, int argc __unused, char *argv[] __unused) { tcp46_module = mod; + int len = 0; + memset(&tcp46_state_g, 0, sizeof(struct tcp46_state)); + len = sizeof(tcp46_state_g.clock_info); + if (sysctlbyname("kern.clockrate", &tcp46_state_g.clock_info, &len, NULL, 0) == -1) { + syslog(LOG_ERR, "kern.clockrate: %m"); + return (-1); + } + if (len != sizeof(tcp46_state_g.clock_info)) { + syslog(LOG_ERR, "kern.clockrate: wrong size"); + return (-1); + } TCP46_DPRINTF((stderr, "[%s] done.\n", __func__)); return (0); } @@ -80,8 +183,20 @@ */ static int tcp46_fini(void) { - - if( tcp46_registration_id > 0){ + if (tcp46_state_g.tcp4oids != NULL && tcp46_state_g.tcp4oids_len > 0) { + free(tcp46_state_g.tcp4oids); + tcp46_state_g.tcp4oids = NULL; + tcp46_state_g.tcp4oids_len = 0; + } + + if (tcp46_state_g.xinpgen != NULL && tcp46_state_g.xinpgen_len > 0) { + free(tcp46_state_g.xinpgen); + tcp46_state_g.xinpgen = NULL; + tcp46_state_g.xinpgen_len = 0; + } + + + if (tcp46_registration_id > 0) { or_unregister(tcp46_registration_id); } @@ -159,14 +274,245 @@ }; -int -op_tcp( struct snmp_context *ctx __unused, - struct snmp_value *value __unused, - u_int sub __unused, - u_int iidx __unused, - enum snmp_op curr_op __unused) { +static int +fetch_tcp(void) +{ + size_t len; + struct xinpgen *ptr = NULL; + struct xtcpcb *tp = NULL; + struct tcp_index *oid = NULL; + in_addr_t inaddr; + + len = sizeof(tcp46_state_g.tcpstat); + if (sysctlbyname("net.inet.tcp.stats", &tcp46_state_g.tcpstat, &len, NULL, 0) == -1) { + syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.stats) failed: %m"); + return (-1); + } + if (len != sizeof(tcp46_state_g.tcpstat)) { + syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.stats) error: wrong size"); + return (-1); + } + + len = 0; + if (sysctlbyname("net.inet.tcp.pcblist", NULL, &len, NULL, 0) == -1) { + syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.pcblist) failed: %m"); + return (-1); + } + if (len > tcp46_state_g.xinpgen_len) { + if ((ptr = realloc(tcp46_state_g.xinpgen, len)) == NULL) { + syslog(LOG_ERR, "%zu: %m", len); + return (-1); + } + tcp46_state_g.xinpgen = ptr; + tcp46_state_g.xinpgen_len = len; + } + if (sysctlbyname("net.inet.tcp.pcblist", tcp46_state_g.xinpgen, &len, NULL, 0) == -1) { + syslog(LOG_ERR, "sysctlbyname(net.inet.tcp.pcblist) failed: %m"); + return (-1); + } + + tcp46_state_g.tcp_tick = get_ticks(); + + tcp46_state_g.tcp_estab_count = 0; - return (SNMP_ERR_NOSUCHNAME); + /*First count the endpoints*/ + for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); + ptr->xig_len > sizeof(struct xinpgen); + ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) { + tp = (struct xtcpcb *)ptr; + assert(ptr != NULL); + + /* Ignore sockets for protocols other than the desired one. */ + if (((struct xinpcb *)ptr)->xi_socket.xso_protocol != IPPROTO_TCP) { + continue; + } + + /* Ignore PCBs which were freed during copyout. */ + if (tp->xt_inp.inp_gencnt > tcp46_state_g.xinpgen->xig_gen ) { + continue; + } + + + if ( (tp->xt_inp.inp_vflag & INP_IPV4) == INP_IPV4) { + tcp46_state_g.tcp4_total++; + } + + if (tp->xt_tp.t_state == TCPS_ESTABLISHED || + tp->xt_tp.t_state == TCPS_CLOSE_WAIT) { + tcp46_state_g.tcp_estab_count++; + } + } + + /*Then reallocate the SNMP holder if needed*/ + if (tcp46_state_g.tcp4oids_len < tcp46_state_g.tcp4_total) { + oid = realloc(tcp46_state_g.tcp4oids, + tcp46_state_g.tcp4_total * sizeof(tcp46_state_g.tcp4oids[0])); + if (oid == NULL) { + free(tcp46_state_g.tcp4oids); + tcp46_state_g.tcp4oids_len = 0; + return (0); + } + tcp46_state_g.tcp4oids = oid; + tcp46_state_g.tcp4oids_len = tcp46_state_g.tcp4_total; + } + + /*Fimally fill in the SNMP index*/ + memset(tcp46_state_g.tcp4oids, 0, + tcp46_state_g.tcp4_total * sizeof(tcp46_state_g.tcp4oids[0]) ); + + oid = tcp46_state_g.tcp4oids; + for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); + ptr->xig_len > sizeof(struct xinpgen); + ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) { + tp = (struct xtcpcb *)ptr; + assert(ptr != NULL); + /* Ignore sockets for protocols other than the desired one. */ + if (((struct xinpcb *)ptr)->xi_socket.xso_protocol != IPPROTO_TCP) { + continue; + } + + /* Ignore PCBs which were freed during copyout. */ + if (tp->xt_inp.inp_gencnt > tcp46_state_g.xinpgen->xig_gen ) { + continue; + } + if ( (tp->xt_inp.inp_vflag & INP_IPV4) == INP_IPV4) { + oid->tp = tp; + oid->index.len = 10; + inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); + oid->index.subs[0] = (inaddr >> 24) & 0xff; + oid->index.subs[1] = (inaddr >> 16) & 0xff; + oid->index.subs[2] = (inaddr >> 8) & 0xff; + oid->index.subs[3] = (inaddr >> 0) & 0xff; + oid->index.subs[4] = ntohs(tp->xt_inp.inp_lport); + inaddr = ntohl(tp->xt_inp.inp_faddr.s_addr); + oid->index.subs[5] = (inaddr >> 24) & 0xff; + oid->index.subs[6] = (inaddr >> 16) & 0xff; + oid->index.subs[7] = (inaddr >> 8) & 0xff; + oid->index.subs[8] = (inaddr >> 0) & 0xff; + oid->index.subs[9] = ntohs(tp->xt_inp.inp_fport); + oid++; + } + } + + /*Keep the list sorted ins SNMP index ordering*/ + qsort( tcp46_state_g.tcp4oids, + tcp46_state_g.tcp4_total, + sizeof(tcp46_state_g.tcp4oids), + tcp_compare); + + return (0); +} + + +/* + * Scalars + */ +int +op_tcp(struct snmp_context *ctx __unused, struct snmp_value *value, + u_int sub, u_int iidx __unused, enum snmp_op op) +{ + switch (op) { + + case SNMP_OP_GETNEXT:{ + assert(0); + return (SNMP_ERR_GENERR); + } + + case SNMP_OP_GET: + break; + + case SNMP_OP_SET: + return (SNMP_ERR_NOT_WRITEABLE); + + case SNMP_OP_ROLLBACK: + case SNMP_OP_COMMIT: { + assert(0); + return (SNMP_ERR_NOERROR); + + } + } + + if (tcp46_state_g.tcp_tick < this_tick) + if (fetch_tcp() == -1) + return (SNMP_ERR_GENERR); + + switch (value->var.subs[sub - 1]) { + + case LEAF_tcpRtoAlgorithm: + value->v.integer = 4; /* Van Jacobson */ + break; + +#define hz (tcp46_state_g.clock_info.hz) + + case LEAF_tcpRtoMin: + value->v.integer = 1000 * TCPTV_MIN / hz; + break; + + case LEAF_tcpRtoMax: + value->v.integer = 1000 * TCPTV_REXMTMAX / hz; + break; +#undef hz + case LEAF_tcpMaxConn: + value->v.integer = -1; + break; + + case LEAF_tcpActiveOpens: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_connattempt; + break; + + case LEAF_tcpPassiveOpens: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_accepts; + break; + + case LEAF_tcpAttemptFails: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_conndrops; + break; + + case LEAF_tcpEstabResets: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_drops; + break; + + case LEAF_tcpCurrEstab: + value->v.uint32 = tcp46_state_g.tcp_estab_count; + break; + + case LEAF_tcpInSegs: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_rcvtotal; + break; + + case LEAF_tcpOutSegs: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_sndtotal - + tcp46_state_g.tcpstat.tcps_sndrexmitpack; + break; + + case LEAF_tcpRetransSegs: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_sndrexmitpack; + break; + + case LEAF_tcpInErrs: + value->v.uint32 = tcp46_state_g.tcpstat.tcps_rcvbadsum + + tcp46_state_g.tcpstat.tcps_rcvbadoff + + tcp46_state_g.tcpstat.tcps_rcvshort; + break; + + case LEAF_tcpOutRsts: + value->v.uint32 = 0; + break; + + case LEAF_tcpHCInSegs: + value->v.counter64 = tcp46_state_g.tcpstat.tcps_rcvtotal; + break; + + case LEAF_tcpHCOutSegs: + value->v.counter64 = tcp46_state_g.tcpstat.tcps_sndtotal - + tcp46_state_g.tcpstat.tcps_sndrexmitpack; + break; + + default : + assert(0); + return (SNMP_ERR_NOSUCHNAME); + } + return (SNMP_ERR_NOERROR); } int From owner-p4-projects@FreeBSD.ORG Wed Aug 24 05:05:50 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E996116A421; Wed, 24 Aug 2005 05:05:49 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BBE8616A41F for ; Wed, 24 Aug 2005 05:05:49 +0000 (GMT) (envelope-from soc-polytopes@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7A20543D45 for ; Wed, 24 Aug 2005 05:05:49 +0000 (GMT) (envelope-from soc-polytopes@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7O55nWa010303 for ; Wed, 24 Aug 2005 05:05:49 GMT (envelope-from soc-polytopes@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7O55nim010300 for perforce@freebsd.org; Wed, 24 Aug 2005 05:05:49 GMT (envelope-from soc-polytopes@freebsd.org) Date: Wed, 24 Aug 2005 05:05:49 GMT Message-Id: <200508240505.j7O55nim010300@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-polytopes@freebsd.org using -f From: soc-polytopes To: Perforce Change Reviews Cc: Subject: PERFORCE change 82487 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 05:05:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=82487 Change 82487 by soc-polytopes@polytopes_kafka on 2005/08/24 05:05:11 Another checkpoint. Working on revamping the code that manages how we know when a transaction is complete and when to unpin our orig. buffers. Affected files ... .. //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/journal.h#3 edit .. //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_journal.c#3 edit Differences ... ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/journal.h#3 (text+ko) ==== @@ -61,6 +61,13 @@ #define UFSJ_MAX_SIZE 62 /* + * If the disk's free space drops below this level, it is critically full. + * This value is in Mega(?)bytes? + */ + +#define UFSJ_CRITICAL_FREE_SPACE 10 + +/* * A journal entry header. It contains the sector information of each of * the block in the entry, along with the size and index of the entry. * It's size is a multiple of the disk sector size, usually 512 bytes. ==== //depot/projects/soc2005/ufsj/src/sys/ufs/ufs/ufs_journal.c#3 (text+ko) ==== @@ -73,7 +73,12 @@ static int ufsj_replay(struct ufs_journal *journal); static void tbuf_done(struct buf *arg); static void ufsbuf_done(struct buf *arg) __unused; -static int ufsj_critical_full(void); +static int ufsj_critical_full(struct fs *fs); + +#define UFSJ_ALLOCATE_HEADER(aa, bb) UFS_BALLOC((aa), 0, sizeof(struct ufsj_header), FSCRED, 0, &(bb)) + +/* UFSJ_CRITICAL_FREE_SPACE is in Megs, but freespace returns frags */ +#define UFSJ_MEGS_TO_FRAGS(fs, megs) (1024*1024*(fs)->fs_fsize*(megs)) /* To be called when the FS is mounted */ int @@ -251,34 +256,34 @@ KASSERT(u_mnt != NULL, ("ufsj_start_transaction: mountpoint is NULL.")); KASSERT(handle != NULL, ("ufsj_start_transaction: handle is NULL.")); + /* Malloc new handle and header, do this now so that we can block before + acquiring jmtx. */ + /* When do we free these? */ + h = malloc(sizeof(struct ufsj_transaction), M_UFSMNT, M_WAITOK|M_ZERO); + hdr = malloc(sizeof(struct ufsj_header), M_UFSMNT, M_WAITOK|M_ZERO); + + /* Grab the Journal from ufsmount */ + jnl = u_mnt->um_journal; + /* Lock the journal */ + mtx_lock(&jnl->jmtx); + fs = u_mnt->um_fs; - jnl = u_mnt->um_journal; vp = jnl->jvp; - if (ufsj_critical_full()){ + if (ufsj_critical_full(fs)){ ufsj_flush(jnl); } /* Allocate a block for the transaction header */ - /* Think that this is not the correct function */ - /* Does anyone know what the second arg to balloc should be? */ - /* NOCRED, FSCRED? We do not want the cred of the invoker */ - /* Do we need flags? (I think probably) */ - - error = UFS_BALLOC(vp, 0, sizeof(struct ufsj_header), - FSCRED, 0, &bp); + error = UFSJ_ALLOCATE_HEADER(vp, bp); if (error){ - /* Do Cleanup */ + /* Did not allocate a buf */ goto end; } - /* Malloc new handle and header */ - h = malloc(sizeof(struct ufsj_transaction), M_UFSMNT, M_WAITOK|M_ZERO); - hdr = malloc(sizeof(struct ufsj_header), M_UFSMNT, M_WAITOK|M_ZERO); - - + /* Synch access to jnl? YES */ hdr->j_gen = jnl->gen; hdr->j_count = 0; hdr->j_type |= type; @@ -286,6 +291,9 @@ h->gen = jnl->gen; h->data = bp; h->journal = jnl; + + /* Done with journal */ + mtx_unlock(&jnl->jmtx); bp->b_data = (void *)hdr; @@ -324,8 +332,6 @@ panic("ufsj: Filled transaction"); } - /* Pin the bp */ - error = UFS_BALLOC(handle->journal->jvp, 0, sizeof(*(bp->b_data)), FSCRED, bp->b_flags, &bpc); if (error){ @@ -337,18 +343,20 @@ bpc->b_data = bp->b_data; header->j_count++; - /* How do we set the lba to bpc? */ -/* header->sectors[header->j_count] = (daddr_t)bpc; */ + + header->sectors[header->j_count] = bpc->b_lblkno; + bp->b_iodone = ufsbuf_done; + bpc->b_iodone = tbuf_done; + + /* Pin the buffer */ + /* TODO */ + /* Write the block */ + bdwrite(bp); - bp->b_iodone = tbuf_done; + return 0; end: + brelse(bpc); return error; - - /* Adjust the bufdone pointer in the bp to call us so we know when to - * retire the transaction. - */ - - return (0); } /* @@ -360,40 +368,77 @@ ufsj_end_transaction(ufsj_thandle_t handle) { -#if 0 - printf("Ended transaction: %p\n", (void *)handle); -#endif + struct buf *bp; /* Footer */ + struct fs *fs; + struct vnode *vp; + struct ufs_journal *jnl; + int error; + + KASSERT(handle != NULL, ("ufsj_end_transaction: handle is NULL.")); + + + /* Grab the Jouranl from our handle */ + jnl = handle->journal; + + + /* Lock the journal */ + mtx_lock(&jnl->jmtx); + + fs = jnl->ump->um_fs; + vp = jnl->jvp; + /* Allocate a footer block */ + error = UFSJ_ALLOCATE_HEADER(vp, bp); + if (error) + goto end; /* Allocate space in the journal. Is the journal full? If so then * synchronously flush the blocks for the oldest transactions */ + if (ufsj_critical_full(fs)) + ufsj_flush(jnl); - /* Allocate a generate number. */ - /* Write the header, footer, and data blocks */ /* Update the journal superblock with the index and the generation */ + jnl->gen++; + jnl->tail = bp->b_lblkno; + /* Write the Journal */ + + /* Done with the journal, set it free */ + mtx_unlock(&jnl->jmtx); + return (0); + end: + + /* We're still holding the journal lock (verify this) and let it go */ + if (mtx_owned(&jnl->jmtx)) + mtx_unlock(&jnl->jmtx); + + /* We got the buffer, don't forget to let it go */ + brelse(bp); + return error; } /* bufdone callback for transaction buffers. */ static void -tbuf_done(struct buf *arg) +tbuf_done(struct buf *bp) { /* Is the transaction fully written to disk? If so then unpin the * buffers. */ + /* We can also free the header */ } /* bufdone callback for the real buffers. */ static void -ufsbuf_done(struct buf *arg) +ufsbuf_done(struct buf *bp) { /* Are all of the real buffers on disk? If so then update the * journalling superblock to so show that the transaction is retired. */ + /* We can also free the transaction handle */ } static void @@ -405,14 +450,24 @@ static int ufsj_replay(struct ufs_journal *journal) { + /* Read in the journal file from the jnl superblock */ + /* Crufty 2-Pass (not really) algorithm */ + /* 1. build up list of transactions. + 2. Order the transactions + 3. write the blocks to disk + */ return (0); } static int -ufsj_critical_full(void) +ufsj_critical_full(struct fs *fs) { - /* XXX */ - return 0; + /* Is MINFREE a good value, or is it even correct? */ + int free_space = freespace(fs, MINFREE); + if (free_space < UFSJ_MEGS_TO_FRAGS(fs, UFSJ_CRITICAL_FREE_SPACE)) + return 1; + else + return 0; } From owner-p4-projects@FreeBSD.ORG Wed Aug 24 05:13:00 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C03C616A421; Wed, 24 Aug 2005 05:12:59 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8F45C16A41F for ; Wed, 24 Aug 2005 05:12:59 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1B83C43D46 for ; Wed, 24 Aug 2005 05:12:59 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7O5Cxxn010512 for ; Wed, 24 Aug 2005 05:12:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7O5CwcU010509 for perforce@freebsd.org; Wed, 24 Aug 2005 05:12:58 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 24 Aug 2005 05:12:58 GMT Message-Id: <200508240512.j7O5CwcU010509@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 82488 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 05:13:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=82488 Change 82488 by rwatson@rwatson_zoo on 2005/08/24 05:12:18 Integrate netsmp branch: padlock ata fixen if_my lock fixage mpsafe device node changets if_el locking bpf lockdown, write filters if_addr_mtx merge, fixes if_bridge locking fixes addrsel_lock now uses an sx lock also inpcb locking fix in raw_ip6.c raw_ip6 locking fix if_dc locking fixage if_sf locking fixage if_xl locking fixage Affected files ... .. //depot/projects/netsmp/src/sys/alpha/include/_limits.h#2 integrate .. //depot/projects/netsmp/src/sys/alpha/include/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/amd64/amd64/mp_machdep.c#3 integrate .. //depot/projects/netsmp/src/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/netsmp/src/sys/amd64/include/_limits.h#2 integrate .. //depot/projects/netsmp/src/sys/amd64/include/atomic.h#3 integrate .. //depot/projects/netsmp/src/sys/amd64/include/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/arm/include/_limits.h#2 integrate .. //depot/projects/netsmp/src/sys/arm/include/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/boot/common/loader.8#2 integrate .. //depot/projects/netsmp/src/sys/boot/forth/loader.conf#4 integrate .. //depot/projects/netsmp/src/sys/boot/forth/loader.conf.5#2 integrate .. //depot/projects/netsmp/src/sys/boot/i386/boot2/boot2.c#3 integrate .. //depot/projects/netsmp/src/sys/boot/i386/boot2/lib.h#2 integrate .. //depot/projects/netsmp/src/sys/boot/i386/boot2/sio.S#2 integrate .. //depot/projects/netsmp/src/sys/boot/i386/libi386/comconsole.c#2 integrate .. //depot/projects/netsmp/src/sys/boot/sparc64/loader/metadata.c#2 integrate .. //depot/projects/netsmp/src/sys/conf/files.i386#2 integrate .. //depot/projects/netsmp/src/sys/conf/newvers.sh#2 integrate .. //depot/projects/netsmp/src/sys/crypto/rijndael/rijndael-alg-fst.c#2 integrate .. //depot/projects/netsmp/src/sys/crypto/via/padlock.c#1 branch .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-all.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-chipset.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-disk.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-lowlevel.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/netsmp/src/sys/dev/ata/atapi-cd.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/firewire/if_fwip.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/fxp/if_fxp.c#8 integrate .. //depot/projects/netsmp/src/sys/dev/hme/if_hme.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/hwpmc/hwpmc_amd.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/hwpmc/hwpmc_mod.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/hwpmc/hwpmc_x86.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/ipw/if_ipw.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/iwi/if_iwi.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/iwi/if_iwireg.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/iwi/if_iwivar.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/md/md.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/my/if_my.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/my/if_myreg.h#3 integrate .. //depot/projects/netsmp/src/sys/dev/ral/if_ral.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/ral/if_ral_pccard.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/re/if_re.c#7 integrate .. //depot/projects/netsmp/src/sys/dev/sn/if_sn.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/sn/if_sn_pccard.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/sn/if_snvar.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/uart/uart_cpu_sparc64.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_ural.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/usb/uhub.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs.h#2 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_devs.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_int.h#1 branch .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_rule.c#2 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_vfsops.c#3 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#4 integrate .. //depot/projects/netsmp/src/sys/geom/eli/g_eli.c#3 integrate .. //depot/projects/netsmp/src/sys/geom/eli/g_eli.h#3 integrate .. //depot/projects/netsmp/src/sys/geom/eli/g_eli_ctl.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/geom_ctl.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/label/g_label.c#3 integrate .. //depot/projects/netsmp/src/sys/geom/label/g_label_ext2fs.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/label/g_label_reiserfs.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/stripe/g_stripe.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/stripe/g_stripe.h#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_drive.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_plex.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_rm.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_var.h#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_volume.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/acpica/acpi_wakeup.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/i386/mp_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/i386/i386/pmap.c#5 integrate .. //depot/projects/netsmp/src/sys/i386/i386/swtch.s#2 integrate .. //depot/projects/netsmp/src/sys/i386/include/_limits.h#2 integrate .. //depot/projects/netsmp/src/sys/i386/include/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/i386/isa/if_el.c#4 integrate .. //depot/projects/netsmp/src/sys/ia64/ia64/elf_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/ia64/include/_limits.h#2 integrate .. //depot/projects/netsmp/src/sys/ia64/include/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_conf.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_cpu.c#3 integrate .. //depot/projects/netsmp/src/sys/kern/kern_kse.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/kern_mib.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/sched_ule.c#4 integrate .. //depot/projects/netsmp/src/sys/kern/sys_process.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_default.c#3 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_lookup.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#6 integrate .. //depot/projects/netsmp/src/sys/modules/Makefile#2 integrate .. //depot/projects/netsmp/src/sys/modules/padlock/Makefile#1 branch .. //depot/projects/netsmp/src/sys/modules/procfs/Makefile#3 integrate .. //depot/projects/netsmp/src/sys/net/bpf.c#4 integrate .. //depot/projects/netsmp/src/sys/net/bpf.h#2 integrate .. //depot/projects/netsmp/src/sys/net/bpfdesc.h#3 integrate .. //depot/projects/netsmp/src/sys/net/bridgestp.c#4 integrate .. //depot/projects/netsmp/src/sys/net/if.c#13 integrate .. //depot/projects/netsmp/src/sys/net/if_bridge.c#7 integrate .. //depot/projects/netsmp/src/sys/net/if_ethersubr.c#7 integrate .. //depot/projects/netsmp/src/sys/net/if_vlan.c#7 integrate .. //depot/projects/netsmp/src/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c#2 integrate .. //depot/projects/netsmp/src/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.h#2 integrate .. //depot/projects/netsmp/src/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#3 integrate .. //depot/projects/netsmp/src/sys/netgraph/ng_base.c#3 integrate .. //depot/projects/netsmp/src/sys/netinet/in.c#7 integrate .. //depot/projects/netsmp/src/sys/netinet/in.h#2 integrate .. //depot/projects/netsmp/src/sys/netinet/in_pcb.h#2 integrate .. //depot/projects/netsmp/src/sys/netinet/ip_fastfwd.c#5 integrate .. //depot/projects/netsmp/src/sys/netinet/ip_fw2.c#4 integrate .. //depot/projects/netsmp/src/sys/netinet/ip_icmp.c#2 integrate .. //depot/projects/netsmp/src/sys/netinet/ip_output.c#7 integrate .. //depot/projects/netsmp/src/sys/netinet/raw_ip.c#2 integrate .. //depot/projects/netsmp/src/sys/netinet/tcp.h#2 integrate .. //depot/projects/netsmp/src/sys/netinet/tcp_input.c#2 integrate .. //depot/projects/netsmp/src/sys/netinet/tcp_sack.c#2 integrate .. //depot/projects/netsmp/src/sys/netinet/tcp_usrreq.c#3 integrate .. //depot/projects/netsmp/src/sys/netinet/udp_usrreq.c#2 integrate .. //depot/projects/netsmp/src/sys/netinet6/in6_src.c#4 integrate .. //depot/projects/netsmp/src/sys/netinet6/raw_ip6.c#4 integrate .. //depot/projects/netsmp/src/sys/netkey/key.c#3 integrate .. //depot/projects/netsmp/src/sys/opencrypto/cryptodev.c#2 integrate .. //depot/projects/netsmp/src/sys/opencrypto/xform.c#2 integrate .. //depot/projects/netsmp/src/sys/pci/if_dc.c#7 integrate .. //depot/projects/netsmp/src/sys/pci/if_de.c#9 integrate .. //depot/projects/netsmp/src/sys/pci/if_devar.h#4 integrate .. //depot/projects/netsmp/src/sys/pci/if_pcn.c#8 integrate .. //depot/projects/netsmp/src/sys/pci/if_sf.c#7 integrate .. //depot/projects/netsmp/src/sys/pci/if_sfreg.h#3 integrate .. //depot/projects/netsmp/src/sys/pci/if_ste.c#6 integrate .. //depot/projects/netsmp/src/sys/pci/if_stereg.h#2 integrate .. //depot/projects/netsmp/src/sys/pci/if_xl.c#7 integrate .. //depot/projects/netsmp/src/sys/pci/if_xlreg.h#2 integrate .. //depot/projects/netsmp/src/sys/powerpc/include/_limits.h#2 integrate .. //depot/projects/netsmp/src/sys/powerpc/include/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/powerpc/ofw/ofw_syscons.c#2 integrate .. //depot/projects/netsmp/src/sys/sparc64/conf/GENERIC#2 integrate .. //depot/projects/netsmp/src/sys/sparc64/include/_limits.h#2 integrate .. //depot/projects/netsmp/src/sys/sparc64/include/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/conf.h#3 integrate .. //depot/projects/netsmp/src/sys/sys/malloc.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/signal.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/systm.h#2 integrate .. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_softdep.c#3 integrate .. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_vfsops.c#3 integrate .. //depot/projects/netsmp/src/sys/ufs/ufs/ufs_dirhash.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/alpha/include/_limits.h#2 (text+ko) ==== @@ -28,7 +28,7 @@ * * @(#)limits.h 8.3 (Berkeley) 1/4/94 * From: NetBSD: limits.h,v 1.3 1997/04/06 08:47:31 cgd Exp - * $FreeBSD: src/sys/alpha/include/_limits.h,v 1.16 2005/01/05 20:05:50 imp Exp $ + * $FreeBSD: src/sys/alpha/include/_limits.h,v 1.17 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE__LIMITS_H_ @@ -87,4 +87,10 @@ #define __LONG_BIT 64 #define __WORD_BIT 32 +/* + * Minimum signal stack size. The current signal frame + * for Alpha is 808 bytes large. + */ +#define __MINSIGSTKSZ (1024 * 4) + #endif /* !_MACHINE__LIMITS_H_ */ ==== //depot/projects/netsmp/src/sys/alpha/include/signal.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/signal.h,v 1.12 2005/01/05 20:05:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/signal.h,v 1.13 2005/08/20 16:44:40 stefanf Exp $ */ /* From: NetBSD: signal.h,v 1.3 1997/04/06 08:47:43 cgd Exp */ /*- @@ -36,14 +36,6 @@ typedef long sig_atomic_t; -#if __XSI_VISIBLE -/* - * Minimum signal stack size. The current signal frame - * for Alpha is 808 bytes large. - */ -#define MINSIGSTKSZ (1024 * 4) -#endif - /* * Only the kernel should need these old type definitions. */ ==== //depot/projects/netsmp/src/sys/amd64/amd64/mp_machdep.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.261 2005/07/21 21:46:09 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.262 2005/08/19 22:10:19 pjd Exp $"); #include "opt_cpu.h" #include "opt_kdb.h" @@ -812,58 +812,6 @@ ia32_pause(); } -/* - * This is about as magic as it gets. fortune(1) has got similar code - * for reversing bits in a word. Who thinks up this stuff?? - * - * Yes, it does appear to be consistently faster than: - * while (i = ffs(m)) { - * m >>= i; - * bits++; - * } - * and - * while (lsb = (m & -m)) { // This is magic too - * m &= ~lsb; // or: m ^= lsb - * bits++; - * } - * Both of these latter forms do some very strange things on gcc-3.1 with - * -mcpu=pentiumpro and/or -march=pentiumpro and/or -O or -O2. - * There is probably an SSE or MMX popcnt instruction. - * - * I wonder if this should be in libkern? - * - * XXX Stop the presses! Another one: - * static __inline u_int32_t - * popcnt1(u_int32_t v) - * { - * v -= ((v >> 1) & 0x55555555); - * v = (v & 0x33333333) + ((v >> 2) & 0x33333333); - * v = (v + (v >> 4)) & 0x0F0F0F0F; - * return (v * 0x01010101) >> 24; - * } - * The downside is that it has a multiply. With a pentium3 with - * -mcpu=pentiumpro and -march=pentiumpro then gcc-3.1 will use - * an imull, and in that case it is faster. In most other cases - * it appears slightly slower. - * - * Another variant (also from fortune): - * #define BITCOUNT(x) (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255) - * #define BX_(x) ((x) - (((x)>>1)&0x77777777) \ - * - (((x)>>2)&0x33333333) \ - * - (((x)>>3)&0x11111111)) - */ -static __inline u_int32_t -popcnt(u_int32_t m) -{ - - m = (m & 0x55555555) + ((m & 0xaaaaaaaa) >> 1); - m = (m & 0x33333333) + ((m & 0xcccccccc) >> 2); - m = (m & 0x0f0f0f0f) + ((m & 0xf0f0f0f0) >> 4); - m = (m & 0x00ff00ff) + ((m & 0xff00ff00) >> 8); - m = (m & 0x0000ffff) + ((m & 0xffff0000) >> 16); - return m; -} - static void smp_targeted_tlb_shootdown(u_int mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2) { @@ -878,7 +826,7 @@ mask &= ~PCPU_GET(cpumask); if (mask == 0) return; - ncpu = popcnt(mask); + ncpu = bitcount32(mask); if (ncpu > othercpus) { /* XXX this should be a panic offence */ printf("SMP: tlb shootdown to %d other cpus (only have %d)\n", ==== //depot/projects/netsmp/src/sys/amd64/amd64/pmap.c#4 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.520 2005/08/11 23:38:01 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.525 2005/08/22 20:02:40 alc Exp $"); /* * Manages physical address maps. @@ -205,7 +205,7 @@ static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva, pd_entry_t ptepde); -static void pmap_remove_page(struct pmap *pmap, vm_offset_t va); +static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); @@ -288,16 +288,34 @@ /* Return a pointer to the PDP slot that corresponds to a VA */ static __inline pdp_entry_t * +pmap_pml4e_to_pdpe(pml4_entry_t *pml4e, vm_offset_t va) +{ + pdp_entry_t *pdpe; + + pdpe = (pdp_entry_t *)PHYS_TO_DMAP(*pml4e & PG_FRAME); + return (&pdpe[pmap_pdpe_index(va)]); +} + +/* Return a pointer to the PDP slot that corresponds to a VA */ +static __inline pdp_entry_t * pmap_pdpe(pmap_t pmap, vm_offset_t va) { pml4_entry_t *pml4e; - pdp_entry_t *pdpe; pml4e = pmap_pml4e(pmap, va); if (pml4e == NULL || (*pml4e & PG_V) == 0) return NULL; - pdpe = (pdp_entry_t *)PHYS_TO_DMAP(*pml4e & PG_FRAME); - return (&pdpe[pmap_pdpe_index(va)]); + return (pmap_pml4e_to_pdpe(pml4e, va)); +} + +/* Return a pointer to the PD slot that corresponds to a VA */ +static __inline pd_entry_t * +pmap_pdpe_to_pde(pdp_entry_t *pdpe, vm_offset_t va) +{ + pd_entry_t *pde; + + pde = (pd_entry_t *)PHYS_TO_DMAP(*pdpe & PG_FRAME); + return (&pde[pmap_pde_index(va)]); } /* Return a pointer to the PD slot that corresponds to a VA */ @@ -305,13 +323,11 @@ pmap_pde(pmap_t pmap, vm_offset_t va) { pdp_entry_t *pdpe; - pd_entry_t *pde; pdpe = pmap_pdpe(pmap, va); if (pdpe == NULL || (*pdpe & PG_V) == 0) return NULL; - pde = (pd_entry_t *)PHYS_TO_DMAP(*pdpe & PG_FRAME); - return (&pde[pmap_pde_index(va)]); + return (pmap_pdpe_to_pde(pdpe, va)); } /* Return a pointer to the PT slot that corresponds to a VA */ @@ -786,7 +802,9 @@ pde = *pdep; if (pde) { if ((pde & PG_PS) != 0) { - rtval = (pde & ~PDRMASK) | (va & PDRMASK); + KASSERT((pde & PG_FRAME & PDRMASK) == 0, + ("pmap_extract: bad pde")); + rtval = (pde & PG_FRAME) | (va & PDRMASK); PMAP_UNLOCK(pmap); return rtval; } @@ -819,7 +837,9 @@ if (pdep != NULL && (pde = *pdep)) { if (pde & PG_PS) { if ((pde & PG_RW) || (prot & VM_PROT_WRITE) == 0) { - m = PHYS_TO_VM_PAGE((pde & ~PDRMASK) | + KASSERT((pde & PG_FRAME & PDRMASK) == 0, + ("pmap_extract_and_hold: bad pde")); + m = PHYS_TO_VM_PAGE((pde & PG_FRAME) | (va & PDRMASK)); vm_page_hold(m); } @@ -1510,16 +1530,17 @@ * Remove a single page from a process address space */ static void -pmap_remove_page(pmap_t pmap, vm_offset_t va) +pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { - pd_entry_t ptepde; pt_entry_t *pte; PMAP_LOCK_ASSERT(pmap, MA_OWNED); - pte = pmap_pte_pde(pmap, va, &ptepde); - if (pte == NULL || (*pte & PG_V) == 0) + if ((*pde & PG_V) == 0) + return; + pte = pmap_pde_to_pte(pde, va); + if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, ptepde); + pmap_remove_pte(pmap, pte, va, *pde); pmap_invalidate_page(pmap, va); } @@ -1558,7 +1579,7 @@ if (sva + PAGE_SIZE == eva) { pde = pmap_pde(pmap, sva); if (pde && (*pde & PG_PS) == 0) { - pmap_remove_page(pmap, sva); + pmap_remove_page(pmap, sva, pde); goto out; } } @@ -1569,13 +1590,13 @@ break; pml4e = pmap_pml4e(pmap, sva); - if (pml4e == 0) { + if ((*pml4e & PG_V) == 0) { va_next = (sva + NBPML4) & ~PML4MASK; continue; } - pdpe = pmap_pdpe(pmap, sva); - if (pdpe == 0) { + pdpe = pmap_pml4e_to_pdpe(pml4e, sva); + if ((*pdpe & PG_V) == 0) { va_next = (sva + NBPDP) & ~PDPMASK; continue; } @@ -1585,9 +1606,7 @@ */ va_next = (sva + NBPDR) & ~PDRMASK; - pde = pmap_pde(pmap, sva); - if (pde == 0) - continue; + pde = pmap_pdpe_to_pde(pdpe, sva); ptpaddr = *pde; /* @@ -1724,22 +1743,20 @@ for (; sva < eva; sva = va_next) { pml4e = pmap_pml4e(pmap, sva); - if (pml4e == 0) { + if ((*pml4e & PG_V) == 0) { va_next = (sva + NBPML4) & ~PML4MASK; continue; } - pdpe = pmap_pdpe(pmap, sva); - if (pdpe == 0) { + pdpe = pmap_pml4e_to_pdpe(pml4e, sva); + if ((*pdpe & PG_V) == 0) { va_next = (sva + NBPDP) & ~PDPMASK; continue; } va_next = (sva + NBPDR) & ~PDRMASK; - pde = pmap_pde(pmap, sva); - if (pde == NULL) - continue; + pde = pmap_pdpe_to_pde(pdpe, sva); ptpaddr = *pde; /* @@ -1820,7 +1837,6 @@ vm_paddr_t pa; register pt_entry_t *pte; vm_paddr_t opa; - pd_entry_t ptepde; pt_entry_t origpte, newpte; vm_page_t mpte, om; @@ -1855,7 +1871,7 @@ } #endif - pte = pmap_pte_pde(pmap, va, &ptepde); + pte = pmap_pte(pmap, va); /* * Page Directory table entry not valid, we need a new PT page @@ -1915,23 +1931,23 @@ * handle validating new mapping. */ if (opa) { - int err; if (origpte & PG_W) pmap->pm_stats.wired_count--; if (origpte & PG_MANAGED) { om = PHYS_TO_VM_PAGE(opa); pmap_remove_entry(pmap, om, va); } - err = pmap_unuse_pt(pmap, va, ptepde); - if (err) - panic("pmap_enter: pte vanished, va: 0x%lx", va); + if (mpte != NULL) { + mpte->wire_count--; + KASSERT(mpte->wire_count > 0, + ("pmap_enter: missing reference to page table page," + " va: 0x%lx", va)); + } } else pmap->pm_stats.resident_count++; /* - * Enter on the PV list if part of our managed memory. Note that we - * raise IPL while manipulating pv_table since pmap_enter can be - * called at interrupt time. + * Enter on the PV list if part of our managed memory. */ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0) { pmap_insert_entry(pmap, va, m); @@ -2264,24 +2280,21 @@ break; pml4e = pmap_pml4e(src_pmap, addr); - if (pml4e == 0) { + if ((*pml4e & PG_V) == 0) { va_next = (addr + NBPML4) & ~PML4MASK; continue; } - pdpe = pmap_pdpe(src_pmap, addr); - if (pdpe == 0) { + pdpe = pmap_pml4e_to_pdpe(pml4e, addr); + if ((*pdpe & PG_V) == 0) { va_next = (addr + NBPDP) & ~PDPMASK; continue; } va_next = (addr + NBPDR) & ~PDRMASK; - pde = pmap_pde(src_pmap, addr); - if (pde) - srcptepaddr = *pde; - else - continue; + pde = pmap_pdpe_to_pde(pdpe, addr); + srcptepaddr = *pde; if (srcptepaddr == 0) continue; ==== //depot/projects/netsmp/src/sys/amd64/include/_limits.h#2 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)limits.h 8.3 (Berkeley) 1/4/94 - * $FreeBSD: src/sys/amd64/include/_limits.h,v 1.10 2005/01/05 20:17:20 imp Exp $ + * $FreeBSD: src/sys/amd64/include/_limits.h,v 1.11 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE__LIMITS_H_ @@ -83,4 +83,10 @@ #define __LONG_BIT 64 #define __WORD_BIT 32 +/* + * Minimum signal stack size. The current signal frame + * for i386 is 408 bytes large. + */ +#define __MINSIGSTKSZ (512 * 4) + #endif /* !_MACHINE__LIMITS_H_ */ ==== //depot/projects/netsmp/src/sys/amd64/include/atomic.h#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.36 2005/07/21 22:35:02 peter Exp $ + * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.37 2005/08/18 14:36:47 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ @@ -371,6 +371,26 @@ #define atomic_cmpset_rel_32 atomic_cmpset_rel_int #define atomic_readandclear_32 atomic_readandclear_int +/* Operations on 64-bit quad words. */ +#define atomic_set_64 atomic_set_long +#define atomic_set_acq_64 atomic_set_acq_long +#define atomic_set_rel_64 atomic_set_rel_long +#define atomic_clear_64 atomic_clear_long +#define atomic_clear_acq_64 atomic_clear_acq_long +#define atomic_clear_rel_64 atomic_clear_rel_long +#define atomic_add_64 atomic_add_long +#define atomic_add_acq_64 atomic_add_acq_long +#define atomic_add_rel_64 atomic_add_rel_long +#define atomic_subtract_64 atomic_subtract_long +#define atomic_subtract_acq_64 atomic_subtract_acq_long +#define atomic_subtract_rel_64 atomic_subtract_rel_long +#define atomic_load_acq_64 atomic_load_acq_long +#define atomic_store_rel_64 atomic_store_rel_long +#define atomic_cmpset_64 atomic_cmpset_long +#define atomic_cmpset_acq_64 atomic_cmpset_acq_long +#define atomic_cmpset_rel_64 atomic_cmpset_rel_long +#define atomic_readandclear_64 atomic_readandclear_long + /* Operations on pointers. */ #define atomic_set_ptr atomic_set_long #define atomic_set_acq_ptr atomic_set_acq_long ==== //depot/projects/netsmp/src/sys/amd64/include/signal.h#2 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * @(#)signal.h 8.1 (Berkeley) 6/11/93 - * $FreeBSD: src/sys/amd64/include/signal.h,v 1.28 2005/01/05 20:17:20 imp Exp $ + * $FreeBSD: src/sys/amd64/include/signal.h,v 1.29 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE_SIGNAL_H_ @@ -43,14 +43,6 @@ typedef long sig_atomic_t; -#if __XSI_VISIBLE -/* - * Minimum signal stack size. The current signal frame - * for i386 is 408 bytes large. - */ -#define MINSIGSTKSZ (512 * 4) -#endif - #if __BSD_VISIBLE #include /* codes for SIGILL, SIGFPE */ ==== //depot/projects/netsmp/src/sys/arm/include/_limits.h#2 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)limits.h 8.3 (Berkeley) 1/4/94 - * $FreeBSD: src/sys/arm/include/_limits.h,v 1.8 2005/01/05 21:58:48 imp Exp $ + * $FreeBSD: src/sys/arm/include/_limits.h,v 1.9 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE__LIMITS_H_ @@ -94,4 +94,7 @@ #endif #define __WORD_BIT 32 +/* Minimum signal stack size. */ +#define __MINSIGSTKSZ (1024 * 4) + #endif /* !_MACHINE__LIMITS_H_ */ ==== //depot/projects/netsmp/src/sys/arm/include/signal.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * @(#)signal.h 8.1 (Berkeley) 6/11/93 * from: FreeBSD: src/sys/i386/include/signal.h,v 1.13 2000/11/09 * from: FreeBSD: src/sys/sparc64/include/signal.h,v 1.6 2001/09/30 18:52:17 - * $FreeBSD: src/sys/arm/include/signal.h,v 1.6 2005/01/05 21:58:48 imp Exp $ + * $FreeBSD: src/sys/arm/include/signal.h,v 1.7 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE_SIGNAL_H_ @@ -39,10 +39,6 @@ typedef long sig_atomic_t; -#if __XSI_VISIBLE -#define MINSIGSTKSZ (1024 * 4) -#endif - #if __BSD_VISIBLE struct sigcontext { ==== //depot/projects/netsmp/src/sys/boot/common/loader.8#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.82 2005/06/14 08:49:14 ru Exp $ +.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.83 2005/08/18 01:39:43 iedowse Exp $ .\" -.Dd May 27, 2005 +.Dd August 18, 2005 .Dt LOADER 8 .Os .Sh NAME @@ -392,6 +392,19 @@ List of semicolon-separated search path for bootable kernels. The default is .Dq Li kernel . +.It Va comconsole_speed +Defines the speed of the serial console (i386 and amd64 only). +If the previous boot stage indicated that a serial console is in use +then this variable is initialized to the current speed of the console +serial port. +Otherwise it is set to 9600 unless this was overridden using the +.Va BOOT_COMCONSOLE_SPEED +variable when +.Nm +was compiled. +Changes to the +.Va comconsole_speed +variable take effect immediately. .It Va console Defines the current console or consoles. Multiple consoles may be specified. ==== //depot/projects/netsmp/src/sys/boot/forth/loader.conf#4 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.98 2005/08/07 09:41:53 krion Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.99 2005/08/18 01:39:43 iedowse Exp $ ############################################################## ### Basic configuration options ############################ @@ -47,6 +47,7 @@ # allowed to interrupt autoboot process and # escape to the loader prompt #beastie_disable="NO" # Turn the beastie boot menu on and off +#comconsole_speed="9600" # Set the current serial console speed #console="vidconsole" # A comma separated list of console(s) #currdev="disk1s1a" # Set the current device module_path="/boot/modules" # Set the module search path ==== //depot/projects/netsmp/src/sys/boot/forth/loader.conf.5#2 (text+ko) ==== @@ -22,8 +22,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.23 2004/11/07 17:01:08 krion Exp $ -.Dd November 7, 2004 +.\" $FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.24 2005/08/18 01:39:43 iedowse Exp $ +.Dd August 18, 2005 .Dt LOADER.CONF 5 .Os .Sh NAME @@ -164,6 +164,18 @@ .Pq Dq Pa /boot/splash.bmp Name of the bitmap to be loaded. Any other name can be used. +.It Va comconsole_speed +.Po Dq 9600 +or the value of the +.Va BOOT_COMCONSOLE_SPEED +variable when +.Xr loader 8 +was compiled +.Pc . +Sets the speed of the serial console. +If the previous boot loader stage specified that a serial console +is in use then the default speed is determined from the current +serial port speed setting. .It Va console .Pq Dq vidconsole .Dq comconsole ==== //depot/projects/netsmp/src/sys/boot/i386/boot2/boot2.c#3 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.73 2005/08/06 00:33:42 ssouhlal Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.74 2005/08/18 00:42:45 iedowse Exp $"); #include #include @@ -63,7 +63,6 @@ #define RBX_NOINTR 0x1c /* -n */ /* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ #define RBX_DUAL 0x1d /* -D */ -#define RBX_PROBEKBD 0x1e /* -P */ /* 0x1f is reserved for log2(RB_BOOTINFO). */ /* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */ @@ -91,7 +90,7 @@ extern uint32_t _end; -static const char optstr[NOPT] = "DhaCgmnPprsv"; +static const char optstr[NOPT] = "DhaCgmnprsv"; /* Also 'P', 'S' */ static const unsigned char flags[NOPT] = { RBX_DUAL, RBX_SERIAL, @@ -100,7 +99,6 @@ RBX_GDB, RBX_MUTE, RBX_NOINTR, - RBX_PROBEKBD, RBX_PAUSE, RBX_DFLTROOT, RBX_SINGLE, @@ -122,6 +120,7 @@ static char cmd[512]; static char kname[1024]; static uint32_t opts; +static int comspeed = SIOSPD; static struct bootinfo bootinfo; static uint8_t ioctrl = IO_KEYBOARD; @@ -390,34 +389,48 @@ parse() { char *arg = cmd; - char *p, *q; + char *ep, *p, *q; + const char *cp; unsigned int drv; - int c, i; + int c, i, j; while ((c = *arg++)) { if (c == ' ' || c == '\t' || c == '\n') continue; for (p = arg; *p && *p != '\n' && *p != ' ' && *p != '\t'; p++); + ep = p; if (*p) *p++ = 0; if (c == '-') { while ((c = *arg++)) { + if (c == 'P') { + if (*(uint8_t *)PTOV(0x496) & 0x10) { + cp = "yes"; + } else { + opts |= 1 << RBX_DUAL | 1 << RBX_SERIAL; + cp = "no"; + } + printf("Keyboard: %s\n", cp); + continue; + } else if (c == 'S') { + j = 0; + while ((unsigned int)(i = *arg++ - '0') <= 9) + j = j * 10 + i; + if (j > 0 && i == -'0') { + comspeed = j; + break; + } + /* Fall through to error below ('S' not in optstr[]). */ + } for (i = 0; c != optstr[i]; i++) if (i == NOPT - 1) return -1; opts ^= 1 << flags[i]; } - if (opts & 1 << RBX_PROBEKBD) { - i = *(uint8_t *)PTOV(0x496) & 0x10; - printf("Keyboard: %s\n", i ? "yes" : "no"); - if (!i) - opts |= 1 << RBX_DUAL | 1 << RBX_SERIAL; - opts &= ~(1 << RBX_PROBEKBD); - } ioctrl = opts & 1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) : opts & 1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD; if (ioctrl & IO_SERIAL) - sio_init(); + sio_init(115200 / comspeed); } else { for (q = arg--; *q && *q != '('; q++); if (*q) { @@ -459,7 +472,7 @@ ? DRV_HARD : 0) + drv; dsk_meta = 0; } - if ((i = p - arg - !*(p - 1))) { + if ((i = ep - arg)) { if ((size_t)i >= sizeof(kname)) return -1; memcpy(kname, arg, i + 1); ==== //depot/projects/netsmp/src/sys/boot/i386/boot2/lib.h#2 (text+ko) ==== @@ -14,10 +14,10 @@ */ /* - * $FreeBSD: src/sys/boot/i386/boot2/lib.h,v 1.2 1999/08/28 00:40:02 peter Exp $ + * $FreeBSD: src/sys/boot/i386/boot2/lib.h,v 1.3 2005/08/18 00:42:45 iedowse Exp $ */ -void sio_init(void); +void sio_init(int); void sio_flush(void); void sio_putc(int); int sio_getc(void); ==== //depot/projects/netsmp/src/sys/boot/i386/boot2/sio.S#2 (text+ko) ==== @@ -12,12 +12,11 @@ * warranties of merchantability and fitness for a particular * purpose. * - * $FreeBSD: src/sys/boot/i386/boot2/sio.S,v 1.9 2004/05/14 20:29:29 ru Exp $ + * $FreeBSD: src/sys/boot/i386/boot2/sio.S,v 1.10 2005/08/18 00:42:45 iedowse Exp $ */ .set SIO_PRT,SIOPRT # Base port .set SIO_FMT,SIOFMT # 8N1 - .set SIO_DIV,(115200/SIOSPD) # 115200 / SPD .globl sio_init .globl sio_flush @@ -25,14 +24,14 @@ .globl sio_getc .globl sio_ischar -/* void sio_init(void) */ +/* void sio_init(int div) */ sio_init: movw $SIO_PRT+0x3,%dx # Data format reg movb $SIO_FMT|0x80,%al # Set format outb %al,(%dx) # and DLAB pushl %edx # Save subb $0x3,%dl # Divisor latch reg - movw $SIO_DIV,%ax # Set + movl 0x8(%esp),%eax # Set outw %ax,(%dx) # BPS popl %edx # Restore movb $SIO_FMT,%al # Clear @@ -41,6 +40,8 @@ movb $0x3,%al # Set RTS, outb %al,(%dx) # DTR incl %edx # Line status reg + call sio_flush + ret $0x4 /* void sio_flush(void) */ ==== //depot/projects/netsmp/src/sys/boot/i386/libi386/comconsole.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.10 2003/09/16 11:24:23 bde Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/comconsole.c,v 1.11 2005/08/18 01:39:43 iedowse Exp $"); #include #include @@ -35,6 +35,7 @@ #define COMC_FMT 0x3 /* 8N1 */ #define COMC_TXWAIT 0x40000 /* transmit timeout */ #define COMC_BPS(x) (115200 / (x)) /* speed to DLAB divisor */ +#define COMC_DIV2BPS(x) (115200 / (x)) /* DLAB divisor to speed */ #ifndef COMPORT #define COMPORT 0x3f8 @@ -47,9 +48,15 @@ static int comc_init(int arg); static void comc_putchar(int c); static int comc_getchar(void); +static int comc_getspeed(void); static int comc_ischar(void); +static int comc_parsespeed(const char *string); +static void comc_setup(int speed); +static int comc_speed_set(struct env_var *ev, int flags, + const void *value); static int comc_started; +static int comc_curspeed; struct console comconsole = { "comconsole", @@ -65,8 +72,36 @@ static void comc_probe(struct console *cp) { + char speedbuf[16]; + char *cons, *speedenv; + int speed; + /* XXX check the BIOS equipment list? */ cp->c_flags |= (C_PRESENTIN | C_PRESENTOUT); + + if (comc_curspeed == 0) { + comc_curspeed = COMSPEED; + /* >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 24 09:46:35 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 84C3016A421; Wed, 24 Aug 2005 09:46:34 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2635D16A41F for ; Wed, 24 Aug 2005 09:46:34 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E79D943D46 for ; Wed, 24 Aug 2005 09:46:33 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7O9kX5b027297 for ; Wed, 24 Aug 2005 09:46:33 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7O9kXPt027294 for perforce@freebsd.org; Wed, 24 Aug 2005 09:46:33 GMT (envelope-from soc-cjones@freebsd.org) Date: Wed, 24 Aug 2005 09:46:33 GMT Message-Id: <200508240946.j7O9kXPt027294@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82492 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 09:46:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=82492 Change 82492 by soc-cjones@soc-cjones_ishtar on 2005/08/24 09:45:41 Getting closer! Now it dies because the topology becomes inconsistent, while saving config. Looks like g_attach doesn't like it, problem's probably somewhere to be found via redo_rank. Affected files ... .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#12 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#12 (text+ko) ==== @@ -262,6 +262,7 @@ printf("gv_move_sd: gv_drive_modify(d)\n"); printf("cp=%p, newsd=%p, newsd->provider=%p\n", cp, newsd, newsd->provider); /* And reconnect the consumer ... */ + newsd->consumer = cp; err = g_attach(cp, newsd->provider); printf("gv_move_sd: called g_attach(%p, %p) => %d; new consumer %p\n", cp, newsd->provider, err, newsd->consumer); if (err) { @@ -271,6 +272,7 @@ } else { printf("gv_move_sd: set newsd->consumer to %p\n", newsd->consumer); } + newsd->consumer = cp; printf("gv_move_sd: before LIST_INSERT_HEAD\n"); LIST_INSERT_HEAD(&sc->subdisks, newsd, sd); printf("gv_move_sd: inserted newsd into subdisks list\n"); From owner-p4-projects@FreeBSD.ORG Wed Aug 24 10:38:38 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED11A16A421; Wed, 24 Aug 2005 10:38:37 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C4EED16A41F for ; Wed, 24 Aug 2005 10:38:37 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7C13C43D45 for ; Wed, 24 Aug 2005 10:38:37 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7OAcbua029073 for ; Wed, 24 Aug 2005 10:38:37 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7OAcbe8029066 for perforce@freebsd.org; Wed, 24 Aug 2005 10:38:37 GMT (envelope-from soc-victor@freebsd.org) Date: Wed, 24 Aug 2005 10:38:37 GMT Message-Id: <200508241038.j7OAcbe8029066@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82494 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 10:38:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=82494 Change 82494 by soc-victor@soc-victor_82.76.158.176 on 2005/08/24 10:38:21 - Added the SNMP instrumentation for the deprecated tcpConnTable (IPv4 only, backward compatible). - Added the missing Makefile for this tcp46 module. Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#1 add .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#3 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#3 (text+ko) ==== @@ -85,7 +85,11 @@ #include #include +/*forward declaration*/ +static int +fetch_tcp(void); + /*a debug macro*/ #ifndef NDEBUG #define TCP46_DPRINTF(ARGS) do { \ @@ -109,6 +113,20 @@ static const struct asn_oid oid_tcp46 = OIDX_tcpMIB; /*see the generated file tcp46_oid.h*/ +enum TCP_ConnState { + TCPS_closed = 1, + TCPS_listen = 2, + TCPS_synSent = 3, + TCPS_synReceived = 4, + TCPS_established = 5, + TCPS_finWait1 = 6, + TCPS_finWait2 = 7, + TCPS_closeWait = 8, + TCPS_lastAck = 9, + TCPS_closing = 10, + TCPS_timeWait = 11, + TCPS_deleteTCB = 12 +}; struct tcp_index { @@ -251,7 +269,12 @@ tcp46_module); if (tcp46_registration_id == 0) { syslog(LOG_ERR, "Failed to register the tcp46 module." ); + return; } + if (fetch_tcp() == -1) { + syslog(LOG_ERR, "Failed to fetch the TCP data in tcp46 module." ); + } + TCP46_DPRINTF((stderr, "[%s] done.\n ", __func__)); } @@ -314,6 +337,7 @@ tcp46_state_g.tcp_tick = get_ticks(); tcp46_state_g.tcp_estab_count = 0; + tcp46_state_g.tcp4_total = 0; /*First count the endpoints*/ for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); @@ -323,12 +347,21 @@ assert(ptr != NULL); /* Ignore sockets for protocols other than the desired one. */ - if (((struct xinpcb *)ptr)->xi_socket.xso_protocol != IPPROTO_TCP) { + if ((( struct xtcpcb *)ptr)->xt_socket.xso_protocol != IPPROTO_TCP) { + TCP46_DPRINTF((stderr, "[%s] One tcp4 conn. ignored (protocol missmatch: %d)\n ", + __func__, + ((struct xinpcb *)ptr)->xi_socket.xso_protocol + )); + continue; } /* Ignore PCBs which were freed during copyout. */ if (tp->xt_inp.inp_gencnt > tcp46_state_g.xinpgen->xig_gen ) { + TCP46_DPRINTF((stderr, "[%s] One tcp4 conn. ignored (freed during copyout)\n ", + __func__ + )); + continue; } @@ -343,6 +376,10 @@ } } + TCP46_DPRINTF((stderr, "[%s] Got %d tcp4 connections.\n ", + __func__, + tcp46_state_g.tcp4_total)); + /*Then reallocate the SNMP holder if needed*/ if (tcp46_state_g.tcp4oids_len < tcp46_state_g.tcp4_total) { oid = realloc(tcp46_state_g.tcp4oids, @@ -356,7 +393,7 @@ tcp46_state_g.tcp4oids_len = tcp46_state_g.tcp4_total; } - /*Fimally fill in the SNMP index*/ + /*Finally fill in the SNMP index*/ memset(tcp46_state_g.tcp4oids, 0, tcp46_state_g.tcp4_total * sizeof(tcp46_state_g.tcp4oids[0]) ); @@ -367,7 +404,7 @@ tp = (struct xtcpcb *)ptr; assert(ptr != NULL); /* Ignore sockets for protocols other than the desired one. */ - if (((struct xinpcb *)ptr)->xi_socket.xso_protocol != IPPROTO_TCP) { + if (((struct xtcpcb *)ptr)->xt_socket.xso_protocol != IPPROTO_TCP) { continue; } @@ -397,7 +434,7 @@ /*Keep the list sorted ins SNMP index ordering*/ qsort( tcp46_state_g.tcp4oids, tcp46_state_g.tcp4_total, - sizeof(tcp46_state_g.tcp4oids), + sizeof(tcp46_state_g.tcp4oids[0]), tcp_compare); return (0); @@ -515,13 +552,118 @@ return (SNMP_ERR_NOERROR); } + +/* + * This is the deprecated TCP Connection table + * tcpConnTable +*/ int -op_tcpConnTable( struct snmp_context *ctx __unused, - struct snmp_value *value __unused, - u_int sub __unused, - u_int iidx __unused, - enum snmp_op curr_op __unused ) { - return (SNMP_ERR_NOSUCHNAME); +op_tcpConnTable( struct snmp_context *ctx __unused, struct snmp_value *value, + u_int sub, u_int iidx __unused, enum snmp_op op) +{ + u_int i; + + if (tcp46_state_g.tcp_tick < this_tick) + if (fetch_tcp() == -1) + return (SNMP_ERR_GENERR); + + switch (op) { + + case SNMP_OP_GETNEXT: + for (i = 0; i < tcp46_state_g.tcp4_total; i++) + if (index_compare(&value->var, sub, &tcp46_state_g.tcp4oids[i].index) < 0) + break; + if (i == tcp46_state_g.tcp4_total) + return (SNMP_ERR_NOSUCHNAME); + index_append(&value->var, sub, &tcp46_state_g.tcp4oids[i].index); + break; + + case SNMP_OP_GET: + for (i = 0; i < tcp46_state_g.tcp4_total; i++) + if (index_compare(&value->var, sub, &tcp46_state_g.tcp4oids[i].index) == 0) + break; + if (i == tcp46_state_g.tcp4_total) + return (SNMP_ERR_NOSUCHNAME); + break; + + case SNMP_OP_SET: + return (SNMP_ERR_NOT_WRITEABLE); + + case SNMP_OP_ROLLBACK: + case SNMP_OP_COMMIT: + default: + abort(); + } + + switch (value->var.subs[sub - 1]) { + + case LEAF_tcpConnState: + switch (tcp46_state_g.tcp4oids[i].tp->xt_tp.t_state) { + + case TCPS_CLOSED: + value->v.integer = TCPS_closed; + break; + case TCPS_LISTEN: + value->v.integer = TCPS_listen; + break; + case TCPS_SYN_SENT: + value->v.integer = TCPS_synSent; + break; + case TCPS_SYN_RECEIVED: + value->v.integer = TCPS_synReceived; + break; + case TCPS_ESTABLISHED: + value->v.integer = TCPS_established; + break; + case TCPS_CLOSE_WAIT: + value->v.integer = TCPS_closeWait; + break; + case TCPS_FIN_WAIT_1: + value->v.integer = TCPS_finWait1; + break; + case TCPS_CLOSING: + value->v.integer = TCPS_closing; + break; + case TCPS_LAST_ACK: + value->v.integer = TCPS_lastAck; + break; + case TCPS_FIN_WAIT_2: + value->v.integer = TCPS_finWait2; + break; + case TCPS_TIME_WAIT: + value->v.integer = TCPS_timeWait; + break; + default: + value->v.integer = 0; + break; + } + break; + + assert(tcp46_state_g.tcp4oids[i].index.len == 10); + + case LEAF_tcpConnLocalAddress: + value->v.ipaddress[0] = tcp46_state_g.tcp4oids[i].index.subs[0]; + value->v.ipaddress[1] = tcp46_state_g.tcp4oids[i].index.subs[1]; + value->v.ipaddress[2] = tcp46_state_g.tcp4oids[i].index.subs[2]; + value->v.ipaddress[3] = tcp46_state_g.tcp4oids[i].index.subs[3]; + break; + + case LEAF_tcpConnLocalPort: + value->v.integer = tcp46_state_g.tcp4oids[i].index.subs[4]; + break; + + case LEAF_tcpConnRemAddress: + value->v.ipaddress[0] = tcp46_state_g.tcp4oids[i].index.subs[5]; + value->v.ipaddress[1] = tcp46_state_g.tcp4oids[i].index.subs[6]; + value->v.ipaddress[2] = tcp46_state_g.tcp4oids[i].index.subs[7]; + value->v.ipaddress[3] = tcp46_state_g.tcp4oids[i].index.subs[8]; + break; + + case LEAF_tcpConnRemPort: + value->v.integer = tcp46_state_g.tcp4oids[i].index.subs[9]; + break; + } + return (SNMP_ERR_NOERROR); } int From owner-p4-projects@FreeBSD.ORG Wed Aug 24 12:47:13 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 93C1F16A421; Wed, 24 Aug 2005 12:47:12 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6E75816A41F for ; Wed, 24 Aug 2005 12:47:12 +0000 (GMT) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3C01243D45 for ; Wed, 24 Aug 2005 12:47:12 +0000 (GMT) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7OClC4b042657 for ; Wed, 24 Aug 2005 12:47:12 GMT (envelope-from cognet@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7OClB1F042654 for perforce@freebsd.org; Wed, 24 Aug 2005 12:47:11 GMT (envelope-from cognet@freebsd.org) Date: Wed, 24 Aug 2005 12:47:11 GMT Message-Id: <200508241247.j7OClB1F042654@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cognet@freebsd.org using -f From: Olivier Houchard To: Perforce Change Reviews Cc: Subject: PERFORCE change 82496 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 12:47:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=82496 Change 82496 by cognet@cognet on 2005/08/24 12:46:18 kgdb bits for arm. Affected files ... .. //depot/projects/arm/gnu-arm.diff#5 edit Differences ... ==== //depot/projects/arm/gnu-arm.diff#5 (text+ko) ==== @@ -999,8 +999,8 @@ RCS file: gnu/usr.bin/gdb/kgdb/trgt_arm.c diff -N gnu/usr.bin/gdb/kgdb/trgt_arm.c --- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ gnu/usr.bin/gdb/kgdb/trgt_arm.c 13 Jul 2005 22:44:44 -0000 -@@ -0,0 +1,67 @@ ++++ gnu/usr.bin/gdb/kgdb/trgt_arm.c 24 Aug 2005 11:14:23 -0000 +@@ -0,0 +1,81 @@ +/* + * Copyright (c) 2004 Marcel Moolenaar + * All rights reserved. @@ -1050,7 +1050,7 @@ +{ + struct kthr *kt; + struct pcb pcb; -+ int i; ++ int i, reg; + + kt = kgdb_thr_lookup_tid(ptid_get_tid(inferior_ptid)); + if (kt == NULL) @@ -1059,8 +1059,22 @@ + warnx("kvm_read: %s", kvm_geterr(kvm)); + memset(&pcb, 0, sizeof(pcb)); + } -+ for (i = ARM_A1_REGNUM + 9; i <= ARM_PC_REGNUM; i++) -+ supply_register(i, (char *)&pcb + i * 4); ++ for (i = ARM_A1_REGNUM + 8; i <= ARM_SP_REGNUM; i++) { ++ supply_register(i, (char *)&pcb.un_32.pcb32_r8 + ++ (i - (ARM_A1_REGNUM + 8 )) * 4); ++ } ++ for (i = 0; i < 4; i++) { ++ if (kvm_read(kvm, pcb.un_32.pcb32_sp + (i) * 4, ++ ®, 4) != 4) { ++ warnx("kvm_read: %s", kvm_geterr(kvm)); ++ break; ++ } ++ supply_register(ARM_A1_REGNUM + 4 + i, (char *)®); ++ } ++ if (kvm_read(kvm, pcb.un_32.pcb32_sp + 4 * 4, ®, 4) != 4) ++ warnx("kvm_read :%s", kvm_geterr(kvm)); ++ else ++ supply_register(ARM_PC_REGNUM, (char *)®); +} + +void From owner-p4-projects@FreeBSD.ORG Wed Aug 24 16:34:47 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3D06A16A421; Wed, 24 Aug 2005 16:34:47 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F2B0C16A41F for ; Wed, 24 Aug 2005 16:34:46 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B9C0943D46 for ; Wed, 24 Aug 2005 16:34:46 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7OGYk83051358 for ; Wed, 24 Aug 2005 16:34:46 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7OGYkWH051355 for perforce@freebsd.org; Wed, 24 Aug 2005 16:34:46 GMT (envelope-from soc-tyler@freebsd.org) Date: Wed, 24 Aug 2005 16:34:46 GMT Message-Id: <200508241634.j7OGYkWH051355@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 82499 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 16:34:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=82499 Change 82499 by soc-tyler@soc-tyler_launchd on 2005/08/24 16:34:27 Set a definite, development-only LAUNCHD_PATH and LAUNCHCTL_PATH so that I can start launchd as a child of launchctl to ensure that they can "talk" to each other via launch_msg() Add suggested fix for ADC Bug #4229882 which references launchd idly dying despite launchctl still maintaining an open socket connection to it (i.e. when the daemon is not running jobs) Oh, and add a few more fprintf()'s to make sure I know what I'm doing ;) Affected files ... .. //depot/projects/soc2005/launchd/includes/launch.h#10 edit .. //depot/projects/soc2005/launchd/launchd.c#13 edit .. //depot/projects/soc2005/launchd/liblaunch.c#11 edit Differences ... ==== //depot/projects/soc2005/launchd/includes/launch.h#10 (text+ko) ==== @@ -53,14 +53,15 @@ #include #include -/* XXX: if _LAUNCHD_ is defined, then I'm working with the source code, so the - * the relevant launchctl(1) executable is in our current working dir. - */ #ifdef _LAUNCHD_ -#define LAUNCHCTL_PATH "./launchctl/launchctl" -#define LAUNCHD_PATH "./launchd" -#else +#define LAUNCHD_PATH "/home/tyler/perforce/launchd/launchd" +#define LAUNCHCTL_PATH "/home/tyler/perforce/launchd/launchctl/launchctl" +#endif + +#ifndef LAUNCHCTL_PATH #define LAUNCHCTL_PATH "/sbin/launchctl" +#endif +#ifndef LAUNCHD_PATH #define LAUNCHD_PATH "/sbin/launchd" #endif ==== //depot/projects/soc2005/launchd/launchd.c#13 (text+ko) ==== @@ -368,7 +368,7 @@ if (readcfg_pid == 0) init_pre_kevent(); } else { - if (TAILQ_EMPTY(&jobs)) { + if (TAILQ_EMPTY(&jobs) && TAILQ_EMPTY(&connections)) { /* launched on demand */ timeoutp = &timeout; } else if (shutdown_in_progress && total_children == 0) { @@ -525,6 +525,10 @@ snprintf(ourdir, sizeof(ourdir), "%s/%u.%u", LAUNCHD_SOCK_PREFIX, getuid(), getpid()); snprintf(sun.sun_path, sizeof(sun.sun_path), "%s/%u.%u/sock", LAUNCHD_SOCK_PREFIX, getuid(), getpid()); setenv(LAUNCHD_SOCKET_ENV, sun.sun_path, 1); +#ifdef _LAUNCHD_ + fprintf(stderr, "Setting the socket path to \"%s\"\n", sun.sun_path); +#endif + } else { snprintf(ourdir, sizeof(ourdir), "%s/%u", LAUNCHD_SOCK_PREFIX, getuid()); snprintf(sun.sun_path, sizeof(sun.sun_path), "%s/%u/sock", LAUNCHD_SOCK_PREFIX, getuid()); ==== //depot/projects/soc2005/launchd/liblaunch.c#11 (text+ko) ==== @@ -125,6 +125,8 @@ #ifdef _LAUNCHD_ fprintf(stderr,"starting launch_client_init() in liblaunch.c:%d\n", __LINE__); + fprintf(stderr,"where = \"%s\"\n", where); + fprintf(stderr,"_launchd_fd = \"%s\"\n", _launchd_fd); #endif _lc = calloc(1, sizeof(struct _launch_client)); @@ -178,7 +180,7 @@ for (tries = 0; tries < 10; tries++) { r = connect(lfd, (struct sockaddr *)&sun, sizeof(sun)); if (r == -1) { - if (getuid() != 0 && fork() == 0) + if (fork() == 0) execl(LAUNCHD_PATH, LAUNCHD_PATH, NULL); sleep(1); } else { From owner-p4-projects@FreeBSD.ORG Wed Aug 24 17:56:29 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE4EC16A421; Wed, 24 Aug 2005 17:56:28 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 62B7516A41F for ; Wed, 24 Aug 2005 17:56:28 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A627F43D48 for ; Wed, 24 Aug 2005 17:56:27 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7OHuRrf062729 for ; Wed, 24 Aug 2005 17:56:27 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7OHuRDR062726 for perforce@freebsd.org; Wed, 24 Aug 2005 17:56:27 GMT (envelope-from soc-tyler@freebsd.org) Date: Wed, 24 Aug 2005 17:56:27 GMT Message-Id: <200508241756.j7OHuRDR062726@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 82503 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 17:56:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=82503 Change 82503 by soc-tyler@soc-tyler_launchd on 2005/08/24 17:56:11 Remove a lot of the stupid fprintf() debugging statements now that things "sort of just work(tm)" Add in pseudo-fix for ADC bug # 4229893 (liblaunch's auto-start being completely brain-dead ;)) by adding some error checking. Also remove that BSDL nonsense, since the APSL trumps it, and makes me a saaaaad panda. (wtf was I thinking O_o) Beginning work on loading jobs into launchd via launchctl(1) Affected files ... .. //depot/projects/soc2005/launchd/NOTES#6 edit .. //depot/projects/soc2005/launchd/includes/launch.h#11 edit .. //depot/projects/soc2005/launchd/includes/launchd.h#8 edit .. //depot/projects/soc2005/launchd/launchd.c#14 edit .. //depot/projects/soc2005/launchd/liblaunch.c#12 edit Differences ... ==== //depot/projects/soc2005/launchd/NOTES#6 (text+ko) ==== @@ -9,14 +9,6 @@ There are no plans to incorporate this aspect of launchd(8) into FreeBSD until Zeroconf is stable, and in the base system of FreeBSD (6.xx, 7.xx, X.xx ;)) - - o launch_msg() doesn't need to be reimplemented until launchctl(1) is revamped - to work fully on FreeBSD (well, except for the controlling of launchd(8) part) - - After launchctl(1) is modified correctly, removal of CoreFoundation and - Zeroconf calls from launchd(8) can be made, and finally liblaunch can be - fixed to accomodate. - o The stock source comes with a modified init.c from Mac OS 10.3 and previously which was derived from the standard BSD init.c some eternity ago. ==== //depot/projects/soc2005/launchd/includes/launch.h#11 (text+ko) ==== @@ -3,26 +3,6 @@ * * Copyright (c) 2005 R. Tyler Ballance All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE * - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ /* ==== //depot/projects/soc2005/launchd/includes/launchd.h#8 (text+ko) ==== @@ -3,26 +3,6 @@ * * Copyright (c) 2005 R. Tyler Ballance All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE * - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ /* ==== //depot/projects/soc2005/launchd/launchd.c#14 (text+ko) ==== @@ -3,26 +3,6 @@ * * Copyright (c) 2005 R. Tyler Ballance All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE * - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ /* ==== //depot/projects/soc2005/launchd/liblaunch.c#12 (text+ko) ==== @@ -3,26 +3,6 @@ * * Copyright (c) 2005 R. Tyler Ballance All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE * - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ /* @@ -53,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -122,21 +103,13 @@ char *where = getenv(LAUNCHD_SOCKET_ENV); char *_launchd_fd = getenv(LAUNCHD_TRUSTED_FD_ENV); int r, dfd, lfd = -1, tries; + pid_t _launchd_pid; -#ifdef _LAUNCHD_ - fprintf(stderr,"starting launch_client_init() in liblaunch.c:%d\n", __LINE__); - fprintf(stderr,"where = \"%s\"\n", where); - fprintf(stderr,"_launchd_fd = \"%s\"\n", _launchd_fd); -#endif - _lc = calloc(1, sizeof(struct _launch_client)); // if we can't calloc() _lc, exit function if (_lc == NULL) - return; -#ifdef _LAUNCHD_ - fprintf(stderr,"calling pthread_mutex_init() in liblaunch.c:%d\n", __LINE__); -#endif + pthread_mutex_init(&_lc->mtx, NULL); if (_launchd_fd != NULL) { @@ -150,11 +123,6 @@ unsetenv(LAUNCHD_TRUSTED_FD_ENV); } -#ifdef _LAUNCHD_ - fprintf(stderr,"Reached liblaunch.c:%d and continuing with execution from here\n", - __LINE__); -#endif - if (lfd == -1) { memset(&sun, 0, sizeof(sun)); sun.sun_family = AF_UNIX; @@ -164,71 +132,57 @@ else snprintf(sun.sun_path, sizeof(sun.sun_path), "%s/%u/sock", LAUNCHD_SOCK_PREFIX, getuid()); -#ifdef _LAUNCHD_ - fprintf(stderr,"Successfully gotten the socket's path in liblaunch.c:%d\n", - __LINE__); -#endif - - if ((lfd = _fd(socket(AF_UNIX, SOCK_STREAM, 0))) == -1) { -#ifdef _LAUNCHD_ - fprintf(stderr,"_fd() call didn't succeed in liblaunch.c:%d\n", - __LINE__); -#endif + if ((lfd = _fd(socket(AF_UNIX, SOCK_STREAM, 0))) == -1) goto out_bad; - } for (tries = 0; tries < 10; tries++) { r = connect(lfd, (struct sockaddr *)&sun, sizeof(sun)); if (r == -1) { - if (fork() == 0) - execl(LAUNCHD_PATH, LAUNCHD_PATH, NULL); + _launchd_pid = fork(); + + if (_launchd_pid == 0) { + // start launchd(8) as a daemon + if (execl(LAUNCHD_PATH, LAUNCHD_PATH, "-d", NULL) != 0) { + fprintf(stderr,"execl() returned %s in %s:%d", + strerror(errno), __FILE__, __LINE__); + exit(EXIT_FAILURE); + } + } + + else if (_launchd_pid > 0) + waitpid(_launchd_pid, NULL, 0); + + /* in the case of fork() returning -1 + * we are simply going to loop through and try again + */ + sleep(1); - } else { - break; - } - } + } else + break; // socket connection succeeded, continue. + } // end socket connect loop if (r == -1) { close(lfd); -#ifdef _LAUNCHD_ - fprintf(stderr,"r was equal to -1 in liblaunch.c:%d\n", __LINE__); -#endif goto out_bad; } } - if (!(_lc->l = launchd_fdopen(lfd))) { + if ((_lc->l = launchd_fdopen(lfd)) == NULL) { close(lfd); -#ifdef _LAUNCHD_ - fprintf(stderr,"launchd_fdopen() failed in liblaunch.c:%d\n", __LINE__); -#endif goto out_bad; } - if (!(_lc->async_resp = launch_data_alloc(LAUNCH_DATA_ARRAY))) { -#ifdef _LAUNCHD_ - fprintf(stderr,"launch_data_alloc() failed in liblaunch.c:%d\n", __LINE__); -#endif + if ((_lc->async_resp = launch_data_alloc(LAUNCH_DATA_ARRAY)) == NULL) goto out_bad; - } return; out_bad: -#ifdef _LAUNCHD_ - fprintf(stderr,"Executed a \"goto out_bad\", running out_bad in liblaunch.c:%d\n", - __LINE__); -#endif if (_lc->l != NULL) launchd_close(_lc->l); if (_lc != NULL) free(_lc); _lc = NULL; -#ifdef _LAUNCHD_ - fprintf(stderr, - "Finished executing \'out_bad\', setting _lc to NULL in liblaunch.c:%d\n", - __LINE__); -#endif } launch_data_t launch_data_alloc(launch_data_type_t t) { @@ -277,11 +231,7 @@ free(d); } -size_t launch_data_dict_get_count(launch_data_t dict) -{ - return dict->_array_cnt / 2; -} - +size_t launch_data_dict_get_count(launch_data_t dict) { return dict->_array_cnt / 2; } bool launch_data_dict_insert(launch_data_t dict, launch_data_t what, const char *key) { @@ -742,25 +692,13 @@ { launch_data_t resp = NULL; -#ifdef _LAUNCHD_ - fprintf(stderr,"Starting launch_msg() in liblaunch.c:%d\n", __LINE__); -#endif - - // XXX: this call doesn't put something at &_lc pthread_once(&_lc_once, launch_client_init); - // XXX: we keep evaluating for true here, and error out if (_lc == NULL) { -#ifdef _LAUNCHD_ - fprintf(stderr,"_lc sucks, returning liblaunch.c:%d\n", __LINE__); -#endif errno = ENOTCONN; return NULL; } -#ifdef _LAUNCHD_ - fprintf(stderr,"Executing pthread_mutex_lock() in liblaunch.c:%d\n", __LINE__); -#endif pthread_mutex_lock(&_lc->mtx); if (d && launchd_msg_send(_lc->l, d) == -1) { From owner-p4-projects@FreeBSD.ORG Wed Aug 24 22:13:50 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3B60116A421; Wed, 24 Aug 2005 22:13:50 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1163016A41F for ; Wed, 24 Aug 2005 22:13:50 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CCD4143D46 for ; Wed, 24 Aug 2005 22:13:49 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7OMDniT080931 for ; Wed, 24 Aug 2005 22:13:49 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7OMDnWj080928 for perforce@freebsd.org; Wed, 24 Aug 2005 22:13:49 GMT (envelope-from scottl@freebsd.org) Date: Wed, 24 Aug 2005 22:13:49 GMT Message-Id: <200508242213.j7OMDnWj080928@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 82512 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 22:13:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=82512 Change 82512 by scottl@scottl-junior on 2005/08/24 22:12:48 Start adding the topology lock to cam_periph.c. This covers reference counting of the periph as well as global periph list operations. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#5 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#5 (text+ko) ==== @@ -121,7 +121,6 @@ lun_id_t lun_id; cam_status status; u_int init_level; - int s; init_level = 0; /* @@ -186,7 +185,7 @@ if (status != CAM_REQ_CMP) goto failure; - s = splsoftcam(); + mtx_lock(&cam_topo_lock); cur_periph = TAILQ_FIRST(&(*p_drv)->units); while (cur_periph != NULL && cur_periph->unit_number < periph->unit_number) @@ -198,9 +197,8 @@ TAILQ_INSERT_TAIL(&(*p_drv)->units, periph, unit_links); (*p_drv)->generation++; } + mtx_unlock(&cam_topo_lock); - splx(s); - init_level++; status = periph_ctor(periph, arg); @@ -214,9 +212,9 @@ /* Initialized successfully */ break; case 3: - s = splsoftcam(); + mtx_lock(&cam_topo_lock); TAILQ_REMOVE(&(*p_drv)->units, periph, unit_links); - splx(s); + mtx_unlock(&cam_topo_lock); xpt_remove_periph(periph); /* FALLTHROUGH */ case 2: @@ -244,21 +242,20 @@ { struct periph_driver **p_drv; struct cam_periph *periph; - int s; for (p_drv = periph_drivers; *p_drv != NULL; p_drv++) { if (name != NULL && (strcmp((*p_drv)->driver_name, name) != 0)) continue; - s = splsoftcam(); + mtx_lock(&cam_topo_lock); TAILQ_FOREACH(periph, &(*p_drv)->units, unit_links) { if (xpt_path_comp(periph->path, path) == 0) { - splx(s); + mtx_unlock(&cam_topo_lock); return(periph); } } - splx(s); + mtx_unlock(&cam_topo_lock); if (name != NULL) return(NULL); } @@ -268,14 +265,14 @@ cam_status cam_periph_acquire(struct cam_periph *periph) { - int s; if (periph == NULL) return(CAM_REQ_CMP_ERR); - s = splsoftcam(); + /* XXX atomic increment instead? */ + mtx_lock(&cam_topo_lock); periph->refcount++; - splx(s); + mtx_unlock(&cam_topo_lock); return(CAM_REQ_CMP); } @@ -283,17 +280,17 @@ void cam_periph_release(struct cam_periph *periph) { - int s; if (periph == NULL) return; - s = splsoftcam(); + /* camperiphfree() will release the mutex. */ + mtx_lock(&cam_topo_lock); if ((--periph->refcount == 0) && (periph->flags & CAM_PERIPH_INVALID)) { camperiphfree(periph); - } - splx(s); + } else + mtx_unlock(&cam_topo_lock); } @@ -311,11 +308,10 @@ { struct cam_periph *periph; char *periph_name; - int s; int i, val, dunit, r; const char *dname, *strval; - s = splsoftcam(); + mtx_lock(&cam_topo_lock); periph_name = p_drv->driver_name; for (;;newunit++) { @@ -361,7 +357,7 @@ if (r != 0) break; } - splx(s); + mtx_unlock(&cam_topo_lock); return (newunit); } @@ -418,7 +414,6 @@ { int s; - s = splsoftcam(); /* * We only call this routine the first time a peripheral is * invalidated. The oninvalidate() routine is always called at @@ -431,36 +426,43 @@ periph->flags |= CAM_PERIPH_INVALID; periph->flags &= ~CAM_PERIPH_NEW_DEV_FOUND; + /* camperiphfree() will release the mutex. */ + mtx_lock(&cam_topo_lock); if (periph->refcount == 0) camperiphfree(periph); - else if (periph->refcount < 0) + else if (periph->refcount < 0) { + mtx_unlock(&cam_topo_lock); printf("cam_invalidate_periph: refcount < 0!!\n"); - splx(s); + } } +/* + * The topology lock must be held on entry and will be released before return. + */ static void camperiphfree(struct cam_periph *periph) { - int s; struct periph_driver **p_drv; + mtx_assert(&cam_topo_lock, MTX_OWNED); + for (p_drv = periph_drivers; *p_drv != NULL; p_drv++) { - if (strcmp((*p_drv)->driver_name, periph->periph_name) == 0) + if (strcmp((*p_drv)->driver_name, periph->periph_name) == 0) { + TAILQ_REMOVE(&(*p_drv)->units, periph, unit_links); + (*p_drv)->generation++; break; + } } + mtx_unlock(&cam_topo_lock); + if (*p_drv == NULL) { printf("camperiphfree: attempt to free non-existant periph\n"); return; } - + if (periph->periph_dtor != NULL) periph->periph_dtor(periph); - s = splsoftcam(); - TAILQ_REMOVE(&(*p_drv)->units, periph, unit_links); - (*p_drv)->generation++; - splx(s); - xpt_remove_periph(periph); if (periph->flags & CAM_PERIPH_NEW_DEV_FOUND) { From owner-p4-projects@FreeBSD.ORG Wed Aug 24 22:31:12 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 751CE16A421; Wed, 24 Aug 2005 22:31:12 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 34D9C16A41F for ; Wed, 24 Aug 2005 22:31:12 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D279743D45 for ; Wed, 24 Aug 2005 22:31:11 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7OMVB1U081633 for ; Wed, 24 Aug 2005 22:31:11 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7OMVBHA081630 for perforce@freebsd.org; Wed, 24 Aug 2005 22:31:11 GMT (envelope-from soc-victor@freebsd.org) Date: Wed, 24 Aug 2005 22:31:11 GMT Message-Id: <200508242231.j7OMVBHA081630@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82514 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2005 22:31:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=82514 Change 82514 by soc-victor@soc-victor_82.76.158.176 on 2005/08/24 22:30:42 Finished the SNMP instrumentation for tcpConnectionTable ( v4 and v6 ). For now both tcpConnectionTable and the deprecated tcpConnTable are read-only. Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#2 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#4 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#2 (text+ko) ==== @@ -39,5 +39,5 @@ DEFS= ${MOD}_tree.def BMIBS= TCP-MIB.txt INET-ADDRESS-MIB.txt -LDADD= + .include ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#4 (text+ko) ==== @@ -79,6 +79,7 @@ #include #include #include +#include #include #include #include @@ -128,10 +129,20 @@ TCPS_deleteTCB = 12 }; +enum InetAddressType { + IAT_unknown = 0, + IAT_ipv4 = 1, + IAT_ipv6 = 2, + IAT_ipv4z = 3, + IAT_ipv6z = 4, + IAT_dns = 16 +}; + struct tcp_index { struct asn_oid index; struct xtcpcb *tp; + pid_t so_pgid; }; static int @@ -156,15 +167,21 @@ struct tcp46_state { struct clockinfo clock_info; - uint64_t tcp_tick; /*agent tick when this struct was last updated*/ - struct tcpstat tcpstat; /*holder for tcp stats*/ - struct xinpgen *xinpgen; /*holder for data get via sysctl; malloc'd*/ - size_t xinpgen_len; /*the allocated len of the above vector */ - u_int tcp_estab_count; /*value for the scalar named tcpCurrEstab*/ - u_int tcp4_total; /*the number of tcp4 entries*/ + uint64_t tcp_tick; /*agent tick when this struct was last updated*/ + struct tcpstat tcpstat; /*holder for tcp stats*/ + struct xinpgen *xinpgen; /*holder for data get via sysctl; malloc'd*/ + size_t xinpgen_len; /*the allocated len of the above vector */ + u_int tcp_estab_count; /*value for the scalar named tcpCurrEstab*/ + u_int tcp4_total; /*the number of tcp4 entries*/ + u_int all_tcp_total; /*the number of tcp4 and tcp6 entries*/ + + struct tcp_index *tcp4oids; /*snmp vector for the tcp4 table; malloc'd*/ + size_t tcp4oids_len; /*the allocated len of the above vector */ + + struct tcp_index *all_tcpoids; /*snmp vector for the unigied v4 and v6 tcp table; malloc'd*/ + size_t all_tcpoids_len; /*the allocated len of the above vector */ - struct tcp_index *tcp4oids; /*snmp vector for the tcp4 table; malloc'd*/ - size_t tcp4oids_len; /*the allocated len of the above vector */ + }; static @@ -207,6 +224,12 @@ tcp46_state_g.tcp4oids_len = 0; } + if (tcp46_state_g.all_tcpoids != NULL && tcp46_state_g.all_tcpoids_len > 0) { + free(tcp46_state_g.all_tcpoids); + tcp46_state_g.all_tcpoids = NULL; + tcp46_state_g.all_tcpoids_len = 0; + } + if (tcp46_state_g.xinpgen != NULL && tcp46_state_g.xinpgen_len > 0) { free(tcp46_state_g.xinpgen); tcp46_state_g.xinpgen = NULL; @@ -303,7 +326,7 @@ size_t len; struct xinpgen *ptr = NULL; struct xtcpcb *tp = NULL; - struct tcp_index *oid = NULL; + struct tcp_index *oid = NULL, *all_oid = NULL; in_addr_t inaddr; len = sizeof(tcp46_state_g.tcpstat); @@ -338,6 +361,7 @@ tcp46_state_g.tcp_estab_count = 0; tcp46_state_g.tcp4_total = 0; + tcp46_state_g.all_tcp_total = 0; /*First count the endpoints*/ for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); @@ -369,18 +393,25 @@ if ( (tp->xt_inp.inp_vflag & INP_IPV4) == INP_IPV4) { tcp46_state_g.tcp4_total++; } - + + if ((tp->xt_inp.inp_vflag & (INP_IPV6 | INP_IPV6PROTO | INP_IPV4)) != 0 ) { + /*for connection in listen state we have a separate table*/ + if ( tp->xt_tp.t_state != TCPS_LISTEN ) { + tcp46_state_g.all_tcp_total++; + } + } if (tp->xt_tp.t_state == TCPS_ESTABLISHED || tp->xt_tp.t_state == TCPS_CLOSE_WAIT) { tcp46_state_g.tcp_estab_count++; } } - TCP46_DPRINTF((stderr, "[%s] Got %d tcp4 connections.\n ", + TCP46_DPRINTF((stderr, "[%s] Got %d tcp4 connections and %d tcp{4,6} connections.\n ", __func__, - tcp46_state_g.tcp4_total)); + tcp46_state_g.tcp4_total, + tcp46_state_g.all_tcp_total)); - /*Then reallocate the SNMP holder if needed*/ + /*Then reallocate the SNMP holder for v4 if needed*/ if (tcp46_state_g.tcp4oids_len < tcp46_state_g.tcp4_total) { oid = realloc(tcp46_state_g.tcp4oids, tcp46_state_g.tcp4_total * sizeof(tcp46_state_g.tcp4oids[0])); @@ -393,11 +424,29 @@ tcp46_state_g.tcp4oids_len = tcp46_state_g.tcp4_total; } - /*Finally fill in the SNMP index*/ + /*Then reallocate the SNMP holder for v4 & v6 if needed*/ + if (tcp46_state_g.all_tcpoids_len < tcp46_state_g.all_tcp_total) { + all_oid = realloc(tcp46_state_g.all_tcpoids, + tcp46_state_g.all_tcp_total * sizeof(tcp46_state_g.all_tcpoids[0])); + if (all_oid == NULL) { + free(tcp46_state_g.all_tcpoids); + tcp46_state_g.all_tcpoids_len = 0; + return (0); + } + tcp46_state_g.all_tcpoids = all_oid; + tcp46_state_g.all_tcpoids_len = tcp46_state_g.all_tcp_total; + } + + + /*Finally fill in the SNMP indexes*/ memset(tcp46_state_g.tcp4oids, 0, tcp46_state_g.tcp4_total * sizeof(tcp46_state_g.tcp4oids[0]) ); - + + memset(tcp46_state_g.all_tcpoids, 0, + tcp46_state_g.all_tcp_total * sizeof(tcp46_state_g.all_tcpoids[0]) ); + oid = tcp46_state_g.tcp4oids; + all_oid = tcp46_state_g.all_tcpoids; for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); ptr->xig_len > sizeof(struct xinpgen); ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) { @@ -413,6 +462,7 @@ continue; } if ( (tp->xt_inp.inp_vflag & INP_IPV4) == INP_IPV4) { + /*START processing for the old/ deprecated v4 only table*/ oid->tp = tp; oid->index.len = 10; inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); @@ -428,15 +478,69 @@ oid->index.subs[8] = (inaddr >> 0) & 0xff; oid->index.subs[9] = ntohs(tp->xt_inp.inp_fport); oid++; + /*END processing for the old/ deprecated v4 only table*/ + + /*for connection in listen state we have a separate table*/ + if ( tp->xt_tp.t_state != TCPS_LISTEN ) { + /*START processing for the new v4/v6 table*/ + all_oid->tp = tp; + /*FIX ME: this doesn't work*/ + all_oid->so_pgid = ((struct xtcpcb *)ptr)->xt_socket.so_pgid; + all_oid->index.len = 12; + all_oid->index.subs[0] = IAT_ipv4; + inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); + all_oid->index.subs[1] = (inaddr >> 24) & 0xff; + all_oid->index.subs[2] = (inaddr >> 16) & 0xff; + all_oid->index.subs[3] = (inaddr >> 8) & 0xff; + all_oid->index.subs[4] = (inaddr >> 0) & 0xff; + all_oid->index.subs[5] = ntohs(tp->xt_inp.inp_lport); + all_oid->index.subs[6] = IAT_ipv4; + inaddr = ntohl(tp->xt_inp.inp_faddr.s_addr); + all_oid->index.subs[7] = (inaddr >> 24) & 0xff; + all_oid->index.subs[8] = (inaddr >> 16) & 0xff; + all_oid->index.subs[9] = (inaddr >> 8) & 0xff; + all_oid->index.subs[10] = (inaddr >> 0) & 0xff; + all_oid->index.subs[11] = ntohs(tp->xt_inp.inp_lport); + + all_oid++; + /*END processing for the new v4/v6 table*/ + } + + + } else if ((tp->xt_inp.inp_vflag & (INP_IPV6 | INP_IPV6PROTO)) != 0 ) { + if ( tp->xt_tp.t_state != TCPS_LISTEN ) { + int i =0; + /*START processing for the new v4/v6 table*/ + all_oid->tp = tp; + /*FIX ME: this doesn't work*/ + all_oid->so_pgid = ((struct xtcpcb *)ptr)->xt_socket.so_pgid; + all_oid->index.len = 36; + all_oid->index.subs[0] = IAT_ipv6; + for (i=0; i<16; i++) { + all_oid->index.subs[1+i] = tp->xt_inp.in6p_laddr.s6_addr[i]; + all_oid->index.subs[19+i] = tp->xt_inp.in6p_faddr.s6_addr[i]; + } + all_oid->index.subs[17] = ntohs(tp->xt_inp.in6p_lport); + all_oid->index.subs[18] = IAT_ipv6; + all_oid->index.subs[35] = ntohs(tp->xt_inp.in6p_fport); + all_oid++; + /*END processing for the new v4/v6 table*/ + } + } } - /*Keep the list sorted ins SNMP index ordering*/ + /*Keep the lists sorted ins SNMP index ordering*/ qsort( tcp46_state_g.tcp4oids, tcp46_state_g.tcp4_total, sizeof(tcp46_state_g.tcp4oids[0]), tcp_compare); + qsort( tcp46_state_g.all_tcpoids, + tcp46_state_g.all_tcp_total, + sizeof(tcp46_state_g.all_tcpoids[0]), + tcp_compare); + return (0); } @@ -667,12 +771,110 @@ } int -op_tcpConnectionTable( struct snmp_context *ctx __unused, - struct snmp_value *value __unused, - u_int sub __unused, - u_int iidx __unused, - enum snmp_op curr_op __unused) { - return (SNMP_ERR_NOSUCHNAME); +op_tcpConnectionTable( struct snmp_context *ctx __unused, struct snmp_value *value, + u_int sub, u_int iidx __unused, enum snmp_op op) +{ + u_int i; + + if (tcp46_state_g.tcp_tick < this_tick) + if (fetch_tcp() == -1) + return (SNMP_ERR_GENERR); + + switch (op) { + + case SNMP_OP_GETNEXT: + for (i = 0; i < tcp46_state_g.all_tcp_total; i++) + if (index_compare(&value->var, sub, + &tcp46_state_g.all_tcpoids[i].index) < 0) + break; + if (i == tcp46_state_g.all_tcp_total) + return (SNMP_ERR_NOSUCHNAME); + + index_append(&value->var, sub, + &tcp46_state_g.all_tcpoids[i].index); + break; + + case SNMP_OP_GET: + for (i = 0; i < tcp46_state_g.all_tcp_total; i++) + if (index_compare(&value->var, sub, + &tcp46_state_g.all_tcpoids[i].index) == 0) + break; + + if (i == tcp46_state_g.all_tcp_total) + return (SNMP_ERR_NOSUCHNAME); + break; + + case SNMP_OP_SET: + return (SNMP_ERR_NOT_WRITEABLE); + + case SNMP_OP_ROLLBACK: + case SNMP_OP_COMMIT: + default: + abort(); + } + + assert(tcp46_state_g.all_tcpoids[i].index.len == 12 || + tcp46_state_g.all_tcpoids[i].index.len == 36); + + switch (value->var.subs[sub - 1]) { + + case LEAF_tcpConnectionState: + switch (tcp46_state_g.all_tcpoids[i].tp->xt_tp.t_state) { + + case TCPS_CLOSED: + value->v.integer = TCPS_closed; + break; + case TCPS_LISTEN: + value->v.integer = TCPS_listen; + assert(0); + break; + case TCPS_SYN_SENT: + value->v.integer = TCPS_synSent; + break; + case TCPS_SYN_RECEIVED: + value->v.integer = TCPS_synReceived; + break; + case TCPS_ESTABLISHED: + value->v.integer = TCPS_established; + break; + case TCPS_CLOSE_WAIT: + value->v.integer = TCPS_closeWait; + break; + case TCPS_FIN_WAIT_1: + value->v.integer = TCPS_finWait1; + break; + case TCPS_CLOSING: + value->v.integer = TCPS_closing; + break; + case TCPS_LAST_ACK: + value->v.integer = TCPS_lastAck; + break; + case TCPS_FIN_WAIT_2: + value->v.integer = TCPS_finWait2; + break; + case TCPS_TIME_WAIT: + value->v.integer = TCPS_timeWait; + break; + default: + value->v.integer = 0; + break; + } + break; + + + + case LEAF_tcpConnectionProcess: + /*this is from hrSWRunTable, where the index is pid + 1 */ + /*FIX ME: this doesn't work*/ + value->v.integer = ( tcp46_state_g.all_tcpoids[i].so_pgid == 0 ? 0 : + tcp46_state_g.all_tcpoids[i].so_pgid + 1 ); + break; + default: + assert(0); + return (SNMP_ERR_NOSUCHNAME); + } + return (SNMP_ERR_NOERROR); + } int From owner-p4-projects@FreeBSD.ORG Thu Aug 25 13:25:03 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E8A4616A423; Thu, 25 Aug 2005 13:25:02 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A2FC616A41F for ; Thu, 25 Aug 2005 13:25:02 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F69B43D46 for ; Thu, 25 Aug 2005 13:25:02 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PDP2qH052775 for ; Thu, 25 Aug 2005 13:25:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PDP2po052772 for perforce@freebsd.org; Thu, 25 Aug 2005 13:25:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 25 Aug 2005 13:25:02 GMT Message-Id: <200508251325.j7PDP2po052772@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 82528 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 13:25:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=82528 Change 82528 by rwatson@rwatson_paprika on 2005/08/25 13:24:14 Integrate netsmp: minor bug fixes. Affected files ... .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_thermal.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/hme/if_hme.c#8 integrate .. //depot/projects/netsmp/src/sys/kern/subr_witness.c#7 integrate .. //depot/projects/netsmp/src/sys/libkern/iconv.c#3 integrate .. //depot/projects/netsmp/src/sys/netgraph/ng_ksocket.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_thermal.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.56 2005/08/17 17:01:25 ume Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.58 2005/08/25 11:31:30 ume Exp $"); #include "opt_acpi.h" #include @@ -347,7 +347,14 @@ AcpiOsFree(sc->tz_zone.al[i].Pointer); if (sc->tz_zone.psl.Pointer != NULL) AcpiOsFree(sc->tz_zone.psl.Pointer); - bzero(&sc->tz_zone, sizeof(sc->tz_zone)); + + /* + * XXX: We initialize only ACPI_BUFFER to avoid race condition + * with passive cooling thread which refers psv, tc1, tc2 and tsp. + */ + bzero(sc->tz_zone.ac, sizeof(sc->tz_zone.ac)); + bzero(sc->tz_zone.al, sizeof(sc->tz_zone.al)); + bzero(&sc->tz_zone.psl, sizeof(sc->tz_zone.psl)); /* Evaluate thermal zone parameters. */ for (i = 0; i < TZ_NUMLEVELS; i++) { @@ -408,6 +415,28 @@ } /* + * Get the current temperature. + */ +static int +acpi_tz_get_temperature(struct acpi_tz_softc *sc) +{ + int temp; + ACPI_STATUS status; + + status = acpi_GetInteger(sc->tz_handle, "_TMP", &temp); + if (ACPI_FAILURE(status)) { + ACPI_VPRINT(sc->tz_dev, acpi_device_get_parent_softc(sc->tz_dev), + "error fetching current temperature -- %s\n", + AcpiFormatException(status)); + return (FALSE); + } + + ACPI_DEBUG_PRINT((ACPI_DB_VALUES, "got %d.%dC\n", TZ_KELVTOC(temp))); + sc->tz_temperature = temp; + return (TRUE); +} + +/* * Evaluate the condition of a thermal zone, take appropriate actions. */ static void @@ -418,25 +447,18 @@ int temp; int i; int newactive, newflags; - ACPI_STATUS status; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); sc = (struct acpi_tz_softc *)Context; /* Get the current temperature. */ - status = acpi_GetInteger(sc->tz_handle, "_TMP", &temp); - if (ACPI_FAILURE(status)) { - ACPI_VPRINT(sc->tz_dev, acpi_device_get_parent_softc(sc->tz_dev), - "error fetching current temperature -- %s\n", - AcpiFormatException(status)); + if (!acpi_tz_get_temperature(sc)) { /* XXX disable zone? go to max cooling? */ return_VOID; } + temp = sc->tz_temperature; - ACPI_DEBUG_PRINT((ACPI_DB_VALUES, "got %d.%dC\n", TZ_KELVTOC(temp))); - sc->tz_temperature = temp; - /* * Work out what we ought to be doing right now. * @@ -972,19 +994,22 @@ acpi_tz_cooling_thread(void *arg) { struct acpi_tz_softc *sc; - int error, perf, temperature; + int error, perf, curr_temp, prev_temp; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); sc = (struct acpi_tz_softc *)arg; - temperature = sc->tz_temperature; + prev_temp = sc->tz_temperature; while (sc->tz_cooling_enabled) { - if (sc->tz_temperature >= sc->tz_zone.psv) + if (sc->tz_cooling_active) + (void)acpi_tz_get_temperature(sc); + curr_temp = sc->tz_temperature; + if (curr_temp >= sc->tz_zone.psv) sc->tz_cooling_active = TRUE; if (sc->tz_cooling_active) { - perf = sc->tz_zone.tc1 * (sc->tz_temperature - temperature) + - sc->tz_zone.tc2 * (sc->tz_temperature - sc->tz_zone.psv); + perf = sc->tz_zone.tc1 * (curr_temp - prev_temp) + + sc->tz_zone.tc2 * (curr_temp - sc->tz_zone.psv); perf /= 10; if (perf != 0) { @@ -1001,7 +1026,7 @@ } } } - temperature = sc->tz_temperature; + prev_temp = curr_temp; tsleep(&sc->tz_cooling_proc, PZERO, "cooling", hz * sc->tz_zone.tsp / 10); } ==== //depot/projects/netsmp/src/sys/dev/hme/if_hme.c#8 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.41 2005/08/17 17:44:32 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.42 2005/08/24 20:28:56 jhb Exp $"); /* * HME Ethernet module driver. @@ -199,14 +199,13 @@ * */ - HME_LOCK_ASSERT(sc, MA_NOTOWNED); + callout_init_mtx(&sc->sc_tick_ch, &sc->sc_lock, 0); + /* Make sure the chip is stopped. */ HME_LOCK(sc); hme_stop(sc); HME_UNLOCK(sc); - callout_init_mtx(&sc->sc_tick_ch, &sc->sc_lock, 0); - /* * Allocate DMA capable memory * Buffer descriptors must be aligned on a 2048 byte boundary; @@ -381,8 +380,6 @@ struct ifnet *ifp = sc->sc_ifp; int i; - HME_LOCK_ASSERT(sc, MA_NOTOWNED); - ether_ifdetach(ifp); if_free(ifp); HME_LOCK(sc); ==== //depot/projects/netsmp/src/sys/kern/subr_witness.c#7 (text+ko) ==== @@ -82,7 +82,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.197 2005/08/09 13:27:50 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.198 2005/08/25 03:47:37 truckman Exp $"); #include "opt_ddb.h" #include "opt_witness.h" @@ -165,10 +165,7 @@ static int isitmychild(struct witness *parent, struct witness *child); static int isitmydescendant(struct witness *parent, struct witness *child); static int itismychild(struct witness *parent, struct witness *child); -static int rebalancetree(struct witness_list *list); static void removechild(struct witness *parent, struct witness *child); -static int reparentchildren(struct witness *newparent, - struct witness *oldparent); static int sysctl_debug_witness_watch(SYSCTL_HANDLER_ARGS); static void witness_displaydescendants(void(*)(const char *fmt, ...), struct witness *, int indent); @@ -194,11 +191,8 @@ SYSCTL_NODE(_debug, OID_AUTO, witness, CTLFLAG_RW, 0, "Witness Locking"); /* - * If set to 0, witness is disabled. If set to 1, witness performs full lock - * order checking for all locks. If set to 2 or higher, then witness skips - * the full lock order check if the lock being acquired is at a higher level - * (i.e. farther down in the tree) than the current lock. This last mode is - * somewhat experimental and not considered fully safe. At runtime, this + * If set to 0, witness is disabled. If set to a non-zero value, witness + * performs full lock order checking for all locks. At runtime, this * value may be set to 0 to turn off witness. witness is not allowed be * turned on once it is turned off, however. */ @@ -250,6 +244,16 @@ static struct witness_child_list_entry *w_child_free = NULL; static struct lock_list_entry *w_lock_list_free = NULL; +static int w_free_cnt, w_spin_cnt, w_sleep_cnt, w_child_free_cnt, w_child_cnt; +SYSCTL_INT(_debug_witness, OID_AUTO, free_cnt, CTLFLAG_RD, &w_free_cnt, 0, ""); +SYSCTL_INT(_debug_witness, OID_AUTO, spin_cnt, CTLFLAG_RD, &w_spin_cnt, 0, ""); +SYSCTL_INT(_debug_witness, OID_AUTO, sleep_cnt, CTLFLAG_RD, &w_sleep_cnt, 0, + ""); +SYSCTL_INT(_debug_witness, OID_AUTO, child_free_cnt, CTLFLAG_RD, + &w_child_free_cnt, 0, ""); +SYSCTL_INT(_debug_witness, OID_AUTO, child_cnt, CTLFLAG_RD, &w_child_cnt, 0, + ""); + static struct witness w_data[WITNESS_COUNT]; static struct witness_child_list_entry w_childdata[WITNESS_CHILDCOUNT]; static struct lock_list_entry w_locklistdata[LOCK_CHILDCOUNT]; @@ -820,18 +824,11 @@ MPASS(!mtx_owned(&w_mtx)); mtx_lock_spin(&w_mtx); /* - * If we have a known higher number just say ok - */ - if (witness_watch > 1 && w->w_level > w1->w_level) { - mtx_unlock_spin(&w_mtx); - return; - } - /* * If we know that the the lock we are acquiring comes after * the lock we most recently acquired in the lock order tree, * then there is no need for any further checks. */ - if (isitmydescendant(w1, w)) { + if (isitmychild(w1, w)) { mtx_unlock_spin(&w_mtx); return; } @@ -1312,11 +1309,13 @@ w->w_class = lock_class; w->w_refcount = 1; STAILQ_INSERT_HEAD(&w_all, w, w_list); - if (lock_class->lc_flags & LC_SPINLOCK) + if (lock_class->lc_flags & LC_SPINLOCK) { STAILQ_INSERT_HEAD(&w_spin, w, w_typelist); - else if (lock_class->lc_flags & LC_SLEEPLOCK) + w_spin_cnt++; + } else if (lock_class->lc_flags & LC_SLEEPLOCK) { STAILQ_INSERT_HEAD(&w_sleep, w, w_typelist); - else { + w_sleep_cnt++; + } else { mtx_unlock_spin(&w_mtx); panic("lock class %s is not sleep or spin", lock_class->lc_name); @@ -1334,10 +1333,13 @@ struct witness *parent; MPASS(w->w_refcount == 0); - if (w->w_class->lc_flags & LC_SLEEPLOCK) + if (w->w_class->lc_flags & LC_SLEEPLOCK) { list = &w_sleep; - else + w_sleep_cnt--; + } else { list = &w_spin; + w_spin_cnt--; + } /* * First, we run through the entire tree looking for any * witnesses that the outgoing witness is a child of. For @@ -1348,8 +1350,6 @@ if (!isitmychild(parent, w)) continue; removechild(parent, w); - if (!reparentchildren(parent, w)) - return (0); } /* @@ -1358,6 +1358,7 @@ */ for (wcl = w->w_children; wcl != NULL; wcl = nwcl) { nwcl = wcl->wcl_next; + w_child_cnt--; witness_child_free(wcl); } @@ -1368,34 +1369,6 @@ STAILQ_REMOVE(&w_all, w, witness, w_list); witness_free(w); - /* Finally, fixup the tree. */ - return (rebalancetree(list)); -} - -/* - * Prune an entire lock order tree. We look for cases where a lock - * is now both a descendant and a direct child of a given lock. In - * that case, we want to remove the direct child link from the tree. - * - * Returns false if insertchild() fails. - */ -static int -rebalancetree(struct witness_list *list) -{ - struct witness *child, *parent; - - STAILQ_FOREACH(child, list, w_typelist) { - STAILQ_FOREACH(parent, list, w_typelist) { - if (!isitmychild(parent, child)) - continue; - removechild(parent, child); - if (isitmydescendant(parent, child)) - continue; - if (!insertchild(parent, child)) - return (0); - } - } - witness_levelall(); return (1); } @@ -1420,31 +1393,13 @@ *wcl = witness_child_get(); if (*wcl == NULL) return (0); + w_child_cnt++; } (*wcl)->wcl_children[(*wcl)->wcl_count++] = child; return (1); } -/* - * Make all the direct descendants of oldparent be direct descendants - * of newparent. - */ -static int -reparentchildren(struct witness *newparent, struct witness *oldparent) -{ - struct witness_child_list_entry *wcl; - int i; - - /* Avoid making a witness a child of itself. */ - MPASS(!isitmychild(oldparent, newparent)); - - for (wcl = oldparent->w_children; wcl != NULL; wcl = wcl->wcl_next) - for (i = 0; i < wcl->wcl_count; i++) - if (!insertchild(newparent, wcl->wcl_children[i])) - return (0); - return (1); -} static int itismychild(struct witness *parent, struct witness *child) @@ -1466,7 +1421,7 @@ list = &w_sleep; else list = &w_spin; - return (rebalancetree(list)); + return (1); } static void @@ -1490,6 +1445,7 @@ return; wcl1 = *wcl; *wcl = wcl1->wcl_next; + w_child_cnt--; witness_child_free(wcl1); } @@ -1648,6 +1604,7 @@ } w = STAILQ_FIRST(&w_free); STAILQ_REMOVE_HEAD(&w_free, w_list); + w_free_cnt--; bzero(w, sizeof(*w)); return (w); } @@ -1657,6 +1614,7 @@ { STAILQ_INSERT_HEAD(&w_free, w, w_list); + w_free_cnt++; } static struct witness_child_list_entry * @@ -1676,6 +1634,7 @@ return (NULL); } w_child_free = wcl->wcl_next; + w_child_free_cnt--; bzero(wcl, sizeof(*wcl)); return (wcl); } @@ -1686,6 +1645,7 @@ wcl->wcl_next = w_child_free; w_child_free = wcl; + w_child_free_cnt++; } static struct lock_list_entry * ==== //depot/projects/netsmp/src/sys/libkern/iconv.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/libkern/iconv.c,v 1.10 2005/07/23 16:52:57 imura Exp $"); +__FBSDID("$FreeBSD: src/sys/libkern/iconv.c,v 1.11 2005/08/24 12:38:26 imura Exp $"); #include #include @@ -379,6 +379,12 @@ return EINVAL; if (din.ia_datalen > ICONV_CSMAXDATALEN) return EINVAL; + if (strlen(din.ia_from) >= ICONV_CSNMAXLEN) + return EINVAL; + if (strlen(din.ia_to) >= ICONV_CSNMAXLEN) + return EINVAL; + if (strlen(din.ia_converter) >= ICONV_CNVNMAXLEN) + return EINVAL; if (iconv_lookupconv(din.ia_converter, &dcp) != 0) return EINVAL; error = iconv_register_cspair(din.ia_to, din.ia_from, dcp, NULL, &csp); ==== //depot/projects/netsmp/src/sys/netgraph/ng_ksocket.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ * * Author: Archie Cobbs * - * $FreeBSD: src/sys/netgraph/ng_ksocket.c,v 1.55 2005/05/16 17:07:39 glebius Exp $ + * $FreeBSD: src/sys/netgraph/ng_ksocket.c,v 1.56 2005/08/25 07:21:15 glebius Exp $ * $Whistle: ng_ksocket.c,v 1.1 1999/11/16 20:04:40 archie Exp $ */ @@ -1001,8 +1001,6 @@ * the request has at least been done, but the 'so' may not be so lucky. * handle this by checking the validity of the node in the target function * before dereferencing the socket pointer. - * - * To decouple stack, we use queue version of ng_send_fn(). */ static void @@ -1013,7 +1011,7 @@ wait = (waitflag & M_WAITOK) ? NG_WAITOK : 0; ng_send_fn1(node, NULL, &ng_ksocket_incoming2, so, waitflag, - wait | NG_QUEUE); + wait); } From owner-p4-projects@FreeBSD.ORG Thu Aug 25 13:35:16 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0A33716A421; Thu, 25 Aug 2005 13:35:16 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D9D6516A41F for ; Thu, 25 Aug 2005 13:35:15 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A396D43D58 for ; Thu, 25 Aug 2005 13:35:15 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PDZFn5053265 for ; Thu, 25 Aug 2005 13:35:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PDZF1X053262 for perforce@freebsd.org; Thu, 25 Aug 2005 13:35:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 25 Aug 2005 13:35:15 GMT Message-Id: <200508251335.j7PDZF1X053262@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 82530 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 13:35:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=82530 Change 82530 by rwatson@rwatson_paprika on 2005/08/25 13:35:05 Integrate netsmp: - Loop back rtsock.c spl cleanup. - proxy arp fix. Affected files ... .. //depot/projects/netsmp/src/sys/net/rtsock.c#7 integrate .. //depot/projects/netsmp/src/sys/netinet/if_ether.c#4 integrate Differences ... ==== //depot/projects/netsmp/src/sys/net/rtsock.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)rtsock.c 8.7 (Berkeley) 10/12/95 - * $FreeBSD: src/sys/net/rtsock.c,v 1.126 2005/08/11 08:26:31 glebius Exp $ + * $FreeBSD: src/sys/net/rtsock.c,v 1.127 2005/08/25 13:30:04 rwatson Exp $ */ #include ==== //depot/projects/netsmp/src/sys/netinet/if_ether.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if_ether.c 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/netinet/if_ether.c,v 1.139 2005/08/11 08:25:48 glebius Exp $ + * $FreeBSD: src/sys/netinet/if_ether.c,v 1.140 2005/08/25 13:25:57 glebius Exp $ */ /* @@ -851,6 +851,15 @@ inet_ntoa(itaddr)); #endif } else { + /* + * Return proxied ARP replies only on the interface + * where this network resides. Otherwise we may + * conflict with the host we are proxying for. + */ + if (rt->rt_ifp != ifp) { + RT_UNLOCK(rt); + goto drop; + } sdl = SDL(rt->rt_gateway); (void)memcpy(ar_tha(ah), ar_sha(ah), ah->ar_hln); (void)memcpy(ar_sha(ah), LLADDR(sdl), ah->ar_hln); From owner-p4-projects@FreeBSD.ORG Thu Aug 25 13:38:20 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 62A5C16A421; Thu, 25 Aug 2005 13:38:20 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2586E16A41F for ; Thu, 25 Aug 2005 13:38:20 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C75B843D49 for ; Thu, 25 Aug 2005 13:38:19 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PDcJX7053381 for ; Thu, 25 Aug 2005 13:38:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PDcJYL053378 for perforce@freebsd.org; Thu, 25 Aug 2005 13:38:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 25 Aug 2005 13:38:19 GMT Message-Id: <200508251338.j7PDcJYL053378@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 82531 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 13:38:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=82531 Change 82531 by rwatson@rwatson_paprika on 2005/08/25 13:37:31 Add backlog to the arguments passed to the protocol via pru_listen, and then back to the socket layer via solisten_proto(). This allows the update to the socket backlog to be updated properly while holding the socket lock, and completes the move of control during the socket listen transition from the socket layer to the protocol layer using the socket layer as a service. Affected files ... .. //depot/projects/netsmp/src/sys/kern/uipc_socket.c#3 edit .. //depot/projects/netsmp/src/sys/kern/uipc_socket2.c#2 edit .. //depot/projects/netsmp/src/sys/kern/uipc_usrreq.c#2 edit .. //depot/projects/netsmp/src/sys/netatm/atm_aal5.c#2 edit .. //depot/projects/netsmp/src/sys/netatm/atm_cm.c#2 edit .. //depot/projects/netsmp/src/sys/netatm/atm_socket.c#2 edit .. //depot/projects/netsmp/src/sys/netatm/atm_var.h#2 edit .. //depot/projects/netsmp/src/sys/netatm/ipatm/ipatm_if.c#2 edit .. //depot/projects/netsmp/src/sys/netatm/ipatm/ipatm_load.c#2 edit .. //depot/projects/netsmp/src/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h#2 edit .. //depot/projects/netsmp/src/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h#2 edit .. //depot/projects/netsmp/src/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#2 edit .. //depot/projects/netsmp/src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#2 edit .. //depot/projects/netsmp/src/sys/netinet/tcp_usrreq.c#4 edit .. //depot/projects/netsmp/src/sys/netipx/spx_usrreq.c#2 edit .. //depot/projects/netsmp/src/sys/sys/protosw.h#3 edit .. //depot/projects/netsmp/src/sys/sys/socketvar.h#2 edit Differences ... ==== //depot/projects/netsmp/src/sys/kern/uipc_socket.c#3 (text+ko) ==== @@ -275,7 +275,7 @@ * existing listen socket. The protocol will call back into the sockets * layer using solisten_proto_check() and solisten_proto() to check and set * socket-layer listen state. Call backs are used so that the protocol can - * acquire both protocol and socket layer locks in whatever order is reuiqred + * acquire both protocol and socket layer locks in whatever order is required * by the protocol. * * Protocol implementors are advised to hold the socket lock across the @@ -287,21 +287,8 @@ int backlog; struct thread *td; { - int error; - error = (*so->so_proto->pr_usrreqs->pru_listen)(so, td); - if (error) - return (error); - - /* - * XXXRW: The following state adjustment should occur in - * solisten_proto(), but we don't currently pass the backlog request - * to the protocol via pru_listen(). - */ - if (backlog < 0 || backlog > somaxconn) - backlog = somaxconn; - so->so_qlimit = backlog; - return (0); + return ((*so->so_proto->pr_usrreqs->pru_listen)(so, backlog, td)); } int @@ -318,12 +305,16 @@ } void -solisten_proto(so) +solisten_proto(so, backlog) struct socket *so; + int backlog; { SOCK_LOCK_ASSERT(so); + if (backlog < 0 || backlog > somaxconn) + backlog = somaxconn; + so->so_qlimit = backlog; so->so_options |= SO_ACCEPTCONN; } ==== //depot/projects/netsmp/src/sys/kern/uipc_socket2.c#2 (text+ko) ==== @@ -1327,7 +1327,7 @@ } int -pru_listen_notsupp(struct socket *so, struct thread *td) +pru_listen_notsupp(struct socket *so, int backlog, struct thread *td) { return EOPNOTSUPP; } ==== //depot/projects/netsmp/src/sys/kern/uipc_usrreq.c#2 (text+ko) ==== @@ -125,7 +125,8 @@ static void unp_discard(struct file *); static void unp_freerights(struct file **, int); static int unp_internalize(struct mbuf **, struct thread *); -static int unp_listen(struct socket *, struct unpcb *, struct thread *); +static int unp_listen(struct socket *, struct unpcb *, int, + struct thread *); static int uipc_abort(struct socket *so) @@ -274,7 +275,7 @@ } static int -uipc_listen(struct socket *so, struct thread *td) +uipc_listen(struct socket *so, int backlog, struct thread *td) { struct unpcb *unp; int error; @@ -285,7 +286,7 @@ UNP_UNLOCK(); return (EINVAL); } - error = unp_listen(so, unp, td); + error = unp_listen(so, unp, backlog, td); UNP_UNLOCK(); return (error); } @@ -1802,7 +1803,8 @@ } static int -unp_listen(struct socket *so, struct unpcb *unp, struct thread *td) +unp_listen(struct socket *so, struct unpcb *unp, int backlog, + struct thread *td) { int error; @@ -1813,7 +1815,7 @@ if (error == 0) { cru2x(td->td_ucred, &unp->unp_peercred); unp->unp_flags |= UNP_HAVEPCCACHED; - solisten_proto(so); + solisten_proto(so, backlog); } SOCK_UNLOCK(so); return (error); ==== //depot/projects/netsmp/src/sys/netatm/atm_aal5.c#2 (text+ko) ==== @@ -69,7 +69,8 @@ static int atm_aal5_detach(struct socket *); static int atm_aal5_bind(struct socket *, struct sockaddr *, struct thread *td); -static int atm_aal5_listen(struct socket *, struct thread *td); +static int atm_aal5_listen(struct socket *, int backlog, + struct thread *td); static int atm_aal5_connect(struct socket *, struct sockaddr *, struct thread *td); static int atm_aal5_accept(struct socket *, struct sockaddr **); @@ -328,13 +329,14 @@ * */ static int -atm_aal5_listen(so, td) +atm_aal5_listen(so, backlog, td) struct socket *so; + int backlog; struct thread *td; { ATM_INTRO("listen"); - err = atm_sock_listen(so, &atm_aal5_endpt); + err = atm_sock_listen(so, &atm_aal5_endpt, backlog); ATM_OUTRO(); } ==== //depot/projects/netsmp/src/sys/netatm/atm_cm.c#2 (text+ko) ==== @@ -536,12 +536,13 @@ * */ int -atm_cm_listen(so, epp, token, ap, copp) +atm_cm_listen(so, epp, token, ap, copp, backlog) struct socket *so; Atm_endpoint *epp; void *token; Atm_attributes *ap; Atm_connection **copp; + int backlog; { Atm_connection *cop; int s, err = 0; @@ -737,7 +738,7 @@ cop->co_state = COS_LISTEN; LINK2TAIL(cop, Atm_connection, atm_listen_queue, co_next); if (so != NULL) - solisten_proto(so); + solisten_proto(so, backlog); donex: (void) splx(s); ==== //depot/projects/netsmp/src/sys/netatm/atm_socket.c#2 (text+ko) ==== @@ -335,9 +335,10 @@ * */ int -atm_sock_listen(so, epp) +atm_sock_listen(so, epp, backlog) struct socket *so; Atm_endpoint *epp; + int backlog; { Atm_pcb *atp = sotoatmpcb(so); @@ -350,7 +351,8 @@ /* * Start listening for incoming calls */ - return (atm_cm_listen(so, epp, atp, &atp->atp_attr, &atp->atp_conn)); + return (atm_cm_listen(so, epp, atp, &atp->atp_attr, &atp->atp_conn, + backlog)); } ==== //depot/projects/netsmp/src/sys/netatm/atm_var.h#2 (text+ko) ==== @@ -82,7 +82,7 @@ int atm_cm_connect(Atm_endpoint *, void *, Atm_attributes *, Atm_connection **); int atm_cm_listen(struct socket *, Atm_endpoint *, void *, - Atm_attributes *, Atm_connection **); + Atm_attributes *, Atm_connection **, int); int atm_cm_addllc(Atm_endpoint *, void *, struct attr_llc *, Atm_connection *, Atm_connection **); int atm_cm_addparty(Atm_connection *, int, struct t_atm_sap *); @@ -152,7 +152,7 @@ int atm_sock_attach(struct socket *, u_long, u_long); int atm_sock_detach(struct socket *); int atm_sock_bind(struct socket *, struct sockaddr *); -int atm_sock_listen(struct socket *, Atm_endpoint *); +int atm_sock_listen(struct socket *, Atm_endpoint *, int); int atm_sock_connect(struct socket *, struct sockaddr *, Atm_endpoint *); int atm_sock_disconnect(struct socket *); ==== //depot/projects/netsmp/src/sys/netatm/ipatm/ipatm_if.c#2 (text+ko) ==== @@ -60,7 +60,7 @@ #include #include -static MALLOC_DEFINE(M_IPATM_NIF, "ipatm nif", "IP/ATM network interfaces"); +static MALLOC_DEFINE(M_IPATM_NIF, "ipatm_nif", "IP/ATM network interfaces"); /* * Local functions ==== //depot/projects/netsmp/src/sys/netatm/ipatm/ipatm_load.c#2 (text+ko) ==== @@ -524,7 +524,7 @@ */ if ((err = atm_cm_listen(NULL, &ipatm_endpt, (void *)(intptr_t)i, &ipatm_listeners[i].attr, - &ipatm_listeners[i].conn)) != 0) + &ipatm_listeners[i].conn, -1)) != 0) goto done; } ==== //depot/projects/netsmp/src/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h#2 (text+ko) ==== @@ -195,7 +195,7 @@ int ng_btsocket_l2cap_ctloutput (struct socket *, struct sockopt *); int ng_btsocket_l2cap_detach (struct socket *); int ng_btsocket_l2cap_disconnect (struct socket *); -int ng_btsocket_l2cap_listen (struct socket *, struct thread *); +int ng_btsocket_l2cap_listen (struct socket *, int, struct thread *); int ng_btsocket_l2cap_peeraddr (struct socket *, struct sockaddr **); int ng_btsocket_l2cap_send (struct socket *, int, struct mbuf *, struct sockaddr *, struct mbuf *, ==== //depot/projects/netsmp/src/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h#2 (text+ko) ==== @@ -326,7 +326,7 @@ int ng_btsocket_rfcomm_ctloutput (struct socket *, struct sockopt *); int ng_btsocket_rfcomm_detach (struct socket *); int ng_btsocket_rfcomm_disconnect (struct socket *); -int ng_btsocket_rfcomm_listen (struct socket *, struct thread *); +int ng_btsocket_rfcomm_listen (struct socket *, int, struct thread *); int ng_btsocket_rfcomm_peeraddr (struct socket *, struct sockaddr **); int ng_btsocket_rfcomm_send (struct socket *, int, struct mbuf *, struct sockaddr *, struct mbuf *, ==== //depot/projects/netsmp/src/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#2 (text+ko) ==== @@ -2406,7 +2406,7 @@ */ int -ng_btsocket_l2cap_listen(struct socket *so, struct thread *td) +ng_btsocket_l2cap_listen(struct socket *so, int backlog, struct thread *td) { ng_btsocket_l2cap_pcb_p pcb = so2l2cap_pcb(so); int error; @@ -2427,7 +2427,7 @@ error = EDESTADDRREQ; goto out; } - solisten_proto(so); + solisten_proto(so, backlog); out: SOCK_UNLOCK(so); return (error); ==== //depot/projects/netsmp/src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#2 (text+ko) ==== @@ -794,7 +794,7 @@ */ int -ng_btsocket_rfcomm_listen(struct socket *so, struct thread *td) +ng_btsocket_rfcomm_listen(struct socket *so, int backlog, struct thread *td) { ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so); ng_btsocket_rfcomm_session_p s = NULL; @@ -858,7 +858,7 @@ goto out; l2so = NULL; } - solisten_proto(so); + solisten_proto(so, backlog); out: SOCK_UNLOCK(so); mtx_unlock(&ng_btsocket_rfcomm_sessions_mtx); ==== //depot/projects/netsmp/src/sys/netinet/tcp_usrreq.c#4 (text+ko) ==== @@ -290,7 +290,7 @@ * Prepare to accept connections. */ static int -tcp_usr_listen(struct socket *so, struct thread *td) +tcp_usr_listen(struct socket *so, int backlog, struct thread *td) { int error = 0; struct inpcb *inp; @@ -304,7 +304,7 @@ error = in_pcbbind(inp, (struct sockaddr *)0, td->td_ucred); if (error == 0) { tp->t_state = TCPS_LISTEN; - solisten_proto(so); + solisten_proto(so, backlog); } SOCK_UNLOCK(so); COMMON_END(PRU_LISTEN); @@ -312,7 +312,7 @@ #ifdef INET6 static int -tcp6_usr_listen(struct socket *so, struct thread *td) +tcp6_usr_listen(struct socket *so, int backlog, struct thread *td) { int error = 0; struct inpcb *inp; @@ -330,7 +330,7 @@ } if (error == 0) { tp->t_state = TCPS_LISTEN; - solisten_proto(so); + solisten_proto(so, backlog); } SOCK_UNLOCK(so); COMMON_END(PRU_LISTEN); ==== //depot/projects/netsmp/src/sys/netipx/spx_usrreq.c#2 (text+ko) ==== @@ -99,7 +99,7 @@ struct thread *td); static int spx_detach(struct socket *so); static int spx_usr_disconnect(struct socket *so); -static int spx_listen(struct socket *so, struct thread *td); +static int spx_listen(struct socket *so, int backlog, struct thread *td); static int spx_rcvd(struct socket *so, int flags); static int spx_rcvoob(struct socket *so, struct mbuf *m, int flags); static int spx_send(struct socket *so, int flags, struct mbuf *m, @@ -1518,8 +1518,9 @@ } static int -spx_listen(so, td) +spx_listen(so, backlog, td) struct socket *so; + int backlog; struct thread *td; { int error; @@ -1538,7 +1539,7 @@ error = ipx_pcbbind(ipxp, NULL, td); if (error == 0) { cb->s_state = TCPS_LISTEN; - solisten_proto(so); + solisten_proto(so, backlog); } SOCK_UNLOCK(so); IPX_UNLOCK(ipxp); ==== //depot/projects/netsmp/src/sys/sys/protosw.h#3 (text+ko) ==== @@ -208,7 +208,8 @@ struct ifnet *ifp, struct thread *td); int (*pru_detach)(struct socket *so); int (*pru_disconnect)(struct socket *so); - int (*pru_listen)(struct socket *so, struct thread *td); + int (*pru_listen)(struct socket *so, int backlog, + struct thread *td); int (*pru_peeraddr)(struct socket *so, struct sockaddr **nam); int (*pru_rcvd)(struct socket *so, int flags); int (*pru_rcvoob)(struct socket *so, struct mbuf *m, int flags); @@ -257,7 +258,7 @@ struct ifnet *ifp, struct thread *td); int pru_detach_notsupp(struct socket *so); int pru_disconnect_notsupp(struct socket *so); -int pru_listen_notsupp(struct socket *so, struct thread *td); +int pru_listen_notsupp(struct socket *so, int backlog, struct thread *td); int pru_peeraddr_notsupp(struct socket *so, struct sockaddr **nam); int pru_rcvd_notsupp(struct socket *so, int flags); int pru_rcvoob_notsupp(struct socket *so, struct mbuf *m, int flags); ==== //depot/projects/netsmp/src/sys/sys/socketvar.h#2 (text+ko) ==== @@ -514,7 +514,7 @@ void soisdisconnected(struct socket *so); void soisdisconnecting(struct socket *so); int solisten(struct socket *so, int backlog, struct thread *td); -void solisten_proto(struct socket *so); +void solisten_proto(struct socket *so, int backlog); int solisten_proto_check(struct socket *so); struct socket * sonewconn(struct socket *head, int connstatus); From owner-p4-projects@FreeBSD.ORG Thu Aug 25 14:25:30 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5854816A423; Thu, 25 Aug 2005 14:25:29 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1578716A41F for ; Thu, 25 Aug 2005 14:25:29 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9B46643D45 for ; Thu, 25 Aug 2005 14:25:28 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PEPSPF055288 for ; Thu, 25 Aug 2005 14:25:28 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PEPSXw055275 for perforce@freebsd.org; Thu, 25 Aug 2005 14:25:28 GMT (envelope-from soc-bushman@freebsd.org) Date: Thu, 25 Aug 2005 14:25:28 GMT Message-Id: <200508251425.j7PEPSXw055275@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 82533 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 14:25:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=82533 Change 82533 by soc-bushman@soc-bushman_stinger on 2005/08/25 14:25:11 libc patched Affected files ... .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/cached.conf#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/include/nscache.h#1 add .. //depot/projects/soc2005/nsswitch_cached/src/include/nscachedcli.h#1 add .. //depot/projects/soc2005/nsswitch_cached/src/include/nsswitch.h#7 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getgrent.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpwent.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoent.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/netdb_private.h#7 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nscache.c#1 add .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nscachedcli.c#1 add .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nsdispatch.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/rpc/getrpcent.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/IPXrouted.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/af.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/af.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/defs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/if.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/input.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/interface.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/output.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/protocol.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/sap.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/sap_input.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/sap_output.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/sap_tables.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/startup.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/table.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/tables.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/timer.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/trace.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/IPXrouted/trace.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/Makefile#1 add .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ac/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ac/ac.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ac/ac.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/accton/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/accton/accton.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/accton/accton.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpiconf/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpiconf/acpiconf.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpiconf/acpiconf.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidb/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidb/acpidb.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidb/acpidb.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidump/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidump/acpi.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidump/acpi_user.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidump/acpidump.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidump/acpidump.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/acpidump/acpidump.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/iasl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/acpi/iasl/iasl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/adduser/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/adduser/adduser.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/adduser/adduser.conf.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/adduser/adduser.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/adduser/rmuser.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/adduser/rmuser.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/NOTES#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/amd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/amq/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/doc/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/fixmount/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/fsinfo/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/hlfsd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/include/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/include/amu_nfs_prot.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/include/aux_conf.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/include/build_version.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/include/config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/include/newvers.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/libamu/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/mk-amd-map/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/pawd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/scripts/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/amd/wire-test/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ancontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ancontrol/ancontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ancontrol/ancontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apm/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apm/apm.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apm/apm.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/apmd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/apmd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/apmd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/apmdlex.l#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/apmdparse.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/apmd/contrib/pccardq.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/arlcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/arlcontrol/arlcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/arlcontrol/arlcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/arp/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/arp/arp.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/arp/arp.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/arp/arp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/asf/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/asf/asf.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/asf/asf.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarp_config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarp_log.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarp_scsp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarp_subr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarp_timer.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarp_var.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarpd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/atmarpd/atmarpd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_cafsm.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_config_lex.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_config_parse.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_hfsm.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_if.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_if.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_input.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_log.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_msg.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_msg.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_output.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_print.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_socket.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_subr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_timer.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scsp_var.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scspd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/atm/scspd/scspd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/authpf/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bcmfw/BCM-LEGAL.txt#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bcmfw/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bcmfw/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bcmfw/bcmfw.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bcmfw/bcmfw.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bt3cfw/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bt3cfw/bt3cfw.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bt3cfw/bt3cfw.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidcontrol/bthidcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidcontrol/bthidcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidcontrol/bthidcontrol.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidcontrol/hid.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidcontrol/sdp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/bthid_config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/bthidd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/bthidd.conf.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/bthidd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/client.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/hid.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/kbd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/kbd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/lexer.l#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/parser.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/server.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/bthidd/session.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/hccontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/hccontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/hccontrol.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/host_controller_baseband.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/info.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/link_control.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/link_policy.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/node.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/send_recv.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/status.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hccontrol/util.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/hcsecd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/hcsecd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/hcsecd.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/hcsecd.conf.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/hcsecd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/lexer.l#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcsecd/parser.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcseriald/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcseriald/hcseriald.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/hcseriald/hcseriald.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2control/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2control/l2cap.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2control/l2control.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2control/l2control.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2control/l2control.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2ping/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2ping/l2ping.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/l2ping/l2ping.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/rfcomm_pppd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpcontrol/sdpcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpcontrol/sdpcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpcontrol/sdpcontrol.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpcontrol/search.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/bgd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/dun.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/ftrn.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/irmc.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/irmc_command.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/lan.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/log.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/log.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/opush.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/profile.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/profile.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/provider.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/provider.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/sar.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/scr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/sd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/sdpd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/server.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/server.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/sp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/srr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/ssar.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/ssr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/sur.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/uuid-private.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bluetooth/sdpd/uuid.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/boot0cfg/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/boot0cfg/boot0cfg.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/boot0cfg/boot0cfg.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/boot98cfg/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/boot98cfg/boot98cfg.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/boot98cfg/boot98cfg.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/bootparamd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/bootparamd/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/bootparamd/bootparamd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/bootparamd/bootparamd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/bootparamd/bootparams.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/bootparamd/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/callbootd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bootparamd/callbootd/callbootd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/bsnmpd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/gensnmptree/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_atm/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_atm/atm_freebsd.def#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_atm/atm_sys.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_netgraph/BEGEMOT-NETGRAPH.txt#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_netgraph/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_netgraph/netgraph_tree.def#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_pf/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/bsnmpd/modules/snmp_pf/pf_tree.def#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/btxld/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/btxld/btx.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/btxld/btxld.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/btxld/btxld.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/btxld/elfh.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/btxld/elfh.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/burncd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/burncd/burncd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/burncd/burncd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cdcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cdcontrol/cdcontrol.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cdcontrol/cdcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chkgrp/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chkgrp/chkgrp.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chkgrp/chkgrp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chown/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chown/chgrp.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chown/chown.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chown/chown.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chroot/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chroot/chroot.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/chroot/chroot.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ckdist/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ckdist/ckdist.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ckdist/ckdist.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/0.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/1.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/2.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/3.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/4.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/5.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/6.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/a.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/b.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/c.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/d.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/e.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/SMM.doc/spell.ok#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/config.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/config.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/configvers.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/lang.l#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/mkheaders.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/mkmakefile.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/config/mkoptions.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/compat.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/cron.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/cron.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/cron.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/database.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/do_command.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/externs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/job.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/popen.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/cron/user.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/crontab/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/crontab/crontab.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/crontab/crontab.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/crontab/crontab.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/CHANGES#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/CONVERSION#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/FEATURES#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/INSTALL#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/MAIL#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/Makefile.vixie#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/README.1ST#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/doc/THANKS#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/lib/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/lib/compat.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/lib/entry.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/lib/env.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/cron/lib/misc.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/COPYRIGHT#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchgen/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchgen/crunched_main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchgen/crunchgen.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchgen/crunchgen.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchgen/mkskel.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchide/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchide/crunchide.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchide/crunchide.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchide/exec_aout.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchide/exec_elf32.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchide/exec_elf64.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/crunchide/extern.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/examples/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/examples/filesystem.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/examples/fixit.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/examples/kcopy.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/crunch/examples/really-big.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm_ed.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm_input.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm_pass1.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm_pass2.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm_pass3.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm_passb.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm/ctm_syntax.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_dequeue/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_dequeue/ctm_dequeue.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_rmail/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_rmail/ctm_rmail.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_rmail/ctm_rmail.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_rmail/error.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_rmail/error.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_rmail/options.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_smail/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/ctm_smail/ctm_smail.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/ctm_conf.cvs-cur#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/ctm_conf.gnats#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/ctm_conf.ports-cur#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/ctm_conf.smp-cur#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/ctm_conf.src-cur#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/ctm_conf.src-special#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/dequeue#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/mkCTM#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ctm/mkCTM/mkctm.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/daemon/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/daemon/daemon.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/daemon/daemon.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/dconschat/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/dconschat/dconschat.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/dconschat/dconschat.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/devinfo/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/devinfo/devinfo.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/devinfo/devinfo.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/digictl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/digictl/digictl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/digictl/digictl.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/diskinfo/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/diskinfo/diskinfo.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/diskinfo/diskinfo.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/dnssec-keygen/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/dnssec-signzone/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/editmap/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/edquota/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/edquota/edquota.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/edquota/edquota.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/edquota/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/eeprom/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/eeprom/eeprom.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/eeprom/eeprom.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/eeprom/ofw_options.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/eeprom/ofw_options.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/elf2exe/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/elf2exe/elf2exe.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/elf2exe/elf2exe.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/extattr/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/extattr/rmextattr.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/extattr/rmextattr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/extattrctl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/extattrctl/extattrctl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/extattrctl/extattrctl.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/README#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/faithd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/faithd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/faithd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/ftp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/prefix.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/prefix.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/tcp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/faithd/test/faithd.rb#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdcontrol/fdcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdcontrol/fdcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdformat/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdformat/fdformat.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdformat/fdformat.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdread/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdread/fdread.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdread/fdread.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdread/fdutil.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdread/fdutil.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdwrite/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdwrite/fdwrite.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fdwrite/fdwrite.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/flowctl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/flowctl/flowctl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/flowctl/flowctl.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fwcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fwcontrol/fwcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fwcontrol/fwcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/fwcontrol/fwdv.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/getfmac/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/getfmac/getfmac.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/getfmac/getfmac.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/getpmac/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/getpmac/getpmac.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/getpmac/getpmac.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/gstat/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/gstat/gstat.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/gstat/gstat.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/dtmfdecode/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/dtmfdecode/dtmfdecode.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/dtmfdecode/dtmfdecode.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/dtmfdecode/dtmfsounds.al.uu#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/g711conv/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/g711conv/g711conv.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/g711conv/g711conv.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/alias.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/controller.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/curses.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/dial.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/exec.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/fsm.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/holiday.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/isdnd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/isdnd.acct.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/isdnd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/isdnd.rates.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/isdnd.rc.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/log.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/monitor.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/msghdl.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/pcause.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/process.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/rates.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/rc_config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/rc_parse.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/rc_scan.l#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/support.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnd/timer.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndebug/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndebug/isdndebug.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndebug/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/decode.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/facility.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/facility.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/isdndecode.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/layer1.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/layer2.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/layer3.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/layer3_subr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/pcause.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdndecode/pcause.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnmonitor/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnmonitor/curses.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnmonitor/isdnmonitor.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnmonitor/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnmonitor/monitor.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnmonitor/monprivate.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnphone/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnphone/audio.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnphone/defs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnphone/display.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnphone/isdn.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnphone/isdnphone.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdnphone/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/alias.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/alias.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/defs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/display.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/files.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/isdntel.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntel/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntelctl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntelctl/isdntelctl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntelctl/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntest/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntest/isdntest.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntest/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/1tr6.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/cable.txt#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/isdntrace.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/pcause_1tr6.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/pcause_1tr6.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/pcause_q850.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/pcause_q850.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/q921.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/q931.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/q931_util.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/q932_fac.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/q932_fac.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/trace.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/trace.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/isdntrace/unknownl3.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4b.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4bcapi.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4bctl.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4bing.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4bipr.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4bisppp.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4bq921.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4bq931.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4brbch.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4btel.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/i4btrc.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/iavc.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/ifpi.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/ifpi2.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/ifpnp.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/ihfc.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/isic.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/itjc.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/i4b/man/iwic.4#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ifmcstat/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ifmcstat/ifmcstat.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ifmcstat/ifmcstat.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/inetd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/inetd/builtins.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/inetd/inetd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/inetd/inetd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/inetd/inetd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/inetd/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/iostat/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/iostat/iostat.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/iostat/iostat.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ip6addrctl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ip6addrctl/ip6addrctl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ip6addrctl/ip6addrctl.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ip6addrctl/ip6addrctl.conf.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jail/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jail/jail.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jail/jail.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jexec/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jexec/jexec.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jexec/jexec.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jls/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jls/jls.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/jls/jls.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdcontrol/kbdcontrol.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdcontrol/kbdcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdcontrol/kbdmap.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdcontrol/lex.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdcontrol/lex.l#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdcontrol/path.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdmap/Languages.phrases#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdmap/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdmap/TODO#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdmap/kbdmap.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdmap/kbdmap.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kbdmap/kbdmap.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kernbb/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kernbb/kernbb.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kernbb/kernbb.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/keyserv/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/keyserv/crypt_server.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/keyserv/keyserv.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/keyserv/keyserv.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/keyserv/keyserv.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/keyserv/setkey.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgmon/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgmon/kgmon.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgmon/kgmon.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/aouthdr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/aouthdr.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/elfhdr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/elfhdr.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/kgz.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/kgzcmp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/kgzip.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/kgzip.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/kgzip.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/kgzld.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kgzip/xio.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef_amd64.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef_i386.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef_nop.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef_obj.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef_powerpc.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/ef_sparc64.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/fileformat#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/kldxref.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/kldxref/kldxref.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lastlogin/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lastlogin/lastlogin.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lastlogin/lastlogin.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/0.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/1.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/2.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/3.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/4.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/5.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/6.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/7.t#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/SMM.doc/spell.ok#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/chkprintcap/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/chkprintcap/chkprintcap.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/chkprintcap/chkprintcap.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/chkprintcap/skimprintcap.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/chkprintcap/skimprintcap.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/common.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/ctlinfo.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/ctlinfo.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/displayq.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/lp.cdefs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/lp.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/lp.local.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/matchjobs.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/matchjobs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/net.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/printcap.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/request.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/rmjob.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/common_source/startdaemon.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/bjc-240.sh.sample#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2855/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2855/koi2855.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2alt/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters.ru/koi2alt/koi2alt.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/filters/lpf.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lp/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lp/lp.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lp/lp.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/cmds.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/cmdtab.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/extern.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/lpc.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/lpc.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/lpc.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpc/movejobs.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/extern.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/lpd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/lpd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/lpdchar.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/modes.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/printjob.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpd/recvjob.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpq/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpq/lpq.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpq/lpq.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpr/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpr/lpr.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpr/lpr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lpr/printcap.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lprm/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lprm/lprm.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lprm/lprm.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lptest/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lptest/lptest.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/lptest/lptest.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/pac/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/pac/pac.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lpr/pac/pac.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lptcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lptcontrol/lptcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/lptcontrol/lptcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mailstats/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mailwrapper/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mailwrapper/mailwrapper.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mailwrapper/mailwrapper.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mailwrapper/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/makemap/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/manctl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/manctl/manctl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/manctl/manctl.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/memcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/memcontrol/memcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/memcontrol/memcontrol.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mergemaster/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mergemaster/mergemaster.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mergemaster/mergemaster.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mixer/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mixer/mixer.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mixer/mixer.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mld6query/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mld6query/mld6.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mld6query/mld6query.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mlxcontrol/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mlxcontrol/command.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mlxcontrol/config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mlxcontrol/interface.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mlxcontrol/mlxcontrol.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mlxcontrol/mlxcontrol.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mlxcontrol/util.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_nwfs/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_nwfs/mount_nwfs.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_nwfs/mount_nwfs.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/activate.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/conf.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/cred.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/mount_portalfs.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/mount_portalfs.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/portal.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/portald.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/pt_conf.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/pt_exec.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/pt_file.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/pt_pipe.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/pt_tcp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_portalfs/pt_tcplisten.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mount_smbfs/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mountd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mountd/exports.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mountd/mountd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mountd/mountd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mountd/netgroup.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mountd/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/moused/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/moused/moused.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/moused/moused.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mptable/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mptable/mptable.1#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mptable/mptable.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/LICENSE#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/RELEASE#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/VERSION#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/callout.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/cfparse.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/common/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/defs.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/dvmrp.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/icmp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/igmp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/igmpv2.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/inet.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/ipip.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/kern.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/map-mbone.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/map-mbone/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mapper.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mrinfo.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mrinfo.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mrinfo/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mrouted.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mrouted.conf#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mrouted/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mtrace.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mtrace.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mtrace.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/mtrace/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/prune.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/prune.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/route.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/route.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/rsrr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/rsrr.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/rsrr_var.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/testrsrr/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/testrsrr/testrsrr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/vif.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mrouted/vif.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtest/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtest/mtest.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtest/mtest.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/compare.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/create.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/excludes.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/extern.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/misc.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/mtree.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/mtree.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/mtree.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/spec.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/specspec.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/test/test00.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/test/test01.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/test/test02.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/test/test03.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/test/test04.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/mtree/verify.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/named-checkconf/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/named-checkzone/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/named.reload/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/named.reload/named.reload.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/named.reload/named.reload.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/named/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/inf-parse.y#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/inf-token.l#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/inf.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/inf.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/ndiscvt.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/ndiscvt.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/ndisgen.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/ndisgen.sh#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndiscvt/windrv_stub.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndp/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndp/gnuc.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndp/ndp.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ndp/ndp.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/newsyslog/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/newsyslog/extern.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/newsyslog/newsyslog.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/newsyslog/newsyslog.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/newsyslog/newsyslog.conf.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/newsyslog/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/newsyslog/ptimes.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nfsd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nfsd/nfsd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nfsd/nfsd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/config.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/connect.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/debug.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/dot.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/list.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/mkpeer.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/msg.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/name.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/ngctl.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/ngctl.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/rmhook.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/show.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/shutdown.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/status.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/types.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ngctl/write.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nghook/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nghook/main.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nghook/nghook.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nologin/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nologin/nologin.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nologin/nologin.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/nologin/nologin.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/config.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntp.conf.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntp.keys.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntpd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntpdate.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntpdc.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntpq.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntptime.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/doc/ntptrace.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/libntp/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/libparse/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/ntp-keygen/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/ntpd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/ntpdate/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/ntpdc/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/ntpq/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/ntptime/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/ntptrace/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/scripts/mkver#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/scripts/ntptrace#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/scripts/ntpver#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ntp/sntp/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ofwdump/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ofwdump/ofw_util.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ofwdump/ofw_util.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ofwdump/ofwdump.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ofwdump/ofwdump.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/ofwdump/pathnames.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/Makefile.inc#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/beep.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/dumpcis.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/dumpcisfile.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/enabler.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/pccardc.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/pccardc.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/pccardmem.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/power.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/printcis.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/rdattr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/rdmap.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/rdreg.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/wrattr.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardc/wrreg.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/cardd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/cardd.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/file.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/pccard.conf.5#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/pccardd.8#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/pccardd.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/readcis.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/readcis.h#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/server.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pccard/pccardd/util.c#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pciconf/Makefile#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/usr.sbin/pciconf/pathnames.h#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 25 15:44:04 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7261116A429; Thu, 25 Aug 2005 15:44:04 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4517416A422 for ; Thu, 25 Aug 2005 15:44:04 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C423C43D45 for ; Thu, 25 Aug 2005 15:44:03 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PFi3vV058762 for ; Thu, 25 Aug 2005 15:44:03 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PFi3Yb058759 for perforce@freebsd.org; Thu, 25 Aug 2005 15:44:03 GMT (envelope-from soc-victor@freebsd.org) Date: Thu, 25 Aug 2005 15:44:03 GMT Message-Id: <200508251544.j7PFi3Yb058759@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82535 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 15:44:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=82535 Change 82535 by soc-victor@soc-victor_82.76.158.176 on 2005/08/25 15:43:30 Added the SNMP instrumentation for tcpListenerTable. Also fixed a bug in tcpConnectionTable. Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#3 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#5 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#3 (text+ko) ==== @@ -30,7 +30,7 @@ MOD= tcp46 -SRCS= tcp46_snmp.c \ +SRCS= tcp46_snmp.c WARNS?= 6 #Not having NDEBUG defined will enable assertions and a lot of output on stderr ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#5 (text+ko) ==== @@ -173,17 +173,25 @@ size_t xinpgen_len; /*the allocated len of the above vector */ u_int tcp_estab_count; /*value for the scalar named tcpCurrEstab*/ u_int tcp4_total; /*the number of tcp4 entries*/ - u_int all_tcp_total; /*the number of tcp4 and tcp6 entries*/ + u_int all_tcp_total; /*the number of tcp4 and tcp6 entries (without listeners)*/ + u_int listen_tcp_total; /*the number of tcp4 and tcp6 entries in listen state*/ struct tcp_index *tcp4oids; /*snmp vector for the tcp4 table; malloc'd*/ size_t tcp4oids_len; /*the allocated len of the above vector */ - struct tcp_index *all_tcpoids; /*snmp vector for the unigied v4 and v6 tcp table; malloc'd*/ + struct tcp_index *all_tcpoids; /*snmp vector for the unified v4 and v6 tcp table; malloc'd*/ size_t all_tcpoids_len; /*the allocated len of the above vector */ - + struct tcp_index *listen_tcpoids; /*snmp vector for the unified v4 and v6 listners tcp table; malloc'd*/ + size_t listen_tcpoids_len; /*the allocated len of the above vector */ + + }; +/* + * Global variable used to hold all the data + * related to this SNMP module + */ static struct tcp46_state tcp46_state_g; @@ -230,6 +238,12 @@ tcp46_state_g.all_tcpoids_len = 0; } + if (tcp46_state_g.listen_tcpoids != NULL && tcp46_state_g.listen_tcpoids_len > 0) { + free(tcp46_state_g.listen_tcpoids); + tcp46_state_g.listen_tcpoids = NULL; + tcp46_state_g.listen_tcpoids_len = 0; + } + if (tcp46_state_g.xinpgen != NULL && tcp46_state_g.xinpgen_len > 0) { free(tcp46_state_g.xinpgen); tcp46_state_g.xinpgen = NULL; @@ -319,6 +333,263 @@ tcp46_loading_v }; +/* + * Add an entry into the list associated with the old/ deprecated + * tcpConnTable + */ +static +void handle_old_tcp4_entry (struct tcp_index *oid, struct xtcpcb *tp) { + in_addr_t inaddr; + + assert(oid != NULL); + assert(tp != NULL); + /*next is the encoding for the SNMP table index*/ + oid->index.len = 10; + inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); + oid->index.subs[0] = (inaddr >> 24) & 0xff; + oid->index.subs[1] = (inaddr >> 16) & 0xff; + oid->index.subs[2] = (inaddr >> 8) & 0xff; + oid->index.subs[3] = (inaddr >> 0) & 0xff; + oid->index.subs[4] = ntohs(tp->xt_inp.inp_lport); + inaddr = ntohl(tp->xt_inp.inp_faddr.s_addr); + oid->index.subs[5] = (inaddr >> 24) & 0xff; + oid->index.subs[6] = (inaddr >> 16) & 0xff; + oid->index.subs[7] = (inaddr >> 8) & 0xff; + oid->index.subs[8] = (inaddr >> 0) & 0xff; + oid->index.subs[9] = ntohs(tp->xt_inp.inp_fport); + +} + +/* + * Add a __v4__ entry into the list associated with the new (combined v4 & v6) + * tcpConnectionTable + */ +static +void handle_new_tcp4_entry (struct tcp_index *all_oid, struct xtcpcb *tp) { + in_addr_t inaddr; + assert(all_oid != NULL); + assert(tp != NULL); + /*next is the encoding for the SNMP table index*/ + + all_oid->index.len = 12; + all_oid->index.subs[0] = IAT_ipv4; + inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); + all_oid->index.subs[1] = (inaddr >> 24) & 0xff; + all_oid->index.subs[2] = (inaddr >> 16) & 0xff; + all_oid->index.subs[3] = (inaddr >> 8) & 0xff; + all_oid->index.subs[4] = (inaddr >> 0) & 0xff; + all_oid->index.subs[5] = ntohs(tp->xt_inp.inp_lport); + all_oid->index.subs[6] = IAT_ipv4; + inaddr = ntohl(tp->xt_inp.inp_faddr.s_addr); + all_oid->index.subs[7] = (inaddr >> 24) & 0xff; + all_oid->index.subs[8] = (inaddr >> 16) & 0xff; + all_oid->index.subs[9] = (inaddr >> 8) & 0xff; + all_oid->index.subs[10] = (inaddr >> 0) & 0xff; + all_oid->index.subs[11] = ntohs(tp->xt_inp.inp_fport); + + /*FIX ME: this doesn't work*/ + all_oid->so_pgid = tp->xt_socket.so_pgid; + +} + +/* + * Add a __v6__ entry into the list associated with the new (combined v4 & v6) + * tcpConnectionTable + */ +static +void handle_new_tcp6_entry (struct tcp_index *all_oid, struct xtcpcb *tp) { + int i = 0; + assert(all_oid != NULL); + assert(tp != NULL); + /*next is the encoding for the SNMP table index*/ + all_oid->index.len = 36; + all_oid->index.subs[0] = IAT_ipv6; + for (i=0; i<16; i++) { + all_oid->index.subs[1+i] = tp->xt_inp.in6p_laddr.s6_addr[i]; + all_oid->index.subs[19+i] = tp->xt_inp.in6p_faddr.s6_addr[i]; + } + all_oid->index.subs[17] = ntohs(tp->xt_inp.in6p_lport); + all_oid->index.subs[18] = IAT_ipv6; + all_oid->index.subs[35] = ntohs(tp->xt_inp.in6p_fport); + + /*FIX ME: this doesn't work*/ + all_oid->so_pgid = tp->xt_socket.so_pgid; + +} + + +/* + * returns 1 if one duplicate listener found + * and 0 otherways + */ +static +int +check_duplicate6_listner(struct tcp_index *listener_oid, struct xtcpcb *tp){ + struct tcp_index *_oid = NULL; + u_int i = 0; + static + uint32_t zero_ip6[] ={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + if (tcp46_state_g.listen_tcpoids_len == 0) { + /*empty list, no duplicates*/ + return 0; + } + if ( tp->xt_inp.inp_laddr.s_addr != INADDR_ANY ) { + TCP46_DPRINTF((stderr, "V4 [%s] Skipped one listener (not an INADDR_ANY v4).\n ", + __func__)); + return 0; + } + TCP46_DPRINTF((stderr, "V4: [%s] Adding INADDR_ANY v4 listener with port %d.\n ", + __func__, + ntohs(tp->xt_inp.inp_lport))); + + + for (_oid = tcp46_state_g.listen_tcpoids; + _oid != listener_oid && i < tcp46_state_g.listen_tcpoids_len; + i++, _oid++ ) + { + if ( _oid->index.subs[0] == IAT_ipv6 ) { + if ( _oid->index.subs[17] == ntohs(tp->xt_inp.inp_lport) ){ + TCP46_DPRINTF((stderr, "V4: [%s] Got listener with port %d.\n ", + __func__, + _oid->index.subs[5])); + + if (memcmp(&zero_ip6[0], + &_oid->index.subs[1], + sizeof(zero_ip6)) == 0) { + /*got it*/ + _oid->index.len = 3; + _oid->index.subs[0] = IAT_unknown; + _oid->index.subs[1] = 0; /*zero/ empty octet sting*/ + _oid->index.subs[2] = ntohs(tp->xt_inp.inp_lport); + return 1; + } + } + } + } + return 0; +} + +/* + * returns 1 if one duplicate listener found + * and 0 otherways + */ +static +int +check_duplicate4_listner(struct tcp_index *listener_oid, struct xtcpcb *tp){ + struct tcp_index *_oid = NULL; + u_int i = 0; + static + uint32_t zero_ip4[] = { 0, 0, 0, 0 }; + + if (tcp46_state_g.listen_tcpoids_len == 0) { + /*empty list, no duplicates*/ + return 0; + } + if ( !IN6_IS_ADDR_UNSPECIFIED(&tp->xt_inp.in6p_laddr) ) { + TCP46_DPRINTF((stderr, "[%s] Skipped one listener (not an UNSPECIFIED v6).\n ", + __func__)); + return 0; + } + TCP46_DPRINTF((stderr, "[%s] Adding UNSPECIFIED v6 listener with port %d.\n ", + __func__, + ntohs(tp->xt_inp.in6p_lport))); + + for (_oid = tcp46_state_g.listen_tcpoids; + _oid != listener_oid && i < tcp46_state_g.listen_tcpoids_len; + i++, _oid++ ) + { + if ( _oid->index.subs[0] == IAT_ipv4 ) { + if ( _oid->index.subs[5] == ntohs(tp->xt_inp.in6p_lport) ) { + TCP46_DPRINTF((stderr, "[%s] Got listener with port %d.\n ", + __func__, + _oid->index.subs[5])); + + if (memcmp(&zero_ip4[0], + &_oid->index.subs[1], + sizeof(zero_ip4)) == 0) { + /*got it*/ + _oid->index.len = 3; + _oid->index.subs[0] = IAT_unknown; + _oid->index.subs[1] = 0; /*zero/ empty octet sting*/ + _oid->index.subs[2] = ntohs(tp->xt_inp.in6p_lport); + return 1; + } + } + } + } + return 0; +} + +/* + * Add a __v4__ entry into the list associated with the combined v4 & v6 + * tcpListenerTable + * Check for duplicates as described in the MIB: + * 1. For an application willing to accept both IPv4 and + * IPv6 datagrams, the value of this object must be + * ''h (a zero-length octet-string), with the value + * of the corresponding tcpListenerLocalAddressType + * object being unknown (0). + * Returns 1 if the duplicate was found and processed. + * Returns 0 if the entry was new + */ +static +int handle_tcp4_listener_entry (struct tcp_index *listener_oid, struct xtcpcb *tp) { + in_addr_t inaddr; + assert(listener_oid != NULL); + assert(tp != NULL); + if ( check_duplicate6_listner( listener_oid, tp ) == 1 ) { + return 1; + } + /*next is the encoding for the SNMP table index*/ + listener_oid->index.len = 6; + listener_oid->index.subs[0] = IAT_ipv4; + inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); + listener_oid->index.subs[1] = (inaddr >> 24) & 0xff; + listener_oid->index.subs[2] = (inaddr >> 16) & 0xff; + listener_oid->index.subs[3] = (inaddr >> 8) & 0xff; + listener_oid->index.subs[4] = (inaddr >> 0) & 0xff; + listener_oid->index.subs[5] = ntohs(tp->xt_inp.inp_lport); + /*FIX ME: this doesn't work*/ + listener_oid->so_pgid = tp->xt_socket.so_pgid; + return 0; + +} + +/* + * Add a __v6__ entry into the list associated with the combined v4 & v6 + * tcpListenerTable + * Check for duplicates as described in the MIB: + * 1. For an application willing to accept both IPv4 and + * IPv6 datagrams, the value of this object must be + * ''h (a zero-length octet-string), with the value + * of the corresponding tcpListenerLocalAddressType + * object being unknown (0). + * Returns 1 if the duplicate was found and processed. + * Returns 0 if the entry was new + */ +static +int handle_tcp6_listener_entry (struct tcp_index *listener_oid, struct xtcpcb *tp) { + int i = 0; + assert(listener_oid != NULL); + assert(tp != NULL); + if ( check_duplicate4_listner( listener_oid, tp ) == 1 ) { + return 1; + } + + /*next is the encoding for the SNMP table index*/ + listener_oid->index.len = 18; + listener_oid->index.subs[0] = IAT_ipv6; + for (i=0; i<16; i++) { + listener_oid->index.subs[1+i] = tp->xt_inp.in6p_laddr.s6_addr[i]; + } + listener_oid->index.subs[17] = ntohs(tp->xt_inp.in6p_lport); + + /*FIX ME: this doesn't work*/ + listener_oid->so_pgid = tp->xt_socket.so_pgid; + return 0; + +} static int fetch_tcp(void) @@ -326,8 +597,8 @@ size_t len; struct xinpgen *ptr = NULL; struct xtcpcb *tp = NULL; - struct tcp_index *oid = NULL, *all_oid = NULL; - in_addr_t inaddr; + struct tcp_index *oid = NULL, *all_oid = NULL, *listen_oid = NULL; + len = sizeof(tcp46_state_g.tcpstat); if (sysctlbyname("net.inet.tcp.stats", &tcp46_state_g.tcpstat, &len, NULL, 0) == -1) { @@ -362,6 +633,7 @@ tcp46_state_g.tcp_estab_count = 0; tcp46_state_g.tcp4_total = 0; tcp46_state_g.all_tcp_total = 0; + tcp46_state_g.listen_tcp_total = 0; /*First count the endpoints*/ for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); @@ -398,6 +670,8 @@ /*for connection in listen state we have a separate table*/ if ( tp->xt_tp.t_state != TCPS_LISTEN ) { tcp46_state_g.all_tcp_total++; + } else { + tcp46_state_g.listen_tcp_total++; } } if (tp->xt_tp.t_state == TCPS_ESTABLISHED || @@ -406,10 +680,11 @@ } } - TCP46_DPRINTF((stderr, "[%s] Got %d tcp4 connections and %d tcp{4,6} connections.\n ", + TCP46_DPRINTF((stderr, "[%s] Got %d tcp4 connections, %d tcp{4,6} connections, %d tcp{4,6} listeners.\n ", __func__, tcp46_state_g.tcp4_total, - tcp46_state_g.all_tcp_total)); + tcp46_state_g.all_tcp_total, + tcp46_state_g.listen_tcp_total)); /*Then reallocate the SNMP holder for v4 if needed*/ if (tcp46_state_g.tcp4oids_len < tcp46_state_g.tcp4_total) { @@ -436,6 +711,19 @@ tcp46_state_g.all_tcpoids = all_oid; tcp46_state_g.all_tcpoids_len = tcp46_state_g.all_tcp_total; } + + /*Then reallocate the SNMP holder for v4 & v6 listeners if needed*/ + if (tcp46_state_g.listen_tcpoids_len < tcp46_state_g.listen_tcp_total) { + listen_oid = realloc(tcp46_state_g.listen_tcpoids, + tcp46_state_g.listen_tcp_total * sizeof(tcp46_state_g.listen_tcpoids[0])); + if (listen_oid == NULL) { + free(tcp46_state_g.listen_tcpoids); + tcp46_state_g.listen_tcpoids_len = 0; + return (0); + } + tcp46_state_g.listen_tcpoids = listen_oid; + tcp46_state_g.listen_tcpoids_len = tcp46_state_g.listen_tcp_total; + } /*Finally fill in the SNMP indexes*/ @@ -444,9 +732,14 @@ memset(tcp46_state_g.all_tcpoids, 0, tcp46_state_g.all_tcp_total * sizeof(tcp46_state_g.all_tcpoids[0]) ); - + + memset(tcp46_state_g.listen_tcpoids, 0, + tcp46_state_g.listen_tcp_total * sizeof(tcp46_state_g.listen_tcpoids[0]) ); + oid = tcp46_state_g.tcp4oids; all_oid = tcp46_state_g.all_tcpoids; + listen_oid = tcp46_state_g.listen_tcpoids; + for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); ptr->xig_len > sizeof(struct xinpgen); ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) { @@ -464,19 +757,7 @@ if ( (tp->xt_inp.inp_vflag & INP_IPV4) == INP_IPV4) { /*START processing for the old/ deprecated v4 only table*/ oid->tp = tp; - oid->index.len = 10; - inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); - oid->index.subs[0] = (inaddr >> 24) & 0xff; - oid->index.subs[1] = (inaddr >> 16) & 0xff; - oid->index.subs[2] = (inaddr >> 8) & 0xff; - oid->index.subs[3] = (inaddr >> 0) & 0xff; - oid->index.subs[4] = ntohs(tp->xt_inp.inp_lport); - inaddr = ntohl(tp->xt_inp.inp_faddr.s_addr); - oid->index.subs[5] = (inaddr >> 24) & 0xff; - oid->index.subs[6] = (inaddr >> 16) & 0xff; - oid->index.subs[7] = (inaddr >> 8) & 0xff; - oid->index.subs[8] = (inaddr >> 0) & 0xff; - oid->index.subs[9] = ntohs(tp->xt_inp.inp_fport); + handle_old_tcp4_entry(oid, tp); oid++; /*END processing for the old/ deprecated v4 only table*/ @@ -484,52 +765,49 @@ if ( tp->xt_tp.t_state != TCPS_LISTEN ) { /*START processing for the new v4/v6 table*/ all_oid->tp = tp; - /*FIX ME: this doesn't work*/ - all_oid->so_pgid = ((struct xtcpcb *)ptr)->xt_socket.so_pgid; - all_oid->index.len = 12; - all_oid->index.subs[0] = IAT_ipv4; - inaddr = ntohl(tp->xt_inp.inp_laddr.s_addr); - all_oid->index.subs[1] = (inaddr >> 24) & 0xff; - all_oid->index.subs[2] = (inaddr >> 16) & 0xff; - all_oid->index.subs[3] = (inaddr >> 8) & 0xff; - all_oid->index.subs[4] = (inaddr >> 0) & 0xff; - all_oid->index.subs[5] = ntohs(tp->xt_inp.inp_lport); - all_oid->index.subs[6] = IAT_ipv4; - inaddr = ntohl(tp->xt_inp.inp_faddr.s_addr); - all_oid->index.subs[7] = (inaddr >> 24) & 0xff; - all_oid->index.subs[8] = (inaddr >> 16) & 0xff; - all_oid->index.subs[9] = (inaddr >> 8) & 0xff; - all_oid->index.subs[10] = (inaddr >> 0) & 0xff; - all_oid->index.subs[11] = ntohs(tp->xt_inp.inp_lport); - + handle_new_tcp4_entry(all_oid, tp); all_oid++; /*END processing for the new v4/v6 table*/ + } else { + if (handle_tcp4_listener_entry(listen_oid, tp) == 0 ){ + listen_oid->tp = tp; + listen_oid++; + } else { + /*this was a duplicate one*/ + assert(tcp46_state_g.listen_tcp_total > 1); + tcp46_state_g.listen_tcp_total--; + } } } else if ((tp->xt_inp.inp_vflag & (INP_IPV6 | INP_IPV6PROTO)) != 0 ) { if ( tp->xt_tp.t_state != TCPS_LISTEN ) { - int i =0; + /*START processing for the new v4/v6 table*/ all_oid->tp = tp; - /*FIX ME: this doesn't work*/ - all_oid->so_pgid = ((struct xtcpcb *)ptr)->xt_socket.so_pgid; - all_oid->index.len = 36; - all_oid->index.subs[0] = IAT_ipv6; - for (i=0; i<16; i++) { - all_oid->index.subs[1+i] = tp->xt_inp.in6p_laddr.s6_addr[i]; - all_oid->index.subs[19+i] = tp->xt_inp.in6p_faddr.s6_addr[i]; - } - all_oid->index.subs[17] = ntohs(tp->xt_inp.in6p_lport); - all_oid->index.subs[18] = IAT_ipv6; - all_oid->index.subs[35] = ntohs(tp->xt_inp.in6p_fport); + handle_new_tcp6_entry(all_oid, tp); all_oid++; /*END processing for the new v4/v6 table*/ + }else { + if (handle_tcp6_listener_entry(listen_oid, tp) == 0 ){ + listen_oid->tp = tp; + listen_oid++; + } else { + /*this was a duplicate one*/ + assert(tcp46_state_g.listen_tcp_total > 1); + tcp46_state_g.listen_tcp_total--; + } } + } } + TCP46_DPRINTF((stderr, "[%s] Got %d tcp{4,6} DISTINCT listeners.\n ", + __func__, + tcp46_state_g.listen_tcp_total)); + + /*Keep the lists sorted ins SNMP index ordering*/ qsort( tcp46_state_g.tcp4oids, tcp46_state_g.tcp4_total, @@ -541,6 +819,12 @@ sizeof(tcp46_state_g.all_tcpoids[0]), tcp_compare); + qsort( tcp46_state_g.listen_tcpoids, + tcp46_state_g.listen_tcp_total, + sizeof(tcp46_state_g.listen_tcpoids[0]), + tcp_compare); + + return (0); } @@ -658,9 +942,9 @@ /* - * This is the deprecated TCP Connection table + * This is the SNMP handler for the deprecated TCP Connection table * tcpConnTable -*/ + */ int op_tcpConnTable( struct snmp_context *ctx __unused, struct snmp_value *value, u_int sub, u_int iidx __unused, enum snmp_op op) @@ -770,6 +1054,10 @@ return (SNMP_ERR_NOERROR); } +/* + * This is the SNMP handler for the new (v4 & v6) TCP Connection table + * tcpConnectionTable + */ int op_tcpConnectionTable( struct snmp_context *ctx __unused, struct snmp_value *value, u_int sub, u_int iidx __unused, enum snmp_op op) @@ -878,11 +1166,65 @@ } int -op_tcpListenerTable( struct snmp_context *ctx __unused, - struct snmp_value *value __unused, - u_int sub __unused, - u_int iidx __unused, - enum snmp_op curr_op __unused) { - return (SNMP_ERR_NOSUCHNAME); +op_tcpListenerTable( struct snmp_context *ctx __unused, struct snmp_value *value, + u_int sub, u_int iidx __unused, enum snmp_op op) +{ + u_int i; + + if (tcp46_state_g.tcp_tick < this_tick) + if (fetch_tcp() == -1) + return (SNMP_ERR_GENERR); + + switch (op) { + + case SNMP_OP_GETNEXT: + for (i = 0; i < tcp46_state_g.listen_tcp_total; i++) + if (index_compare(&value->var, sub, + &tcp46_state_g.listen_tcpoids[i].index) < 0) + break; + if (i == tcp46_state_g.listen_tcp_total) + return (SNMP_ERR_NOSUCHNAME); + + index_append(&value->var, sub, + &tcp46_state_g.listen_tcpoids[i].index); + break; + + case SNMP_OP_GET: + for (i = 0; i < tcp46_state_g.listen_tcp_total; i++) + if (index_compare(&value->var, sub, + &tcp46_state_g.listen_tcpoids[i].index) == 0) + break; + + if (i == tcp46_state_g.listen_tcp_total) + return (SNMP_ERR_NOSUCHNAME); + break; + + case SNMP_OP_SET: + return (SNMP_ERR_NOT_WRITEABLE); + + case SNMP_OP_ROLLBACK: + case SNMP_OP_COMMIT: + default: + abort(); + } + + assert( tcp46_state_g.listen_tcpoids[i].index.len == 3 || + tcp46_state_g.listen_tcpoids[i].index.len == 6 || + tcp46_state_g.listen_tcpoids[i].index.len == 18); + + switch (value->var.subs[sub - 1]) { + + case LEAF_tcpListenerProcess: + /*this is from hrSWRunTable, where the index is pid + 1 */ + /*FIX ME: this doesn't work*/ + value->v.integer = ( tcp46_state_g.listen_tcpoids[i].so_pgid == 0 ? 0 : + tcp46_state_g.listen_tcpoids[i].so_pgid + 1 ); + break; + default: + assert(0); + return (SNMP_ERR_NOSUCHNAME); + } + return (SNMP_ERR_NOERROR); + } From owner-p4-projects@FreeBSD.ORG Thu Aug 25 20:58:35 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DFCB816A42D; Thu, 25 Aug 2005 20:58:34 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AA19616A420 for ; Thu, 25 Aug 2005 20:58:34 +0000 (GMT) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7560143D49 for ; Thu, 25 Aug 2005 20:58:34 +0000 (GMT) (envelope-from cognet@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PKwYbw086886 for ; Thu, 25 Aug 2005 20:58:34 GMT (envelope-from cognet@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PKwYru086883 for perforce@freebsd.org; Thu, 25 Aug 2005 20:58:34 GMT (envelope-from cognet@freebsd.org) Date: Thu, 25 Aug 2005 20:58:34 GMT Message-Id: <200508252058.j7PKwYru086883@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cognet@freebsd.org using -f From: Olivier Houchard To: Perforce Change Reviews Cc: Subject: PERFORCE change 82559 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 20:58:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=82559 Change 82559 by cognet@cognet on 2005/08/25 20:58:32 Don't complain we can't read the process kernel stack if the stack pointer is 0. It will happen when debugging a live kernel, because then dumppcb will be all zeroed. Affected files ... .. //depot/projects/arm/gnu-arm.diff#6 edit Differences ... ==== //depot/projects/arm/gnu-arm.diff#6 (text+ko) ==== @@ -999,8 +999,8 @@ RCS file: gnu/usr.bin/gdb/kgdb/trgt_arm.c diff -N gnu/usr.bin/gdb/kgdb/trgt_arm.c --- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ gnu/usr.bin/gdb/kgdb/trgt_arm.c 24 Aug 2005 11:14:23 -0000 -@@ -0,0 +1,81 @@ ++++ gnu/usr.bin/gdb/kgdb/trgt_arm.c 25 Aug 2005 20:54:50 -0000 +@@ -0,0 +1,83 @@ +/* + * Copyright (c) 2004 Marcel Moolenaar + * All rights reserved. @@ -1063,18 +1063,20 @@ + supply_register(i, (char *)&pcb.un_32.pcb32_r8 + + (i - (ARM_A1_REGNUM + 8 )) * 4); + } -+ for (i = 0; i < 4; i++) { -+ if (kvm_read(kvm, pcb.un_32.pcb32_sp + (i) * 4, -+ ®, 4) != 4) { -+ warnx("kvm_read: %s", kvm_geterr(kvm)); -+ break; ++ if (pcb.un_32.pcb32_sp != 0) { ++ for (i = 0; i < 4; i++) { ++ if (kvm_read(kvm, pcb.un_32.pcb32_sp + (i) * 4, ++ ®, 4) != 4) { ++ warnx("kvm_read: %s", kvm_geterr(kvm)); ++ break; ++ } ++ supply_register(ARM_A1_REGNUM + 4 + i, (char *)®); + } -+ supply_register(ARM_A1_REGNUM + 4 + i, (char *)®); ++ if (kvm_read(kvm, pcb.un_32.pcb32_sp + 4 * 4, ®, 4) != 4) ++ warnx("kvm_read :%s", kvm_geterr(kvm)); ++ else ++ supply_register(ARM_PC_REGNUM, (char *)®); + } -+ if (kvm_read(kvm, pcb.un_32.pcb32_sp + 4 * 4, ®, 4) != 4) -+ warnx("kvm_read :%s", kvm_geterr(kvm)); -+ else -+ supply_register(ARM_PC_REGNUM, (char *)®); +} + +void From owner-p4-projects@FreeBSD.ORG Thu Aug 25 23:18:28 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6CCBA16A421; Thu, 25 Aug 2005 23:18:27 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 297D216A41F for ; Thu, 25 Aug 2005 23:18:27 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DD38A43D46 for ; Thu, 25 Aug 2005 23:18:26 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7PNIQuN091842 for ; Thu, 25 Aug 2005 23:18:26 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7PNIQ6i091839 for perforce@freebsd.org; Thu, 25 Aug 2005 23:18:26 GMT (envelope-from soc-victor@freebsd.org) Date: Thu, 25 Aug 2005 23:18:26 GMT Message-Id: <200508252318.j7PNIQ6i091839@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82568 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 23:18:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=82568 Change 82568 by soc-victor@soc-victor_82.76.158.176 on 2005/08/25 23:18:04 Added the SNMP SET support for the combined v4 & v6 tcpConnectionTable. This adds the ability of a SNMP client to drop a tcp{4,6} connection from the managed FreeBSD network element. Need to add the same capability for the obsoleted tcpConnTable. Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#4 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#6 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#4 (text+ko) ==== @@ -33,8 +33,10 @@ SRCS= tcp46_snmp.c WARNS?= 6 + #Not having NDEBUG defined will enable assertions and a lot of output on stderr CFLAGS+= -DNDEBUG + XSYM= tcpMIB DEFS= ${MOD}_tree.def ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#6 (text+ko) ==== @@ -80,6 +80,9 @@ #include #include #include +#include +#include + #include #include #include @@ -828,7 +831,148 @@ return (0); } +static +int drop_new_tcp_conn(struct asn_oid *conn){ + + struct sockaddr_storage addrs[2]; + int mib[] = { CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_DROP }; + char local[64] = "", remote[64] = ""; + + assert(conn != NULL); + memset (&addrs[0], 0, sizeof(addrs)); + if (conn->subs[0] == IAT_ipv4) { + struct sockaddr_in *sinl, *sinr; + + assert(conn->len == 12); + if (conn->len != 12) { + syslog(LOG_ERR, "%s: malformed SNMP index (wrong length) when deleting a connection", + __func__); + return -1; + } + + if (conn->subs[6] != IAT_ipv4 ) { + syslog(LOG_ERR, "%s: malformed SNMP index (remote not a v4) when deleting a connection", + __func__); + return -1; + } + + + + memset(&addrs[1], 0, sizeof(addrs[1])); + sinl = (struct sockaddr_in *)&addrs[1]; + sinl->sin_len = sizeof(struct sockaddr_in); + sinl->sin_addr.s_addr = htonl( + (conn->subs[1] << 24) | + (conn->subs[2] << 16) | + (conn->subs[3] << 8) | + (conn->subs[4] << 0) + ); + sinl->sin_port = htons(conn->subs[5]); + addrs[1].ss_family = AF_INET; + + inet_ntop(AF_INET, &sinl->sin_addr, local, 64); + + + + memset(&addrs[0], 0, sizeof(addrs[0])); + sinr = (struct sockaddr_in *)&addrs[0]; + sinr->sin_len = sizeof(struct sockaddr_in); + + sinr->sin_addr.s_addr = htonl( + (conn->subs[7] << 24) | + (conn->subs[8] << 16) | + (conn->subs[9] << 8) | + (conn->subs[10] << 0) + ); + sinr->sin_port = htons(conn->subs[11]); + addrs[0].ss_family = AF_INET; + + inet_ntop(AF_INET, &sinr->sin_addr, remote, 64); + syslog(LOG_INFO, "[%s] attempt to delete a tcp4 connection : local: %s:%d - remote: %s:%d \n ", + __func__, + local, + conn->subs[5], + remote, + conn->subs[11]); + + + } else if (conn->subs[0] == IAT_ipv6) { + struct sockaddr_in6 *sin6l, *sin6r; + int i = 0; + assert(conn->len == 36); + if (conn->len != 36) { + syslog(LOG_ERR, "%s: malformed SNMP index (wrong length) when deleting a connection", + __func__); + return -1; + } + + if (conn->subs[18] != IAT_ipv6 ) { + syslog(LOG_ERR, "%s: malformed SNMP index (remote not a v6) when deleting a connection", + __func__); + return -1; + } + + + memset(&addrs[1], 0, sizeof(addrs[1])); + sin6l = (struct sockaddr_in6 *)&addrs[1]; + for (i=0; i<16; i++) { + sin6l->sin6_addr.s6_addr[i] = conn->subs[1+i]; + } + + sin6l->sin6_port = htons(conn->subs[17]); +#ifdef SIN6_LEN + sin6l->sin6_len = sizeof(struct sockaddr_in6); +#endif /* SIN6_LEN */ + addrs[1].ss_family = AF_INET6; + inet_ntop(AF_INET6, &sin6l->sin6_addr, local, 64); + + memset(&addrs[0], 0, sizeof(addrs[0])); + sin6r = (struct sockaddr_in6 *)&addrs[0]; + + for (i=0; i<16; i++) { + sin6r->sin6_addr.s6_addr[i] = conn->subs[19+i]; + } + + sin6r->sin6_port = htons(conn->subs[35]); +#ifdef SIN6_LEN + sin6r->sin6_len = sizeof(struct sockaddr_in6); +#endif /* SIN6_LEN */ + addrs[0].ss_family = AF_INET6; + + inet_ntop(AF_INET6, &sin6r->sin6_addr, remote, 64); + + syslog(LOG_INFO, "[%s] attempt to delete a tcp6 connection: local: %s:%d - remote: %s:%d \n ", + __func__, + local, + conn->subs[17], + remote, + conn->subs[35]); + + + } else { + assert(0); + syslog(LOG_ERR, "%s: malformed SNMP index (not v4, not v6) when deleting a connection", + __func__); + return -1; + + } + if (sysctl(mib, sizeof (mib) / sizeof (int), NULL, + NULL, &addrs, sizeof(addrs)) == -1) { + syslog(LOG_ERR, "%s: failed to delete the specified tcp connection: %m", __func__); + return -1; + } else { + TCP46_DPRINTF((stderr, "[%s] one tcp connection deleted\n ", + __func__)); + + syslog(LOG_INFO, "%s: one tcp connection deleted.", __func__); + return 0; + + } + return 0; +} + + /* * Scalars */ @@ -1092,11 +1236,34 @@ return (SNMP_ERR_NOSUCHNAME); break; - case SNMP_OP_SET: - return (SNMP_ERR_NOT_WRITEABLE); + case SNMP_OP_SET: { + if (value->var.subs[sub - 1] != LEAF_tcpConnectionState) { + return (SNMP_ERR_NOT_WRITEABLE); + } + if (value->v.integer != TCPS_deleteTCB) { + return (SNMP_ERR_WRONG_VALUE); + } + + for (i = 0; i < tcp46_state_g.all_tcp_total; i++) + if (index_compare(&value->var, sub, + &tcp46_state_g.all_tcpoids[i].index) == 0) + break; + + if (i == tcp46_state_g.all_tcp_total) + return (SNMP_ERR_NOSUCHNAME); + + if (drop_new_tcp_conn(&tcp46_state_g.all_tcpoids[i].index) != 0) { + return (SNMP_ERR_NOSUCHNAME); + } + return (SNMP_ERR_NOERROR); + + } case SNMP_OP_ROLLBACK: - case SNMP_OP_COMMIT: + case SNMP_OP_COMMIT: { + return (SNMP_ERR_NOERROR); + } + default: abort(); } From owner-p4-projects@FreeBSD.ORG Fri Aug 26 00:24:48 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2771016A421; Fri, 26 Aug 2005 00:24:48 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ECCF916A41F for ; Fri, 26 Aug 2005 00:24:47 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 95EF443D46 for ; Fri, 26 Aug 2005 00:24:47 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q0OlFJ094089 for ; Fri, 26 Aug 2005 00:24:47 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q0OlfT094086 for perforce@freebsd.org; Fri, 26 Aug 2005 00:24:47 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 00:24:47 GMT Message-Id: <200508260024.j7Q0OlfT094086@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82570 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 00:24:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=82570 Change 82570 by anholt@anholt_leguin on 2005/08/26 00:24:09 MF DRI CVS 2005-08-25 Affected files ... .. //depot/projects/drm-merge-vendor/sys/dev/drm/ati_pcigart.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm.h#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drmP.h#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_agpsupport.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_bufs.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_context.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_dma.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_drv.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_fops.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_ioctl.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_irq.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_lock.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_pci.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_pciids.h#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_scatter.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_sysctl.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_vm.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/i915_dma.c#2 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/i915_drm.h#2 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/i915_drv.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/i915_drv.h#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/i915_irq.c#2 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/i915_mem.c#2 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mach64_dma.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mach64_drv.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mach64_drv.h#2 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mach64_state.c#2 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_dma.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_drm.h#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_drv.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_drv.h#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_irq.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_state.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_warp.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/r128_cce.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/r128_drm.h#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/r128_drv.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/r128_drv.h#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/r128_state.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/radeon_cp.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/radeon_drm.h#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/radeon_drv.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/radeon_drv.h#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/radeon_irq.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/radeon_state.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/savage_bci.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/savage_drv.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/savage_drv.h#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/savage_state.c#3 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/sis_drv.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/sis_mm.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/tdfx_drv.c#4 edit Differences ... ==== //depot/projects/drm-merge-vendor/sys/dev/drm/ati_pcigart.c#3 (text+ko) ==== @@ -31,85 +31,72 @@ #include "drmP.h" -#if PAGE_SIZE == 8192 -# define ATI_PCIGART_TABLE_ORDER 2 -# define ATI_PCIGART_TABLE_PAGES (1 << 2) -#elif PAGE_SIZE == 4096 -# define ATI_PCIGART_TABLE_ORDER 3 -# define ATI_PCIGART_TABLE_PAGES (1 << 3) -#elif -# error - PAGE_SIZE not 8K or 4K -#endif +#define ATI_PCIGART_PAGE_SIZE 4096 /* PCI GART page size */ +#define ATI_MAX_PCIGART_PAGES 8192 /* 32 MB aperture, 4K pages */ +#define ATI_PCIGART_TABLE_SIZE 32768 -# define ATI_MAX_PCIGART_PAGES 8192 /* 32 MB aperture, 4K pages */ -# define ATI_PCIGART_PAGE_SIZE 4096 /* PCI GART page size */ - int drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr, - dma_addr_t *bus_addr) + dma_addr_t *bus_addr, int is_pcie) { - drm_sg_mem_t *entry = dev->sg; - unsigned long address = 0; unsigned long pages; - u32 *pci_gart=0, page_base, bus_address = 0; - int i, j, ret = 0; + u32 *pci_gart = 0, page_base; + int i, j; + + *addr = 0; + *bus_addr = 0; - if ( !entry ) { + if (dev->sg == NULL) { DRM_ERROR( "no scatter/gather memory!\n" ); - goto done; + return 0; } - address = (long)contigmalloc((1 << ATI_PCIGART_TABLE_ORDER) * PAGE_SIZE, - M_DRM, M_NOWAIT, 0ul, 0xfffffffful, PAGE_SIZE, 0); - if ( !address ) { - DRM_ERROR( "cannot allocate PCI GART page!\n" ); - goto done; + dev->sg->dmah = drm_pci_alloc(dev, ATI_PCIGART_TABLE_SIZE, 0, + 0xfffffffful); + if (dev->sg->dmah == NULL) { + DRM_ERROR("cannot allocate PCI GART table!\n"); + return 0; } - /* XXX: we need to busdma this */ - bus_address = vtophys( address ); + *addr = (long)dev->sg->dmah->vaddr; + *bus_addr = dev->sg->dmah->busaddr; + pci_gart = (u32 *)dev->sg->dmah->vaddr; - pci_gart = (u32 *)address; + pages = DRM_MIN(dev->sg->pages, ATI_MAX_PCIGART_PAGES); - pages = ( entry->pages <= ATI_MAX_PCIGART_PAGES ) - ? entry->pages : ATI_MAX_PCIGART_PAGES; + bzero(pci_gart, ATI_PCIGART_TABLE_SIZE); - bzero( pci_gart, ATI_MAX_PCIGART_PAGES * sizeof(u32) ); + KASSERT(PAGE_SIZE >= ATI_PCIGART_PAGE_SIZE, "page size too small"); for ( i = 0 ; i < pages ; i++ ) { - entry->busaddr[i] = vtophys( entry->handle + (i*PAGE_SIZE) ); - page_base = (u32) entry->busaddr[i]; + page_base = (u32) dev->sg->busaddr[i]; for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) { - *pci_gart++ = cpu_to_le32( page_base ); + if (is_pcie) { + *pci_gart = (cpu_to_le32(page_base)>>8) | 0xc; + DRM_DEBUG("PCIE: %d %08X %08X to %p\n", i, + page_base, (cpu_to_le32(page_base)>>8)|0xc, + pci_gart); + } else + *pci_gart = cpu_to_le32(page_base); + pci_gart++; page_base += ATI_PCIGART_PAGE_SIZE; } } DRM_MEMORYBARRIER(); - ret = 1; - -done: - *addr = address; - *bus_addr = bus_address; - return ret; + return 1; } int drm_ati_pcigart_cleanup(drm_device_t *dev, unsigned long addr, dma_addr_t bus_addr) { - drm_sg_mem_t *entry = dev->sg; - - /* we need to support large memory configurations */ - if ( !entry ) { + if (dev->sg == NULL) { DRM_ERROR( "no scatter/gather memory!\n" ); return 0; } -#if __FreeBSD_version > 500000 - /* Not available on 4.x */ - contigfree((void *)addr, (1 << ATI_PCIGART_TABLE_ORDER) * PAGE_SIZE, - M_DRM); -#endif + drm_pci_free(dev, dev->sg->dmah); + return 1; } ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drm.h#3 (text+ko) ==== @@ -62,8 +62,16 @@ #define __user #endif +#ifdef __GNUC__ +# define DEPRECATED __attribute__ ((deprecated)) +#else +# define DEPRECATED +#endif + #if defined(__linux__) +#if defined(__KERNEL__) #include +#endif #include /* For _IO* macros */ #define DRM_IOCTL_NR(n) _IOC_NR(n) #define DRM_IOC_VOID _IOC_NONE @@ -71,7 +79,7 @@ #define DRM_IOC_WRITE _IOC_WRITE #define DRM_IOC_READWRITE _IOC_READ|_IOC_WRITE #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size) -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) #if defined(__FreeBSD__) && defined(IN_MODULE) /* Prevent name collision when including sys/ioccom.h */ #undef ioctl @@ -125,7 +133,11 @@ #define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT) #define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT)) +#if defined(__linux__) +typedef unsigned int drm_handle_t; +#else typedef unsigned long drm_handle_t; /**< To mapped regions */ +#endif typedef unsigned int drm_context_t; /**< GLXContext handle */ typedef unsigned int drm_drawable_t; typedef unsigned int drm_magic_t; /**< Magic for authentication */ @@ -437,7 +449,11 @@ */ typedef struct drm_buf_map { int count; /**< Length of the buffer list */ +#if defined(__cplusplus) + void __user *c_virtual; +#else void __user *virtual; /**< Mmap'd area in user-virtual */ +#endif drm_buf_pub_t __user *list; /**< Buffer information */ } drm_buf_map_t; ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drmP.h#4 (text+ko) ==== @@ -215,6 +215,13 @@ #define IRQ_HANDLED /* nothing */ #define IRQ_NONE /* nothing */ +enum { + DRM_IS_NOT_AGP, + DRM_MIGHT_BE_AGP, + DRM_IS_AGP +}; +#define DRM_AGP_MEM struct agp_memory_info + #if defined(__FreeBSD__) #define DRM_DEVICE \ drm_device_t *dev = kdev->si_drv1 @@ -222,7 +229,8 @@ int flags, DRM_STRUCTPROC *p, DRMFILE filp #define PAGE_ALIGN(addr) round_page(addr) -#define DRM_SUSER(p) suser(p) +/* DRM_SUSER returns true if the user is superuser */ +#define DRM_SUSER(p) (suser(p) == 0) #define DRM_AGP_FIND_DEVICE() agp_find_device() #define DRM_MTRR_WC MDF_WRITECOMBINE #define jiffies ticks @@ -242,7 +250,8 @@ #define CDEV_MAJOR 34 #define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK) -#define DRM_SUSER(p) suser(p->p_ucred, &p->p_acflag) +/* DRM_SUSER returns true if the user is superuser */ +#define DRM_SUSER(p) (suser(p->p_ucred, &p->p_acflag) == 0) #define DRM_AGP_FIND_DEVICE() agp_find_device(0) #define DRM_MTRR_WC MTRR_TYPE_WC #define jiffies hardclock_ticks @@ -251,6 +260,15 @@ extern struct cfdriver drm_cd; #endif /* !__FreeBSD__ */ +/* Capabilities taken from src/sys/dev/pci/pcireg.h. */ +#ifndef PCIY_AGP +#define PCIY_AGP 0x02 +#endif + +#ifndef PCIY_EXPRESS +#define PCIY_EXPRESS 0x10 +#endif + typedef unsigned long dma_addr_t; typedef u_int32_t u32; typedef u_int16_t u16; @@ -433,6 +451,7 @@ typedef struct drm_ioctl_desc { int (*func)(DRM_IOCTL_ARGS); int auth_needed; + int master; int root_only; } drm_ioctl_desc_t; @@ -481,14 +500,24 @@ int high_mark; /* High water mark */ } drm_freelist_t; +typedef struct drm_dma_handle { + void *vaddr; + bus_addr_t busaddr; +#if defined(__FreeBSD__) + bus_dma_tag_t tag; + bus_dmamap_t map; +#elif defined(__NetBSD__) + bus_dma_segment_t seg; +#endif +} drm_dma_handle_t; + typedef struct drm_buf_entry { int buf_size; int buf_count; drm_buf_t *buflist; int seg_count; + drm_dma_handle_t **seglist; int page_order; - vm_offset_t *seglist; - dma_addr_t *seglist_bus; drm_freelist_t freelist; } drm_buf_entry_t; @@ -497,6 +526,7 @@ struct drm_file { TAILQ_ENTRY(drm_file) link; int authenticated; + int master; int minor; pid_t pid; uid_t uid; @@ -561,6 +591,7 @@ void *virtual; int pages; dma_addr_t *busaddr; + drm_dma_handle_t *dmah; /* Handle to PCI memory for ATI PCIGART table */ } drm_sg_mem_t; typedef TAILQ_HEAD(drm_map_list, drm_local_map) drm_map_list_t; @@ -575,10 +606,10 @@ int mtrr; /* Boolean: MTRR used */ /* Private data */ int rid; /* PCI resource ID for bus_space */ - int kernel_owned; /* Boolean: 1 = initmapped, 0 = addmapped */ struct resource *bsr; bus_space_tag_t bst; bus_space_handle_t bsh; + drm_dma_handle_t *dmah; TAILQ_ENTRY(drm_local_map) link; } drm_local_map_t; @@ -590,25 +621,15 @@ int pid; } drm_vbl_sig_t; -/** - * DRM device functions structure - */ -struct drm_device { -#if defined(__NetBSD__) || defined(__OpenBSD__) - struct device device; /* softc is an extension of struct device */ -#endif - - /* Beginning of driver-config section */ - int (*preinit)(struct drm_device *, unsigned long flags); - int (*postinit)(struct drm_device *, unsigned long flags); - void (*prerelease)(struct drm_device *, void *filp); - void (*pretakedown)(struct drm_device *); - int (*postcleanup)(struct drm_device *); - int (*presetup)(struct drm_device *); - int (*postsetup)(struct drm_device *); - int (*open_helper)(struct drm_device *, drm_file_t *); - void (*free_filp_priv)(struct drm_device *, drm_file_t *); - void (*release)(struct drm_device *, void *filp); +struct drm_driver_info { + int (*load)(struct drm_device *, unsigned long flags); + int (*firstopen)(struct drm_device *); + int (*open)(struct drm_device *, drm_file_t *); + void (*preclose)(struct drm_device *, void *filp); + void (*postclose)(struct drm_device *, drm_file_t *); + void (*lastclose)(struct drm_device *); + int (*unload)(struct drm_device *); + void (*reclaim_buffers_locked)(struct drm_device *, void *filp); int (*dma_ioctl)(DRM_IOCTL_ARGS); void (*dma_ready)(struct drm_device *); int (*dma_quiescent)(struct drm_device *); @@ -627,17 +648,32 @@ void (*irq_handler)(DRM_IRQ_ARGS); int (*vblank_wait)(drm_device_t *dev, unsigned int *sequence); - drm_ioctl_desc_t *driver_ioctls; - int max_driver_ioctl; + drm_pci_id_list_t *id_entry; /* PCI ID, name, and chipset private */ + + /** + * Called by \c drm_device_is_agp. Typically used to determine if a + * card is really attached to AGP or not. + * + * \param dev DRM device handle + * + * \returns + * One of three values is returned depending on whether or not the + * card is absolutely \b not AGP (return of 0), absolutely \b is AGP + * (return of 1), or may or may not be AGP (return of 2). + */ + int (*device_is_agp) (struct drm_device * dev); + + drm_ioctl_desc_t *ioctls; + int max_ioctl; - int dev_priv_size; + int buf_priv_size; - int driver_major; - int driver_minor; - int driver_patchlevel; - const char *driver_name; /* Simple driver name */ - const char *driver_desc; /* Longer driver name */ - const char *driver_date; /* Date of last major changes. */ + int major; + int minor; + int patchlevel; + const char *name; /* Simple driver name */ + const char *desc; /* Longer driver name */ + const char *date; /* Date of last major changes. */ unsigned use_agp :1; unsigned require_agp :1; @@ -648,7 +684,18 @@ unsigned use_irq :1; unsigned use_vbl_irq :1; unsigned use_mtrr :1; - /* End of driver-config section */ +}; + +/** + * DRM device functions structure + */ +struct drm_device { +#if defined(__NetBSD__) || defined(__OpenBSD__) + struct device device; /* softc is an extension of struct device */ +#endif + + struct drm_driver_info driver; + drm_pci_id_list_t *id_entry; /* PCI ID, name, and chipset private */ char *unique; /* Unique identifier: e.g., busid */ int unique_len; /* Length of unique field */ @@ -698,7 +745,6 @@ struct resource *irqr; /* Resource for interrupt used by board */ #elif defined(__NetBSD__) || defined(__OpenBSD__) struct pci_attach_args pa; - pci_intr_handle_t ih; #endif void *irqh; /* Handle from bus_setup_intr */ @@ -725,6 +771,7 @@ drm_sg_mem_t *sg; /* Scatter gather memory */ atomic_t *ctx_bitmap; void *dev_private; + unsigned int agp_buffer_token; drm_local_map_t *agp_buffer_map; }; @@ -799,10 +846,14 @@ /* Buffer management support (drm_bufs.c) */ unsigned long drm_get_resource_start(drm_device_t *dev, unsigned int resource); unsigned long drm_get_resource_len(drm_device_t *dev, unsigned int resource); -int drm_initmap(drm_device_t *dev, unsigned long start, unsigned long len, - unsigned int resource, int type, int flags); -void drm_remove_map(drm_device_t *dev, drm_local_map_t *map); +void drm_rmmap(drm_device_t *dev, drm_local_map_t *map); int drm_order(unsigned long size); +int drm_addmap(drm_device_t * dev, unsigned long offset, unsigned long size, + drm_map_type_t type, drm_map_flags_t flags, + drm_local_map_t **map_ptr); +int drm_addbufs_pci(drm_device_t *dev, drm_buf_desc_t *request); +int drm_addbufs_sg(drm_device_t *dev, drm_buf_desc_t *request); +int drm_addbufs_agp(drm_device_t *dev, drm_buf_desc_t *request); /* DMA support (drm_dma.c) */ int drm_dma_setup(drm_device_t *dev); @@ -820,15 +871,23 @@ int drm_vblank_wait(drm_device_t *dev, unsigned int *vbl_seq); void drm_vbl_send_signals(drm_device_t *dev); -/* AGP/GART support (drm_agpsupport.c) */ +/* AGP/PCI Express/GART support (drm_agpsupport.c) */ int drm_device_is_agp(drm_device_t *dev); +int drm_device_is_pcie(drm_device_t *dev); drm_agp_head_t *drm_agp_init(void); void drm_agp_uninit(void); -void drm_agp_do_release(void); +int drm_agp_acquire(drm_device_t *dev); +int drm_agp_release(drm_device_t *dev); +int drm_agp_info(drm_device_t * dev, drm_agp_info_t *info); +int drm_agp_enable(drm_device_t *dev, drm_agp_mode_t mode); void *drm_agp_allocate_memory(size_t pages, u32 type); int drm_agp_free_memory(void *handle); int drm_agp_bind_memory(void *handle, off_t start); int drm_agp_unbind_memory(void *handle); +#define drm_alloc_agp(dev, pages, type) drm_agp_allocate_memory(pages, type) +#define drm_free_agp(handle, pages) drm_agp_free_memory(handle) +#define drm_bind_agp(handle, start) drm_agp_bind_memory(handle, start) +#define drm_unbind_agp(handle) drm_agp_unbind_memory(handle) /* Scatter Gather Support (drm_scatter.c) */ void drm_sg_cleanup(drm_sg_mem_t *entry); @@ -841,7 +900,7 @@ /* ATI PCIGART support (ati_pcigart.c) */ int drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr, - dma_addr_t *bus_addr); + dma_addr_t *bus_addr, int is_pcie); int drm_ati_pcigart_cleanup(drm_device_t *dev, unsigned long addr, dma_addr_t bus_addr); @@ -880,9 +939,9 @@ int drm_authmagic(DRM_IOCTL_ARGS); /* Buffer management support (drm_bufs.c) */ -int drm_addmap(DRM_IOCTL_ARGS); -int drm_rmmap(DRM_IOCTL_ARGS); -int drm_addbufs(DRM_IOCTL_ARGS); +int drm_addmap_ioctl(DRM_IOCTL_ARGS); +int drm_rmmap_ioctl(DRM_IOCTL_ARGS); +int drm_addbufs_ioctl(DRM_IOCTL_ARGS); int drm_infobufs(DRM_IOCTL_ARGS); int drm_markbufs(DRM_IOCTL_ARGS); int drm_freebufs(DRM_IOCTL_ARGS); @@ -896,10 +955,10 @@ int drm_wait_vblank(DRM_IOCTL_ARGS); /* AGP/GART support (drm_agpsupport.c) */ -int drm_agp_acquire(DRM_IOCTL_ARGS); -int drm_agp_release(DRM_IOCTL_ARGS); -int drm_agp_enable(DRM_IOCTL_ARGS); -int drm_agp_info(DRM_IOCTL_ARGS); +int drm_agp_acquire_ioctl(DRM_IOCTL_ARGS); +int drm_agp_release_ioctl(DRM_IOCTL_ARGS); +int drm_agp_enable_ioctl(DRM_IOCTL_ARGS); +int drm_agp_info_ioctl(DRM_IOCTL_ARGS); int drm_agp_alloc(DRM_IOCTL_ARGS); int drm_agp_free(DRM_IOCTL_ARGS); int drm_agp_unbind(DRM_IOCTL_ARGS); @@ -910,10 +969,9 @@ int drm_sg_free(DRM_IOCTL_ARGS); /* consistent PCI memory functions (drm_pci.c) */ -void *drm_pci_alloc(drm_device_t *dev, size_t size, size_t align, - dma_addr_t maxaddr, dma_addr_t *busaddr); -void drm_pci_free(drm_device_t *dev, size_t size, void *vaddr, - dma_addr_t busaddr); +drm_dma_handle_t *drm_pci_alloc(drm_device_t *dev, size_t size, size_t align, + dma_addr_t maxaddr); +void drm_pci_free(drm_device_t *dev, drm_dma_handle_t *dmah); /* Inline replacements for DRM_IOREMAP macros */ static __inline__ void drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev) ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drm_agpsupport.c#3 (text+ko) ==== @@ -38,9 +38,20 @@ #include #endif -int -drm_device_is_agp(drm_device_t *dev) +/* Returns 1 if AGP or 0 if not. */ +static int +drm_device_find_capability(drm_device_t *dev, int cap) { + int ret; + + if (dev->driver.device_is_agp != NULL) { + ret = (*dev->driver.device_is_agp)(dev); + + if (ret != DRM_MIGHT_BE_AGP) { + return ret == 2; + } + } + #ifdef __FreeBSD__ /* Code taken from agp.c. IWBNI that was a public interface. */ u_int32_t status; @@ -63,9 +74,9 @@ next = AGP_CAPID_GET_NEXT_PTR(capid); /* - * If this capability entry ID is 2, then we are done. + * If this capability entry ID is cap, then we are done. */ - if (AGP_CAPID_GET_CAP_ID(capid) == 2) + if (AGP_CAPID_GET_CAP_ID(capid) == cap) return 1; } @@ -76,75 +87,95 @@ #endif } -int drm_agp_info(DRM_IOCTL_ARGS) +int drm_device_is_agp(drm_device_t *dev) +{ + return (drm_device_find_capability(dev, PCIY_AGP)); +} + +int drm_device_is_pcie(drm_device_t *dev) +{ + return (drm_device_find_capability(dev, PCIY_EXPRESS)); +} + +int drm_agp_info(drm_device_t * dev, drm_agp_info_t *info) { - DRM_DEVICE; struct agp_info *kern; - drm_agp_info_t info; if (!dev->agp || !dev->agp->acquired) return EINVAL; kern = &dev->agp->info; agp_get_info(dev->agp->agpdev, kern); - info.agp_version_major = 1; - info.agp_version_minor = 0; - info.mode = kern->ai_mode; - info.aperture_base = kern->ai_aperture_base; - info.aperture_size = kern->ai_aperture_size; - info.memory_allowed = kern->ai_memory_allowed; - info.memory_used = kern->ai_memory_used; - info.id_vendor = kern->ai_devid & 0xffff; - info.id_device = kern->ai_devid >> 16; + info->agp_version_major = 1; + info->agp_version_minor = 0; + info->mode = kern->ai_mode; + info->aperture_base = kern->ai_aperture_base; + info->aperture_size = kern->ai_aperture_size; + info->memory_allowed = kern->ai_memory_allowed; + info->memory_used = kern->ai_memory_used; + info->id_vendor = kern->ai_devid & 0xffff; + info->id_device = kern->ai_devid >> 16; + + return 0; +} + +int drm_agp_info_ioctl(DRM_IOCTL_ARGS) +{ + int err; + drm_agp_info_t info; + DRM_DEVICE; + + err = drm_agp_info(dev, &info); + if (err != 0) + return err; *(drm_agp_info_t *) data = info; return 0; } -int drm_agp_acquire(DRM_IOCTL_ARGS) +int drm_agp_acquire_ioctl(DRM_IOCTL_ARGS) { DRM_DEVICE; - int retcode; + + return drm_agp_acquire(dev); +} + +int drm_agp_acquire(drm_device_t *dev) +{ + int retcode; if (!dev->agp || dev->agp->acquired) return EINVAL; + retcode = agp_acquire(dev->agp->agpdev); if (retcode) return retcode; + dev->agp->acquired = 1; return 0; } -int drm_agp_release(DRM_IOCTL_ARGS) +int drm_agp_release_ioctl(DRM_IOCTL_ARGS) { DRM_DEVICE; + return drm_agp_release(dev); +} + +int drm_agp_release(drm_device_t * dev) +{ if (!dev->agp || !dev->agp->acquired) return EINVAL; agp_release(dev->agp->agpdev); dev->agp->acquired = 0; return 0; - } -void drm_agp_do_release(void) +int drm_agp_enable(drm_device_t *dev, drm_agp_mode_t mode) { - device_t agpdev; - - agpdev = DRM_AGP_FIND_DEVICE(); - if (agpdev) - agp_release(agpdev); -} -int drm_agp_enable(DRM_IOCTL_ARGS) -{ - DRM_DEVICE; - drm_agp_mode_t mode; - if (!dev->agp || !dev->agp->acquired) return EINVAL; - - mode = *(drm_agp_mode_t *) data; dev->agp->mode = mode.mode; agp_enable(dev->agp->agpdev, mode.mode); @@ -153,6 +184,16 @@ return 0; } +int drm_agp_enable_ioctl(DRM_IOCTL_ARGS) +{ + drm_agp_mode_t mode; + DRM_DEVICE; + + mode = *(drm_agp_mode_t *) data; + + return drm_agp_enable(dev, mode); +} + int drm_agp_alloc(DRM_IOCTL_ARGS) { DRM_DEVICE; ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drm_bufs.c#3 (text+ko) ==== @@ -91,99 +91,36 @@ return len; } -int drm_initmap(drm_device_t *dev, unsigned long start, unsigned long len, - unsigned int resource, int type, int flags) +int drm_addmap(drm_device_t * dev, unsigned long offset, unsigned long size, + drm_map_type_t type, drm_map_flags_t flags, drm_local_map_t **map_ptr) { drm_local_map_t *map; - struct resource *bsr; - - if (type != _DRM_REGISTERS && type != _DRM_FRAME_BUFFER) - return EINVAL; - if (len == 0) - return EINVAL; - map = malloc(sizeof(*map), M_DRM, M_ZERO | M_NOWAIT); - if (map == NULL) - return ENOMEM; - - map->rid = resource * 4 + 0x10; - bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &map->rid, - RF_ACTIVE | RF_SHAREABLE); - if (bsr == NULL) { - DRM_ERROR("Couldn't allocate %s resource\n", - ((type == _DRM_REGISTERS) ? "mmio" : "framebuffer")); - free(map, M_DRM); - return ENOMEM; - } - - map->kernel_owned = 1; - map->type = type; - map->flags = flags; - map->bsr = bsr; - map->bst = rman_get_bustag(bsr); - map->bsh = rman_get_bushandle(bsr); - map->offset = start; - map->size = len; - - if (type == _DRM_REGISTERS) - map->handle = rman_get_virtual(bsr); - - DRM_DEBUG("initmap %d,0x%x@0x%lx/0x%lx\n", map->type, map->flags, - map->offset, map->size); - - if (map->flags & _DRM_WRITE_COMBINING) { - int err; - - err = drm_mtrr_add(map->offset, map->size, DRM_MTRR_WC); - if (err == 0) - map->mtrr = 1; - } - - DRM_LOCK(); - TAILQ_INSERT_TAIL(&dev->maplist, map, link); - DRM_UNLOCK(); - - return 0; -} - -int drm_addmap(DRM_IOCTL_ARGS) -{ - DRM_DEVICE; - drm_map_t request; - drm_local_map_t *map; - dma_addr_t bus_addr; - - if (!(dev->flags & (FREAD|FWRITE))) - return DRM_ERR(EACCES); /* Require read/write */ - - DRM_COPY_FROM_USER_IOCTL( request, (drm_map_t *)data, sizeof(drm_map_t) ); - /* Only allow shared memory to be removable since we only keep enough * book keeping information about shared memory to allow for removal * when processes fork. */ - if ((request.flags & _DRM_REMOVABLE) && request.type != _DRM_SHM) + if ((flags & _DRM_REMOVABLE) && type != _DRM_SHM) return EINVAL; - if ((request.offset & PAGE_MASK) || (request.size & PAGE_MASK)) + if ((offset & PAGE_MASK) || (size & PAGE_MASK)) return EINVAL; - if (request.offset + request.size < request.offset) + if (offset + size < offset) return EINVAL; - DRM_DEBUG("offset = 0x%08lx, size = 0x%08lx, type = %d\n", - request.offset, request.size, request.type); + DRM_DEBUG("offset = 0x%08lx, size = 0x%08lx, type = %d\n", offset, + size, type); /* Check if this is just another version of a kernel-allocated map, and * just hand that back if so. */ - if (request.type == _DRM_REGISTERS || request.type == _DRM_FRAME_BUFFER) - { + if (type == _DRM_REGISTERS || type == _DRM_FRAME_BUFFER || + type == _DRM_SHM) { DRM_LOCK(); TAILQ_FOREACH(map, &dev->maplist, link) { - if (map->kernel_owned && map->type == request.type && - map->offset == request.offset) { - /* XXX: this size setting is questionable. */ - map->size = request.size; - DRM_DEBUG("Found kernel map %d\n", request.type); + if (map->type == type && + (map->offset == offset || map->type == _DRM_SHM)) { + map->size = size; + DRM_DEBUG("Found kernel map %d\n", type); goto done; } } @@ -197,14 +134,14 @@ if ( !map ) return DRM_ERR(ENOMEM); - map->offset = request.offset; - map->size = request.size; - map->type = request.type; - map->flags = request.flags; + map->offset = offset; + map->size = size; + map->type = type; + map->flags = flags; switch ( map->type ) { case _DRM_REGISTERS: - drm_ioremap(dev, map); + map->handle = drm_ioremap(dev, map); if (!(map->flags & _DRM_WRITE_COMBINING)) break; /* FALLTHROUGH */ @@ -235,8 +172,25 @@ } break; case _DRM_AGP: - map->offset += dev->agp->base; - map->mtrr = dev->agp->mtrr; /* for getmap */ + { + drm_agp_mem_t *entry; + int valid = 0; + + map->offset += dev->agp->base; + map->mtrr = dev->agp->mtrr; /* for getmap */ + for (entry = dev->agp->memory; entry; + entry = entry->next) + if ((map->offset >= entry->bound) && + (map->offset + map->size <= + entry->bound + entry->pages * PAGE_SIZE)) { + valid = 1; + break; + } + if (!valid) { + free(map, M_DRM); + return DRM_ERR(EACCES); + } + } break; case _DRM_SCATTER_GATHER: if (!dev->sg) { @@ -246,13 +200,14 @@ map->offset = map->offset + dev->sg->handle; break; case _DRM_CONSISTENT: - map->handle = drm_pci_alloc(dev, map->size, map->size, - 0xfffffffful, &bus_addr); - if (map->handle == NULL) { + map->dmah = drm_pci_alloc(dev, map->size, map->size, + 0xfffffffful); + if (map->dmah == NULL) { free(map, M_DRM); - return ENOMEM; + return DRM_ERR(ENOMEM); } - map->offset = (unsigned long)bus_addr; + map->handle = map->dmah->vaddr; + map->offset = map->dmah->busaddr; break; default: free(map, M_DRM); @@ -264,26 +219,52 @@ done: /* Jumped to, with lock held, when a kernel map is found. */ + DRM_UNLOCK(); + + DRM_DEBUG("Added map %d 0x%lx/0x%lx\n", map->type, map->offset, + map->size); + + *map_ptr = map; + + return 0; +} + +int drm_addmap_ioctl(DRM_IOCTL_ARGS) +{ + drm_map_t request; + drm_local_map_t *map; + int err; + DRM_DEVICE; + + if (!(dev->flags & (FREAD|FWRITE))) + return DRM_ERR(EACCES); /* Require read/write */ + + DRM_COPY_FROM_USER_IOCTL(request, (drm_map_t *)data, sizeof(drm_map_t)); + + if (!DRM_SUSER(p) && request.type != _DRM_AGP) + return DRM_ERR(EACCES); + + err = drm_addmap(dev, request.offset, request.size, request.type, + request.flags, &map); + if (err != 0) + return err; + request.offset = map->offset; request.size = map->size; request.type = map->type; request.flags = map->flags; request.mtrr = map->mtrr; request.handle = map->handle; - DRM_UNLOCK(); - DRM_DEBUG("Added map %d 0x%lx/0x%lx\n", request.type, request.offset, request.size); - - if ( request.type != _DRM_SHM ) { + if (request.type != _DRM_SHM) { request.handle = (void *)request.offset; } - - DRM_COPY_TO_USER_IOCTL( (drm_map_t *)data, request, sizeof(drm_map_t) ); + DRM_COPY_TO_USER_IOCTL((drm_map_t *)data, request, sizeof(drm_map_t)); return 0; } -void drm_remove_map(drm_device_t *dev, drm_local_map_t *map) +void drm_rmmap(drm_device_t *dev, drm_local_map_t *map) { DRM_SPINLOCK_ASSERT(&dev->dev_lock); @@ -310,7 +291,7 @@ case _DRM_SCATTER_GATHER: break; case _DRM_CONSISTENT: - drm_pci_free(dev, map->size, map->handle, map->offset); + drm_pci_free(dev, map->dmah); break; } @@ -326,7 +307,7 @@ * isn't in use. */ -int drm_rmmap(DRM_IOCTL_ARGS) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 26 00:26:51 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E121F16A421; Fri, 26 Aug 2005 00:26:50 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BA8A816A41F for ; Fri, 26 Aug 2005 00:26:50 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 86E6643D46 for ; Fri, 26 Aug 2005 00:26:50 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q0Qomi094206 for ; Fri, 26 Aug 2005 00:26:50 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q0QoVK094203 for perforce@freebsd.org; Fri, 26 Aug 2005 00:26:50 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 00:26:50 GMT Message-Id: <200508260026.j7Q0QoVK094203@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82571 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 00:26:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=82571 Change 82571 by anholt@anholt_leguin on 2005/08/26 00:26:34 MF DRI CVS 2005-08-25 (missed added files) Affected files ... .. //depot/projects/drm-merge-vendor/sys/dev/drm/r300_cmdbuf.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/r300_reg.h#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_3d_reg.h#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_dma.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_drm.h#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_drv.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_drv.h#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_ds.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_ds.h#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_irq.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_map.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_mm.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_mm.h#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_verifier.c#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_verifier.h#1 add .. //depot/projects/drm-merge-vendor/sys/dev/drm/via_video.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Fri Aug 26 01:09:12 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D1E3416A421; Fri, 26 Aug 2005 01:09:11 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 90E5416A41F for ; Fri, 26 Aug 2005 01:09:11 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1FEFD43D46 for ; Fri, 26 Aug 2005 01:09:11 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q19AGI002881 for ; Fri, 26 Aug 2005 01:09:10 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q18wgl002874 for perforce@freebsd.org; Fri, 26 Aug 2005 01:08:58 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 01:08:58 GMT Message-Id: <200508260108.j7Q18wgl002874@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82573 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 01:09:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=82573 Change 82573 by anholt@anholt_leguin on 2005/08/26 01:08:29 MF FreeBSD CVS Affected files ... .. //depot/projects/drm-merge/sys/alpha/alpha/autoconf.c#3 integrate .. //depot/projects/drm-merge/sys/alpha/alpha/busdma_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/alpha/alpha/clock.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/alpha/db_trace.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/alpha/pmap.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/alpha/timerreg.h#3 delete .. //depot/projects/drm-merge/sys/alpha/alpha/vm_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/alpha/conf/.cvsignore#1 branch .. //depot/projects/drm-merge/sys/alpha/conf/GENERIC#3 integrate .. //depot/projects/drm-merge/sys/alpha/conf/GENERIC.hints#2 integrate .. //depot/projects/drm-merge/sys/alpha/include/_bus.h#1 branch .. //depot/projects/drm-merge/sys/alpha/include/_limits.h#2 integrate .. //depot/projects/drm-merge/sys/alpha/include/atomic.h#3 integrate .. //depot/projects/drm-merge/sys/alpha/include/bus.h#3 integrate .. //depot/projects/drm-merge/sys/alpha/include/bus_memio.h#2 delete .. //depot/projects/drm-merge/sys/alpha/include/bus_pio.h#2 delete .. //depot/projects/drm-merge/sys/alpha/include/pmc_mdep.h#1 branch .. //depot/projects/drm-merge/sys/alpha/include/ppireg.h#1 branch .. //depot/projects/drm-merge/sys/alpha/include/signal.h#2 integrate .. //depot/projects/drm-merge/sys/alpha/include/timerreg.h#1 branch .. //depot/projects/drm-merge/sys/alpha/isa/isa_dma.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/isa/mcclock_isa.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/linux/linux_proto.h#3 integrate .. //depot/projects/drm-merge/sys/alpha/linux/linux_syscall.h#3 integrate .. //depot/projects/drm-merge/sys/alpha/linux/linux_sysent.c#3 integrate .. //depot/projects/drm-merge/sys/alpha/linux/linux_sysvec.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/linux/syscalls.master#3 integrate .. //depot/projects/drm-merge/sys/alpha/osf1/Makefile#2 integrate .. //depot/projects/drm-merge/sys/alpha/osf1/osf1_misc.c#3 integrate .. //depot/projects/drm-merge/sys/alpha/osf1/osf1_mount.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/osf1/osf1_proto.h#2 integrate .. //depot/projects/drm-merge/sys/alpha/osf1/osf1_syscall.h#2 integrate .. //depot/projects/drm-merge/sys/alpha/osf1/osf1_sysent.c#2 integrate .. //depot/projects/drm-merge/sys/alpha/osf1/syscalls.master#2 integrate .. //depot/projects/drm-merge/sys/amd64/acpica/madt.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/apic_vector.S#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/autoconf.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/bios.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/db_trace.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/dump_machdep.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/exception.S#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/identcpu.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/intr_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/io_apic.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/local_apic.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/machdep.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/mp_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/mptable.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/pmap.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/prof_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/support.S#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/sys_machdep.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/trap.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/amd64/vm_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/conf/.cvsignore#1 branch .. //depot/projects/drm-merge/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/drm-merge/sys/amd64/conf/NOTES#5 integrate .. //depot/projects/drm-merge/sys/amd64/ia32/ia32_reg.c#1 branch .. //depot/projects/drm-merge/sys/amd64/include/_bus.h#1 branch .. //depot/projects/drm-merge/sys/amd64/include/_limits.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/_types.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/include/apicvar.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/include/atomic.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/include/bus.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/bus_amd64.h#3 delete .. //depot/projects/drm-merge/sys/amd64/include/bus_dma.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/include/bus_memio.h#2 delete .. //depot/projects/drm-merge/sys/amd64/include/bus_pio.h#2 delete .. //depot/projects/drm-merge/sys/amd64/include/cpufunc.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/include/legacyvar.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/param.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/pc/bios.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/pmap.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/pmc_mdep.h#1 branch .. //depot/projects/drm-merge/sys/amd64/include/ppireg.h#1 branch .. //depot/projects/drm-merge/sys/amd64/include/signal.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/smp.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/include/sysarch.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/include/timerreg.h#1 branch .. //depot/projects/drm-merge/sys/amd64/include/tss.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/isa/clock.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/isa/isa.h#2 integrate .. //depot/projects/drm-merge/sys/amd64/isa/isa_dma.c#2 integrate .. //depot/projects/drm-merge/sys/amd64/isa/timerreg.h#3 delete .. //depot/projects/drm-merge/sys/amd64/linux32/linux32_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/linux32/linux32_proto.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/linux32/linux32_syscall.h#3 integrate .. //depot/projects/drm-merge/sys/amd64/linux32/linux32_sysent.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/linux32/linux32_sysvec.c#3 integrate .. //depot/projects/drm-merge/sys/amd64/linux32/syscalls.master#3 integrate .. //depot/projects/drm-merge/sys/arm/arm/autoconf.c#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/bcopyinout.S#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/bcopyinout_xscale.S#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/busdma_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/arm/arm/cpufunc.c#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/cpufunc_asm_arm3.S#2 delete .. //depot/projects/drm-merge/sys/arm/arm/cpufunc_asm_arm67.S#2 delete .. //depot/projects/drm-merge/sys/arm/arm/db_interface.c#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/db_trace.c#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/fusu.S#3 integrate .. //depot/projects/drm-merge/sys/arm/arm/in_cksum.c#3 integrate .. //depot/projects/drm-merge/sys/arm/arm/in_cksum_arm.S#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/intr.c#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/nexus.c#2 integrate .. //depot/projects/drm-merge/sys/arm/arm/pmap.c#3 integrate .. //depot/projects/drm-merge/sys/arm/arm/swtch.S#3 integrate .. //depot/projects/drm-merge/sys/arm/arm/trap.c#3 integrate .. //depot/projects/drm-merge/sys/arm/arm/vm_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/arm/conf/.cvsignore#1 branch .. //depot/projects/drm-merge/sys/arm/conf/IQ31244#2 integrate .. //depot/projects/drm-merge/sys/arm/include/_bus.h#1 branch .. //depot/projects/drm-merge/sys/arm/include/_limits.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/atomic.h#3 integrate .. //depot/projects/drm-merge/sys/arm/include/bus.h#3 integrate .. //depot/projects/drm-merge/sys/arm/include/bus_memio.h#2 delete .. //depot/projects/drm-merge/sys/arm/include/bus_pio.h#2 delete .. //depot/projects/drm-merge/sys/arm/include/clock.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/cpuconf.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/cpufunc.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/endian.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/in_cksum.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/intr.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/pmap.h#3 integrate .. //depot/projects/drm-merge/sys/arm/include/pmc_mdep.h#1 branch .. //depot/projects/drm-merge/sys/arm/include/signal.h#2 integrate .. //depot/projects/drm-merge/sys/arm/include/vmparam.h#2 integrate .. //depot/projects/drm-merge/sys/arm/sa11x0/sa11x0_io.c#2 integrate .. //depot/projects/drm-merge/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate .. //depot/projects/drm-merge/sys/arm/xscale/i80321/i80321.c#3 integrate .. //depot/projects/drm-merge/sys/arm/xscale/i80321/i80321_pci.c#2 integrate .. //depot/projects/drm-merge/sys/arm/xscale/i80321/iq31244_7seg.c#2 integrate .. //depot/projects/drm-merge/sys/arm/xscale/i80321/iq31244_machdep.c#3 integrate .. //depot/projects/drm-merge/sys/arm/xscale/i80321/iq80321.c#3 integrate .. //depot/projects/drm-merge/sys/boot/alpha/common/main.c#2 integrate .. //depot/projects/drm-merge/sys/boot/alpha/libalpha/delay.c#2 integrate .. //depot/projects/drm-merge/sys/boot/alpha/libalpha/devicename.c#2 integrate .. //depot/projects/drm-merge/sys/boot/alpha/libalpha/getsecs.c#2 integrate .. //depot/projects/drm-merge/sys/boot/alpha/libalpha/libalpha.h#2 integrate .. //depot/projects/drm-merge/sys/boot/alpha/libalpha/srmdisk.c#2 integrate .. //depot/projects/drm-merge/sys/boot/common/boot.c#2 integrate .. //depot/projects/drm-merge/sys/boot/common/console.c#2 integrate .. //depot/projects/drm-merge/sys/boot/common/help.common#2 integrate .. //depot/projects/drm-merge/sys/boot/common/loader.8#2 integrate .. //depot/projects/drm-merge/sys/boot/ficl/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/forth/loader.conf#2 integrate .. //depot/projects/drm-merge/sys/boot/forth/loader.conf.5#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/Makefile.inc#3 integrate .. //depot/projects/drm-merge/sys/boot/i386/boot0/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/boot2/Makefile#3 integrate .. //depot/projects/drm-merge/sys/boot/i386/boot2/boot2.c#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/boot2/lib.h#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/boot2/sio.S#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/biosacpi.c#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/bioscd.c#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/bootinfo.c#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/comconsole.c#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/devicename.c#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/libi386.h#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/pxe.c#3 integrate .. //depot/projects/drm-merge/sys/boot/i386/libi386/smbios.c#1 branch .. //depot/projects/drm-merge/sys/boot/i386/loader/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/i386/loader/main.c#2 integrate .. //depot/projects/drm-merge/sys/boot/ofw/libofw/elf_freebsd.c#2 integrate .. //depot/projects/drm-merge/sys/boot/ofw/libofw/ofw_copy.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/Makefile#3 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/boot.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/boot.h#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/boot2.S#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/disk.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/io.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/sys.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/boot2/table.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/btx/btx/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/btx/btx/btx.S#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/btx/btxldr/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/btx/btxldr/btxldr.S#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/kgzldr/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/kgzldr/crt.s#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/libpc98/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/libpc98/biosdisk.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/libpc98/biosmem.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/libpc98/comconsole.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/libpc98/gatea20.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/libpc98/time.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/libpc98/vidconsole.c#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/loader/Makefile#2 integrate .. //depot/projects/drm-merge/sys/boot/pc98/loader/main.c#2 integrate .. //depot/projects/drm-merge/sys/boot/sparc64/loader/metadata.c#2 integrate .. //depot/projects/drm-merge/sys/bsm/audit.h#1 branch .. //depot/projects/drm-merge/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/drm-merge/sys/cam/cam_periph.c#3 integrate .. //depot/projects/drm-merge/sys/cam/cam_queue.c#2 integrate .. //depot/projects/drm-merge/sys/cam/cam_sim.c#2 integrate .. //depot/projects/drm-merge/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/drm-merge/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/drm-merge/sys/cam/scsi/scsi_all.c#3 integrate .. //depot/projects/drm-merge/sys/cam/scsi/scsi_da.c#2 integrate .. //depot/projects/drm-merge/sys/cam/scsi/scsi_low.c#3 integrate .. //depot/projects/drm-merge/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/drm-merge/sys/cam/scsi/scsi_ses.c#2 integrate .. //depot/projects/drm-merge/sys/cam/scsi/scsi_targ_bh.c#2 integrate .. //depot/projects/drm-merge/sys/cam/scsi/scsi_target.c#3 integrate .. //depot/projects/drm-merge/sys/coda/coda_fbsd.c#3 integrate .. //depot/projects/drm-merge/sys/coda/coda_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/compat/freebsd32/freebsd32_misc.c#3 integrate .. //depot/projects/drm-merge/sys/compat/freebsd32/freebsd32_proto.h#3 integrate .. //depot/projects/drm-merge/sys/compat/freebsd32/freebsd32_syscall.h#3 integrate .. //depot/projects/drm-merge/sys/compat/freebsd32/freebsd32_syscalls.c#3 integrate .. //depot/projects/drm-merge/sys/compat/freebsd32/freebsd32_sysent.c#3 integrate .. //depot/projects/drm-merge/sys/compat/freebsd32/freebsd32_util.h#2 integrate .. //depot/projects/drm-merge/sys/compat/freebsd32/syscalls.master#3 integrate .. //depot/projects/drm-merge/sys/compat/ia32/ia32_reg.h#1 branch .. //depot/projects/drm-merge/sys/compat/linux/linux_file.c#2 integrate .. //depot/projects/drm-merge/sys/compat/linux/linux_getcwd.c#3 integrate .. //depot/projects/drm-merge/sys/compat/linux/linux_ioctl.c#3 integrate .. //depot/projects/drm-merge/sys/compat/linux/linux_ipc.c#2 integrate .. //depot/projects/drm-merge/sys/compat/linux/linux_misc.c#3 integrate .. //depot/projects/drm-merge/sys/compat/linux/linux_socket.c#3 integrate .. //depot/projects/drm-merge/sys/compat/linux/linux_stats.c#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/kern_windrv.c#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/ndis_var.h#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/ntoskrnl_var.h#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/subr_hal.c#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/subr_ndis.c#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/subr_ntoskrnl.c#3 integrate .. //depot/projects/drm-merge/sys/compat/ndis/subr_usbd.c#2 integrate .. //depot/projects/drm-merge/sys/compat/ndis/winx64_wrap.S#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4.h#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_ipc.c#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_misc.c#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_proto.h#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_socket.c#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_sockio.c#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_stream.c#3 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_syscall.h#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_syscallnames.c#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/svr4_sysent.c#2 integrate .. //depot/projects/drm-merge/sys/compat/svr4/syscalls.master#2 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.alpha#3 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.amd64#3 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.arm#3 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.i386#3 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.ia64#3 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.pc98#3 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.powerpc#3 integrate .. //depot/projects/drm-merge/sys/conf/Makefile.sparc64#3 integrate .. //depot/projects/drm-merge/sys/conf/NOTES#3 integrate .. //depot/projects/drm-merge/sys/conf/files#5 integrate .. //depot/projects/drm-merge/sys/conf/files.alpha#3 integrate .. //depot/projects/drm-merge/sys/conf/files.amd64#3 integrate .. //depot/projects/drm-merge/sys/conf/files.arm#3 integrate .. //depot/projects/drm-merge/sys/conf/files.i386#3 integrate .. //depot/projects/drm-merge/sys/conf/files.ia64#3 integrate .. //depot/projects/drm-merge/sys/conf/files.pc98#3 integrate .. //depot/projects/drm-merge/sys/conf/files.powerpc#3 integrate .. //depot/projects/drm-merge/sys/conf/files.sparc64#3 integrate .. //depot/projects/drm-merge/sys/conf/kern.mk#3 integrate .. //depot/projects/drm-merge/sys/conf/kern.post.mk#3 integrate .. //depot/projects/drm-merge/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/drm-merge/sys/conf/kmod.mk#3 integrate .. //depot/projects/drm-merge/sys/conf/newvers.sh#2 integrate .. //depot/projects/drm-merge/sys/conf/options#3 integrate .. //depot/projects/drm-merge/sys/conf/options.amd64#2 integrate .. //depot/projects/drm-merge/sys/conf/options.arm#3 integrate .. //depot/projects/drm-merge/sys/conf/options.i386#3 integrate .. //depot/projects/drm-merge/sys/conf/options.pc98#2 integrate .. //depot/projects/drm-merge/sys/conf/options.sparc64#2 integrate .. //depot/projects/drm-merge/sys/contrib/altq/altq/altq_cbq.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/altq/altq/altq_rio.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/dev/oltr/if_oltr.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/dev/oltr/if_oltr_pci.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/dev/oltr/if_oltrvar.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/fil.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_auth.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_auth.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_compat.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_fil.c#2 delete .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_frag.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_frag.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_htable.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_htable.h#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_ipsec_pxy.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_irc_pxy.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_log.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_lookup.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_lookup.h#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_nat.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_nat.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_netbios_pxy.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_pool.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_pool.h#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_pptp_pxy.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_proxy.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_proxy.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_raudio_pxy.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_rules.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_rules.h#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_scan.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_scan.h#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_state.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_state.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_sync.c#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ip_sync.h#1 branch .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/ipl.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ipfilter/netinet/mlfk_ipl.c#3 integrate .. //depot/projects/drm-merge/sys/contrib/ngatm/netnatm/api/ccpriv.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ngatm/netnatm/api/unisap.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/ngatm/netnatm/msg/uni_ie.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/if_pflog.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/if_pflog.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/if_pfsync.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/if_pfsync.h#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pf.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pf_if.c#3 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pf_ioctl.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pf_norm.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pf_osfp.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pf_subr.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pf_table.c#2 integrate .. //depot/projects/drm-merge/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/drm-merge/sys/crypto/rijndael/rijndael-alg-fst.c#3 integrate .. //depot/projects/drm-merge/sys/crypto/via/padlock.c#1 branch .. //depot/projects/drm-merge/sys/ddb/db_command.c#2 integrate .. //depot/projects/drm-merge/sys/ddb/db_print.c#2 integrate .. //depot/projects/drm-merge/sys/ddb/db_run.c#2 integrate .. //depot/projects/drm-merge/sys/ddb/ddb.h#2 integrate .. //depot/projects/drm-merge/sys/dev/aac/aac.c#3 integrate .. //depot/projects/drm-merge/sys/dev/aac/aac_compat.h#2 delete .. //depot/projects/drm-merge/sys/dev/aac/aac_debug.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aac/aac_disk.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aac/aac_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/aac/aac_tables.h#2 integrate .. //depot/projects/drm-merge/sys/dev/aac/aacreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/acpi_support/acpi_asus.c#3 integrate .. //depot/projects/drm-merge/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/drm-merge/sys/dev/acpi_support/acpi_panasonic.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdDebug.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdHardware.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdInterrupt.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdMemory.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdSchedule.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdStream.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdSynch.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/Osd/OsdTable.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi.c#3 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_acad.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_battery.c#3 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_cmbat.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_ec.c#3 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_if.m#3 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_package.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_pci_link.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_perf.c#4 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_quirk.c#2 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_quirks#3 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpiio.h#3 integrate .. //depot/projects/drm-merge/sys/dev/acpica/acpivar.h#3 integrate .. //depot/projects/drm-merge/sys/dev/advansys/adv_eisa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/advansys/adv_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/advansys/adv_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/drm-merge/sys/dev/advansys/advlib.c#2 integrate .. //depot/projects/drm-merge/sys/dev/advansys/adw_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/advansys/adwcam.c#2 integrate .. //depot/projects/drm-merge/sys/dev/advansys/adwlib.c#3 integrate .. //depot/projects/drm-merge/sys/dev/aha/aha.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aha/aha_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ahb/ahb.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aic/aic.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aic/aic_cbus.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aic/aic_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aic/aic_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/drm-merge/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/drm-merge/sys/dev/aic7xxx/aicasm/Makefile#2 integrate .. //depot/projects/drm-merge/sys/dev/amd/amd.c#3 integrate .. //depot/projects/drm-merge/sys/dev/amr/amr.c#3 integrate .. //depot/projects/drm-merge/sys/dev/amr/amr_cam.c#2 integrate .. //depot/projects/drm-merge/sys/dev/amr/amr_compat.h#2 delete .. //depot/projects/drm-merge/sys/dev/amr/amr_disk.c#2 integrate .. //depot/projects/drm-merge/sys/dev/amr/amr_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/amr/amrvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/an/if_an.c#3 integrate .. //depot/projects/drm-merge/sys/dev/an/if_an_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/an/if_an_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/an/if_anreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ar/if_ar.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ar/if_ar_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ar/if_ar_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/arcmsr/arcmsr.c#2 integrate .. //depot/projects/drm-merge/sys/dev/arl/if_arl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/arl/if_arl_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/arl/if_arlreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/asr/asr.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-all.h#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-card.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-cbus.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-chipset.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-commands.h#3 delete .. //depot/projects/drm-merge/sys/dev/ata/ata-disk.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-dma.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-isa.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-lowlevel.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-pci.h#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-queue.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-raid.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata-raid.h#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/ata_if.m#2 integrate .. //depot/projects/drm-merge/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/atapi-cd.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/atapi-fd.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ata/atapi-tape.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ath/ath_rate/amrr/amrr.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ath/ath_rate/onoe/onoe.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ath/ath_rate/sample/sample.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ath/if_ath.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ath/if_athvar.h#3 integrate .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbd.c#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbd_atkbdc.c#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbdc.c#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbdc_ebus.c#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbdc_isa.c#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbdc_subr.c#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbdc_subr.h#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbdcreg.h#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/atkbdreg.h#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/psm.c#1 branch .. //depot/projects/drm-merge/sys/dev/atkbdc/psm.h#1 branch .. //depot/projects/drm-merge/sys/dev/auxio/auxio.c#2 integrate .. //depot/projects/drm-merge/sys/dev/awi/am79c930.c#2 integrate .. //depot/projects/drm-merge/sys/dev/awi/awi.c#3 integrate .. //depot/projects/drm-merge/sys/dev/awi/awivar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/awi/if_awi_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/bfe/if_bfe.c#3 integrate .. //depot/projects/drm-merge/sys/dev/bfe/if_bfereg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/bge/if_bge.c#3 integrate .. //depot/projects/drm-merge/sys/dev/bge/if_bgereg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/bktr/bktr_audio.c#2 integrate .. //depot/projects/drm-merge/sys/dev/bktr/bktr_card.c#2 integrate .. //depot/projects/drm-merge/sys/dev/bktr/bktr_core.c#2 integrate .. //depot/projects/drm-merge/sys/dev/bktr/bktr_i2c.c#2 integrate .. //depot/projects/drm-merge/sys/dev/bktr/bktr_os.c#3 integrate .. //depot/projects/drm-merge/sys/dev/bktr/bktr_reg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/bktr/bktr_tuner.c#2 integrate .. //depot/projects/drm-merge/sys/dev/buslogic/bt.c#2 integrate .. //depot/projects/drm-merge/sys/dev/buslogic/bt_eisa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/buslogic/bt_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/buslogic/bt_pci.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ciss/cissio.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ciss/cissreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ciss/cissvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/cm/if_cm_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/cm/smc90cx6.c#2 integrate .. //depot/projects/drm-merge/sys/dev/cm/smc90cx6var.h#2 integrate .. //depot/projects/drm-merge/sys/dev/cnw/if_cnw.c#2 integrate .. //depot/projects/drm-merge/sys/dev/cp/if_cp.c#3 integrate .. //depot/projects/drm-merge/sys/dev/cs/if_cs.c#2 integrate .. //depot/projects/drm-merge/sys/dev/cs/if_cs_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/cs/if_csvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ct/ct_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ctau/if_ct.c#3 integrate .. //depot/projects/drm-merge/sys/dev/cx/if_cx.c#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/CX.bios.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/CX.fepos.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/CX_PCI.bios.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/CX_PCI.fepos.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/EPCX.bios.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/EPCX.fepos.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/EPCX_PCI.bios.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/EPCX_PCI.fepos.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/Xe.bios.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/Xe.fepos.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/Xem.bios.h#2 integrate .. //depot/projects/drm-merge/sys/dev/digi/Xem.fepos.h#2 integrate .. //depot/projects/drm-merge/sys/dev/dpt/dpt_eisa.c#3 integrate .. //depot/projects/drm-merge/sys/dev/dpt/dpt_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/dpt/dpt_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/dpt/dpt_scsi.c#2 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/drmP.h#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_linux_list.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_pciids.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_sarea.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_dma.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_drm.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_drv.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_drv.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_irq.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_state.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_ucode.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_warp.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_cce.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_drm.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_drv.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_drv.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_irq.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_state.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/r300_cmdbuf.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/r300_reg.h#1 branch .. //depot/projects/drm-merge/sys/dev/drm/radeon_cp.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_drm.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_drv.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_drv.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_irq.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_mem.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_state.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_drm.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_drv.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_drv.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_ds.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_ds.h#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_mm.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/tdfx_drv.c#6 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed98.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_3c503.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_cbus.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_hpp.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_isa.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_novell.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_pccard.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_sic.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_ed_wd80x3.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ed/if_edvar.h#3 integrate .. //depot/projects/drm-merge/sys/dev/eisa/eisaconf.c#3 integrate .. //depot/projects/drm-merge/sys/dev/em/README#2 integrate .. //depot/projects/drm-merge/sys/dev/em/if_em.c#3 integrate .. //depot/projects/drm-merge/sys/dev/em/if_em.h#2 integrate .. //depot/projects/drm-merge/sys/dev/em/if_em_hw.c#2 integrate .. //depot/projects/drm-merge/sys/dev/em/if_em_hw.h#2 integrate .. //depot/projects/drm-merge/sys/dev/em/if_em_osdep.h#2 integrate .. //depot/projects/drm-merge/sys/dev/en/if_en_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/en/midway.c#2 integrate .. //depot/projects/drm-merge/sys/dev/en/midwayvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ep/if_ep.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ep/if_ep_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ep/if_ep_mca.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ep/if_ep_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ep/if_epreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ep/if_epvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/esp/esp_sbus.c#3 integrate .. //depot/projects/drm-merge/sys/dev/esp/ncr53c9x.c#3 integrate .. //depot/projects/drm-merge/sys/dev/esp/ncr53c9xreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/esp/ncr53c9xvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ex/if_ex.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ex/if_ex_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ex/if_ex_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ex/if_exvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/fatm/if_fatm.c#3 integrate .. //depot/projects/drm-merge/sys/dev/fatm/if_fatmvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/fb/boot_font.c#2 integrate .. //depot/projects/drm-merge/sys/dev/fb/creator.c#2 integrate .. //depot/projects/drm-merge/sys/dev/fb/gfb.c#2 integrate .. //depot/projects/drm-merge/sys/dev/fb/machfb.c#1 branch .. //depot/projects/drm-merge/sys/dev/fb/machfbreg.h#1 branch .. //depot/projects/drm-merge/sys/dev/fb/s3_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/fb/tga.c#2 integrate .. //depot/projects/drm-merge/sys/dev/fdc/fdc_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/fe/if_fe.c#3 integrate .. //depot/projects/drm-merge/sys/dev/fe/if_fe_cbus.c#3 integrate .. //depot/projects/drm-merge/sys/dev/fe/if_fe_isa.c#3 integrate .. //depot/projects/drm-merge/sys/dev/fe/if_fe_pccard.c#3 integrate .. //depot/projects/drm-merge/sys/dev/fe/if_fevar.h#3 integrate .. //depot/projects/drm-merge/sys/dev/firewire/firewirereg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/firewire/fwdev.c#3 integrate .. //depot/projects/drm-merge/sys/dev/firewire/fwohci_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/firewire/fwohcireg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/firewire/if_fwe.c#2 integrate .. //depot/projects/drm-merge/sys/dev/firewire/if_fwevar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/firewire/if_fwip.c#2 integrate .. //depot/projects/drm-merge/sys/dev/firewire/if_fwipvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/fxp/if_fxp.c#3 integrate .. //depot/projects/drm-merge/sys/dev/fxp/if_fxpreg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/fxp/if_fxpvar.h#3 integrate .. //depot/projects/drm-merge/sys/dev/fxp/rcvbundl.h#2 integrate .. //depot/projects/drm-merge/sys/dev/gem/if_gem.c#2 integrate .. //depot/projects/drm-merge/sys/dev/gem/if_gem_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/gem/if_gemvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/gfb/gfb_pci.c#2 integrate .. //depot/projects/drm-merge/sys/dev/harp/if_harp.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hatm/if_hatm.c#3 integrate .. //depot/projects/drm-merge/sys/dev/hatm/if_hatm_intr.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hatm/if_hatm_ioctl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hatm/if_hatm_rx.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hatm/if_hatm_tx.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hatm/if_hatmvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/hfa/fore_output.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hfa/fore_receive.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hfa/fore_transmit.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hfa/hfa_freebsd.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hfa/hfa_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/hifn/hifn7751.c#3 integrate .. //depot/projects/drm-merge/sys/dev/hme/if_hme.c#2 integrate .. //depot/projects/drm-merge/sys/dev/hme/if_hme_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/hme/if_hme_sbus.c#3 integrate .. //depot/projects/drm-merge/sys/dev/hme/if_hmevar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/hptmv/osbsd.h#2 integrate .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_alpha.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_amd.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_amd.h#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_arm.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_ia64.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_logging.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_mod.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_pentium.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_pentium.h#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_piv.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_piv.h#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_powerpc.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_ppro.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_ppro.h#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_sparc64.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/hwpmc_x86.c#1 branch .. //depot/projects/drm-merge/sys/dev/hwpmc/pmc_events.h#1 branch .. //depot/projects/drm-merge/sys/dev/ic/i8237.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ic/i8253reg.h#1 branch .. //depot/projects/drm-merge/sys/dev/ichsmb/ichsmb.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ichsmb/ichsmb_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ichsmb/ichsmb_var.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ida/ida.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ida/ida_disk.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ida/ida_eisa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ida/ida_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ida/idareg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ida/idavar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/idt/idt.c#2 integrate .. //depot/projects/drm-merge/sys/dev/idt/idt_harp.c#2 integrate .. //depot/projects/drm-merge/sys/dev/idt/idt_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ie/if_ie.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ie/if_ie_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ie/if_ievar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ieee488/upd7210.h#2 integrate .. //depot/projects/drm-merge/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/drm-merge/sys/dev/if_ndis/if_ndis_pccard.c#3 integrate .. //depot/projects/drm-merge/sys/dev/if_ndis/if_ndis_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/if_ndis/if_ndis_usb.c#2 integrate .. //depot/projects/drm-merge/sys/dev/if_ndis/if_ndisvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/iicbus/if_ic.c#2 integrate .. //depot/projects/drm-merge/sys/dev/iicbus/iicbus.h#2 integrate .. //depot/projects/drm-merge/sys/dev/iir/iir.c#2 integrate .. //depot/projects/drm-merge/sys/dev/iir/iir_ctrl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/iir/iir_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ips/ips.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ips/ips.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ips/ips_disk.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ipw/if_ipw.c#1 branch .. //depot/projects/drm-merge/sys/dev/ipw/if_ipwreg.h#1 branch .. //depot/projects/drm-merge/sys/dev/ipw/if_ipwvar.h#1 branch .. //depot/projects/drm-merge/sys/dev/isp/isp_freebsd.c#2 integrate .. //depot/projects/drm-merge/sys/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/drm-merge/sys/dev/isp/isp_inline.h#2 integrate .. //depot/projects/drm-merge/sys/dev/isp/isp_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/isp/ispvar.h#3 integrate .. //depot/projects/drm-merge/sys/dev/iwi/if_iwi.c#1 branch .. //depot/projects/drm-merge/sys/dev/iwi/if_iwireg.h#1 branch .. //depot/projects/drm-merge/sys/dev/iwi/if_iwivar.h#1 branch .. //depot/projects/drm-merge/sys/dev/ixgb/if_ixgb.c#3 integrate .. //depot/projects/drm-merge/sys/dev/ixgb/if_ixgb.h#3 integrate .. //depot/projects/drm-merge/sys/dev/kbd/atkbd.c#3 delete .. //depot/projects/drm-merge/sys/dev/kbd/atkbdc.c#3 delete .. //depot/projects/drm-merge/sys/dev/kbd/atkbdcreg.h#2 delete .. //depot/projects/drm-merge/sys/dev/kbd/atkbdreg.h#2 delete .. //depot/projects/drm-merge/sys/dev/kbd/kbd.c#2 integrate .. //depot/projects/drm-merge/sys/dev/kbd/kbdreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/kbd/kbdtables.h#2 integrate .. //depot/projects/drm-merge/sys/dev/kbdmux/kbdmux.c#1 branch .. //depot/projects/drm-merge/sys/dev/lge/if_lge.c#3 integrate .. //depot/projects/drm-merge/sys/dev/lge/if_lgereg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/lnc/if_lnc.c#2 integrate .. //depot/projects/drm-merge/sys/dev/lnc/if_lnc_cbus.c#2 integrate .. //depot/projects/drm-merge/sys/dev/lnc/if_lnc_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/lnc/if_lnc_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/lnc/if_lncvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mc146818/mc146818.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mc146818/mc146818var.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mcd/mcd.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mcd/mcd_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/md/md.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mii/brgphy.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mii/dcphy.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mii/mii.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mii/miidevs#2 integrate .. //depot/projects/drm-merge/sys/dev/mii/pnphy.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mk48txx/mk48txx.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mk48txx/mk48txxreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mk48txx/mk48txxvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mlx/mlx.c#3 integrate .. //depot/projects/drm-merge/sys/dev/mlx/mlx_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/mly/mly.c#3 integrate .. //depot/projects/drm-merge/sys/dev/mly/mlyvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/fc_log.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_cnfg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_fc.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_init.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_ioc.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_lan.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_raid.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_targ.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpilib/mpi_type.h#3 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpt.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpt.h#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpt_cam.c#1 branch .. //depot/projects/drm-merge/sys/dev/mpt/mpt_cam.h#1 branch .. //depot/projects/drm-merge/sys/dev/mpt/mpt_debug.c#2 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpt_freebsd.c#2 delete .. //depot/projects/drm-merge/sys/dev/mpt/mpt_freebsd.h#2 delete .. //depot/projects/drm-merge/sys/dev/mpt/mpt_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/mpt/mpt_raid.c#1 branch .. //depot/projects/drm-merge/sys/dev/mpt/mpt_raid.h#1 branch .. //depot/projects/drm-merge/sys/dev/mpt/mpt_reg.h#1 branch .. //depot/projects/drm-merge/sys/dev/musycc/musycc.c#3 delete .. //depot/projects/drm-merge/sys/dev/my/if_my.c#3 integrate .. //depot/projects/drm-merge/sys/dev/my/if_myreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ncv/ncr53c500.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ncv/ncr53c500_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/drm-merge/sys/dev/nge/if_ngereg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/nmdm/nmdm.c#3 integrate .. //depot/projects/drm-merge/sys/dev/nsp/nsp.c#2 integrate .. //depot/projects/drm-merge/sys/dev/nsp/nsp_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/nve/if_nve.c#2 integrate .. //depot/projects/drm-merge/sys/dev/nve/if_nvereg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ofw/openfirmio.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ofw/openpromio.c#2 integrate .. //depot/projects/drm-merge/sys/dev/owi/if_owi.c#2 integrate .. //depot/projects/drm-merge/sys/dev/owi/if_owi_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/owi/if_wivar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/patm/if_patm.c#2 integrate .. //depot/projects/drm-merge/sys/dev/patm/if_patm_attach.c#3 integrate .. //depot/projects/drm-merge/sys/dev/patm/if_patm_intr.c#2 integrate .. //depot/projects/drm-merge/sys/dev/patm/if_patm_ioctl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/patm/if_patm_rx.c#2 integrate .. //depot/projects/drm-merge/sys/dev/patm/if_patm_tx.c#2 integrate .. //depot/projects/drm-merge/sys/dev/patm/if_patmvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/pbio/pbio.c#2 integrate .. //depot/projects/drm-merge/sys/dev/pccard/card_if.m#2 integrate .. //depot/projects/drm-merge/sys/dev/pccard/pccard.c#3 integrate .. //depot/projects/drm-merge/sys/dev/pccard/pccard_cis.c#3 integrate .. //depot/projects/drm-merge/sys/dev/pccard/pccard_cis.h#2 integrate .. //depot/projects/drm-merge/sys/dev/pccard/pccarddevs#3 integrate .. //depot/projects/drm-merge/sys/dev/pccard/pccardvar.h#3 integrate .. //depot/projects/drm-merge/sys/dev/pccbb/pccbb.c#2 integrate .. //depot/projects/drm-merge/sys/dev/pccbb/pccbb_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/pccbb/pccbbreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/pccbb/pccbbvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/pcf/envctrl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/pcf/pcf_ebus.c#2 integrate .. //depot/projects/drm-merge/sys/dev/pci/pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/pci/pci_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/pci/pcib_if.m#2 integrate .. //depot/projects/drm-merge/sys/dev/pci/pcireg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/pci/pcivar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/pdq/if_fea.c#2 integrate .. //depot/projects/drm-merge/sys/dev/pdq/if_fpa.c#3 integrate .. //depot/projects/drm-merge/sys/dev/pdq/pdq.c#2 integrate .. //depot/projects/drm-merge/sys/dev/pdq/pdq_freebsd.h#2 integrate .. //depot/projects/drm-merge/sys/dev/pdq/pdq_ifsubr.c#3 integrate .. //depot/projects/drm-merge/sys/dev/pdq/pdqvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/ppbus/if_plip.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ppbus/pps.c#3 integrate .. //depot/projects/drm-merge/sys/dev/puc/puc_ebus.c#2 integrate .. //depot/projects/drm-merge/sys/dev/puc/pucdata.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ral/if_ral.c#1 branch .. //depot/projects/drm-merge/sys/dev/ral/if_ral_pccard.c#1 branch .. //depot/projects/drm-merge/sys/dev/ral/if_ral_pci.c#1 branch .. //depot/projects/drm-merge/sys/dev/ral/if_ralrate.c#1 branch .. //depot/projects/drm-merge/sys/dev/ral/if_ralrate.h#1 branch .. //depot/projects/drm-merge/sys/dev/ral/if_ralreg.h#1 branch .. //depot/projects/drm-merge/sys/dev/ral/if_ralvar.h#1 branch .. //depot/projects/drm-merge/sys/dev/random/probe.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ray/if_ray.c#2 integrate .. //depot/projects/drm-merge/sys/dev/ray/if_rayvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/re/if_re.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sab/sab.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sbni/if_sbni.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sbni/if_sbni_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sbni/if_sbnivar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/sbsh/if_sbsh.c#3 integrate .. //depot/projects/drm-merge/sys/dev/scd/scd.c#2 integrate .. //depot/projects/drm-merge/sys/dev/scd/scd_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sio/sio.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sio/sio_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sio/sio_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sio/sio_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sio/sio_puc.c#2 integrate .. //depot/projects/drm-merge/sys/dev/smbus/smbus.h#2 integrate .. //depot/projects/drm-merge/sys/dev/sn/if_sn.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sn/if_sn_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sn/if_sn_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sn/if_snvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/sn/ositech.h#1 branch .. //depot/projects/drm-merge/sys/dev/snc/dp83932.c#3 integrate .. //depot/projects/drm-merge/sys/dev/snc/dp83932var.h#2 integrate .. //depot/projects/drm-merge/sys/dev/snc/if_snc_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/snp/snp.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/isa/ad1816.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/isa/ess.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/isa/mss.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/isa/sb8.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/isa/sbc.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/als4000.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/cmi.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/csa.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/csapcm.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/csareg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/csavar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/es137x.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/es137x.h#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/ich.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/maestro3.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/via8233.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pci/via82c686.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/ac97.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/buffer.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/channel.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/dsp.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/fake.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/feeder_fmt.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/feeder_rate.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/mixer.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/sound.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/sbus/cs4231.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sound/usb/uaudio.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/usb/uaudio.h#2 integrate .. //depot/projects/drm-merge/sys/dev/sound/usb/uaudio_pcm.c#3 integrate .. //depot/projects/drm-merge/sys/dev/sr/if_sr.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sr/if_sr_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sr/if_sr_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/stg/tmc18c30.c#2 integrate .. //depot/projects/drm-merge/sys/dev/stg/tmc18c30_isa.c#2 integrate .. //depot/projects/drm-merge/sys/dev/stg/tmc18c30_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/stg/tmc18c30_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/stg/tmc18c30_subr.c#2 integrate .. //depot/projects/drm-merge/sys/dev/sym/sym_hipd.c#3 integrate .. //depot/projects/drm-merge/sys/dev/syscons/daemon/daemon_saver.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/scgfbrndr.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/scmouse.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/scvesactl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/scvgarndr.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/scvidctl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/scvtb.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/snake/snake_saver.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/star/star_saver.c#2 integrate .. //depot/projects/drm-merge/sys/dev/syscons/syscons.c#3 integrate .. //depot/projects/drm-merge/sys/dev/syscons/syscons.h#2 integrate .. //depot/projects/drm-merge/sys/dev/tga/tga_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/trm/trm.c#3 integrate .. //depot/projects/drm-merge/sys/dev/twa/tw_osl_cam.c#2 integrate .. //depot/projects/drm-merge/sys/dev/twa/tw_osl_share.h#2 integrate .. //depot/projects/drm-merge/sys/dev/twe/twe_compat.h#2 integrate .. //depot/projects/drm-merge/sys/dev/tx/if_tx.c#3 integrate .. //depot/projects/drm-merge/sys/dev/tx/if_txvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/txp/if_txp.c#3 integrate .. //depot/projects/drm-merge/sys/dev/txp/if_txpreg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/uart/uart_bus_ebus.c#2 integrate .. //depot/projects/drm-merge/sys/dev/uart/uart_cpu_alpha.c#2 integrate .. //depot/projects/drm-merge/sys/dev/uart/uart_cpu_sparc64.c#3 integrate .. //depot/projects/drm-merge/sys/dev/uart/uart_dev_z8530.c#2 integrate .. //depot/projects/drm-merge/sys/dev/uart/uart_kbd_sun.c#2 integrate .. //depot/projects/drm-merge/sys/dev/uart/uart_tty.c#2 integrate .. //depot/projects/drm-merge/sys/dev/usb/ehci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/ehci_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_aue.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_auereg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_axe.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_axereg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_cdce.c#2 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_cdcereg.h#2 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_cue.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_cuereg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_kue.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_kuereg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_rue.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_ruereg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_udav.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_udavreg.h#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/if_ural.c#1 branch .. //depot/projects/drm-merge/sys/dev/usb/if_uralreg.h#1 branch .. //depot/projects/drm-merge/sys/dev/usb/if_uralvar.h#1 branch .. //depot/projects/drm-merge/sys/dev/usb/ohci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/ohci_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/sl811hs.c#1 branch .. //depot/projects/drm-merge/sys/dev/usb/sl811hsreg.h#1 branch .. //depot/projects/drm-merge/sys/dev/usb/sl811hsvar.h#1 branch .. //depot/projects/drm-merge/sys/dev/usb/slhci_pccard.c#1 branch .. //depot/projects/drm-merge/sys/dev/usb/uhci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/uhub.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/ulpt.c#2 integrate .. //depot/projects/drm-merge/sys/dev/usb/umass.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/ums.c#2 integrate .. //depot/projects/drm-merge/sys/dev/usb/uplcom.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/usb.c#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/usbdevs#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/usbdi.h#3 integrate .. //depot/projects/drm-merge/sys/dev/usb/uvisor.c#2 integrate .. //depot/projects/drm-merge/sys/dev/utopia/utopia.c#3 integrate .. //depot/projects/drm-merge/sys/dev/vge/if_vge.c#3 integrate .. //depot/projects/drm-merge/sys/dev/vge/if_vgevar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/vkbd/vkbd.c#3 integrate .. //depot/projects/drm-merge/sys/dev/vx/if_vx.c#2 integrate .. //depot/projects/drm-merge/sys/dev/vx/if_vx_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/vx/if_vxvar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/wi/if_wi.c#3 integrate .. //depot/projects/drm-merge/sys/dev/wi/if_wi_pccard.c#3 integrate .. //depot/projects/drm-merge/sys/dev/wi/if_wi_pci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/wi/if_wivar.h#2 integrate .. //depot/projects/drm-merge/sys/dev/wl/if_wl.c#2 integrate .. //depot/projects/drm-merge/sys/dev/wl/if_wl_i82586.h#1 branch .. //depot/projects/drm-merge/sys/dev/xe/if_xe.c#2 integrate .. //depot/projects/drm-merge/sys/dev/xe/if_xe_pccard.c#2 integrate .. //depot/projects/drm-merge/sys/dev/xe/if_xevar.h#2 integrate .. //depot/projects/drm-merge/sys/fs/devfs/devfs.h#3 integrate .. //depot/projects/drm-merge/sys/fs/devfs/devfs_devs.c#3 integrate .. //depot/projects/drm-merge/sys/fs/devfs/devfs_int.h#1 branch .. //depot/projects/drm-merge/sys/fs/devfs/devfs_rule.c#3 integrate .. //depot/projects/drm-merge/sys/fs/devfs/devfs_vfsops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/devfs/devfs_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/fdescfs/fdesc_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/hpfs/hpfs_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/msdosfs/msdosfs_conv.c#3 integrate .. //depot/projects/drm-merge/sys/fs/msdosfs/msdosfs_lookup.c#3 integrate .. //depot/projects/drm-merge/sys/fs/ntfs/ntfs_subr.c#2 integrate .. //depot/projects/drm-merge/sys/fs/nullfs/null_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/nwfs/nwfs_subr.c#2 integrate .. //depot/projects/drm-merge/sys/fs/nwfs/nwfs_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/procfs/procfs_dbregs.c#2 integrate .. //depot/projects/drm-merge/sys/fs/procfs/procfs_fpregs.c#2 integrate .. //depot/projects/drm-merge/sys/fs/procfs/procfs_ioctl.c#2 integrate .. //depot/projects/drm-merge/sys/fs/procfs/procfs_map.c#2 integrate .. //depot/projects/drm-merge/sys/fs/procfs/procfs_regs.c#2 integrate .. //depot/projects/drm-merge/sys/fs/pseudofs/pseudofs_vncache.c#3 integrate .. //depot/projects/drm-merge/sys/fs/pseudofs/pseudofs_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/smbfs/smbfs_smb.c#2 integrate .. //depot/projects/drm-merge/sys/fs/smbfs/smbfs_subr.c#2 integrate .. //depot/projects/drm-merge/sys/fs/smbfs/smbfs_subr.h#2 integrate .. //depot/projects/drm-merge/sys/fs/smbfs/smbfs_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/udf/ecma167-udf.h#2 integrate .. //depot/projects/drm-merge/sys/fs/udf/udf_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/unionfs/union.h#2 integrate .. //depot/projects/drm-merge/sys/fs/unionfs/union_subr.c#2 integrate .. //depot/projects/drm-merge/sys/fs/unionfs/union_vfsops.c#3 integrate .. //depot/projects/drm-merge/sys/fs/unionfs/union_vnops.c#3 integrate .. //depot/projects/drm-merge/sys/geom/bde/g_bde_crypt.c#3 integrate .. //depot/projects/drm-merge/sys/geom/concat/g_concat.c#3 integrate .. //depot/projects/drm-merge/sys/geom/eli/g_eli.c#1 branch .. //depot/projects/drm-merge/sys/geom/eli/g_eli.h#1 branch .. //depot/projects/drm-merge/sys/geom/eli/g_eli_crypto.c#1 branch .. //depot/projects/drm-merge/sys/geom/eli/g_eli_ctl.c#1 branch .. //depot/projects/drm-merge/sys/geom/eli/g_eli_key.c#1 branch .. //depot/projects/drm-merge/sys/geom/eli/pkcs5v2.c#1 branch .. //depot/projects/drm-merge/sys/geom/eli/pkcs5v2.h#1 branch .. //depot/projects/drm-merge/sys/geom/gate/g_gate.c#2 integrate .. //depot/projects/drm-merge/sys/geom/gate/g_gate.h#2 integrate .. //depot/projects/drm-merge/sys/geom/geom_ctl.c#3 integrate .. //depot/projects/drm-merge/sys/geom/geom_event.c#2 integrate .. //depot/projects/drm-merge/sys/geom/geom_io.c#2 integrate .. //depot/projects/drm-merge/sys/geom/geom_kern.c#2 integrate .. //depot/projects/drm-merge/sys/geom/geom_mbr.c#3 integrate .. //depot/projects/drm-merge/sys/geom/geom_pc98.c#3 integrate .. //depot/projects/drm-merge/sys/geom/geom_pc98_enc.c#2 integrate .. //depot/projects/drm-merge/sys/geom/label/g_label.c#3 integrate .. //depot/projects/drm-merge/sys/geom/label/g_label.h#3 integrate .. //depot/projects/drm-merge/sys/geom/label/g_label_ext2fs.c#1 branch .. //depot/projects/drm-merge/sys/geom/label/g_label_reiserfs.c#1 branch .. //depot/projects/drm-merge/sys/geom/label/g_label_ufs.c#2 integrate .. //depot/projects/drm-merge/sys/geom/mirror/g_mirror.c#3 integrate .. //depot/projects/drm-merge/sys/geom/mirror/g_mirror.h#3 integrate .. //depot/projects/drm-merge/sys/geom/mirror/g_mirror_ctl.c#3 integrate .. //depot/projects/drm-merge/sys/geom/raid3/g_raid3.c#3 integrate .. //depot/projects/drm-merge/sys/geom/raid3/g_raid3.h#3 integrate .. //depot/projects/drm-merge/sys/geom/raid3/g_raid3_ctl.c#3 integrate .. //depot/projects/drm-merge/sys/geom/stripe/g_stripe.c#3 integrate .. //depot/projects/drm-merge/sys/geom/stripe/g_stripe.h#3 integrate .. //depot/projects/drm-merge/sys/geom/vinum/geom_vinum.c#3 integrate .. //depot/projects/drm-merge/sys/geom/vinum/geom_vinum_drive.c#3 integrate .. //depot/projects/drm-merge/sys/geom/vinum/geom_vinum_init.c#3 integrate .. //depot/projects/drm-merge/sys/geom/vinum/geom_vinum_plex.c#2 integrate .. //depot/projects/drm-merge/sys/geom/vinum/geom_vinum_rm.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 26 01:22:28 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E3D316A421; Fri, 26 Aug 2005 01:22:28 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 28F4A16A41F for ; Fri, 26 Aug 2005 01:22:28 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B01243D45 for ; Fri, 26 Aug 2005 01:22:27 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q1MRJ8003411 for ; Fri, 26 Aug 2005 01:22:27 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q1MR6s003408 for perforce@freebsd.org; Fri, 26 Aug 2005 01:22:27 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 01:22:27 GMT Message-Id: <200508260122.j7Q1MR6s003408@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82574 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 01:22:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=82574 Change 82574 by anholt@anholt_leguin on 2005/08/26 01:21:31 Initial merge of 2005-08-25 DRM vendor branch. Affected files ... .. //depot/projects/drm-merge/sys/dev/drm/ati_pcigart.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drmP.h#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_agpsupport.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_bufs.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_context.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_dma.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_drv.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_fops.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_ioctl.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_irq.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_lock.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_pci.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_pciids.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_scatter.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_sysctl.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_vm.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/i915_dma.c#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/i915_drm.h#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/i915_drv.c#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/i915_drv.h#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/i915_irq.c#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/i915_mem.c#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/mach64_dma.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/mach64_drv.c#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/mach64_drv.h#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/mach64_state.c#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_dma.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_drm.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_drv.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_drv.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_irq.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_state.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/mga_warp.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_cce.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_drm.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_drv.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_drv.h#5 integrate .. //depot/projects/drm-merge/sys/dev/drm/r128_state.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_cp.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_drm.h#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_drv.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_drv.h#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_irq.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/radeon_state.c#8 integrate .. //depot/projects/drm-merge/sys/dev/drm/savage_bci.c#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/savage_drv.c#4 integrate .. //depot/projects/drm-merge/sys/dev/drm/savage_drv.h#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/savage_state.c#3 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_drv.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/sis_mm.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/tdfx_drv.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/via_3d_reg.h#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_dma.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_drm.h#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_drv.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_drv.h#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_ds.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_ds.h#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_irq.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_map.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_mm.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_mm.h#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_verifier.c#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_verifier.h#1 branch .. //depot/projects/drm-merge/sys/dev/drm/via_video.c#1 branch Differences ... ==== //depot/projects/drm-merge/sys/dev/drm/ati_pcigart.c#5 (text+ko) ==== @@ -32,85 +32,72 @@ #include "dev/drm/drmP.h" -#if PAGE_SIZE == 8192 -# define ATI_PCIGART_TABLE_ORDER 2 -# define ATI_PCIGART_TABLE_PAGES (1 << 2) -#elif PAGE_SIZE == 4096 -# define ATI_PCIGART_TABLE_ORDER 3 -# define ATI_PCIGART_TABLE_PAGES (1 << 3) -#elif -# error - PAGE_SIZE not 8K or 4K -#endif +#define ATI_PCIGART_PAGE_SIZE 4096 /* PCI GART page size */ +#define ATI_MAX_PCIGART_PAGES 8192 /* 32 MB aperture, 4K pages */ +#define ATI_PCIGART_TABLE_SIZE 32768 -# define ATI_MAX_PCIGART_PAGES 8192 /* 32 MB aperture, 4K pages */ -# define ATI_PCIGART_PAGE_SIZE 4096 /* PCI GART page size */ - int drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr, - dma_addr_t *bus_addr) + dma_addr_t *bus_addr, int is_pcie) { - drm_sg_mem_t *entry = dev->sg; - unsigned long address = 0; unsigned long pages; - u32 *pci_gart=0, page_base, bus_address = 0; - int i, j, ret = 0; + u32 *pci_gart = 0, page_base; + int i, j; + + *addr = 0; + *bus_addr = 0; - if ( !entry ) { + if (dev->sg == NULL) { DRM_ERROR( "no scatter/gather memory!\n" ); - goto done; + return 0; } - address = (long)contigmalloc((1 << ATI_PCIGART_TABLE_ORDER) * PAGE_SIZE, - M_DRM, M_NOWAIT, 0ul, 0xfffffffful, PAGE_SIZE, 0); - if ( !address ) { - DRM_ERROR( "cannot allocate PCI GART page!\n" ); - goto done; + dev->sg->dmah = drm_pci_alloc(dev, ATI_PCIGART_TABLE_SIZE, 0, + 0xfffffffful); + if (dev->sg->dmah == NULL) { + DRM_ERROR("cannot allocate PCI GART table!\n"); + return 0; } - /* XXX: we need to busdma this */ - bus_address = vtophys( address ); + *addr = (long)dev->sg->dmah->vaddr; + *bus_addr = dev->sg->dmah->busaddr; + pci_gart = (u32 *)dev->sg->dmah->vaddr; - pci_gart = (u32 *)address; + pages = DRM_MIN(dev->sg->pages, ATI_MAX_PCIGART_PAGES); - pages = ( entry->pages <= ATI_MAX_PCIGART_PAGES ) - ? entry->pages : ATI_MAX_PCIGART_PAGES; + bzero(pci_gart, ATI_PCIGART_TABLE_SIZE); - bzero( pci_gart, ATI_MAX_PCIGART_PAGES * sizeof(u32) ); + KASSERT(PAGE_SIZE >= ATI_PCIGART_PAGE_SIZE, "page size too small"); for ( i = 0 ; i < pages ; i++ ) { - entry->busaddr[i] = vtophys( entry->handle + (i*PAGE_SIZE) ); - page_base = (u32) entry->busaddr[i]; + page_base = (u32) dev->sg->busaddr[i]; for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) { - *pci_gart++ = cpu_to_le32( page_base ); + if (is_pcie) { + *pci_gart = (cpu_to_le32(page_base)>>8) | 0xc; + DRM_DEBUG("PCIE: %d %08X %08X to %p\n", i, + page_base, (cpu_to_le32(page_base)>>8)|0xc, + pci_gart); + } else + *pci_gart = cpu_to_le32(page_base); + pci_gart++; page_base += ATI_PCIGART_PAGE_SIZE; } } DRM_MEMORYBARRIER(); - ret = 1; - -done: - *addr = address; - *bus_addr = bus_address; - return ret; + return 1; } int drm_ati_pcigart_cleanup(drm_device_t *dev, unsigned long addr, dma_addr_t bus_addr) { - drm_sg_mem_t *entry = dev->sg; - - /* we need to support large memory configurations */ - if ( !entry ) { + if (dev->sg == NULL) { DRM_ERROR( "no scatter/gather memory!\n" ); return 0; } -#if __FreeBSD_version > 500000 - /* Not available on 4.x */ - contigfree((void *)addr, (1 << ATI_PCIGART_TABLE_ORDER) * PAGE_SIZE, - M_DRM); -#endif + drm_pci_free(dev, dev->sg->dmah); + return 1; } ==== //depot/projects/drm-merge/sys/dev/drm/drm.h#5 (text+ko) ==== @@ -64,8 +64,16 @@ #define __user #endif +#ifdef __GNUC__ +# define DEPRECATED __attribute__ ((deprecated)) +#else +# define DEPRECATED +#endif + #if defined(__linux__) +#if defined(__KERNEL__) #include +#endif #include /* For _IO* macros */ #define DRM_IOCTL_NR(n) _IOC_NR(n) #define DRM_IOC_VOID _IOC_NONE @@ -73,7 +81,7 @@ #define DRM_IOC_WRITE _IOC_WRITE #define DRM_IOC_READWRITE _IOC_READ|_IOC_WRITE #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size) -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) #if defined(__FreeBSD__) && defined(IN_MODULE) /* Prevent name collision when including sys/ioccom.h */ #undef ioctl @@ -127,7 +135,11 @@ #define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT) #define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT)) +#if defined(__linux__) +typedef unsigned int drm_handle_t; +#else typedef unsigned long drm_handle_t; /**< To mapped regions */ +#endif typedef unsigned int drm_context_t; /**< GLXContext handle */ typedef unsigned int drm_drawable_t; typedef unsigned int drm_magic_t; /**< Magic for authentication */ @@ -439,7 +451,11 @@ */ typedef struct drm_buf_map { int count; /**< Length of the buffer list */ +#if defined(__cplusplus) + void __user *c_virtual; +#else void __user *virtual; /**< Mmap'd area in user-virtual */ +#endif drm_buf_pub_t __user *list; /**< Buffer information */ } drm_buf_map_t; ==== //depot/projects/drm-merge/sys/dev/drm/drmP.h#7 (text+ko) ==== @@ -216,6 +216,13 @@ #define IRQ_HANDLED /* nothing */ #define IRQ_NONE /* nothing */ +enum { + DRM_IS_NOT_AGP, + DRM_MIGHT_BE_AGP, + DRM_IS_AGP +}; +#define DRM_AGP_MEM struct agp_memory_info + #if defined(__FreeBSD__) #define DRM_DEVICE \ drm_device_t *dev = kdev->si_drv1 @@ -223,7 +230,8 @@ int flags, DRM_STRUCTPROC *p, DRMFILE filp #define PAGE_ALIGN(addr) round_page(addr) -#define DRM_SUSER(p) suser(p) +/* DRM_SUSER returns true if the user is superuser */ +#define DRM_SUSER(p) (suser(p) == 0) #define DRM_AGP_FIND_DEVICE() agp_find_device() #define DRM_MTRR_WC MDF_WRITECOMBINE #define jiffies ticks @@ -243,7 +251,8 @@ #define CDEV_MAJOR 34 #define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK) -#define DRM_SUSER(p) suser(p->p_ucred, &p->p_acflag) +/* DRM_SUSER returns true if the user is superuser */ +#define DRM_SUSER(p) (suser(p->p_ucred, &p->p_acflag) == 0) #define DRM_AGP_FIND_DEVICE() agp_find_device(0) #define DRM_MTRR_WC MTRR_TYPE_WC #define jiffies hardclock_ticks @@ -443,6 +452,7 @@ typedef struct drm_ioctl_desc { int (*func)(DRM_IOCTL_ARGS); int auth_needed; + int master; int root_only; } drm_ioctl_desc_t; @@ -491,14 +501,24 @@ int high_mark; /* High water mark */ } drm_freelist_t; +typedef struct drm_dma_handle { + void *vaddr; + bus_addr_t busaddr; +#if defined(__FreeBSD__) + bus_dma_tag_t tag; + bus_dmamap_t map; +#elif defined(__NetBSD__) + bus_dma_segment_t seg; +#endif +} drm_dma_handle_t; + typedef struct drm_buf_entry { int buf_size; int buf_count; drm_buf_t *buflist; int seg_count; + drm_dma_handle_t **seglist; int page_order; - vm_offset_t *seglist; - dma_addr_t *seglist_bus; drm_freelist_t freelist; } drm_buf_entry_t; @@ -507,6 +527,7 @@ struct drm_file { TAILQ_ENTRY(drm_file) link; int authenticated; + int master; int minor; pid_t pid; uid_t uid; @@ -571,6 +592,7 @@ void *virtual; int pages; dma_addr_t *busaddr; + drm_dma_handle_t *dmah; /* Handle to PCI memory for ATI PCIGART table */ } drm_sg_mem_t; typedef TAILQ_HEAD(drm_map_list, drm_local_map) drm_map_list_t; @@ -585,10 +607,10 @@ int mtrr; /* Boolean: MTRR used */ /* Private data */ int rid; /* PCI resource ID for bus_space */ - int kernel_owned; /* Boolean: 1 = initmapped, 0 = addmapped */ struct resource *bsr; bus_space_tag_t bst; bus_space_handle_t bsh; + drm_dma_handle_t *dmah; TAILQ_ENTRY(drm_local_map) link; } drm_local_map_t; @@ -600,25 +622,15 @@ int pid; } drm_vbl_sig_t; -/** - * DRM device functions structure - */ -struct drm_device { -#if defined(__NetBSD__) || defined(__OpenBSD__) - struct device device; /* softc is an extension of struct device */ -#endif - - /* Beginning of driver-config section */ - int (*preinit)(struct drm_device *, unsigned long flags); - int (*postinit)(struct drm_device *, unsigned long flags); - void (*prerelease)(struct drm_device *, void *filp); - void (*pretakedown)(struct drm_device *); - int (*postcleanup)(struct drm_device *); - int (*presetup)(struct drm_device *); - int (*postsetup)(struct drm_device *); - int (*open_helper)(struct drm_device *, drm_file_t *); - void (*free_filp_priv)(struct drm_device *, drm_file_t *); - void (*release)(struct drm_device *, void *filp); +struct drm_driver_info { + int (*load)(struct drm_device *, unsigned long flags); + int (*firstopen)(struct drm_device *); + int (*open)(struct drm_device *, drm_file_t *); + void (*preclose)(struct drm_device *, void *filp); + void (*postclose)(struct drm_device *, drm_file_t *); + void (*lastclose)(struct drm_device *); + int (*unload)(struct drm_device *); + void (*reclaim_buffers_locked)(struct drm_device *, void *filp); int (*dma_ioctl)(DRM_IOCTL_ARGS); void (*dma_ready)(struct drm_device *); int (*dma_quiescent)(struct drm_device *); @@ -637,17 +649,32 @@ void (*irq_handler)(DRM_IRQ_ARGS); int (*vblank_wait)(drm_device_t *dev, unsigned int *sequence); - drm_ioctl_desc_t *driver_ioctls; - int max_driver_ioctl; + drm_pci_id_list_t *id_entry; /* PCI ID, name, and chipset private */ + + /** + * Called by \c drm_device_is_agp. Typically used to determine if a + * card is really attached to AGP or not. + * + * \param dev DRM device handle + * + * \returns + * One of three values is returned depending on whether or not the + * card is absolutely \b not AGP (return of 0), absolutely \b is AGP + * (return of 1), or may or may not be AGP (return of 2). + */ + int (*device_is_agp) (struct drm_device * dev); + + drm_ioctl_desc_t *ioctls; + int max_ioctl; - int dev_priv_size; + int buf_priv_size; - int driver_major; - int driver_minor; - int driver_patchlevel; - const char *driver_name; /* Simple driver name */ - const char *driver_desc; /* Longer driver name */ - const char *driver_date; /* Date of last major changes. */ + int major; + int minor; + int patchlevel; + const char *name; /* Simple driver name */ + const char *desc; /* Longer driver name */ + const char *date; /* Date of last major changes. */ unsigned use_agp :1; unsigned require_agp :1; @@ -658,7 +685,18 @@ unsigned use_irq :1; unsigned use_vbl_irq :1; unsigned use_mtrr :1; - /* End of driver-config section */ +}; + +/** + * DRM device functions structure + */ +struct drm_device { +#if defined(__NetBSD__) || defined(__OpenBSD__) + struct device device; /* softc is an extension of struct device */ +#endif + + struct drm_driver_info driver; + drm_pci_id_list_t *id_entry; /* PCI ID, name, and chipset private */ char *unique; /* Unique identifier: e.g., busid */ int unique_len; /* Length of unique field */ @@ -708,7 +746,6 @@ struct resource *irqr; /* Resource for interrupt used by board */ #elif defined(__NetBSD__) || defined(__OpenBSD__) struct pci_attach_args pa; - pci_intr_handle_t ih; #endif void *irqh; /* Handle from bus_setup_intr */ @@ -735,6 +772,7 @@ drm_sg_mem_t *sg; /* Scatter gather memory */ atomic_t *ctx_bitmap; void *dev_private; + unsigned int agp_buffer_token; drm_local_map_t *agp_buffer_map; }; @@ -809,10 +847,14 @@ /* Buffer management support (drm_bufs.c) */ unsigned long drm_get_resource_start(drm_device_t *dev, unsigned int resource); unsigned long drm_get_resource_len(drm_device_t *dev, unsigned int resource); -int drm_initmap(drm_device_t *dev, unsigned long start, unsigned long len, - unsigned int resource, int type, int flags); -void drm_remove_map(drm_device_t *dev, drm_local_map_t *map); +void drm_rmmap(drm_device_t *dev, drm_local_map_t *map); int drm_order(unsigned long size); +int drm_addmap(drm_device_t * dev, unsigned long offset, unsigned long size, + drm_map_type_t type, drm_map_flags_t flags, + drm_local_map_t **map_ptr); +int drm_addbufs_pci(drm_device_t *dev, drm_buf_desc_t *request); +int drm_addbufs_sg(drm_device_t *dev, drm_buf_desc_t *request); +int drm_addbufs_agp(drm_device_t *dev, drm_buf_desc_t *request); /* DMA support (drm_dma.c) */ int drm_dma_setup(drm_device_t *dev); @@ -835,11 +877,18 @@ int drm_device_is_pcie(drm_device_t *dev); drm_agp_head_t *drm_agp_init(void); void drm_agp_uninit(void); -void drm_agp_do_release(void); +int drm_agp_acquire(drm_device_t *dev); +int drm_agp_release(drm_device_t *dev); +int drm_agp_info(drm_device_t * dev, drm_agp_info_t *info); +int drm_agp_enable(drm_device_t *dev, drm_agp_mode_t mode); void *drm_agp_allocate_memory(size_t pages, u32 type); int drm_agp_free_memory(void *handle); int drm_agp_bind_memory(void *handle, off_t start); int drm_agp_unbind_memory(void *handle); +#define drm_alloc_agp(dev, pages, type) drm_agp_allocate_memory(pages, type) +#define drm_free_agp(handle, pages) drm_agp_free_memory(handle) +#define drm_bind_agp(handle, start) drm_agp_bind_memory(handle, start) +#define drm_unbind_agp(handle) drm_agp_unbind_memory(handle) /* Scatter Gather Support (drm_scatter.c) */ void drm_sg_cleanup(drm_sg_mem_t *entry); @@ -852,7 +901,7 @@ /* ATI PCIGART support (ati_pcigart.c) */ int drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr, - dma_addr_t *bus_addr); + dma_addr_t *bus_addr, int is_pcie); int drm_ati_pcigart_cleanup(drm_device_t *dev, unsigned long addr, dma_addr_t bus_addr); @@ -891,9 +940,9 @@ int drm_authmagic(DRM_IOCTL_ARGS); /* Buffer management support (drm_bufs.c) */ -int drm_addmap(DRM_IOCTL_ARGS); -int drm_rmmap(DRM_IOCTL_ARGS); -int drm_addbufs(DRM_IOCTL_ARGS); +int drm_addmap_ioctl(DRM_IOCTL_ARGS); +int drm_rmmap_ioctl(DRM_IOCTL_ARGS); +int drm_addbufs_ioctl(DRM_IOCTL_ARGS); int drm_infobufs(DRM_IOCTL_ARGS); int drm_markbufs(DRM_IOCTL_ARGS); int drm_freebufs(DRM_IOCTL_ARGS); @@ -907,10 +956,10 @@ int drm_wait_vblank(DRM_IOCTL_ARGS); /* AGP/GART support (drm_agpsupport.c) */ -int drm_agp_acquire(DRM_IOCTL_ARGS); -int drm_agp_release(DRM_IOCTL_ARGS); -int drm_agp_enable(DRM_IOCTL_ARGS); -int drm_agp_info(DRM_IOCTL_ARGS); +int drm_agp_acquire_ioctl(DRM_IOCTL_ARGS); +int drm_agp_release_ioctl(DRM_IOCTL_ARGS); +int drm_agp_enable_ioctl(DRM_IOCTL_ARGS); +int drm_agp_info_ioctl(DRM_IOCTL_ARGS); int drm_agp_alloc(DRM_IOCTL_ARGS); int drm_agp_free(DRM_IOCTL_ARGS); int drm_agp_unbind(DRM_IOCTL_ARGS); @@ -921,10 +970,9 @@ int drm_sg_free(DRM_IOCTL_ARGS); /* consistent PCI memory functions (drm_pci.c) */ -void *drm_pci_alloc(drm_device_t *dev, size_t size, size_t align, - dma_addr_t maxaddr, dma_addr_t *busaddr); -void drm_pci_free(drm_device_t *dev, size_t size, void *vaddr, - dma_addr_t busaddr); +drm_dma_handle_t *drm_pci_alloc(drm_device_t *dev, size_t size, size_t align, + dma_addr_t maxaddr); +void drm_pci_free(drm_device_t *dev, drm_dma_handle_t *dmah); /* Inline replacements for DRM_IOREMAP macros */ static __inline__ void drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev) ==== //depot/projects/drm-merge/sys/dev/drm/drm_agpsupport.c#5 (text+ko) ==== @@ -39,9 +39,20 @@ #include #endif -int -drm_device_is_agp(drm_device_t *dev) +/* Returns 1 if AGP or 0 if not. */ +static int +drm_device_find_capability(drm_device_t *dev, int cap) { + int ret; + + if (dev->driver.device_is_agp != NULL) { + ret = (*dev->driver.device_is_agp)(dev); + + if (ret != DRM_MIGHT_BE_AGP) { + return ret == 2; + } + } + #ifdef __FreeBSD__ /* Code taken from agp.c. IWBNI that was a public interface. */ u_int32_t status; @@ -64,9 +75,9 @@ next = AGP_CAPID_GET_NEXT_PTR(capid); /* - * If this capability entry ID is 2, then we are done. + * If this capability entry ID is cap, then we are done. */ - if (AGP_CAPID_GET_CAP_ID(capid) == 2) + if (AGP_CAPID_GET_CAP_ID(capid) == cap) return 1; } @@ -77,75 +88,95 @@ #endif } -int drm_agp_info(DRM_IOCTL_ARGS) +int drm_device_is_agp(drm_device_t *dev) +{ + return (drm_device_find_capability(dev, PCIY_AGP)); +} + +int drm_device_is_pcie(drm_device_t *dev) +{ + return (drm_device_find_capability(dev, PCIY_EXPRESS)); +} + +int drm_agp_info(drm_device_t * dev, drm_agp_info_t *info) { - DRM_DEVICE; struct agp_info *kern; - drm_agp_info_t info; if (!dev->agp || !dev->agp->acquired) return EINVAL; kern = &dev->agp->info; agp_get_info(dev->agp->agpdev, kern); - info.agp_version_major = 1; - info.agp_version_minor = 0; - info.mode = kern->ai_mode; - info.aperture_base = kern->ai_aperture_base; - info.aperture_size = kern->ai_aperture_size; - info.memory_allowed = kern->ai_memory_allowed; - info.memory_used = kern->ai_memory_used; - info.id_vendor = kern->ai_devid & 0xffff; - info.id_device = kern->ai_devid >> 16; + info->agp_version_major = 1; + info->agp_version_minor = 0; + info->mode = kern->ai_mode; + info->aperture_base = kern->ai_aperture_base; + info->aperture_size = kern->ai_aperture_size; + info->memory_allowed = kern->ai_memory_allowed; + info->memory_used = kern->ai_memory_used; + info->id_vendor = kern->ai_devid & 0xffff; + info->id_device = kern->ai_devid >> 16; + + return 0; +} + +int drm_agp_info_ioctl(DRM_IOCTL_ARGS) +{ + int err; + drm_agp_info_t info; + DRM_DEVICE; + + err = drm_agp_info(dev, &info); + if (err != 0) + return err; *(drm_agp_info_t *) data = info; return 0; } -int drm_agp_acquire(DRM_IOCTL_ARGS) +int drm_agp_acquire_ioctl(DRM_IOCTL_ARGS) { DRM_DEVICE; - int retcode; + + return drm_agp_acquire(dev); +} + +int drm_agp_acquire(drm_device_t *dev) +{ + int retcode; if (!dev->agp || dev->agp->acquired) return EINVAL; + retcode = agp_acquire(dev->agp->agpdev); if (retcode) return retcode; + dev->agp->acquired = 1; return 0; } -int drm_agp_release(DRM_IOCTL_ARGS) +int drm_agp_release_ioctl(DRM_IOCTL_ARGS) { DRM_DEVICE; + return drm_agp_release(dev); +} + +int drm_agp_release(drm_device_t * dev) +{ if (!dev->agp || !dev->agp->acquired) return EINVAL; agp_release(dev->agp->agpdev); dev->agp->acquired = 0; return 0; - } -void drm_agp_do_release(void) +int drm_agp_enable(drm_device_t *dev, drm_agp_mode_t mode) { - device_t agpdev; - - agpdev = DRM_AGP_FIND_DEVICE(); - if (agpdev) - agp_release(agpdev); -} -int drm_agp_enable(DRM_IOCTL_ARGS) -{ - DRM_DEVICE; - drm_agp_mode_t mode; - if (!dev->agp || !dev->agp->acquired) return EINVAL; - - mode = *(drm_agp_mode_t *) data; dev->agp->mode = mode.mode; agp_enable(dev->agp->agpdev, mode.mode); @@ -154,6 +185,16 @@ return 0; } +int drm_agp_enable_ioctl(DRM_IOCTL_ARGS) +{ + drm_agp_mode_t mode; + DRM_DEVICE; + + mode = *(drm_agp_mode_t *) data; + + return drm_agp_enable(dev, mode); +} + int drm_agp_alloc(DRM_IOCTL_ARGS) { DRM_DEVICE; ==== //depot/projects/drm-merge/sys/dev/drm/drm_bufs.c#6 (text+ko) ==== @@ -92,99 +92,36 @@ return len; } -int drm_initmap(drm_device_t *dev, unsigned long start, unsigned long len, - unsigned int resource, int type, int flags) +int drm_addmap(drm_device_t * dev, unsigned long offset, unsigned long size, + drm_map_type_t type, drm_map_flags_t flags, drm_local_map_t **map_ptr) { drm_local_map_t *map; - struct resource *bsr; - - if (type != _DRM_REGISTERS && type != _DRM_FRAME_BUFFER) - return EINVAL; - if (len == 0) - return EINVAL; - map = malloc(sizeof(*map), M_DRM, M_ZERO | M_NOWAIT); - if (map == NULL) - return ENOMEM; - - map->rid = resource * 4 + 0x10; - bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &map->rid, - RF_ACTIVE | RF_SHAREABLE); - if (bsr == NULL) { - DRM_ERROR("Couldn't allocate %s resource\n", - ((type == _DRM_REGISTERS) ? "mmio" : "framebuffer")); - free(map, M_DRM); - return ENOMEM; - } - - map->kernel_owned = 1; - map->type = type; - map->flags = flags; - map->bsr = bsr; - map->bst = rman_get_bustag(bsr); - map->bsh = rman_get_bushandle(bsr); - map->offset = start; - map->size = len; - - if (type == _DRM_REGISTERS) - map->handle = rman_get_virtual(bsr); - - DRM_DEBUG("initmap %d,0x%x@0x%lx/0x%lx\n", map->type, map->flags, - map->offset, map->size); - - if (map->flags & _DRM_WRITE_COMBINING) { - int err; - - err = drm_mtrr_add(map->offset, map->size, DRM_MTRR_WC); - if (err == 0) - map->mtrr = 1; - } - - DRM_LOCK(); - TAILQ_INSERT_TAIL(&dev->maplist, map, link); - DRM_UNLOCK(); - - return 0; -} - -int drm_addmap(DRM_IOCTL_ARGS) -{ - DRM_DEVICE; - drm_map_t request; - drm_local_map_t *map; - dma_addr_t bus_addr; - - if (!(dev->flags & (FREAD|FWRITE))) - return DRM_ERR(EACCES); /* Require read/write */ - - DRM_COPY_FROM_USER_IOCTL( request, (drm_map_t *)data, sizeof(drm_map_t) ); - /* Only allow shared memory to be removable since we only keep enough * book keeping information about shared memory to allow for removal * when processes fork. */ - if ((request.flags & _DRM_REMOVABLE) && request.type != _DRM_SHM) + if ((flags & _DRM_REMOVABLE) && type != _DRM_SHM) return EINVAL; - if ((request.offset & PAGE_MASK) || (request.size & PAGE_MASK)) + if ((offset & PAGE_MASK) || (size & PAGE_MASK)) return EINVAL; - if (request.offset + request.size < request.offset) + if (offset + size < offset) return EINVAL; - DRM_DEBUG("offset = 0x%08lx, size = 0x%08lx, type = %d\n", - request.offset, request.size, request.type); + DRM_DEBUG("offset = 0x%08lx, size = 0x%08lx, type = %d\n", offset, + size, type); /* Check if this is just another version of a kernel-allocated map, and * just hand that back if so. */ - if (request.type == _DRM_REGISTERS || request.type == _DRM_FRAME_BUFFER) - { + if (type == _DRM_REGISTERS || type == _DRM_FRAME_BUFFER || + type == _DRM_SHM) { DRM_LOCK(); TAILQ_FOREACH(map, &dev->maplist, link) { - if (map->kernel_owned && map->type == request.type && - map->offset == request.offset) { - /* XXX: this size setting is questionable. */ - map->size = request.size; - DRM_DEBUG("Found kernel map %d\n", request.type); + if (map->type == type && + (map->offset == offset || map->type == _DRM_SHM)) { + map->size = size; + DRM_DEBUG("Found kernel map %d\n", type); goto done; } } @@ -198,14 +135,14 @@ if ( !map ) return DRM_ERR(ENOMEM); - map->offset = request.offset; - map->size = request.size; - map->type = request.type; - map->flags = request.flags; + map->offset = offset; + map->size = size; + map->type = type; + map->flags = flags; switch ( map->type ) { case _DRM_REGISTERS: - drm_ioremap(dev, map); + map->handle = drm_ioremap(dev, map); if (!(map->flags & _DRM_WRITE_COMBINING)) break; /* FALLTHROUGH */ @@ -236,8 +173,25 @@ } break; case _DRM_AGP: - map->offset += dev->agp->base; - map->mtrr = dev->agp->mtrr; /* for getmap */ + { + drm_agp_mem_t *entry; + int valid = 0; + + map->offset += dev->agp->base; + map->mtrr = dev->agp->mtrr; /* for getmap */ + for (entry = dev->agp->memory; entry; + entry = entry->next) + if ((map->offset >= entry->bound) && + (map->offset + map->size <= + entry->bound + entry->pages * PAGE_SIZE)) { + valid = 1; + break; + } + if (!valid) { + free(map, M_DRM); + return DRM_ERR(EACCES); + } + } break; case _DRM_SCATTER_GATHER: if (!dev->sg) { @@ -247,13 +201,14 @@ map->offset = map->offset + dev->sg->handle; break; case _DRM_CONSISTENT: - map->handle = drm_pci_alloc(dev, map->size, map->size, - 0xfffffffful, &bus_addr); - if (map->handle == NULL) { + map->dmah = drm_pci_alloc(dev, map->size, map->size, + 0xfffffffful); + if (map->dmah == NULL) { free(map, M_DRM); - return ENOMEM; + return DRM_ERR(ENOMEM); } - map->offset = (unsigned long)bus_addr; + map->handle = map->dmah->vaddr; + map->offset = map->dmah->busaddr; break; default: free(map, M_DRM); @@ -265,26 +220,52 @@ done: /* Jumped to, with lock held, when a kernel map is found. */ + DRM_UNLOCK(); + + DRM_DEBUG("Added map %d 0x%lx/0x%lx\n", map->type, map->offset, + map->size); + + *map_ptr = map; + + return 0; +} + +int drm_addmap_ioctl(DRM_IOCTL_ARGS) +{ + drm_map_t request; + drm_local_map_t *map; + int err; + DRM_DEVICE; + + if (!(dev->flags & (FREAD|FWRITE))) + return DRM_ERR(EACCES); /* Require read/write */ + + DRM_COPY_FROM_USER_IOCTL(request, (drm_map_t *)data, sizeof(drm_map_t)); + + if (!DRM_SUSER(p) && request.type != _DRM_AGP) + return DRM_ERR(EACCES); + + err = drm_addmap(dev, request.offset, request.size, request.type, + request.flags, &map); + if (err != 0) + return err; + request.offset = map->offset; request.size = map->size; request.type = map->type; request.flags = map->flags; request.mtrr = map->mtrr; request.handle = map->handle; - DRM_UNLOCK(); - DRM_DEBUG("Added map %d 0x%lx/0x%lx\n", request.type, request.offset, request.size); - - if ( request.type != _DRM_SHM ) { + if (request.type != _DRM_SHM) { request.handle = (void *)request.offset; } - - DRM_COPY_TO_USER_IOCTL( (drm_map_t *)data, request, sizeof(drm_map_t) ); + DRM_COPY_TO_USER_IOCTL((drm_map_t *)data, request, sizeof(drm_map_t)); return 0; } -void drm_remove_map(drm_device_t *dev, drm_local_map_t *map) +void drm_rmmap(drm_device_t *dev, drm_local_map_t *map) { DRM_SPINLOCK_ASSERT(&dev->dev_lock); @@ -311,7 +292,7 @@ case _DRM_SCATTER_GATHER: break; case _DRM_CONSISTENT: - drm_pci_free(dev, map->size, map->handle, map->offset); + drm_pci_free(dev, map->dmah); break; } @@ -327,7 +308,7 @@ * isn't in use. */ -int drm_rmmap(DRM_IOCTL_ARGS) +int drm_rmmap_ioctl(DRM_IOCTL_ARGS) { DRM_DEVICE; drm_local_map_t *map; @@ -348,7 +329,7 @@ return DRM_ERR(EINVAL); } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 26 01:34:43 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E2E416A433; Fri, 26 Aug 2005 01:34:43 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 18EC216A42F for ; Fri, 26 Aug 2005 01:34:43 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CADF843D46 for ; Fri, 26 Aug 2005 01:34:42 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q1YgHf003822 for ; Fri, 26 Aug 2005 01:34:42 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q1YgCs003819 for perforce@freebsd.org; Fri, 26 Aug 2005 01:34:42 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 01:34:42 GMT Message-Id: <200508260134.j7Q1YgCs003819@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82575 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 01:34:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=82575 Change 82575 by anholt@anholt_leguin on 2005/08/26 01:34:00 Add $FreeBSD$ to new files. Affected files ... .. //depot/projects/drm-merge/sys/dev/drm/via_3d_reg.h#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_dma.c#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_drm.h#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_drv.c#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_drv.h#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_ds.c#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_ds.h#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_irq.c#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_map.c#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_mm.c#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_mm.h#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_verifier.c#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_verifier.h#2 edit .. //depot/projects/drm-merge/sys/dev/drm/via_video.c#2 edit Differences ... ==== //depot/projects/drm-merge/sys/dev/drm/via_3d_reg.h#2 (text+ko) ==== @@ -20,6 +20,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #ifndef VIA_3D_REG_H ==== //depot/projects/drm-merge/sys/dev/drm/via_dma.c#2 (text+ko) ==== @@ -32,6 +32,8 @@ * Tungsten Graphics, * Erdi Chen, * Thomas Hellstrom. + * + * $FreeBSD$ */ #include "drmP.h" ==== //depot/projects/drm-merge/sys/dev/drm/via_drm.h#2 (text+ko) ==== @@ -20,6 +20,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #ifndef _VIA_DRM_H_ #define _VIA_DRM_H_ ==== //depot/projects/drm-merge/sys/dev/drm/via_drv.c#2 (text+ko) ==== @@ -26,6 +26,7 @@ * Authors: * Eric Anholt * + * $FreeBSD$ */ #include "drmP.h" ==== //depot/projects/drm-merge/sys/dev/drm/via_drv.h#2 (text+ko) ==== @@ -20,6 +20,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #ifndef _VIA_DRV_H_ #define _VIA_DRV_H_ ==== //depot/projects/drm-merge/sys/dev/drm/via_ds.c#2 (text+ko) ==== @@ -21,6 +21,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #include "drmP.h" ==== //depot/projects/drm-merge/sys/dev/drm/via_ds.h#2 (text+ko) ==== @@ -22,6 +22,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #ifndef _via_ds_h_ #define _via_ds_h_ ==== //depot/projects/drm-merge/sys/dev/drm/via_irq.c#2 (text+ko) ==== @@ -33,6 +33,8 @@ * This code provides standard DRM access to the Via Unichrome / Pro Vertical blank * interrupt, as well as an infrastructure to handle other interrupts of the chip. * The refresh rate is also calculated for video playback sync purposes. + * + * $FreeBSD$ */ #include "drmP.h" ==== //depot/projects/drm-merge/sys/dev/drm/via_map.c#2 (text+ko) ==== @@ -20,6 +20,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #include "drmP.h" #include "via_drm.h" ==== //depot/projects/drm-merge/sys/dev/drm/via_mm.c#2 (text+ko) ==== @@ -20,6 +20,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #include "drmP.h" #include "via_drm.h" ==== //depot/projects/drm-merge/sys/dev/drm/via_mm.h#2 (text+ko) ==== @@ -20,6 +20,8 @@ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. + * + * $FreeBSD$ */ #ifndef _via_drm_mm_h_ #define _via_drm_mm_h_ ==== //depot/projects/drm-merge/sys/dev/drm/via_verifier.c#2 (text+ko) ==== @@ -26,6 +26,8 @@ * * Don't run this code directly on an AGP buffer. Due to cache problems it will * be very slow. + * + * $FreeBSD$ */ ==== //depot/projects/drm-merge/sys/dev/drm/via_verifier.h#2 (text+ko) ==== @@ -21,6 +21,8 @@ * DEALINGS IN THE SOFTWARE. * * Author: Thomas Hellström 2004. + * + * $FreeBSD$ */ #ifndef _VIA_VERIFIER_H_ ==== //depot/projects/drm-merge/sys/dev/drm/via_video.c#2 (text+ko) ==== @@ -23,6 +23,8 @@ * Author: Thomas Hellstrom 2005. * * Video and XvMC related functions. + * + * $FreeBSD$ */ #include "drmP.h" From owner-p4-projects@FreeBSD.ORG Fri Aug 26 01:49:02 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B0D2416A421; Fri, 26 Aug 2005 01:49:01 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4CAB816A41F for ; Fri, 26 Aug 2005 01:49:01 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E5F2E43D49 for ; Fri, 26 Aug 2005 01:49:00 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q1n0BO004377 for ; Fri, 26 Aug 2005 01:49:00 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q1n0W8004371 for perforce@freebsd.org; Fri, 26 Aug 2005 01:49:00 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 01:49:00 GMT Message-Id: <200508260149.j7Q1n0W8004371@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82577 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 01:49:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=82577 Change 82577 by anholt@anholt_leguin on 2005/08/26 01:48:31 Fix mismerges to diff-reduce to DRM CVS. Affected files ... .. //depot/projects/drm-merge/sys/dev/drm/radeon_state.c#9 edit Differences ... ==== //depot/projects/drm-merge/sys/dev/drm/radeon_state.c#9 (text+ko) ==== @@ -1567,14 +1567,6 @@ image->x, image->y, image->width, image->height); /* Make a copy of some parameters in case we have to - DRM_DEBUG("tex=%dx%d blit=%d\n", tex_width, tex->height, blit_width); - - do { - DRM_DEBUG("tex: ofs=0x%x p=%d f=%d x=%hd y=%hd w=%hd h=%hd\n", - tex->offset >> 10, tex->pitch, tex->format, - image->x, image->y, image->width, image->height); - - /* Make a copy of some parameters in case we have to * update them for a multi-pass texture blit. */ height = image->height; @@ -2092,7 +2084,7 @@ DRM_DEVICE; drm_radeon_private_t *dev_priv = dev->dev_private; drm_file_t *filp_priv; - drm_radeon_sarea_t *sarea_priv; + drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; drm_device_dma_t *dma = dev->dma; drm_buf_t *buf; drm_radeon_vertex_t vertex; @@ -2104,7 +2096,6 @@ DRM_ERROR("%s called with no initialization\n", __FUNCTION__); return DRM_ERR(EINVAL); } - sarea_priv = dev_priv->sarea_priv; DRM_GET_PRIV_WITH_RETURN(filp_priv, filp); @@ -2181,7 +2172,7 @@ DRM_DEVICE; drm_radeon_private_t *dev_priv = dev->dev_private; drm_file_t *filp_priv; - drm_radeon_sarea_t *sarea_priv; + drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; drm_device_dma_t *dma = dev->dma; drm_buf_t *buf; drm_radeon_indices_t elts; @@ -2194,7 +2185,6 @@ DRM_ERROR("%s called with no initialization\n", __FUNCTION__); return DRM_ERR(EINVAL); } - sarea_priv = dev_priv->sarea_priv; DRM_GET_PRIV_WITH_RETURN(filp_priv, filp); @@ -2410,7 +2400,7 @@ DRM_DEVICE; drm_radeon_private_t *dev_priv = dev->dev_private; drm_file_t *filp_priv; - drm_radeon_sarea_t *sarea_priv; + drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; drm_device_dma_t *dma = dev->dma; drm_buf_t *buf; drm_radeon_vertex2_t vertex; @@ -2423,7 +2413,6 @@ DRM_ERROR("%s called with no initialization\n", __FUNCTION__); return DRM_ERR(EINVAL); } - sarea_priv = dev_priv->sarea_priv; DRM_GET_PRIV_WITH_RETURN(filp_priv, filp); @@ -3054,25 +3043,6 @@ radeon_priv->radeon_fb_delta = dev_priv->fb_location; else radeon_priv->radeon_fb_delta = 0; -int radeon_driver_open_helper(drm_device_t * dev, drm_file_t * filp_priv) -{ - drm_radeon_private_t *dev_priv = dev->dev_private; - struct drm_radeon_driver_file_fields *radeon_priv; - - DRM_DEBUG("\n"); - radeon_priv = - (struct drm_radeon_driver_file_fields *) - drm_alloc(sizeof(*radeon_priv), DRM_MEM_FILES); - - if (!radeon_priv) - return -ENOMEM; - - filp_priv->driver_priv = radeon_priv; - - if (dev_priv) - radeon_priv->radeon_fb_delta = dev_priv->fb_location; - else - radeon_priv->radeon_fb_delta = 0; return 0; } From owner-p4-projects@FreeBSD.ORG Fri Aug 26 03:19:55 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A4F2C16A421; Fri, 26 Aug 2005 03:19:54 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4C24816A41F for ; Fri, 26 Aug 2005 03:19:54 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1265243D45 for ; Fri, 26 Aug 2005 03:19:54 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q3JrDa007939 for ; Fri, 26 Aug 2005 03:19:53 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q3JrXm007936 for perforce@freebsd.org; Fri, 26 Aug 2005 03:19:53 GMT (envelope-from soc-cjones@freebsd.org) Date: Fri, 26 Aug 2005 03:19:53 GMT Message-Id: <200508260319.j7Q3JrXm007936@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82585 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 03:19:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=82585 Change 82585 by soc-cjones@soc-cjones_ishtar on 2005/08/26 03:19:48 Duh. So simple. Of course you need to initialize the pointer to the vinumconf in the new sd. Gah. So now it works. Affected files ... .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#13 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#13 (text+ko) ==== @@ -225,7 +225,9 @@ strncpy(newsd->name, cursd->name, GV_MAXSDNAME); strncpy(newsd->drive, destination, GV_MAXDRIVENAME); newsd->state = GV_SD_STALE; - printf("gv_move_sd: initialized newsd; name='%s', drive='%s', size=%lld, plex_offset=%lld\n", newsd->name, newsd->drive, newsd->size, newsd->plex_offset); + newsd->vinumconf = cursd->vinumconf; + printf("gv_move_sd: initialized newsd; name='%s', drive='%s', size=%lld, plex_offset=%lld\n", + newsd->name, newsd->drive, newsd->size, newsd->plex_offset); err = gv_sd_to_drive(sc, d, newsd, errstr, ERRBUFSIZ); printf("gv_move_sd: allocated newsd to drive, drive_offset=%lld\n", newsd->drive_offset); if (err) { /* XXX not enough free space? */ @@ -240,7 +242,8 @@ g_detach(cp); printf("gv_move_sd: detached consumer\n"); LIST_FOREACH_SAFE(s, &p->subdisks, in_plex, s2) { - printf("gv_move_sd: traversing in_plex list (s: %p, s->name: '%s', s2: %p)\n", s, s->name, s2); + printf("gv_move_sd: traversing in_plex list (s: %p, s->name: '%s', s2: %p)\n", + s, s->name, s2); printf("gv_move_sd: for sd '%s', consumer = %p\n", s->name, s->consumer); if (s == cursd) { printf("\thit!\n"); @@ -272,7 +275,7 @@ } else { printf("gv_move_sd: set newsd->consumer to %p\n", newsd->consumer); } - newsd->consumer = cp; + /* newsd->consumer = cp; */ printf("gv_move_sd: before LIST_INSERT_HEAD\n"); LIST_INSERT_HEAD(&sc->subdisks, newsd, sd); printf("gv_move_sd: inserted newsd into subdisks list\n"); From owner-p4-projects@FreeBSD.ORG Fri Aug 26 04:30:22 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3F57C16A421; Fri, 26 Aug 2005 04:30:22 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 18F3016A41F for ; Fri, 26 Aug 2005 04:30:22 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DDA6743D46 for ; Fri, 26 Aug 2005 04:30:21 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q4ULHq011269 for ; Fri, 26 Aug 2005 04:30:21 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q4UL8Q011266 for perforce@freebsd.org; Fri, 26 Aug 2005 04:30:21 GMT (envelope-from soc-cjones@freebsd.org) Date: Fri, 26 Aug 2005 04:30:21 GMT Message-Id: <200508260430.j7Q4UL8Q011266@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82592 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 04:30:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=82592 Change 82592 by soc-cjones@soc-cjones_ishtar on 2005/08/26 04:29:29 Copy plex name. Affected files ... .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#14 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#14 (text+ko) ==== @@ -224,6 +224,7 @@ newsd->drive_offset = -1; strncpy(newsd->name, cursd->name, GV_MAXSDNAME); strncpy(newsd->drive, destination, GV_MAXDRIVENAME); + strncpy(newsd->plex, cursd->plex, GV_MAXPLEXNAME); newsd->state = GV_SD_STALE; newsd->vinumconf = cursd->vinumconf; printf("gv_move_sd: initialized newsd; name='%s', drive='%s', size=%lld, plex_offset=%lld\n", From owner-p4-projects@FreeBSD.ORG Fri Aug 26 07:37:10 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CF56116A421; Fri, 26 Aug 2005 07:37:09 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9BD9C16A41F for ; Fri, 26 Aug 2005 07:37:09 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 340E443D53 for ; Fri, 26 Aug 2005 07:37:09 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q7b8Rd024951 for ; Fri, 26 Aug 2005 07:37:09 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q7b8QI024948 for perforce@freebsd.org; Fri, 26 Aug 2005 07:37:08 GMT (envelope-from soc-cjones@freebsd.org) Date: Fri, 26 Aug 2005 07:37:08 GMT Message-Id: <200508260737.j7Q7b8QI024948@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82597 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 07:37:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=82597 Change 82597 by soc-cjones@soc-cjones_ishtar on 2005/08/26 07:36:18 Fix plex size increase on move by decrementing size when old sd destroyed. Affected files ... .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#15 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#15 (text+ko) ==== @@ -249,6 +249,7 @@ if (s == cursd) { printf("\thit!\n"); p->sdcount--; + p->size -= s->size; err = gv_rm_sd(sc, req, s, 0); printf("gv_move_sd: removed old subdisk\n"); if (err) { From owner-p4-projects@FreeBSD.ORG Fri Aug 26 08:28:15 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B5AF216A421; Fri, 26 Aug 2005 08:28:14 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8205416A41F for ; Fri, 26 Aug 2005 08:28:14 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3B38743D48 for ; Fri, 26 Aug 2005 08:28:14 +0000 (GMT) (envelope-from soc-cjones@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7Q8SERv026902 for ; Fri, 26 Aug 2005 08:28:14 GMT (envelope-from soc-cjones@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7Q8SDNa026899 for perforce@freebsd.org; Fri, 26 Aug 2005 08:28:13 GMT (envelope-from soc-cjones@freebsd.org) Date: Fri, 26 Aug 2005 08:28:13 GMT Message-Id: <200508260828.j7Q8SDNa026899@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-cjones@freebsd.org using -f From: soc-cjones To: Perforce Change Reviews Cc: Subject: PERFORCE change 82600 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 08:28:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=82600 Change 82600 by soc-cjones@soc-cjones_ides on 2005/08/26 08:27:26 Add supported-by text, license manpage, other manpage cleanups. Affected files ... .. //depot/projects/soc2005/gvinum/src/sbin/gvinum/gvinum.8#4 edit .. //depot/projects/soc2005/gvinum/src/sbin/gvinum/gvinum.c#7 edit .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#16 edit .. //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_rename.c#8 edit Differences ... ==== //depot/projects/soc2005/gvinum/src/sbin/gvinum/gvinum.8#4 (text+ko) ==== @@ -1,3 +1,31 @@ +.\" Copyright (c) 2005 Chris Jones +.\" All rights reserved. +.\" +.\" This software was developed for the FreeBSD Project by Chris Jones +.\" thanks to the support of Google's Summer of Code program and +.\" mentoring by Lukas Ertl. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" .Dd July 24, 2005 .Dt GVINUM 8 .Os @@ -149,12 +177,13 @@ .Nm vi . .El .Sh SEE ALSO -.Xr gvinum 4 , +.Xr vinum 4 , .Xr vinum 8 , .Xr geom 8 .Pp .Sh AUTHORS .An Lukas Ertl Aq le@freebsd.org +.An Chris Jones Aq soc-cjones@freebsd.org .Sh HISTORY The .Nm @@ -162,9 +191,21 @@ .Fx 5.3 . The .Nm vinum utility, on which -.Nm +.Nm is based, was written by Greg Lehey. +.Pp +.Nm +was written by Lukas Ertl. The move and rename commands and +documentation were added by Chris Jones through the 2005 Google Summer +of Code program. .Sh BUGS +.Xr gvinum 8 does not rename devices in +.Pa /dev/gvinum +until reloaded. +.Pp +Moving subdisks that are not part of a mirrored or RAID-5 volume will +destroy data. +.Pp .Xr gvinum 8 does not yet fully implement all functions found in .Xr vinum 4 . Specifically, the following commands from .Xr vinum 4 are not supported: ==== //depot/projects/soc2005/gvinum/src/sbin/gvinum/gvinum.c#7 (text+ko) ==== @@ -1,7 +1,11 @@ /* - * Copyright (c) 2004 Lukas Ertl + * Copyright (c) 2004 Lukas Ertl, 2005 Chris Jones * All rights reserved. * + * Portions of this software were developed for the FreeBSD Project + * by Chris Jones thanks to the support of Google's Summer of Code + * program and mentoring by Lukas Ertl. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_move.c#16 (text+ko) ==== @@ -2,6 +2,10 @@ * Copyright (c) 2005 Chris Jones * All rights reserved. * + * This software was developed for the FreeBSD Project by Chris Jones + * thanks to the support of Google's Summer of Code program and + * mentoring by Lukas Ertl. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: ==== //depot/projects/soc2005/gvinum/src/sys/geom/vinum/geom_vinum_rename.c#8 (text+ko) ==== @@ -1,6 +1,10 @@ /*- * Copyright (c) 2005 Chris Jones * All rights reserved. + * + * This software was developed for the FreeBSD Project by Chris Jones + * thanks to the support of Google's Summer of Code program and + * mentoring by Lukas Ertl. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From owner-p4-projects@FreeBSD.ORG Fri Aug 26 11:47:56 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0906816A423; Fri, 26 Aug 2005 11:47:56 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C0E3716A41F for ; Fri, 26 Aug 2005 11:47:55 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8066043D49 for ; Fri, 26 Aug 2005 11:47:55 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QBltYf040583 for ; Fri, 26 Aug 2005 11:47:55 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QBltQR040580 for perforce@freebsd.org; Fri, 26 Aug 2005 11:47:55 GMT (envelope-from soc-tyler@freebsd.org) Date: Fri, 26 Aug 2005 11:47:55 GMT Message-Id: <200508261147.j7QBltQR040580@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 82610 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 11:47:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=82610 Change 82610 by soc-tyler@soc-tyler_launchd on 2005/08/26 11:47:44 Put some of the Darwin-based code back in under the guise of backwards compatibility. Since we're going to use the non-XML plist file format in the future for as much backwards compatibility with launchd/OS X Oh, and fix some typos :D Affected files ... .. //depot/projects/soc2005/launchd/launchctl/launchctl.c#9 edit .. //depot/projects/soc2005/launchd/launchd.c#15 edit .. //depot/projects/soc2005/launchd/liblaunch.c#13 edit Differences ... ==== //depot/projects/soc2005/launchd/launchctl/launchctl.c#9 (text+ko) ==== @@ -58,6 +58,10 @@ * the XML parsing functions */ +#ifdef _BUILD_DARWIN_ +#include +#endif + #include #include #include @@ -72,8 +76,12 @@ #include #include #include -/* include libutil.h for basic property parsing (see: xx.launch) */ + +#ifndef _BUILD_DARWIN_ +/* include libutil.h for basic property parsing on FreeBSD */ #include +#endif + #include #include #include @@ -84,9 +92,11 @@ #include #include -/* Mac OS specific - * #include - * +// Mac OS specific +#ifdef _BUILD_DARWIN_ +#include +#endif +/* * This includes the Zeroconf headers, so launchctl(1) can start the * 'advertising' end of Zeroconf for daemons (ssh, xinetd, etc) */ @@ -100,17 +110,25 @@ static void distill_config_file(launch_data_t); static void sock_dict_cb(launch_data_t what, const char *key, void *context); static void sock_dict_edit_entry(launch_data_t tmp, const char *key, launch_data_t fdarray, launch_data_t thejob); -static launch_data_t read_conf_file(const char *, bool, bool); -//static launch_data_t CF2launch_data(const void *); -//static launch_data_t read_plist_file(const char *file, bool editondisk, bool load); -//static const void *CreateMyPropertyListFromFile(const char *); -//static void WriteMyPropertyListToFile(CFPropertyListRef, const char *); static void readpath(const char *, launch_data_t, launch_data_t, bool editondisk, bool load); static int _fd(int); static int demux_cmd(int argc, char *const argv[]); -//static launch_data_t do_rendezvous_magic(const struct addrinfo *res, const char *serv); static void submit_job_pass(launch_data_t jobs); +// Mac OS X/Darwin related functions (for backwards compat.) +#ifdef _BUILD_DARWIN_ +static launch_data_t CF2launch_data(const void *); +static launch_data_t read_plist_file(const char *file, bool editondisk, bool load); +static const void *CreateMyPropertyListFromFile(const char *); +static void WriteMyPropertyListToFile(CFPropertyListRef, const char *); +static launch_data_t do_rendezvous_magic(const struct addrinfo *res, const char *serv); +#endif + +// FreeBSD related functions (for forwards compat? :P +#ifndef _BUILD_DARWIN +static launch_data_t read_conf_file(const char *, bool, bool); +#endif + static int load_and_unload_cmd(int argc, char *const argv[]); //static int reload_cmd(int argc, char *const argv[]); static int start_and_stop_cmd(int argc, char *const argv[]); @@ -334,6 +352,7 @@ launch_data_free(resp); } +#ifndef _BUILD_DARWIN static launch_data_t read_conf_file(const char *file, bool editondisk, bool load) { /* fill this with an array of launch_data_t structs */ launch_data_t retval = NULL; @@ -358,10 +377,10 @@ close(fd); return retval; } +#endif -/* -static launch_data_t read_plist_file(const char *file, bool editondisk, bool load) -{ +#ifdef _BUILD_DARWIN_ +static launch_data_t read_plist_file(const char *file, bool editondisk, bool load) { CFPropertyListRef plist = CreateMyPropertyListFromFile(file); launch_data_t r = NULL; @@ -384,7 +403,7 @@ return r; } -*/ +#endif static void delay_to_second_pass2(launch_data_t o, const char *key, void *context) { @@ -409,8 +428,7 @@ } } -static bool delay_to_second_pass(launch_data_t o) -{ +static bool delay_to_second_pass(launch_data_t o) { bool res = false; launch_data_t socks = launch_data_dict_lookup(o, LAUNCH_JOBKEY_SOCKETS); @@ -706,7 +724,7 @@ } } -/* +#ifdef _BUILD_DARWIN_ static launch_data_t do_rendezvous_magic(const struct addrinfo *res, const char *serv) { struct stat sb; @@ -849,7 +867,7 @@ } return r; } -*/ +#endif static int help_cmd(int argc, char *const argv[]) { @@ -873,7 +891,7 @@ } static int exit_cmd(int argc, char *const argv[]) { - exit(0); + exit(EXIT_SUCCESS); return 0; // god help us if we get here ;) } ==== //depot/projects/soc2005/launchd/launchd.c#15 (text+ko) ==== @@ -29,7 +29,6 @@ */ #ifdef _BUILD_DARWIN_ - #include #include #include @@ -212,9 +211,8 @@ static kq_callback kqmach_callback = mach_callback; #endif -// workaround for an OpenFirmware and Xnu bug, only on Darwin though ;) +// workaround for an OpenFirmware and Darwin kernel bug static void workaround3048875(int argc, char *argv[]); - static pthread_t mach_server_loop_thread; mach_port_t launchd_bootstrap_port = MACH_PORT_NULL; blocked_signals = 0; @@ -355,7 +353,7 @@ exit(EXIT_SUCCESS); } } - // XXX: error: delays gdb step-through + switch (kevent(mainkq, NULL, 0, &kev, 1, timeoutp)) { case -1: syslog(LOG_DEBUG, "kevent(): %m"); @@ -364,7 +362,9 @@ (*((kq_callback *)kev.udata))(kev.udata, &kev); break; case 0: - // XXX: timeoutp == 0, launchd(8) exits normally + /* we exit here if and once we're done processing all jobs + * assigned to us + */ if (timeoutp) exit(EXIT_SUCCESS); else ==== //depot/projects/soc2005/launchd/liblaunch.c#13 (text+ko) ==== @@ -109,6 +109,7 @@ // if we can't calloc() _lc, exit function if (_lc == NULL) + return; pthread_mutex_init(&_lc->mtx, NULL); From owner-p4-projects@FreeBSD.ORG Fri Aug 26 12:00:12 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 842C016A42D; Fri, 26 Aug 2005 12:00:11 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 22CCD16A42D for ; Fri, 26 Aug 2005 12:00:11 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DD68C43D45 for ; Fri, 26 Aug 2005 12:00:10 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QC0Asi041110 for ; Fri, 26 Aug 2005 12:00:10 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QC0AQr041107 for perforce@freebsd.org; Fri, 26 Aug 2005 12:00:10 GMT (envelope-from soc-tyler@freebsd.org) Date: Fri, 26 Aug 2005 12:00:10 GMT Message-Id: <200508261200.j7QC0AQr041107@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 82611 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 12:00:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=82611 Change 82611 by soc-tyler@soc-tyler_launchd on 2005/08/26 11:59:21 Update launchers/*.launch for testing with launchctl(1) using property(3) to parse out simple data. Affected files ... .. //depot/projects/soc2005/launchd/launchctl/launchctl.c#10 edit .. //depot/projects/soc2005/launchd/launchers/ftp.launch#4 edit .. //depot/projects/soc2005/launchd/launchers/ssh.launch#4 edit Differences ... ==== //depot/projects/soc2005/launchd/launchctl/launchctl.c#10 (text+ko) ==== @@ -3,26 +3,6 @@ * * Copyright (c) 2005 R. Tyler Ballance All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE * - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ /* @@ -48,16 +28,6 @@ * @APPLE_LICENSE_HEADER_END@ */ -/* Mac OS specific - * #include - * - * CoreFoundation defines a lot of these CF* data types, documentation is here: - * http://developer.apple.com/documentation/CoreFoundation/Reference/CFAPI-date.html - * - * refer to the eXpat XML parsing library by way of 'libbsdxml' for replacement of - * the XML parsing functions - */ - #ifdef _BUILD_DARWIN_ #include #endif ==== //depot/projects/soc2005/launchd/launchers/ftp.launch#4 (text+ko) ==== @@ -3,16 +3,7 @@ # Simple, launchd(8) launcher for the ftp daemon # -program = ftpd -progpath = /usr/libexec/ftpd -#firstboot = /usr/libexec/ftpd -progflags = -l +Label = org.freebsd.ftpd +Path = /usr/libexec/ftpd +Flags = -l -################################## -# Network related functions -################################## - -## inetd related options -### start this daemon from the (x)inetd super server -# inetd = false -# inetd_wait = false ==== //depot/projects/soc2005/launchd/launchers/ssh.launch#4 (text+ko) ==== @@ -3,16 +3,7 @@ # Simple, launchd(8) launcher for the SSH daemon # -program = sshd -progpath = /usr/bin/sshd -#firstboot = /some/script/to/do/keygen -progflags = -i +Label = org.openssh.sshd +Path = /usr/sbin/sshd +Flags = -D -################################## -# Network related functions -################################## - -## inetd related options -### start this daemon from the (x)inetd super server -# inetd = false -# inetd_wait = false From owner-p4-projects@FreeBSD.ORG Fri Aug 26 13:03:28 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 77CA416A421; Fri, 26 Aug 2005 13:03:28 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 35D0416A41F for ; Fri, 26 Aug 2005 13:03:28 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E97BD43D48 for ; Fri, 26 Aug 2005 13:03:27 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QD3R4p050813 for ; Fri, 26 Aug 2005 13:03:27 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QD3RWV050810 for perforce@freebsd.org; Fri, 26 Aug 2005 13:03:27 GMT (envelope-from soc-tyler@freebsd.org) Date: Fri, 26 Aug 2005 13:03:27 GMT Message-Id: <200508261303.j7QD3RWV050810@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 82614 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 13:03:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=82614 Change 82614 by soc-tyler@soc-tyler_launchd on 2005/08/26 13:02:55 Add property.* files to extend the overly-simplistic property(3) Affected files ... .. //depot/projects/soc2005/launchd/Makefile#14 edit .. //depot/projects/soc2005/launchd/includes/property.h#1 add .. //depot/projects/soc2005/launchd/launchctl/Makefile#7 edit .. //depot/projects/soc2005/launchd/property.c#1 add Differences ... ==== //depot/projects/soc2005/launchd/Makefile#14 (text+ko) ==== ==== //depot/projects/soc2005/launchd/launchctl/Makefile#7 (text+ko) ==== @@ -2,7 +2,7 @@ # $FreeBSD$ PROG= launchctl -SRCS= launchctl.c liblaunch.c +SRCS= launchctl.c liblaunch.c property.c MAN= launchctl.1 MAINTAINER= tyler@tamu.edu From owner-p4-projects@FreeBSD.ORG Fri Aug 26 13:42:15 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 51E8416A429; Fri, 26 Aug 2005 13:42:15 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 21CCF16A41F for ; Fri, 26 Aug 2005 13:42:15 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C46C843D48 for ; Fri, 26 Aug 2005 13:42:14 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QDgE4B052249 for ; Fri, 26 Aug 2005 13:42:14 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QDgEbs052246 for perforce@freebsd.org; Fri, 26 Aug 2005 13:42:14 GMT (envelope-from soc-victor@freebsd.org) Date: Fri, 26 Aug 2005 13:42:14 GMT Message-Id: <200508261342.j7QDgEbs052246@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82615 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 13:42:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=82615 Change 82615 by soc-victor@soc-victor_82.76.158.176 on 2005/08/26 13:41:51 Finished the SNMP implementation for RFC 4022 (TCP-MIB) by adding SNMP SET support for the deprecated tcpConnTable. Also removed the old implementation for the deprecated RFC1213-MIB Affected files ... .. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII.c#4 edit .. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII_tcp.c#2 delete .. //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII_tree.def#3 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#5 edit .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#7 edit Differences ... ==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII.c#4 (text+ko) ==== @@ -57,9 +57,7 @@ /* OR registrations */ static u_int ifmib_reg; static u_int ipmib_reg; -#if 0 -static u_int tcpmib_reg; -#endif /*0*/ + static u_int udpmib_reg; static u_int ipForward_reg; @@ -114,9 +112,6 @@ static const struct asn_oid oid_ifMIB = OIDX_ifMIB; static const struct asn_oid oid_ipMIB = OIDX_ipMIB; -#if 0 -static const struct asn_oid oid_tcpMIB = OIDX_tcpMIB; -#endif /*0*/ static const struct asn_oid oid_udpMIB = OIDX_udpMIB; static const struct asn_oid oid_ipForward = OIDX_ipForward; static const struct asn_oid oid_linkDown = OIDX_linkDown; @@ -1445,10 +1440,7 @@ ipmib_reg = or_register(&oid_ipMIB, "The MIB module for managing IP and ICMP implementations, but " "excluding their management of IP routes.", module); -#if 0 - tcpmib_reg = or_register(&oid_tcpMIB, - "The MIB module for managing TCP implementations.", module); -#endif /*0*/ + udpmib_reg = or_register(&oid_udpMIB, "The MIB module for managing UDP implementations.", module); @@ -1510,9 +1502,7 @@ or_unregister(ipForward_reg); or_unregister(udpmib_reg); -#if 0 - or_unregister(tcpmib_reg); -#endif /*0*/ + or_unregister(ipmib_reg); or_unregister(ifmib_reg); ==== //depot/projects/soc2005/bsnmp/contrib/bsnmp/snmp_mibII/mibII_tree.def#3 (text+ko) ==== @@ -148,30 +148,6 @@ (25 icmpOutAddrMasks COUNTER op_icmpstat GET) (26 icmpOutAddrMaskReps COUNTER op_icmpstat GET) ) -# (6 tcp -# (1 tcpRtoAlgorithm INTEGER op_tcp GET) -# (2 tcpRtoMin INTEGER32 op_tcp GET) -# (3 tcpRtoMax INTEGER32 op_tcp GET) -# (4 tcpMaxConn INTEGER32 op_tcp GET) -# (5 tcpActiveOpens COUNTER op_tcp GET) -# (6 tcpPassiveOpens COUNTER op_tcp GET) -# (7 tcpAttemptFails COUNTER op_tcp GET) -# (8 tcpEstabResets COUNTER op_tcp GET) -# (9 tcpCurrEstab GAUGE op_tcp GET) -# (10 tcpInSegs COUNTER op_tcp GET) -# (11 tcpOutSegs COUNTER op_tcp GET) -# (12 tcpRetransSegs COUNTER op_tcp GET) -# (13 tcpConnTable -# (1 tcpConnEntry : IPADDRESS INTEGER IPADDRESS INTEGER op_tcpconn -# (1 tcpConnState INTEGER GET) -# (2 tcpConnLocalAddress IPADDRESS GET) -# (3 tcpConnLocalPort INTEGER GET) -# (4 tcpConnRemAddress IPADDRESS GET) -# (5 tcpConnRemPort INTEGER GET) -# )) -# (14 tcpInErrs COUNTER op_tcp GET) -# (15 tcpOutRsts COUNTER op_tcp) # don't know -# ) (7 udp (1 udpInDatagrams COUNTER op_udp GET) (2 udpNoPorts COUNTER op_udp GET) ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/Makefile#5 (text+ko) ==== @@ -40,6 +40,7 @@ XSYM= tcpMIB DEFS= ${MOD}_tree.def + BMIBS= TCP-MIB.txt INET-ADDRESS-MIB.txt .include ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#7 (text+ko) ==== @@ -65,6 +65,25 @@ * * tcp */ + /* + * The code for tcp delete operation was inspired by the code developed by + * Markus Friedl under the following copyright: + */ + /*- + * Copyright (c) 2004 Markus Friedl + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ #include "asn1.h" #include "snmp.h" @@ -831,132 +850,204 @@ return (0); } +/* + * Delete a tcp connection identified by the conn parameter (snmp + * index encoded format). If the _deprecated parameter is 1, then + * the encoding is specified as in the index of the deprecated + * tcpConnTable (v4 only) + * Returns 0 for success, <0 if the deletion failed + */ static -int drop_new_tcp_conn(struct asn_oid *conn){ +int drop_tcp_conn(struct asn_oid *conn, int _deprecated){ struct sockaddr_storage addrs[2]; int mib[] = { CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_DROP }; char local[64] = "", remote[64] = ""; - assert(conn != NULL); + assert(conn != NULL); memset (&addrs[0], 0, sizeof(addrs)); - if (conn->subs[0] == IAT_ipv4) { - struct sockaddr_in *sinl, *sinr; + + if (_deprecated == 0 ){ + + if (conn->subs[0] == IAT_ipv4) { + struct sockaddr_in *sinl, *sinr; - assert(conn->len == 12); - if (conn->len != 12) { - syslog(LOG_ERR, "%s: malformed SNMP index (wrong length) when deleting a connection", - __func__); - return -1; - } + assert(conn->len == 12); + if (conn->len != 12) { + syslog(LOG_ERR, + "%s: malformed SNMP index (wrong length) when deleting a connection", + __func__); + return -1; + } - if (conn->subs[6] != IAT_ipv4 ) { - syslog(LOG_ERR, "%s: malformed SNMP index (remote not a v4) when deleting a connection", - __func__); - return -1; - } + if (conn->subs[6] != IAT_ipv4 ) { + syslog(LOG_ERR, + "%s: malformed SNMP index (remote not a v4) when deleting a connection", + __func__); + return -1; + } - memset(&addrs[1], 0, sizeof(addrs[1])); - sinl = (struct sockaddr_in *)&addrs[1]; - sinl->sin_len = sizeof(struct sockaddr_in); - sinl->sin_addr.s_addr = htonl( - (conn->subs[1] << 24) | - (conn->subs[2] << 16) | - (conn->subs[3] << 8) | - (conn->subs[4] << 0) - ); - sinl->sin_port = htons(conn->subs[5]); - addrs[1].ss_family = AF_INET; + memset(&addrs[1], 0, sizeof(addrs[1])); + sinl = (struct sockaddr_in *)&addrs[1]; + sinl->sin_len = sizeof(struct sockaddr_in); + sinl->sin_addr.s_addr = htonl( + (conn->subs[1] << 24) | + (conn->subs[2] << 16) | + (conn->subs[3] << 8) | + (conn->subs[4] << 0) + ); + sinl->sin_port = htons(conn->subs[5]); + addrs[1].ss_family = AF_INET; - inet_ntop(AF_INET, &sinl->sin_addr, local, 64); + inet_ntop(AF_INET, &sinl->sin_addr, local, 64); - memset(&addrs[0], 0, sizeof(addrs[0])); - sinr = (struct sockaddr_in *)&addrs[0]; - sinr->sin_len = sizeof(struct sockaddr_in); + memset(&addrs[0], 0, sizeof(addrs[0])); + sinr = (struct sockaddr_in *)&addrs[0]; + sinr->sin_len = sizeof(struct sockaddr_in); - sinr->sin_addr.s_addr = htonl( - (conn->subs[7] << 24) | - (conn->subs[8] << 16) | - (conn->subs[9] << 8) | - (conn->subs[10] << 0) - ); - sinr->sin_port = htons(conn->subs[11]); - addrs[0].ss_family = AF_INET; + sinr->sin_addr.s_addr = htonl( + (conn->subs[7] << 24) | + (conn->subs[8] << 16) | + (conn->subs[9] << 8) | + (conn->subs[10] << 0) + ); + sinr->sin_port = htons(conn->subs[11]); + addrs[0].ss_family = AF_INET; - inet_ntop(AF_INET, &sinr->sin_addr, remote, 64); - syslog(LOG_INFO, "[%s] attempt to delete a tcp4 connection : local: %s:%d - remote: %s:%d \n ", - __func__, - local, - conn->subs[5], - remote, - conn->subs[11]); + inet_ntop(AF_INET, &sinr->sin_addr, remote, 64); + syslog(LOG_INFO, + "[%s] attempt to delete a tcp4 connection : local: %s:%d - remote: %s:%d \n ", + __func__, + local, + conn->subs[5], + remote, + conn->subs[11]); - } else if (conn->subs[0] == IAT_ipv6) { - struct sockaddr_in6 *sin6l, *sin6r; - int i = 0; - assert(conn->len == 36); - if (conn->len != 36) { - syslog(LOG_ERR, "%s: malformed SNMP index (wrong length) when deleting a connection", - __func__); - return -1; - } + } else if (conn->subs[0] == IAT_ipv6) { + struct sockaddr_in6 *sin6l, *sin6r; + int i = 0; + assert(conn->len == 36); + if (conn->len != 36) { + syslog(LOG_ERR, + "%s: malformed SNMP index (wrong length) when deleting a connection", + __func__); + return -1; + } - if (conn->subs[18] != IAT_ipv6 ) { - syslog(LOG_ERR, "%s: malformed SNMP index (remote not a v6) when deleting a connection", - __func__); - return -1; - } + if (conn->subs[18] != IAT_ipv6 ) { + syslog(LOG_ERR, + "%s: malformed SNMP index (remote not a v6) when deleting a connection", + __func__); + return -1; + } - memset(&addrs[1], 0, sizeof(addrs[1])); - sin6l = (struct sockaddr_in6 *)&addrs[1]; + memset(&addrs[1], 0, sizeof(addrs[1])); + sin6l = (struct sockaddr_in6 *)&addrs[1]; - for (i=0; i<16; i++) { - sin6l->sin6_addr.s6_addr[i] = conn->subs[1+i]; - } + for (i=0; i<16; i++) { + sin6l->sin6_addr.s6_addr[i] = conn->subs[1+i]; + } - sin6l->sin6_port = htons(conn->subs[17]); + sin6l->sin6_port = htons(conn->subs[17]); #ifdef SIN6_LEN - sin6l->sin6_len = sizeof(struct sockaddr_in6); + sin6l->sin6_len = sizeof(struct sockaddr_in6); #endif /* SIN6_LEN */ - addrs[1].ss_family = AF_INET6; - inet_ntop(AF_INET6, &sin6l->sin6_addr, local, 64); + addrs[1].ss_family = AF_INET6; + inet_ntop(AF_INET6, &sin6l->sin6_addr, local, 64); - memset(&addrs[0], 0, sizeof(addrs[0])); - sin6r = (struct sockaddr_in6 *)&addrs[0]; + memset(&addrs[0], 0, sizeof(addrs[0])); + sin6r = (struct sockaddr_in6 *)&addrs[0]; - for (i=0; i<16; i++) { - sin6r->sin6_addr.s6_addr[i] = conn->subs[19+i]; - } + for (i=0; i<16; i++) { + sin6r->sin6_addr.s6_addr[i] = conn->subs[19+i]; + } - sin6r->sin6_port = htons(conn->subs[35]); + sin6r->sin6_port = htons(conn->subs[35]); #ifdef SIN6_LEN - sin6r->sin6_len = sizeof(struct sockaddr_in6); + sin6r->sin6_len = sizeof(struct sockaddr_in6); #endif /* SIN6_LEN */ - addrs[0].ss_family = AF_INET6; + addrs[0].ss_family = AF_INET6; + + inet_ntop(AF_INET6, &sin6r->sin6_addr, remote, 64); + + syslog(LOG_INFO, + "[%s] attempt to delete a tcp6 connection: local: %s:%d - remote: %s:%d \n ", + __func__, + local, + conn->subs[17], + remote, + conn->subs[35]); + - inet_ntop(AF_INET6, &sin6r->sin6_addr, remote, 64); + } else { + assert(0); + syslog(LOG_ERR, "%s: malformed SNMP index (not v4, not v6) when deleting a connection", + __func__); + return -1; - syslog(LOG_INFO, "[%s] attempt to delete a tcp6 connection: local: %s:%d - remote: %s:%d \n ", + } + } else { + /*This the code for the old/ deprecated tcpConnTable*/ + struct sockaddr_in *sinl, *sinr; + + assert(conn->len == 10); + if (conn->len != 10) { + syslog(LOG_ERR, + "%s: malformed SNMP index (wrong length) when deleting a connection", + __func__); + return -1; + } + + + + + memset(&addrs[1], 0, sizeof(addrs[1])); + sinl = (struct sockaddr_in *)&addrs[1]; + sinl->sin_len = sizeof(struct sockaddr_in); + sinl->sin_addr.s_addr = htonl( + (conn->subs[0] << 24) | + (conn->subs[1] << 16) | + (conn->subs[2] << 8) | + (conn->subs[3] << 0) + ); + sinl->sin_port = htons(conn->subs[4]); + addrs[1].ss_family = AF_INET; + + inet_ntop(AF_INET, &sinl->sin_addr, local, 64); + + + + memset(&addrs[0], 0, sizeof(addrs[0])); + sinr = (struct sockaddr_in *)&addrs[0]; + sinr->sin_len = sizeof(struct sockaddr_in); + + sinr->sin_addr.s_addr = htonl( + (conn->subs[5] << 24) | + (conn->subs[6] << 16) | + (conn->subs[7] << 8) | + (conn->subs[8] << 0) + ); + sinr->sin_port = htons(conn->subs[9]); + addrs[0].ss_family = AF_INET; + + inet_ntop(AF_INET, &sinr->sin_addr, remote, 64); + syslog(LOG_INFO, + "[%s] attempt to delete a tcp4 connection : local: %s:%d - remote: %s:%d \n ", __func__, local, - conn->subs[17], + conn->subs[4], remote, - conn->subs[35]); - + conn->subs[9]); + - } else { - assert(0); - syslog(LOG_ERR, "%s: malformed SNMP index (not v4, not v6) when deleting a connection", - __func__); - return -1; - } + if (sysctl(mib, sizeof (mib) / sizeof (int), NULL, NULL, &addrs, sizeof(addrs)) == -1) { syslog(LOG_ERR, "%s: failed to delete the specified tcp connection: %m", __func__); @@ -1118,11 +1209,33 @@ return (SNMP_ERR_NOSUCHNAME); break; - case SNMP_OP_SET: - return (SNMP_ERR_NOT_WRITEABLE); + case SNMP_OP_SET: { + if (value->var.subs[sub - 1] != LEAF_tcpConnState) { + return (SNMP_ERR_NOT_WRITEABLE); + } + if (value->v.integer != TCPS_deleteTCB) { + return (SNMP_ERR_WRONG_VALUE); + } + + for (i = 0; i < tcp46_state_g.tcp4_total; i++) + if (index_compare(&value->var, sub, + &tcp46_state_g.tcp4oids[i].index) == 0) + break; + + if (i == tcp46_state_g.tcp4_total) + return (SNMP_ERR_NOSUCHNAME); + + if (drop_tcp_conn(&tcp46_state_g.tcp4oids[i].index, 1) != 0) { + return (SNMP_ERR_NOSUCHNAME); + } + return (SNMP_ERR_NOERROR); + } + case SNMP_OP_ROLLBACK: - case SNMP_OP_COMMIT: + case SNMP_OP_COMMIT: { + return (SNMP_ERR_NOERROR); + } default: abort(); } @@ -1252,7 +1365,7 @@ if (i == tcp46_state_g.all_tcp_total) return (SNMP_ERR_NOSUCHNAME); - if (drop_new_tcp_conn(&tcp46_state_g.all_tcpoids[i].index) != 0) { + if (drop_tcp_conn(&tcp46_state_g.all_tcpoids[i].index, 0) != 0) { return (SNMP_ERR_NOSUCHNAME); } return (SNMP_ERR_NOERROR); From owner-p4-projects@FreeBSD.ORG Fri Aug 26 14:19:02 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2D30116A421; Fri, 26 Aug 2005 14:19:02 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E47B816A41F for ; Fri, 26 Aug 2005 14:19:01 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B1D4F43D46 for ; Fri, 26 Aug 2005 14:19:01 +0000 (GMT) (envelope-from soc-tyler@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QEJ1vC053646 for ; Fri, 26 Aug 2005 14:19:01 GMT (envelope-from soc-tyler@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QEJ1Yh053639 for perforce@freebsd.org; Fri, 26 Aug 2005 14:19:01 GMT (envelope-from soc-tyler@freebsd.org) Date: Fri, 26 Aug 2005 14:19:01 GMT Message-Id: <200508261419.j7QEJ1Yh053639@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-tyler@freebsd.org using -f From: soc-tyler To: Perforce Change Reviews Cc: Subject: PERFORCE change 82618 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 14:19:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=82618 Change 82618 by soc-tyler@soc-tyler_launchd on 2005/08/26 14:18:56 Add testjob stuff to show zarzycki@ Affected files ... .. //depot/projects/soc2005/launchd/launchctl/launchctl.c#11 edit .. //depot/projects/soc2005/launchd/launchers/testjob.launch#1 add .. //depot/projects/soc2005/launchd/testing/testjob.c#1 add Differences ... ==== //depot/projects/soc2005/launchd/launchctl/launchctl.c#11 (text+ko) ==== @@ -73,6 +73,7 @@ #include "launch.h" #include "launch_priv.h" +#include "property.h" #define LAUNCH_SECDIR "/tmp/launch-XXXXXX" @@ -323,20 +324,22 @@ } #ifndef _BUILD_DARWIN +#ifdef _LAUNCHD_ static launch_data_t read_conf_file(const char *file, bool editondisk, bool load) { /* fill this with an array of launch_data_t structs */ launch_data_t retval = NULL; - properties conf_props; + properties conf_props; // libutil.h and -lutil are required for this.. int fd; fd = open(file, O_RDONLY); + if (fd == -1) return NULL; /* calling function must check for a NULL pointer */ conf_props = properties_read(fd); /* read in config data */ retval = launch_data_alloc(LAUNCH_DATA_PROPERTY); - launch_data_set_opaque(retval, (const void *)(conf_props), sizeof(properties)); + //launch_data_set_opaque(retval, (const void *)(conf_props), sizeof(properties)); /* I figure we'll just add the properties(3) linked list to the * opaque launch_data_t datatype (opaque ~= void *) @@ -348,6 +351,7 @@ return retval; } #endif +#endif #ifdef _BUILD_DARWIN_ static launch_data_t read_plist_file(const char *file, bool editondisk, bool load) { From owner-p4-projects@FreeBSD.ORG Fri Aug 26 17:48:21 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8882C16A421; Fri, 26 Aug 2005 17:48:20 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5F72416A41F for ; Fri, 26 Aug 2005 17:48:20 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id EE46B43D46 for ; Fri, 26 Aug 2005 17:48:19 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QHmJ9F069923 for ; Fri, 26 Aug 2005 17:48:19 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QHmJfL069920 for perforce@freebsd.org; Fri, 26 Aug 2005 17:48:19 GMT (envelope-from jhb@freebsd.org) Date: Fri, 26 Aug 2005 17:48:19 GMT Message-Id: <200508261748.j7QHmJfL069920@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 82629 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 17:48:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=82629 Change 82629 by jhb@jhb_slimer on 2005/08/26 17:47:26 IFC @82625. Affected files ... .. //depot/projects/smpng/sys/alpha/include/_limits.h#8 integrate .. //depot/projects/smpng/sys/alpha/include/signal.h#8 integrate .. //depot/projects/smpng/sys/amd64/amd64/exception.S#15 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#24 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#44 integrate .. //depot/projects/smpng/sys/amd64/include/_limits.h#6 integrate .. //depot/projects/smpng/sys/amd64/include/signal.h#7 integrate .. //depot/projects/smpng/sys/arm/include/_limits.h#7 integrate .. //depot/projects/smpng/sys/arm/include/signal.h#7 integrate .. //depot/projects/smpng/sys/conf/files#147 integrate .. //depot/projects/smpng/sys/conf/files.i386#86 integrate .. //depot/projects/smpng/sys/conf/newvers.sh#19 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#34 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#72 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#55 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#33 integrate .. //depot/projects/smpng/sys/dev/hme/if_hme.c#25 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_amd.c#5 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#9 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_x86.c#3 integrate .. //depot/projects/smpng/sys/dev/ipw/if_ipw.c#7 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#9 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwireg.h#2 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwivar.h#3 integrate .. //depot/projects/smpng/sys/dev/pci/pci_user.c#16 integrate .. //depot/projects/smpng/sys/dev/ral/if_ral.c#9 integrate .. //depot/projects/smpng/sys/dev/ral/if_ral_pccard.c#3 integrate .. //depot/projects/smpng/sys/dev/usb/if_ural.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/uhub.c#26 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.c#3 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.h#3 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_ctl.c#2 integrate .. //depot/projects/smpng/sys/geom/label/g_label.c#10 integrate .. //depot/projects/smpng/sys/geom/label/g_label.h#6 integrate .. //depot/projects/smpng/sys/geom/label/g_label_ext2fs.c#2 integrate .. //depot/projects/smpng/sys/geom/label/g_label_iso9660.c#2 integrate .. //depot/projects/smpng/sys/geom/label/g_label_ntfs.c#1 branch .. //depot/projects/smpng/sys/geom/label/g_label_reiserfs.c#2 integrate .. //depot/projects/smpng/sys/geom/stripe/g_stripe.c#13 integrate .. //depot/projects/smpng/sys/geom/stripe/g_stripe.h#6 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_drive.c#13 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_volume.c#8 integrate .. //depot/projects/smpng/sys/i386/conf/NOTES#105 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#85 integrate .. //depot/projects/smpng/sys/i386/include/_limits.h#7 integrate .. //depot/projects/smpng/sys/i386/include/signal.h#11 integrate .. //depot/projects/smpng/sys/i386/isa/if_el.c#15 delete .. //depot/projects/smpng/sys/i386/isa/if_elreg.h#3 delete .. //depot/projects/smpng/sys/ia64/include/_limits.h#7 integrate .. //depot/projects/smpng/sys/ia64/include/signal.h#10 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#40 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#82 integrate .. //depot/projects/smpng/sys/kern/kern_kse.c#23 integrate .. //depot/projects/smpng/sys/kern/kern_mib.c#28 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#61 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#134 integrate .. //depot/projects/smpng/sys/kern/sys_process.c#45 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#108 integrate .. //depot/projects/smpng/sys/libkern/iconv.c#10 integrate .. //depot/projects/smpng/sys/modules/Makefile#103 integrate .. //depot/projects/smpng/sys/modules/el/Makefile#2 delete .. //depot/projects/smpng/sys/modules/geom/geom_label/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/geom/geom_vinum/Makefile#2 integrate .. //depot/projects/smpng/sys/net/bpf.c#55 integrate .. //depot/projects/smpng/sys/net/bpf.h#16 integrate .. //depot/projects/smpng/sys/net/bpfdesc.h#13 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#8 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#62 integrate .. //depot/projects/smpng/sys/net/rtsock.c#48 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.c#10 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/l2cap/ng_l2cap_misc.h#6 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#14 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#38 integrate .. //depot/projects/smpng/sys/netgraph/ng_fec.c#16 integrate .. //depot/projects/smpng/sys/netgraph/ng_ksocket.c#27 integrate .. //depot/projects/smpng/sys/netinet/if_atm.c#10 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#37 integrate .. //depot/projects/smpng/sys/netinet/in.h#31 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.h#37 integrate .. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#20 integrate .. //depot/projects/smpng/sys/netinet/ip_icmp.c#35 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#75 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#51 integrate .. //depot/projects/smpng/sys/netinet/tcp.h#13 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#75 integrate .. //depot/projects/smpng/sys/netinet/tcp_sack.c#14 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#40 integrate .. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#44 integrate .. //depot/projects/smpng/sys/netinet/udp_usrreq.c#58 integrate .. //depot/projects/smpng/sys/netkey/key.c#32 integrate .. //depot/projects/smpng/sys/pci/if_de.c#28 integrate .. //depot/projects/smpng/sys/pci/if_devar.h#11 integrate .. //depot/projects/smpng/sys/powerpc/include/_limits.h#7 integrate .. //depot/projects/smpng/sys/powerpc/include/signal.h#6 integrate .. //depot/projects/smpng/sys/sparc64/include/_limits.h#6 integrate .. //depot/projects/smpng/sys/sparc64/include/signal.h#10 integrate .. //depot/projects/smpng/sys/sys/malloc.h#23 integrate .. //depot/projects/smpng/sys/sys/param.h#86 integrate .. //depot/projects/smpng/sys/sys/signal.h#16 integrate .. //depot/projects/smpng/sys/sys/systm.h#67 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#47 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#74 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/include/_limits.h#8 (text+ko) ==== @@ -28,7 +28,7 @@ * * @(#)limits.h 8.3 (Berkeley) 1/4/94 * From: NetBSD: limits.h,v 1.3 1997/04/06 08:47:31 cgd Exp - * $FreeBSD: src/sys/alpha/include/_limits.h,v 1.16 2005/01/05 20:05:50 imp Exp $ + * $FreeBSD: src/sys/alpha/include/_limits.h,v 1.17 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE__LIMITS_H_ @@ -87,4 +87,10 @@ #define __LONG_BIT 64 #define __WORD_BIT 32 +/* + * Minimum signal stack size. The current signal frame + * for Alpha is 808 bytes large. + */ +#define __MINSIGSTKSZ (1024 * 4) + #endif /* !_MACHINE__LIMITS_H_ */ ==== //depot/projects/smpng/sys/alpha/include/signal.h#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/signal.h,v 1.12 2005/01/05 20:05:50 imp Exp $ */ +/* $FreeBSD: src/sys/alpha/include/signal.h,v 1.13 2005/08/20 16:44:40 stefanf Exp $ */ /* From: NetBSD: signal.h,v 1.3 1997/04/06 08:47:43 cgd Exp */ /*- @@ -36,14 +36,6 @@ typedef long sig_atomic_t; -#if __XSI_VISIBLE -/* - * Minimum signal stack size. The current signal frame - * for Alpha is 808 bytes large. - */ -#define MINSIGSTKSZ (1024 * 4) -#endif - /* * Only the kernel should need these old type definitions. */ ==== //depot/projects/smpng/sys/amd64/amd64/exception.S#15 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.125 2005/06/30 00:26:54 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.126 2005/08/25 20:33:43 ups Exp $ */ #include "opt_atpic.h" @@ -94,7 +94,7 @@ IDTVEC(div) TRAP(T_DIVIDE) IDTVEC(nmi) - TRAP(T_NMI) + TRAP_NOEN(T_NMI) IDTVEC(ofl) TRAP(T_OFLOW) IDTVEC(bnd) ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#24 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.261 2005/07/21 21:46:09 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.262 2005/08/19 22:10:19 pjd Exp $"); #include "opt_cpu.h" #include "opt_kdb.h" @@ -812,58 +812,6 @@ ia32_pause(); } -/* - * This is about as magic as it gets. fortune(1) has got similar code - * for reversing bits in a word. Who thinks up this stuff?? - * - * Yes, it does appear to be consistently faster than: - * while (i = ffs(m)) { - * m >>= i; - * bits++; - * } - * and - * while (lsb = (m & -m)) { // This is magic too - * m &= ~lsb; // or: m ^= lsb - * bits++; - * } - * Both of these latter forms do some very strange things on gcc-3.1 with - * -mcpu=pentiumpro and/or -march=pentiumpro and/or -O or -O2. - * There is probably an SSE or MMX popcnt instruction. - * - * I wonder if this should be in libkern? - * - * XXX Stop the presses! Another one: - * static __inline u_int32_t - * popcnt1(u_int32_t v) - * { - * v -= ((v >> 1) & 0x55555555); - * v = (v & 0x33333333) + ((v >> 2) & 0x33333333); - * v = (v + (v >> 4)) & 0x0F0F0F0F; - * return (v * 0x01010101) >> 24; - * } - * The downside is that it has a multiply. With a pentium3 with - * -mcpu=pentiumpro and -march=pentiumpro then gcc-3.1 will use - * an imull, and in that case it is faster. In most other cases - * it appears slightly slower. - * - * Another variant (also from fortune): - * #define BITCOUNT(x) (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255) - * #define BX_(x) ((x) - (((x)>>1)&0x77777777) \ - * - (((x)>>2)&0x33333333) \ - * - (((x)>>3)&0x11111111)) - */ -static __inline u_int32_t -popcnt(u_int32_t m) -{ - - m = (m & 0x55555555) + ((m & 0xaaaaaaaa) >> 1); - m = (m & 0x33333333) + ((m & 0xcccccccc) >> 2); - m = (m & 0x0f0f0f0f) + ((m & 0xf0f0f0f0) >> 4); - m = (m & 0x00ff00ff) + ((m & 0xff00ff00) >> 8); - m = (m & 0x0000ffff) + ((m & 0xffff0000) >> 16); - return m; -} - static void smp_targeted_tlb_shootdown(u_int mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2) { @@ -878,7 +826,7 @@ mask &= ~PCPU_GET(cpumask); if (mask == 0) return; - ncpu = popcnt(mask); + ncpu = bitcount32(mask); if (ncpu > othercpus) { /* XXX this should be a panic offence */ printf("SMP: tlb shootdown to %d other cpus (only have %d)\n", ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#44 (text+ko) ==== @@ -7,6 +7,8 @@ * All rights reserved. * Copyright (c) 2003 Peter Wemm * All rights reserved. + * Copyright (c) 2005 Alan L. Cox + * All rights reserved. * * This code is derived from software contributed to Berkeley by * the Systems Programming Group of the University of Utah Computer @@ -75,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.521 2005/08/14 20:02:49 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.526 2005/08/26 05:18:46 alc Exp $"); /* * Manages physical address maps. @@ -205,11 +207,12 @@ static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva, pd_entry_t ptepde); -static void pmap_remove_page(struct pmap *pmap, vm_offset_t va); +static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); +static vm_page_t pmap_allocpde(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); @@ -288,16 +291,34 @@ /* Return a pointer to the PDP slot that corresponds to a VA */ static __inline pdp_entry_t * +pmap_pml4e_to_pdpe(pml4_entry_t *pml4e, vm_offset_t va) +{ + pdp_entry_t *pdpe; + + pdpe = (pdp_entry_t *)PHYS_TO_DMAP(*pml4e & PG_FRAME); + return (&pdpe[pmap_pdpe_index(va)]); +} + +/* Return a pointer to the PDP slot that corresponds to a VA */ +static __inline pdp_entry_t * pmap_pdpe(pmap_t pmap, vm_offset_t va) { pml4_entry_t *pml4e; - pdp_entry_t *pdpe; pml4e = pmap_pml4e(pmap, va); if (pml4e == NULL || (*pml4e & PG_V) == 0) return NULL; - pdpe = (pdp_entry_t *)PHYS_TO_DMAP(*pml4e & PG_FRAME); - return (&pdpe[pmap_pdpe_index(va)]); + return (pmap_pml4e_to_pdpe(pml4e, va)); +} + +/* Return a pointer to the PD slot that corresponds to a VA */ +static __inline pd_entry_t * +pmap_pdpe_to_pde(pdp_entry_t *pdpe, vm_offset_t va) +{ + pd_entry_t *pde; + + pde = (pd_entry_t *)PHYS_TO_DMAP(*pdpe & PG_FRAME); + return (&pde[pmap_pde_index(va)]); } /* Return a pointer to the PD slot that corresponds to a VA */ @@ -305,13 +326,11 @@ pmap_pde(pmap_t pmap, vm_offset_t va) { pdp_entry_t *pdpe; - pd_entry_t *pde; pdpe = pmap_pdpe(pmap, va); if (pdpe == NULL || (*pdpe & PG_V) == 0) return NULL; - pde = (pd_entry_t *)PHYS_TO_DMAP(*pdpe & PG_FRAME); - return (&pde[pmap_pde_index(va)]); + return (pmap_pdpe_to_pde(pdpe, va)); } /* Return a pointer to the PT slot that corresponds to a VA */ @@ -786,7 +805,9 @@ pde = *pdep; if (pde) { if ((pde & PG_PS) != 0) { - rtval = (pde & ~PDRMASK) | (va & PDRMASK); + KASSERT((pde & PG_FRAME & PDRMASK) == 0, + ("pmap_extract: bad pde")); + rtval = (pde & PG_FRAME) | (va & PDRMASK); PMAP_UNLOCK(pmap); return rtval; } @@ -819,7 +840,9 @@ if (pdep != NULL && (pde = *pdep)) { if (pde & PG_PS) { if ((pde & PG_RW) || (prot & VM_PROT_WRITE) == 0) { - m = PHYS_TO_VM_PAGE((pde & ~PDRMASK) | + KASSERT((pde & PG_FRAME & PDRMASK) == 0, + ("pmap_extract_and_hold: bad pde")); + m = PHYS_TO_VM_PAGE((pde & PG_FRAME) | (va & PDRMASK)); vm_page_hold(m); } @@ -1222,6 +1245,33 @@ } static vm_page_t +pmap_allocpde(pmap_t pmap, vm_offset_t va, int flags) +{ + vm_pindex_t pdpindex, ptepindex; + pdp_entry_t *pdpe; + vm_page_t pdpg; + + KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || + (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, + ("pmap_allocpde: flags is neither M_NOWAIT nor M_WAITOK")); +retry: + pdpe = pmap_pdpe(pmap, va); + if (pdpe != NULL && (*pdpe & PG_V) != 0) { + /* Add a reference to the pd page. */ + pdpg = PHYS_TO_VM_PAGE(*pdpe & PG_FRAME); + pdpg->wire_count++; + } else { + /* Allocate a pd page. */ + ptepindex = pmap_pde_pindex(va); + pdpindex = ptepindex >> NPDPEPGSHIFT; + pdpg = _pmap_allocpte(pmap, NUPDE + pdpindex, flags); + if (pdpg == NULL && (flags & M_WAITOK)) + goto retry; + } + return (pdpg); +} + +static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags) { vm_pindex_t ptepindex; @@ -1249,6 +1299,8 @@ if (pd != 0 && (*pd & (PG_PS | PG_V)) == (PG_PS | PG_V)) { *pd = 0; pd = 0; + pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; + pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va)); pmap_invalidate_all(kernel_pmap); } @@ -1510,16 +1562,17 @@ * Remove a single page from a process address space */ static void -pmap_remove_page(pmap_t pmap, vm_offset_t va) +pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { - pd_entry_t ptepde; pt_entry_t *pte; PMAP_LOCK_ASSERT(pmap, MA_OWNED); - pte = pmap_pte_pde(pmap, va, &ptepde); - if (pte == NULL || (*pte & PG_V) == 0) + if ((*pde & PG_V) == 0) + return; + pte = pmap_pde_to_pte(pde, va); + if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, ptepde); + pmap_remove_pte(pmap, pte, va, *pde); pmap_invalidate_page(pmap, va); } @@ -1558,7 +1611,7 @@ if (sva + PAGE_SIZE == eva) { pde = pmap_pde(pmap, sva); if (pde && (*pde & PG_PS) == 0) { - pmap_remove_page(pmap, sva); + pmap_remove_page(pmap, sva, pde); goto out; } } @@ -1569,13 +1622,13 @@ break; pml4e = pmap_pml4e(pmap, sva); - if (pml4e == 0) { + if ((*pml4e & PG_V) == 0) { va_next = (sva + NBPML4) & ~PML4MASK; continue; } - pdpe = pmap_pdpe(pmap, sva); - if (pdpe == 0) { + pdpe = pmap_pml4e_to_pdpe(pml4e, sva); + if ((*pdpe & PG_V) == 0) { va_next = (sva + NBPDP) & ~PDPMASK; continue; } @@ -1585,9 +1638,7 @@ */ va_next = (sva + NBPDR) & ~PDRMASK; - pde = pmap_pde(pmap, sva); - if (pde == 0) - continue; + pde = pmap_pdpe_to_pde(pdpe, sva); ptpaddr = *pde; /* @@ -1602,6 +1653,7 @@ if ((ptpaddr & PG_PS) != 0) { *pde = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; + pmap_unuse_pt(pmap, sva, *pdpe); anyvalid = 1; continue; } @@ -1724,22 +1776,20 @@ for (; sva < eva; sva = va_next) { pml4e = pmap_pml4e(pmap, sva); - if (pml4e == 0) { + if ((*pml4e & PG_V) == 0) { va_next = (sva + NBPML4) & ~PML4MASK; continue; } - pdpe = pmap_pdpe(pmap, sva); - if (pdpe == 0) { + pdpe = pmap_pml4e_to_pdpe(pml4e, sva); + if ((*pdpe & PG_V) == 0) { va_next = (sva + NBPDP) & ~PDPMASK; continue; } va_next = (sva + NBPDR) & ~PDRMASK; - pde = pmap_pde(pmap, sva); - if (pde == NULL) - continue; + pde = pmap_pdpe_to_pde(pdpe, sva); ptpaddr = *pde; /* @@ -2118,15 +2168,14 @@ vm_object_t object, vm_pindex_t pindex, vm_size_t size) { - vm_page_t p; + vm_offset_t va; + vm_page_t p, pdpg; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); KASSERT(object->type == OBJT_DEVICE, ("pmap_object_init_pt: non-device object")); if (((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) { - int i; vm_page_t m[1]; - int npdes; pd_entry_t ptepa, *pde; PMAP_LOCK(pmap); @@ -2166,12 +2215,35 @@ p->valid = VM_PAGE_BITS_ALL; PMAP_LOCK(pmap); - pmap->pm_stats.resident_count += size >> PAGE_SHIFT; - npdes = size >> PDRSHIFT; - for(i = 0; i < npdes; i++) { - pde_store(pde, ptepa | PG_U | PG_RW | PG_V | PG_PS); + for (va = addr; va < addr + size; va += NBPDR) { + while ((pdpg = + pmap_allocpde(pmap, va, M_NOWAIT)) == NULL) { + PMAP_UNLOCK(pmap); + vm_page_lock_queues(); + vm_page_busy(p); + vm_page_unlock_queues(); + VM_OBJECT_UNLOCK(object); + VM_WAIT; + VM_OBJECT_LOCK(object); + vm_page_lock_queues(); + vm_page_wakeup(p); + vm_page_unlock_queues(); + PMAP_LOCK(pmap); + } + pde = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pdpg)); + pde = &pde[pmap_pde_index(va)]; + if ((*pde & PG_V) == 0) { + pde_store(pde, ptepa | PG_PS | PG_M | PG_A | + PG_U | PG_RW | PG_V); + pmap->pm_stats.resident_count += + NBPDR / PAGE_SIZE; + } else { + pdpg->wire_count--; + KASSERT(pdpg->wire_count > 0, + ("pmap_object_init_pt: missing reference " + "to page directory page, va: 0x%lx", va)); + } ptepa += NBPDR; - pde++; } pmap_invalidate_all(pmap); out: @@ -2245,7 +2317,7 @@ } for (addr = src_addr; addr < end_addr; addr = va_next) { pt_entry_t *src_pte, *dst_pte; - vm_page_t dstmpte, srcmpte; + vm_page_t dstmpde, dstmpte, srcmpte; pml4_entry_t *pml4e; pdp_entry_t *pdpe; pd_entry_t srcptepaddr, *pde; @@ -2263,41 +2335,37 @@ break; pml4e = pmap_pml4e(src_pmap, addr); - if (pml4e == 0) { + if ((*pml4e & PG_V) == 0) { va_next = (addr + NBPML4) & ~PML4MASK; continue; } - pdpe = pmap_pdpe(src_pmap, addr); - if (pdpe == 0) { + pdpe = pmap_pml4e_to_pdpe(pml4e, addr); + if ((*pdpe & PG_V) == 0) { va_next = (addr + NBPDP) & ~PDPMASK; continue; } va_next = (addr + NBPDR) & ~PDRMASK; - pde = pmap_pde(src_pmap, addr); - if (pde) - srcptepaddr = *pde; - else - continue; + pde = pmap_pdpe_to_pde(pdpe, addr); + srcptepaddr = *pde; if (srcptepaddr == 0) continue; if (srcptepaddr & PG_PS) { - pde = pmap_pde(dst_pmap, addr); - if (pde == 0) { - /* - * XXX should do an allocpte here to - * instantiate the pde - */ - continue; - } + dstmpde = pmap_allocpde(dst_pmap, addr, M_NOWAIT); + if (dstmpde == NULL) + break; + pde = (pd_entry_t *) + PHYS_TO_DMAP(VM_PAGE_TO_PHYS(dstmpde)); + pde = &pde[pmap_pde_index(addr)]; if (*pde == 0) { *pde = srcptepaddr; dst_pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE; - } + } else + pmap_unwire_pte_hold(dst_pmap, addr, dstmpde); continue; } ==== //depot/projects/smpng/sys/amd64/include/_limits.h#6 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)limits.h 8.3 (Berkeley) 1/4/94 - * $FreeBSD: src/sys/amd64/include/_limits.h,v 1.10 2005/01/05 20:17:20 imp Exp $ + * $FreeBSD: src/sys/amd64/include/_limits.h,v 1.11 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE__LIMITS_H_ @@ -83,4 +83,10 @@ #define __LONG_BIT 64 #define __WORD_BIT 32 +/* + * Minimum signal stack size. The current signal frame + * for i386 is 408 bytes large. + */ +#define __MINSIGSTKSZ (512 * 4) + #endif /* !_MACHINE__LIMITS_H_ */ ==== //depot/projects/smpng/sys/amd64/include/signal.h#7 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * @(#)signal.h 8.1 (Berkeley) 6/11/93 - * $FreeBSD: src/sys/amd64/include/signal.h,v 1.28 2005/01/05 20:17:20 imp Exp $ + * $FreeBSD: src/sys/amd64/include/signal.h,v 1.29 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE_SIGNAL_H_ @@ -43,14 +43,6 @@ typedef long sig_atomic_t; -#if __XSI_VISIBLE -/* - * Minimum signal stack size. The current signal frame - * for i386 is 408 bytes large. - */ -#define MINSIGSTKSZ (512 * 4) -#endif - #if __BSD_VISIBLE #include /* codes for SIGILL, SIGFPE */ ==== //depot/projects/smpng/sys/arm/include/_limits.h#7 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)limits.h 8.3 (Berkeley) 1/4/94 - * $FreeBSD: src/sys/arm/include/_limits.h,v 1.8 2005/01/05 21:58:48 imp Exp $ + * $FreeBSD: src/sys/arm/include/_limits.h,v 1.9 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE__LIMITS_H_ @@ -94,4 +94,7 @@ #endif #define __WORD_BIT 32 +/* Minimum signal stack size. */ +#define __MINSIGSTKSZ (1024 * 4) + #endif /* !_MACHINE__LIMITS_H_ */ ==== //depot/projects/smpng/sys/arm/include/signal.h#7 (text+ko) ==== @@ -29,7 +29,7 @@ * @(#)signal.h 8.1 (Berkeley) 6/11/93 * from: FreeBSD: src/sys/i386/include/signal.h,v 1.13 2000/11/09 * from: FreeBSD: src/sys/sparc64/include/signal.h,v 1.6 2001/09/30 18:52:17 - * $FreeBSD: src/sys/arm/include/signal.h,v 1.6 2005/01/05 21:58:48 imp Exp $ + * $FreeBSD: src/sys/arm/include/signal.h,v 1.7 2005/08/20 16:44:40 stefanf Exp $ */ #ifndef _MACHINE_SIGNAL_H_ @@ -39,10 +39,6 @@ typedef long sig_atomic_t; -#if __XSI_VISIBLE -#define MINSIGSTKSZ (1024 * 4) -#endif - #if __BSD_VISIBLE struct sigcontext { ==== //depot/projects/smpng/sys/conf/files#147 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1041 2005/08/12 00:27:44 pjd Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1042 2005/08/26 12:48:34 takawata Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1063,6 +1063,7 @@ geom/label/g_label_ext2fs.c optional geom_label geom/label/g_label_iso9660.c optional geom_label geom/label/g_label_msdosfs.c optional geom_label +geom/label/g_label_ntfs.c optional geom_label geom/label/g_label_reiserfs.c optional geom_label geom/label/g_label_ufs.c optional geom_label geom/mirror/g_mirror.c optional geom_mirror ==== //depot/projects/smpng/sys/conf/files.i386#86 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.539 2005/08/18 00:30:22 pjd Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.540 2005/08/26 13:42:03 jhb Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -321,7 +321,6 @@ i386/isa/elcr.c standard i386/isa/elink.c optional ep i386/isa/elink.c optional ie -i386/isa/if_el.c optional el i386/isa/isa.c optional isa i386/isa/isa_dma.c optional isa i386/isa/nmi.c standard ==== //depot/projects/smpng/sys/conf/newvers.sh#19 (text+ko) ==== @@ -28,11 +28,14 @@ # SUCH DAMAGE. # # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 -# $FreeBSD: src/sys/conf/newvers.sh,v 1.70 2005/07/11 08:34:49 scottl Exp $ +# $FreeBSD: src/sys/conf/newvers.sh,v 1.72 2005/08/19 03:56:45 cperciva Exp $ TYPE="FreeBSD" REVISION="7.0" BRANCH="CURRENT" +if [ "X${BRANCH_OVERRIDE}" != "X" ]; then + BRANCH=${BRANCH_OVERRIDE} +fi RELEASE="${REVISION}-${BRANCH}" VERSION="${TYPE} ${RELEASE}" @@ -85,10 +88,14 @@ i=`${MAKE:-make} -V KERN_IDENT` cat << EOF > vers.c $COPYRIGHT -char sccs[] = "@(#)${VERSION} #${v}: ${t}"; -char version[] = "${VERSION} #${v}: ${t}\\n ${u}@${h}:${d}\\n"; +#define SCCSSTR "@(#)${VERSION} #${v}: ${t}" +#define VERSTR "${VERSION} #${v}: ${t}\\n ${u}@${h}:${d}\\n" +#define RELSTR "${RELEASE}" + +char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR; +char version[sizeof(VERSTR) > 256 ? sizeof(VERSTR) : 256] = VERSTR; char ostype[] = "${TYPE}"; -char osrelease[] = "${RELEASE}"; +char osrelease[sizeof(RELSTR) > 32 ? sizeof(RELSTR) : 32] = RELSTR; int osreldate = ${RELDATE}; char kern_ident[] = "${i}"; EOF ==== //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#34 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.56 2005/08/17 17:01:25 ume Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.59 2005/08/26 02:21:02 kan Exp $"); #include "opt_acpi.h" #include @@ -347,7 +347,14 @@ AcpiOsFree(sc->tz_zone.al[i].Pointer); if (sc->tz_zone.psl.Pointer != NULL) AcpiOsFree(sc->tz_zone.psl.Pointer); - bzero(&sc->tz_zone, sizeof(sc->tz_zone)); + + /* + * XXX: We initialize only ACPI_BUFFER to avoid race condition + * with passive cooling thread which refers psv, tc1, tc2 and tsp. + */ + bzero(sc->tz_zone.ac, sizeof(sc->tz_zone.ac)); + bzero(sc->tz_zone.al, sizeof(sc->tz_zone.al)); + bzero(&sc->tz_zone.psl, sizeof(sc->tz_zone.psl)); /* Evaluate thermal zone parameters. */ for (i = 0; i < TZ_NUMLEVELS; i++) { @@ -408,6 +415,30 @@ } /* + * Get the current temperature. + */ +static int +acpi_tz_get_temperature(struct acpi_tz_softc *sc) +{ + int temp; + ACPI_STATUS status; + + ACPI_FUNCTION_NAME ("acpi_tz_get_temperature"); + + status = acpi_GetInteger(sc->tz_handle, "_TMP", &temp); + if (ACPI_FAILURE(status)) { + ACPI_VPRINT(sc->tz_dev, acpi_device_get_parent_softc(sc->tz_dev), + "error fetching current temperature -- %s\n", + AcpiFormatException(status)); + return (FALSE); + } + + ACPI_DEBUG_PRINT((ACPI_DB_VALUES, "got %d.%dC\n", TZ_KELVTOC(temp))); + sc->tz_temperature = temp; + return (TRUE); +} + +/* * Evaluate the condition of a thermal zone, take appropriate actions. */ static void @@ -418,24 +449,17 @@ int temp; int i; int newactive, newflags; - ACPI_STATUS status; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); sc = (struct acpi_tz_softc *)Context; /* Get the current temperature. */ - status = acpi_GetInteger(sc->tz_handle, "_TMP", &temp); - if (ACPI_FAILURE(status)) { - ACPI_VPRINT(sc->tz_dev, acpi_device_get_parent_softc(sc->tz_dev), - "error fetching current temperature -- %s\n", - AcpiFormatException(status)); + if (!acpi_tz_get_temperature(sc)) { /* XXX disable zone? go to max cooling? */ return_VOID; } - - ACPI_DEBUG_PRINT((ACPI_DB_VALUES, "got %d.%dC\n", TZ_KELVTOC(temp))); - sc->tz_temperature = temp; + temp = sc->tz_temperature; /* * Work out what we ought to be doing right now. @@ -972,19 +996,22 @@ acpi_tz_cooling_thread(void *arg) { struct acpi_tz_softc *sc; - int error, perf, temperature; + int error, perf, curr_temp, prev_temp; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); sc = (struct acpi_tz_softc *)arg; - temperature = sc->tz_temperature; + prev_temp = sc->tz_temperature; while (sc->tz_cooling_enabled) { - if (sc->tz_temperature >= sc->tz_zone.psv) + if (sc->tz_cooling_active) + (void)acpi_tz_get_temperature(sc); + curr_temp = sc->tz_temperature; + if (curr_temp >= sc->tz_zone.psv) sc->tz_cooling_active = TRUE; if (sc->tz_cooling_active) { - perf = sc->tz_zone.tc1 * (sc->tz_temperature - temperature) + - sc->tz_zone.tc2 * (sc->tz_temperature - sc->tz_zone.psv); + perf = sc->tz_zone.tc1 * (curr_temp - prev_temp) + + sc->tz_zone.tc2 * (curr_temp - sc->tz_zone.psv); perf /= 10; if (perf != 0) { @@ -1001,7 +1028,7 @@ } } } - temperature = sc->tz_temperature; + prev_temp = curr_temp; tsleep(&sc->tz_cooling_proc, PZERO, "cooling", hz * sc->tz_zone.tsp / 10); } ==== //depot/projects/smpng/sys/dev/ata/ata-all.c#72 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.254 2005/08/17 15:00:33 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.255 2005/08/25 15:45:03 sos Exp $"); #include "opt_ata.h" #include @@ -615,7 +615,9 @@ atadev->mode = ATA_DMA_MAX; } else { - if (ata_dma && ch->dma) + if (ata_dma && ch->dma && + (ata_umode(&atadev->param) > 0 || + ata_wmode(&atadev->param) > 0)) atadev->mode = ATA_DMA_MAX; } } ==== //depot/projects/smpng/sys/dev/ata/ata-chipset.c#55 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.129 2005/08/17 15:00:33 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.131 2005/08/23 08:53:01 sos Exp $"); #include "opt_ata.h" #include @@ -75,6 +75,7 @@ static int ata_ali_chipinit(device_t dev); static int ata_ali_allocate(device_t dev); static int ata_ali_sata_allocate(device_t dev); +static void ata_ali_reset(device_t dev); static void ata_ali_setmode(device_t dev, int mode); static int ata_amd_chipinit(device_t dev); static int ata_cyrix_chipinit(device_t dev); @@ -878,26 +879,28 @@ break; case ALINEW: - /* deactivate the ATAPI FIFO and enable ATAPI UDMA */ - pci_write_config(dev, 0x53, - pci_read_config(dev, 0x53, 1) | 0x01, 1); + /* use device interrupt as byte count end */ + pci_write_config(dev, 0x4a, pci_read_config(dev, 0x4a, 1) | 0x20, 1); /* enable cable detection and UDMA support on newer chips */ pci_write_config(dev, 0x4b, pci_read_config(dev, 0x4b, 1) | 0x09, 1); + /* enable ATAPI UDMA mode */ + pci_write_config(dev, 0x53, pci_read_config(dev, 0x53, 1) | 0x01, 1); + /* only chips with revision > 0xc4 can do 48bit DMA */ if (ctlr->chip->chiprev <= 0xc4) device_printf(dev, "using PIO transfers above 137GB as workaround for " "48bit DMA access bug, expect reduced performance\n"); + ctlr->reset = ata_ali_reset; ctlr->allocate = ata_ali_allocate; ctlr->setmode = ata_ali_setmode; break; case ALIOLD: /* deactivate the ATAPI FIFO and enable ATAPI UDMA */ - pci_write_config(dev, 0x53, - (pci_read_config(dev, 0x53, 1) & ~0x02) | 0x03, 1); + pci_write_config(dev, 0x53, pci_read_config(dev, 0x53, 1) | 0x03, 1); ctlr->setmode = ata_ali_setmode; break; } @@ -963,6 +966,39 @@ } static void >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 26 19:14:11 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 741D616A421; Fri, 26 Aug 2005 19:14:10 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B08D16A41F for ; Fri, 26 Aug 2005 19:14:10 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CEE7843D45 for ; Fri, 26 Aug 2005 19:14:09 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QJE9eE075087 for ; Fri, 26 Aug 2005 19:14:09 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QJE9ke075077 for perforce@freebsd.org; Fri, 26 Aug 2005 19:14:09 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 19:14:09 GMT Message-Id: <200508261914.j7QJE9ke075077@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82639 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 19:14:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=82639 Change 82639 by anholt@anholt_leguin on 2005/08/26 19:13:48 Fix more mismerges, add /*- headers, and fix include paths. Affected files ... .. //depot/projects/drm-merge/sys/dev/drm/radeon_drv.h#7 edit .. //depot/projects/drm-merge/sys/dev/drm/via_3d_reg.h#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_dma.c#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_drm.h#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_drv.c#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_drv.h#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_ds.c#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_ds.h#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_irq.c#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_map.c#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_mm.c#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_mm.h#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_verifier.c#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_verifier.h#3 edit .. //depot/projects/drm-merge/sys/dev/drm/via_video.c#3 edit Differences ... ==== //depot/projects/drm-merge/sys/dev/drm/radeon_drv.h#7 (text+ko) ==== @@ -328,14 +328,6 @@ drm_file_t* filp_priv, drm_radeon_cmd_buffer_t* cmdbuf ); -/* r300_cmdbuf.c */ -extern void r300_init_reg_flags(void); - -extern int r300_do_cp_cmdbuf( drm_device_t* dev, - DRMFILE filp, - drm_file_t* filp_priv, - drm_radeon_cmd_buffer_t* cmdbuf ); - /* Flags for stats.boxes */ #define RADEON_BOX_DMA_IDLE 0x1 ==== //depot/projects/drm-merge/sys/dev/drm/via_3d_reg.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * ==== //depot/projects/drm-merge/sys/dev/drm/via_dma.c#3 (text+ko) ==== @@ -1,4 +1,5 @@ -/* via_dma.c -- DMA support for the VIA Unichrome/Pro +/*- + * via_dma.c -- DMA support for the VIA Unichrome/Pro * * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. * All Rights Reserved. @@ -36,11 +37,11 @@ * $FreeBSD$ */ -#include "drmP.h" -#include "drm.h" -#include "via_drm.h" -#include "via_drv.h" -#include "via_3d_reg.h" +#include "dev/drm/drmP.h" +#include "dev/drm/drm.h" +#include "dev/drm/via_drm.h" +#include "dev/drm/via_drv.h" +#include "dev/drm/via_3d_reg.h" #define CMDBUF_ALIGNMENT_SIZE (0x100) #define CMDBUF_ALIGNMENT_MASK (0x0ff) ==== //depot/projects/drm-merge/sys/dev/drm/via_drm.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * ==== //depot/projects/drm-merge/sys/dev/drm/via_drv.c#3 (text+ko) ==== @@ -29,11 +29,11 @@ * $FreeBSD$ */ -#include "drmP.h" -#include "drm.h" -#include "via_drm.h" -#include "via_drv.h" -#include "drm_pciids.h" +#include "dev/drm/drmP.h" +#include "dev/drm/drm.h" +#include "dev/drm/via_drm.h" +#include "dev/drm/via_drv.h" +#include "dev/drm/drm_pciids.h" /* drv_PCI_IDs comes from drm_pciids.h, generated from drm_pciids.txt. */ static drm_pci_id_list_t via_pciidlist[] = { ==== //depot/projects/drm-merge/sys/dev/drm/via_drv.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * @@ -36,7 +36,7 @@ #define DRIVER_MINOR 6 #define DRIVER_PATCHLEVEL 7 -#include "via_verifier.h" +#include "dev/drm/via_verifier.h" #define VIA_PCI_BUF_SIZE 60000 #define VIA_FIRE_BUF_SIZE 1024 ==== //depot/projects/drm-merge/sys/dev/drm/via_ds.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * Copyright 2000 Silicon Integrated Systems Corp, Inc., HsinChu, Taiwan. @@ -25,9 +25,9 @@ * $FreeBSD$ */ -#include "drmP.h" +#include "dev/drm/drmP.h" -#include "via_ds.h" +#include "dev/drm/via_ds.h" extern unsigned int VIA_DEBUG; set_t *via_setInit(void) ==== //depot/projects/drm-merge/sys/dev/drm/via_ds.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * Copyright 2000 Silicon Integrated Systems Corp, Inc., HsinChu, Taiwan. @@ -28,7 +28,7 @@ #ifndef _via_ds_h_ #define _via_ds_h_ -#include "drmP.h" +#include "dev/drm/drmP.h" /* Set Data Structure */ #define SET_SIZE 5000 ==== //depot/projects/drm-merge/sys/dev/drm/via_irq.c#3 (text+ko) ==== @@ -1,4 +1,5 @@ -/* via_irq.c +/*- + * via_irq.c * * Copyright 2004 BEAM Ltd. * Copyright 2002 Tungsten Graphics, Inc. @@ -37,10 +38,10 @@ * $FreeBSD$ */ -#include "drmP.h" -#include "drm.h" -#include "via_drm.h" -#include "via_drv.h" +#include "dev/drm/drmP.h" +#include "dev/drm/drm.h" +#include "dev/drm/via_drm.h" +#include "dev/drm/via_drv.h" #define VIA_REG_INTERRUPT 0x200 ==== //depot/projects/drm-merge/sys/dev/drm/via_map.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * @@ -23,9 +23,9 @@ * * $FreeBSD$ */ -#include "drmP.h" -#include "via_drm.h" -#include "via_drv.h" +#include "dev/drm/drmP.h" +#include "dev/drm/via_drm.h" +#include "dev/drm/via_drv.h" static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init) { ==== //depot/projects/drm-merge/sys/dev/drm/via_mm.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * @@ -23,11 +23,11 @@ * * $FreeBSD$ */ -#include "drmP.h" -#include "via_drm.h" -#include "via_drv.h" -#include "via_ds.h" -#include "via_mm.h" +#include "dev/drm/drmP.h" +#include "dev/drm/via_drm.h" +#include "dev/drm/via_drv.h" +#include "dev/drm/via_ds.h" +#include "dev/drm/via_mm.h" #define MAX_CONTEXT 100 ==== //depot/projects/drm-merge/sys/dev/drm/via_mm.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. * ==== //depot/projects/drm-merge/sys/dev/drm/via_verifier.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 2004 The Unichrome Project. All Rights Reserved. * Copyright 2005 Thomas Hellstrom. All Rights Reserved. * @@ -31,12 +31,12 @@ */ -#include "via_3d_reg.h" -#include "drmP.h" -#include "drm.h" -#include "via_drm.h" -#include "via_verifier.h" -#include "via_drv.h" +#include "dev/drm/via_3d_reg.h" +#include "dev/drm/drmP.h" +#include "dev/drm/drm.h" +#include "dev/drm/via_drm.h" +#include "dev/drm/via_verifier.h" +#include "dev/drm/via_drv.h" typedef enum{ state_command, ==== //depot/projects/drm-merge/sys/dev/drm/via_verifier.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 2004 The Unichrome Project. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a ==== //depot/projects/drm-merge/sys/dev/drm/via_video.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* +/*- * Copyright 2005 Thomas Hellstrom. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -27,9 +27,9 @@ * $FreeBSD$ */ -#include "drmP.h" -#include "via_drm.h" -#include "via_drv.h" +#include "dev/drm/drmP.h" +#include "dev/drm/via_drm.h" +#include "dev/drm/via_drv.h" void via_init_futex(drm_via_private_t *dev_priv) From owner-p4-projects@FreeBSD.ORG Fri Aug 26 19:15:12 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 766E416A421; Fri, 26 Aug 2005 19:15:12 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3963116A41F for ; Fri, 26 Aug 2005 19:15:12 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E72A443D49 for ; Fri, 26 Aug 2005 19:15:11 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QJFBq7075163 for ; Fri, 26 Aug 2005 19:15:11 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QJFB1Q075160 for perforce@freebsd.org; Fri, 26 Aug 2005 19:15:11 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 19:15:11 GMT Message-Id: <200508261915.j7QJFB1Q075160@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82641 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 19:15:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=82641 Change 82641 by anholt@anholt_leguin on 2005/08/26 19:14:23 MF DRI CVS 2005-08-26 Affected files ... .. //depot/projects/drm-merge-vendor/sys/dev/drm/ati_pcigart.c#4 edit Differences ... ==== //depot/projects/drm-merge-vendor/sys/dev/drm/ati_pcigart.c#4 (text+ko) ==== @@ -65,7 +65,7 @@ bzero(pci_gart, ATI_PCIGART_TABLE_SIZE); - KASSERT(PAGE_SIZE >= ATI_PCIGART_PAGE_SIZE, "page size too small"); + KASSERT(PAGE_SIZE >= ATI_PCIGART_PAGE_SIZE, ("page size too small")); for ( i = 0 ; i < pages ; i++ ) { page_base = (u32) dev->sg->busaddr[i]; From owner-p4-projects@FreeBSD.ORG Fri Aug 26 19:16:14 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D6A816A44E; Fri, 26 Aug 2005 19:16:14 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E9E8316A44C for ; Fri, 26 Aug 2005 19:16:13 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B8DBC43D46 for ; Fri, 26 Aug 2005 19:16:13 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QJGDpo075244 for ; Fri, 26 Aug 2005 19:16:13 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QJGDZ9075241 for perforce@freebsd.org; Fri, 26 Aug 2005 19:16:13 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 19:16:13 GMT Message-Id: <200508261916.j7QJGDZ9075241@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82642 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 19:16:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=82642 Change 82642 by anholt@anholt_leguin on 2005/08/26 19:15:46 MF DRI vendor branch 2005-08-26. Affected files ... .. //depot/projects/drm-merge/sys/dev/drm/ati_pcigart.c#6 integrate .. //depot/projects/drm-merge/sys/dev/drm/r300_cmdbuf.c#2 integrate .. //depot/projects/drm-merge/sys/dev/drm/r300_reg.h#2 integrate Differences ... ==== //depot/projects/drm-merge/sys/dev/drm/ati_pcigart.c#6 (text+ko) ==== @@ -66,7 +66,7 @@ bzero(pci_gart, ATI_PCIGART_TABLE_SIZE); - KASSERT(PAGE_SIZE >= ATI_PCIGART_PAGE_SIZE, "page size too small"); + KASSERT(PAGE_SIZE >= ATI_PCIGART_PAGE_SIZE, ("page size too small")); for ( i = 0 ; i < pages ; i++ ) { page_base = (u32) dev->sg->busaddr[i]; ==== //depot/projects/drm-merge/sys/dev/drm/r300_cmdbuf.c#2 (text+ko) ==== ==== //depot/projects/drm-merge/sys/dev/drm/r300_reg.h#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Fri Aug 26 21:30:02 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4013516A421; Fri, 26 Aug 2005 21:30:02 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0134816A41F for ; Fri, 26 Aug 2005 21:30:02 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BB72C43D6E for ; Fri, 26 Aug 2005 21:29:57 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QLTvi4087199 for ; Fri, 26 Aug 2005 21:29:57 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QLTvYA087196 for perforce@freebsd.org; Fri, 26 Aug 2005 21:29:57 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 21:29:57 GMT Message-Id: <200508262129.j7QLTvYA087196@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82647 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 21:30:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=82647 Change 82647 by anholt@anholt_leguin on 2005/08/26 21:29:30 MF DRI CVS 2005-08-26 #2: Resource allocation fix. Affected files ... .. //depot/projects/drm-merge-vendor/sys/dev/drm/drmP.h#5 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_bufs.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_drv.c#5 edit Differences ... ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drmP.h#5 (text+ko) ==== @@ -686,6 +686,9 @@ unsigned use_mtrr :1; }; +/* Length for the array of resource pointers for drm_get_resource_*. */ +#define DRM_MAX_PCI_RESOURCE 3 + /** * DRM device functions structure */ @@ -748,6 +751,10 @@ #endif void *irqh; /* Handle from bus_setup_intr */ + /* Storage of resource pointers for drm_get_resource_* */ + struct resource *pcir[DRM_MAX_PCI_RESOURCE]; + int pcirid[DRM_MAX_PCI_RESOURCE]; + int pci_domain; int pci_bus; int pci_slot; ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drm_bufs.c#4 (text+ko) ==== @@ -31,6 +31,8 @@ * */ +#include "dev/pci/pcireg.h" + #include "drmP.h" /* @@ -49,46 +51,45 @@ return order; } -unsigned long drm_get_resource_start(drm_device_t *dev, unsigned int resource) +/* Allocation of PCI memory resources (framebuffer, registers, etc.) for + * drm_get_resource_*. Note that they are not RF_ACTIVE, so there's no virtual + * address for accessing them. Cleaned up at lastclose. + */ +static int drm_alloc_resource(drm_device_t *dev, int resource) { - struct resource *bsr; - unsigned long offset; + if (resource >= DRM_MAX_PCI_RESOURCE) { + DRM_ERROR("Resource %d too large\n", resource); + return 1; + } + if (dev->pcir[resource] != NULL) + return 0; - resource = resource * 4 + 0x10; + dev->pcirid[resource] = PCIR_BAR(resource); + dev->pcir[resource] = bus_alloc_resource_any(dev->device, + SYS_RES_MEMORY, &dev->pcirid[resource], RF_SHAREABLE); - bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &resource, - RF_ACTIVE | RF_SHAREABLE); - if (bsr == NULL) { + if (dev->pcir[resource] == NULL) { DRM_ERROR("Couldn't find resource 0x%x\n", resource); - return 0; + return 1; } - offset = rman_get_start(bsr); + return 0; +} - bus_release_resource(dev->device, SYS_RES_MEMORY, resource, bsr); +unsigned long drm_get_resource_start(drm_device_t *dev, unsigned int resource) +{ + if (drm_alloc_resource(dev, resource) != 0) + return 0; - return offset; + return rman_get_start(dev->pcir[resource]); } unsigned long drm_get_resource_len(drm_device_t *dev, unsigned int resource) { - struct resource *bsr; - unsigned long len; + if (drm_alloc_resource(dev, resource) != 0) + return 0; - resource = resource * 4 + 0x10; - - bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &resource, - RF_ACTIVE | RF_SHAREABLE); - if (bsr == NULL) { - DRM_ERROR("Couldn't find resource 0x%x\n", resource); - return ENOMEM; - } - - len = rman_get_size(bsr); - - bus_release_resource(dev->device, SYS_RES_MEMORY, resource, bsr); - - return len; + return rman_get_size(dev->pcir[resource]); } int drm_addmap(drm_device_t * dev, unsigned long offset, unsigned long size, ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drm_drv.c#5 (text+ko) ==== @@ -474,6 +474,13 @@ TAILQ_FOREACH_SAFE(map, &dev->maplist, link, mapsave) { drm_rmmap(dev, map); } + for (i = 0; i < DRM_MAX_PCI_RESOURCE; i++) { + if (dev->pcir[i] == NULL) + continue; + bus_release_resource(dev->device, SYS_RES_MEMORY, + dev->pcirid[i], dev->pcir[i]); + dev->pcir[i] = NULL; + } drm_dma_takedown(dev); if ( dev->lock.hw_lock ) { From owner-p4-projects@FreeBSD.ORG Fri Aug 26 21:31:05 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 049A116A421; Fri, 26 Aug 2005 21:31:05 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BBA7216A41F for ; Fri, 26 Aug 2005 21:31:04 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 95F8D43D58 for ; Fri, 26 Aug 2005 21:30:59 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QLUxir087314 for ; Fri, 26 Aug 2005 21:30:59 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QLUxpR087311 for perforce@freebsd.org; Fri, 26 Aug 2005 21:30:59 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 21:30:59 GMT Message-Id: <200508262130.j7QLUxpR087311@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82648 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 21:31:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=82648 Change 82648 by anholt@anholt_leguin on 2005/08/26 21:30:43 MF DRI vendor branch 2005-08-26 (resource allocation fix, 1 compile fix) Affected files ... .. //depot/projects/drm-merge/sys/dev/drm/drmP.h#8 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_bufs.c#7 integrate .. //depot/projects/drm-merge/sys/dev/drm/drm_drv.c#6 integrate Differences ... ==== //depot/projects/drm-merge/sys/dev/drm/drmP.h#8 (text+ko) ==== @@ -687,6 +687,9 @@ unsigned use_mtrr :1; }; +/* Length for the array of resource pointers for drm_get_resource_*. */ +#define DRM_MAX_PCI_RESOURCE 3 + /** * DRM device functions structure */ @@ -749,6 +752,10 @@ #endif void *irqh; /* Handle from bus_setup_intr */ + /* Storage of resource pointers for drm_get_resource_* */ + struct resource *pcir[DRM_MAX_PCI_RESOURCE]; + int pcirid[DRM_MAX_PCI_RESOURCE]; + int pci_domain; int pci_bus; int pci_slot; ==== //depot/projects/drm-merge/sys/dev/drm/drm_bufs.c#7 (text+ko) ==== @@ -32,6 +32,8 @@ * $FreeBSD$ */ +#include "dev/pci/pcireg.h" + #include "dev/drm/drmP.h" /* @@ -50,46 +52,45 @@ return order; } -unsigned long drm_get_resource_start(drm_device_t *dev, unsigned int resource) +/* Allocation of PCI memory resources (framebuffer, registers, etc.) for + * drm_get_resource_*. Note that they are not RF_ACTIVE, so there's no virtual + * address for accessing them. Cleaned up at lastclose. + */ +static int drm_alloc_resource(drm_device_t *dev, int resource) { - struct resource *bsr; - unsigned long offset; + if (resource >= DRM_MAX_PCI_RESOURCE) { + DRM_ERROR("Resource %d too large\n", resource); + return 1; + } + if (dev->pcir[resource] != NULL) + return 0; - resource = resource * 4 + 0x10; + dev->pcirid[resource] = PCIR_BAR(resource); + dev->pcir[resource] = bus_alloc_resource_any(dev->device, + SYS_RES_MEMORY, &dev->pcirid[resource], RF_SHAREABLE); - bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &resource, - RF_ACTIVE | RF_SHAREABLE); - if (bsr == NULL) { + if (dev->pcir[resource] == NULL) { DRM_ERROR("Couldn't find resource 0x%x\n", resource); - return 0; + return 1; } - offset = rman_get_start(bsr); + return 0; +} - bus_release_resource(dev->device, SYS_RES_MEMORY, resource, bsr); +unsigned long drm_get_resource_start(drm_device_t *dev, unsigned int resource) +{ + if (drm_alloc_resource(dev, resource) != 0) + return 0; - return offset; + return rman_get_start(dev->pcir[resource]); } unsigned long drm_get_resource_len(drm_device_t *dev, unsigned int resource) { - struct resource *bsr; - unsigned long len; + if (drm_alloc_resource(dev, resource) != 0) + return 0; - resource = resource * 4 + 0x10; - - bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &resource, - RF_ACTIVE | RF_SHAREABLE); - if (bsr == NULL) { - DRM_ERROR("Couldn't find resource 0x%x\n", resource); - return ENOMEM; - } - - len = rman_get_size(bsr); - - bus_release_resource(dev->device, SYS_RES_MEMORY, resource, bsr); - - return len; + return rman_get_size(dev->pcir[resource]); } int drm_addmap(drm_device_t * dev, unsigned long offset, unsigned long size, ==== //depot/projects/drm-merge/sys/dev/drm/drm_drv.c#6 (text+ko) ==== @@ -34,7 +34,7 @@ #include "dev/drm/drmP.h" #include "dev/drm/drm.h" -#include "drm_sarea.h" +#include "dev/drm/drm_sarea.h" int drm_debug_flag = 0; @@ -475,6 +475,13 @@ TAILQ_FOREACH_SAFE(map, &dev->maplist, link, mapsave) { drm_rmmap(dev, map); } + for (i = 0; i < DRM_MAX_PCI_RESOURCE; i++) { + if (dev->pcir[i] == NULL) + continue; + bus_release_resource(dev->device, SYS_RES_MEMORY, + dev->pcirid[i], dev->pcir[i]); + dev->pcir[i] = NULL; + } drm_dma_takedown(dev); if ( dev->lock.hw_lock ) { From owner-p4-projects@FreeBSD.ORG Fri Aug 26 21:44:16 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8199616A421; Fri, 26 Aug 2005 21:44:16 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4038316A41F for ; Fri, 26 Aug 2005 21:44:16 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0E52E43D49 for ; Fri, 26 Aug 2005 21:44:16 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QLiFUF087723 for ; Fri, 26 Aug 2005 21:44:15 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QLiFDC087720 for perforce@freebsd.org; Fri, 26 Aug 2005 21:44:15 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 21:44:15 GMT Message-Id: <200508262144.j7QLiFDC087720@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82649 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 21:44:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=82649 Change 82649 by anholt@anholt_leguin on 2005/08/26 21:43:54 Remove FreeBSD local diffs now that resource allocation is fixed. Affected files ... .. //depot/projects/drm-merge/sys/dev/drm/radeon_cp.c#7 edit Differences ... ==== //depot/projects/drm-merge/sys/dev/drm/radeon_cp.c#7 (text+ko) ==== @@ -35,7 +35,7 @@ #include "dev/drm/radeon_drm.h" #include "dev/drm/radeon_drv.h" #include "dev/drm/r300_reg.h" -#include "r300_reg.h" +#include "dev/drm/r300_reg.h" #define RADEON_FIFO_DEBUG 0 @@ -1491,6 +1491,7 @@ dev_priv->depth_pitch_offset = (((dev_priv->depth_pitch / 64) << 22) | ((dev_priv->depth_offset + dev_priv->fb_location) >> 10)); + dev_priv->gart_size = init->gart_size; dev_priv->gart_vm_start = dev_priv->fb_location + RADEON_READ(RADEON_CONFIG_APER_SIZE); @@ -2069,11 +2070,6 @@ break; } - /* Disable initmaps because it is broken on FreeBSD, and results in - * crashes on startup for some. The proper fix will involve being - * smarter about allocating PCI resources. - */ - /* if (drm_device_is_agp(dev)) dev_priv->flags |= CHIP_IS_AGP; @@ -2106,7 +2102,6 @@ _DRM_WRITE_COMBINING, &map); if (ret != 0) return ret; - */ return 0; } From owner-p4-projects@FreeBSD.ORG Fri Aug 26 23:31:27 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8868B16A421; Fri, 26 Aug 2005 23:31:26 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 61D9816A41F for ; Fri, 26 Aug 2005 23:31:26 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1AA0243D55 for ; Fri, 26 Aug 2005 23:31:26 +0000 (GMT) (envelope-from anholt@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7QNVP9u093346 for ; Fri, 26 Aug 2005 23:31:26 GMT (envelope-from anholt@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7QNVP26093343 for perforce@freebsd.org; Fri, 26 Aug 2005 23:31:25 GMT (envelope-from anholt@freebsd.org) Date: Fri, 26 Aug 2005 23:31:25 GMT Message-Id: <200508262331.j7QNVP26093343@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anholt@freebsd.org using -f From: Eric Anholt To: Perforce Change Reviews Cc: Subject: PERFORCE change 82652 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2005 23:31:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=82652 Change 82652 by anholt@anholt_leguin on 2005/08/26 23:30:55 MF DRI CVS 2005-08-26 #3: Fix up MGA DRM from nonroot fallout and others. Affected files ... .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_bufs.c#5 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/drm_pci.c#4 edit .. //depot/projects/drm-merge-vendor/sys/dev/drm/mga_dma.c#4 edit Differences ... ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drm_bufs.c#5 (text+ko) ==== @@ -96,17 +96,28 @@ drm_map_type_t type, drm_map_flags_t flags, drm_local_map_t **map_ptr) { drm_local_map_t *map; + int align; + /*drm_agp_mem_t *entry; + int valid;*/ /* Only allow shared memory to be removable since we only keep enough * book keeping information about shared memory to allow for removal * when processes fork. */ - if ((flags & _DRM_REMOVABLE) && type != _DRM_SHM) + if ((flags & _DRM_REMOVABLE) && type != _DRM_SHM) { + DRM_ERROR("Requested removable map for non-DRM_SHM\n"); return EINVAL; - if ((offset & PAGE_MASK) || (size & PAGE_MASK)) + } + if ((offset & PAGE_MASK) || (size & PAGE_MASK)) { + DRM_ERROR("offset/size not page aligned: 0x%lx/0x%lx\n", + offset, size); return EINVAL; - if (offset + size < offset) + } + if (offset + size < offset) { + DRM_ERROR("offset and size wrap around: 0x%lx/0x%lx\n", + offset, size); return EINVAL; + } DRM_DEBUG("offset = 0x%08lx, size = 0x%08lx, type = %d\n", offset, size, type); @@ -173,25 +184,21 @@ } break; case _DRM_AGP: - { - drm_agp_mem_t *entry; - int valid = 0; - - map->offset += dev->agp->base; - map->mtrr = dev->agp->mtrr; /* for getmap */ - for (entry = dev->agp->memory; entry; - entry = entry->next) - if ((map->offset >= entry->bound) && - (map->offset + map->size <= - entry->bound + entry->pages * PAGE_SIZE)) { - valid = 1; - break; - } - if (!valid) { - free(map, M_DRM); - return DRM_ERR(EACCES); + /*valid = 0;*/ + map->offset += dev->agp->base; + map->mtrr = dev->agp->mtrr; /* for getmap */ + /*for (entry = dev->agp->memory; entry; entry = entry->next) { + if ((map->offset >= entry->bound) && + (map->offset + map->size <= + entry->bound + entry->pages * PAGE_SIZE)) { + valid = 1; + break; } } + if (!valid) { + free(map, M_DRM); + return DRM_ERR(EACCES); + }*/ break; case _DRM_SCATTER_GATHER: if (!dev->sg) { @@ -201,8 +208,16 @@ map->offset = map->offset + dev->sg->handle; break; case _DRM_CONSISTENT: - map->dmah = drm_pci_alloc(dev, map->size, map->size, - 0xfffffffful); + /* Unfortunately, we don't get any alignment specification from + * the caller, so we have to guess. drm_pci_alloc requires + * a power-of-two alignment, so try to align the bus address of + * the map to it size if possible, otherwise just assume + * PAGE_SIZE alignment. + */ + align = map->size; + if ((align & (align - 1)) != 0) + align = PAGE_SIZE; + map->dmah = drm_pci_alloc(dev, map->size, align, 0xfffffffful); if (map->dmah == NULL) { free(map, M_DRM); return DRM_ERR(ENOMEM); @@ -211,6 +226,7 @@ map->offset = map->dmah->busaddr; break; default: + DRM_ERROR("Bad map type %d\n", map->type); free(map, M_DRM); return DRM_ERR(EINVAL); } @@ -364,7 +380,8 @@ { drm_device_dma_t *dma = dev->dma; drm_buf_entry_t *entry; - drm_agp_mem_t *agp_entry; + /*drm_agp_mem_t *agp_entry; + int valid*/ drm_buf_t *buf; unsigned long offset; unsigned long agp_offset; @@ -375,7 +392,7 @@ int page_order; int total; int byte_count; - int i, valid; + int i; drm_buf_t **temp_buflist; count = request->count; @@ -399,7 +416,11 @@ DRM_DEBUG( "total: %d\n", total ); /* Make sure buffers are located in AGP memory that we own */ - valid = 0; + /* Breaks MGA due to drm_alloc_agp not setting up entries for the + * memory. Safe to ignore for now because these ioctls are still + * root-only. + */ + /*valid = 0; for (agp_entry = dev->agp->memory; agp_entry; agp_entry = agp_entry->next) { if ((agp_offset >= agp_entry->bound) && @@ -412,7 +433,7 @@ if (!valid) { DRM_DEBUG("zone invalid\n"); return DRM_ERR(EINVAL); - } + }*/ entry = &dma->bufs[order]; ==== //depot/projects/drm-merge-vendor/sys/dev/drm/drm_pci.c#4 (text+ko) ==== @@ -58,6 +58,13 @@ drm_dma_handle_t *dmah; int ret; + /* Need power-of-two alignment, so fail the allocation if it isn't. */ + if ((align & (align - 1)) != 0) { + DRM_ERROR("drm_pci_alloc with non-power-of-two alignment %d\n", + (int)align); + return NULL; + } + dmah = malloc(sizeof(drm_dma_handle_t), M_DRM, M_ZERO | M_NOWAIT); if (dmah == NULL) return NULL; ==== //depot/projects/drm-merge-vendor/sys/dev/drm/mga_dma.c#4 (text+ko) ==== @@ -435,7 +435,7 @@ drm_mga_dma_bootstrap_t * dma_bs) { drm_mga_private_t * const dev_priv = (drm_mga_private_t *) dev->dev_private; - const unsigned int warp_size = mga_warp_microcode_size(dev_priv); + unsigned int warp_size = mga_warp_microcode_size(dev_priv); int err; unsigned offset; const unsigned secondary_size = dma_bs->secondary_bin_count @@ -448,13 +448,13 @@ /* Acquire AGP. */ err = drm_agp_acquire(dev); if (err) { - DRM_ERROR("Unable to acquire AGP\n"); + DRM_ERROR("Unable to acquire AGP: %d\n", err); return err; } err = drm_agp_info(dev, &info); if (err) { - DRM_ERROR("Unable to get AGP info\n"); + DRM_ERROR("Unable to get AGP info: %d\n", err); return err; } @@ -490,15 +490,21 @@ err = drm_bind_agp( dev_priv->agp_mem, 0 ); if (err) { - DRM_ERROR("Unable to bind AGP memory\n"); + DRM_ERROR("Unable to bind AGP memory: %d\n", err); return err; } + /* Make drm_addbufs happy by not trying to create a mapping for less + * than a page. + */ + if (warp_size < PAGE_SIZE) + warp_size = PAGE_SIZE; + offset = 0; err = drm_addmap( dev, offset, warp_size, _DRM_AGP, _DRM_READ_ONLY, & dev_priv->warp ); if (err) { - DRM_ERROR("Unable to map WARP microcode\n"); + DRM_ERROR("Unable to map WARP microcode: %d\n", err); return err; } @@ -506,7 +512,7 @@ err = drm_addmap( dev, offset, dma_bs->primary_size, _DRM_AGP, _DRM_READ_ONLY, & dev_priv->primary ); if (err) { - DRM_ERROR("Unable to map primary DMA region\n"); + DRM_ERROR("Unable to map primary DMA region: %d\n", err); return err; } @@ -514,7 +520,7 @@ err = drm_addmap( dev, offset, secondary_size, _DRM_AGP, 0, & dev->agp_buffer_map ); if (err) { - DRM_ERROR("Unable to map secondary DMA region\n"); + DRM_ERROR("Unable to map secondary DMA region: %d\n", err); return err; } @@ -526,7 +532,7 @@ err = drm_addbufs_agp( dev, & req ); if (err) { - DRM_ERROR("Unable to add secondary DMA buffers\n"); + DRM_ERROR("Unable to add secondary DMA buffers: %d\n", err); return err; } @@ -534,7 +540,7 @@ err = drm_addmap( dev, offset, agp_size - offset, _DRM_AGP, 0, & dev_priv->agp_textures ); if (err) { - DRM_ERROR("Unable to map AGP texture region\n"); + DRM_ERROR("Unable to map AGP texture region: %d\n", err); return err; } @@ -575,7 +581,7 @@ drm_mga_dma_bootstrap_t * dma_bs) { drm_mga_private_t * const dev_priv = (drm_mga_private_t *) dev->dev_private; - const unsigned int warp_size = mga_warp_microcode_size(dev_priv); + unsigned int warp_size = mga_warp_microcode_size(dev_priv); unsigned int primary_size; unsigned int bin_count; int err; @@ -587,11 +593,18 @@ return DRM_ERR(EFAULT); } + /* Make drm_addbufs happy by not trying to create a mapping for less + * than a page. + */ + if (warp_size < PAGE_SIZE) + warp_size = PAGE_SIZE; + /* The proper alignment is 0x100 for this mapping */ err = drm_addmap(dev, 0, warp_size, _DRM_CONSISTENT, _DRM_READ_ONLY, &dev_priv->warp); if (err != 0) { - DRM_ERROR("Unable to create mapping for WARP microcode\n"); + DRM_ERROR("Unable to create mapping for WARP microcode: %d\n", + err); return err; } @@ -611,7 +624,7 @@ } if (err != 0) { - DRM_ERROR("Unable to allocate primary DMA region\n"); + DRM_ERROR("Unable to allocate primary DMA region: %d\n", err); return DRM_ERR(ENOMEM); } @@ -636,7 +649,7 @@ } if (bin_count == 0) { - DRM_ERROR("Unable to add secondary DMA buffers\n"); + DRM_ERROR("Unable to add secondary DMA buffers: %d\n", err); return err; } @@ -674,7 +687,7 @@ err = drm_addmap( dev, dev_priv->mmio_base, dev_priv->mmio_size, _DRM_REGISTERS, _DRM_READ_ONLY, & dev_priv->mmio ); if (err) { - DRM_ERROR("Unable to map MMIO region\n"); + DRM_ERROR("Unable to map MMIO region: %d\n", err); return err; } @@ -683,7 +696,7 @@ _DRM_READ_ONLY | _DRM_LOCKED | _DRM_KERNEL, & dev_priv->status ); if (err) { - DRM_ERROR("Unable to map status region\n"); + DRM_ERROR("Unable to map status region: %d\n", err); return err; } @@ -845,14 +858,14 @@ } ret = mga_warp_install_microcode(dev_priv); - if (ret < 0) { - DRM_ERROR("failed to install WARP ucode!\n"); + if (ret != 0) { + DRM_ERROR("failed to install WARP ucode: %d!\n", ret); return ret; } ret = mga_warp_init(dev_priv); - if (ret < 0) { - DRM_ERROR("failed to init WARP engine!\n"); + if (ret != 0) { + DRM_ERROR("failed to init WARP engine: %d!\n", ret); return ret; } From owner-p4-projects@FreeBSD.ORG Sat Aug 27 13:19:32 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD20816A421; Sat, 27 Aug 2005 13:19:31 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7D91E16A41F for ; Sat, 27 Aug 2005 13:19:31 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0D33343D48 for ; Sat, 27 Aug 2005 13:19:31 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7RDJUhQ055754 for ; Sat, 27 Aug 2005 13:19:30 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7RDJQnS055751 for perforce@freebsd.org; Sat, 27 Aug 2005 13:19:26 GMT (envelope-from soc-bushman@freebsd.org) Date: Sat, 27 Aug 2005 13:19:26 GMT Message-Id: <200508271319.j7RDJQnS055751@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 82674 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Aug 2005 13:19:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=82674 Change 82674 by soc-bushman@soc-bushman_stinger on 2005/08/27 13:19:05 release stuff finisheD Affected files ... .. //depot/projects/soc2005/nsswitch_cached/patches/include.diff#1 add .. //depot/projects/soc2005/nsswitch_cached/patches/libc.diff#1 add .. //depot/projects/soc2005/nsswitch_cached/patches/usr.sbin.diff#1 add .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/Makefile#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/cached.8#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/cached.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/cached.conf#3 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/cached.conf.5#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/config.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/config.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/debug.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/debug.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/log.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/log.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/mp_rs_query.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/mp_rs_query.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/mp_ws_query.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/mp_ws_query.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/parser.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/parser.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/protocol.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/protocol.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/query.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/query.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/singletons.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/bin/singletons.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/Makefile#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/cachelib.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/hashfuncs.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/hashfuncs.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/hashtable.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/hashtable.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/include/cachelib.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/policies.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/cachelib/policies.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/test/Makefile#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/test/debug.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/test/debug.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/test/test.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.1/test/test.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/include/nscache.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/include/nscachedcli.h#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/Makefile#3 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/SYS.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/_fpmath.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/arith.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/_ctx_start.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/_set_tp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/_setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/divrem.m4#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/fabs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/flt_rounds.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/fpgetmask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/fpgetround.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/fpgetsticky.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/fpsetmask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/fpsetround.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/infinity.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/makecontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/modf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/rfork_thread.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/signalcontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/gen/sigsetjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/net/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/net/byte_swap_2.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/net/byte_swap_4.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/net/htonl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/net/htons.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/net/ntohl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/net/ntohs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/stdlib/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/string/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/string/bcopy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/string/bzero.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/string/ffs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/string/memcpy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/string/memmove.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/Ovfork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/brk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/cerror.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/exect.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/fork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/pipe.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/ptrace.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/sbrk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/setlogin.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/alpha/sys/sigreturn.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/SYS.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/_fpmath.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/arith.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/_set_tp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/_setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fabs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/flt_rounds.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fpgetmask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fpgetprec.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fpgetround.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fpgetsticky.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fpsetmask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fpsetprec.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/fpsetround.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/infinity.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/ldexp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/makecontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/modf.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/rfork_thread.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/signalcontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/gen/sigsetjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/net/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/net/htonl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/net/htons.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/net/ntohl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/net/ntohs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/bcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/bcopy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/bzero.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/memcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/memcpy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/memmove.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/memset.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/strcat.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/strcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/string/strcpy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/amd64_get_fsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/amd64_get_gsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/amd64_set_fsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/amd64_set_gsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/brk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/cerror.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/exect.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/getcontext.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/pipe.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/ptrace.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/reboot.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/sbrk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/setlogin.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/sigreturn.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/amd64/sys/vfork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/SYS.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/_fpmath.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/arith.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/_ctx_start.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/_set_tp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/_setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/alloca.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/divsi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/fabs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/infinity.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/makecontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/modf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/signalcontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/gen/sigsetjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/net/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/net/htonl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/net/htons.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/net/ntohl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/net/ntohs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/softfloat/arm-gcc.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/softfloat/milieu.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/softfloat/softfloat.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/stdlib/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/bcopy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/bzero.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/ffs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/memcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/memcpy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/memcpy_arm.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/memcpy_xscale.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/memmove.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/memset.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/strcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/strncmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/Ovfork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/brk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/cerror.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/fork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/pipe.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/ptrace.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/sbrk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/shmat.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/sigreturn.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/sys/syscall.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/creat.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/creat.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/gethostid.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/gethostid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/getwd.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/killpg.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/killpg.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/sethostid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/setpgrp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/setrgid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/setruid.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/setruid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/sigcompat.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/sigpause.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/sigsetmask.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/compat-43/sigvec.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/README#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_close.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_conv.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_debug.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_delete.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_get.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_open.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_overflow.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_page.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_put.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_search.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_seq.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_split.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/bt_utils.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/btree.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/btree/extern.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/changelog#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/db/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/db/db.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/docs/hash.usenix.ps#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/docs/libtp.usenix.ps#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/README#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/extern.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/hash.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/hash.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/hash_bigkey.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/hash_buf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/hash_func.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/hash_log2.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/hash_page.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/ndbm.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/hash/page.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/man/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/man/btree.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/man/dbm.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/man/dbopen.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/man/hash.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/man/mpool.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/man/recno.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/mpool/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/mpool/README#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/mpool/mpool.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/mpool/mpool.libtp#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/extern.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_close.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_delete.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_get.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_open.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_put.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_search.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_seq.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/rec_utils.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/recno/recno.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/Makefile#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/README#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/btree.tests/main.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/dbtest.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/driver2.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/makedb.sh#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/tcreat3.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/tdel.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/testit#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/thash4.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/tread2.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/tseq.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/hash.tests/tverify.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/db/test/run.test#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/_hdtoa.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/_ldtoa.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/glue.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/machdep_ldisQ.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/machdep_ldisd.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gdtoa/machdep_ldisx.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/__xuname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/_pthread_stubs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/_rand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/_spinlock_stub.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/_thread_init.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/alarm.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/alarm.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/arc4random.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/arc4random.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/assert.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/basename.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/basename.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/check_utility_compat.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/check_utility_compat.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/clock.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/clock.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/closedir.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/confstr.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/confstr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/crypt.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ctermid.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ctermid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/daemon.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/daemon.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/devname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/devname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/directory.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dirname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dirname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/disklabel.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dladdr.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dlfcn.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dlfunc.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dlinfo.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dllockinit.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/dlopen.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/drand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/erand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/err.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/err.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/errlst.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/errno.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/exec.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/exec.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fmtcheck.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fmtcheck.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fmtmsg.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fmtmsg.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fnmatch.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fnmatch.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fpclassify.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fpclassify.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/frexp.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/frexp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fstab.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ftok.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ftok.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fts.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/fts.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ftw.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ftw.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getbootfile.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getbootfile.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getbsize.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getbsize.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getcap.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getcap.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getcontext.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getcwd.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getcwd.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getdiskbyname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getdomainname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getdomainname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getfsent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getgrent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getgrent.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getgrouplist.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getgrouplist.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/gethostname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/gethostname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getloadavg.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getloadavg.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getlogin.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getmntinfo.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getmntinfo.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getnetgrent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getnetgrent.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getobjformat.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getobjformat.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getosreldate.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getosreldate.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpagesize.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpagesize.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpass.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpeereid.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpeereid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getprogname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getprogname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpwent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getpwent.c#5 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getttyent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getttyent.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getusershell.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getusershell.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getvfsbyname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/getvfsbyname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/glob.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/glob.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/initgroups.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/initgroups.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/isatty.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/isgreater.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/isinf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/isnan.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/jrand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/lcong48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ldexp.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ldexp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/lockf.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/lockf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/lrand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/makecontext.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/modf.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/mrand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/msgctl.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/msgget.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/msgrcv.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/msgsnd.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/nftw.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/nice.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/nice.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/nlist.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/nlist.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/nrand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/opendir.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pause.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pause.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pmadvise.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/popen.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/popen.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/posixshm.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pselect.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pselect.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/psignal.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/psignal.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pw_scan.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pw_scan.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pwcache.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/pwcache.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/raise.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/raise.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/rand48.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/rand48.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/readdir.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/readpassphrase.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/readpassphrase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/rewinddir.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/rfork_thread.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/scandir.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/scandir.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/seed48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/seekdir.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_destroy.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_getvalue.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_init.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_open.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_post.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem_wait.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/semctl.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setdomainname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sethostname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setjmp.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setjmperr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setmode.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setmode.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setproctitle.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setproctitle.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/setprogname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/shm_open.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/siginterrupt.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/siginterrupt.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/siglist.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/signal.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/signal.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sigsetops.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sigsetops.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sleep.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sleep.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/srand48.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/statvfs.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/statvfs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/stringlist.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/stringlist.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/strtofflags.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/strtofflags.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/swapcontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sysconf.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sysconf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sysctl.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sysctl.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sysctlbyname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sysctlnametomib.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/syslog.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/syslog.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/tcgetpgrp.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/tcsendbreak.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/tcsetattr.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/tcsetpgrp.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/telldir.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/telldir.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/termios.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/time.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/time.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/times.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/times.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/timezone.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/timezone.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/tls.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ttyname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ttyname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ttyslot.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/tzset.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ualarm.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ualarm.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ucontext.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ulimit.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/ulimit.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/uname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/uname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/unvis.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/unvis.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/usleep.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/usleep.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/utime.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/utime.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/valloc.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/valloc.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/vis.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/vis.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/wait.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/wait3.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/waitpid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/wordexp.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/wordexp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gmon/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gmon/gmon.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gmon/mcount.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gmon/moncontrol.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/SYS.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/_fpmath.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/arith.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/_ctx_start.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/_set_tp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/_setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/alloca.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/fabs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/flt_rounds.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/infinity.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/ldexp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/makecontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/modf.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/rfork_thread.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/signalcontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/gen/sigsetjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/net/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/net/htonl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/net/htons.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/net/ntohl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/net/ntohs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/stdlib/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/stdlib/abs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/stdlib/div.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/stdlib/labs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/stdlib/ldiv.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/bcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/bcopy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/bzero.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/ffs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/index.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/memchr.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/memcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/memcpy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/memmove.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/memset.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/rindex.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/strcat.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/strchr.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/strcmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/strcpy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/strlen.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/strncmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/strrchr.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/swab.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/wcschr.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/wcscmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/wcslen.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/string/wmemchr.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/Ovfork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/brk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/cerror.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/exect.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/getcontext.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_clr_watch.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_get_fsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_get_gsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_get_ioperm.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_get_ioperm.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_get_ldt.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_get_ldt.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_set_fsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_set_gsbase.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_set_ioperm.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_set_ldt.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_set_watch.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_set_watch.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_vm86.2#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/i386_vm86.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/pipe.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/ptrace.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/reboot.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/sbrk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/setlogin.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/sigreturn.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/i386/sys/syscall.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/SYS.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/_fpmath.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/arith.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__divdf3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__divdi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__divsf3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__divsi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__moddi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__modsi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__udivdi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__udivsi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__umoddi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/__umodsi3.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/_mcount.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/_set_tp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/_setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/fabs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/flt_rounds.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/fpgetmask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/fpgetround.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/fpsetmask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/fpsetround.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/infinity.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/makecontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/modf.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/signalcontext.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/sigsetjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/gen/unwind.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/net/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/net/byte_swap_2.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/net/byte_swap_4.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/net/htonl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/net/htons.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/net/ntohl.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/net/ntohs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/stdlib/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/string/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/string/bcopy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/string/bzero.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/string/ffs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/string/memcpy.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/string/memmove.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/Ovfork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/brk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/cerror.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/exect.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/fork.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/getcontext.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/pipe.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/ptrace.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/sbrk.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/setlogin.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/sigreturn.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/ia64/sys/swapcontext.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/fpmath.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/libc_private.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/namespace.h#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/nss_tls.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/reentrant.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/spinlock.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/include/un-namespace.h#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/big5.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/big5.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/btowc.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/btowc.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/collate.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/collate.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/collcmp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/ctype.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/digittoint.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/euc.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/euc.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/fix_grouping.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/gb18030.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/gb18030.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/gb2312.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/gb2312.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/gbk.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/gbk.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isalnum.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isalpha.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isascii.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isblank.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/iscntrl.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isctype.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isdigit.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isgraph.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isideogram.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/islower.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isphonogram.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isprint.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/ispunct.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isrune.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isspace.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isspecial.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isupper.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/iswalnum.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/iswctype.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/isxdigit.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/ldpart.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/ldpart.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/lmessages.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/lmessages.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/lmonetary.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/lmonetary.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/lnumeric.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/lnumeric.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/localeconv.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/localeconv.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mblen.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mblen.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mblocal.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbrlen.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbrlen.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbrtowc.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbrtowc.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbsinit.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbsinit.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbsnrtowcs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbsrtowcs.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbsrtowcs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbstowcs.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbstowcs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbtowc.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mbtowc.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mskanji.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/mskanji.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/multibyte.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/nextwctype.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/nextwctype.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/nl_langinfo.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/nl_langinfo.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/nomacros.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/none.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/rpmatch.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/rpmatch.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/rune.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/runefile.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/runetype.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/setlocale.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/setlocale.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/setlocale.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/setrunelocale.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/table.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/toascii.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/tolower.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/tolower.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/toupper.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/toupper.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/towlower.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/towupper.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/utf8.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/utf8.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcrtomb.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcrtomb.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcsftime.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcsftime.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcsnrtombs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcsrtombs.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcsrtombs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstod.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstod.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstof.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstoimax.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstol.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstol.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstold.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstoll.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstombs.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstombs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstoul.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstoull.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcstoumax.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctob.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctomb.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctomb.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctrans.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctrans.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctype.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wctype.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcwidth.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/locale/wcwidth.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/Makefile.inc#5 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/addr2ascii.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/addr2ascii.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ascii2addr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/base64.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/byteorder.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ether_addr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ethers.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/eui64.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/eui64.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/gai_strerror.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/gai_strerror.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getaddrinfo.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getaddrinfo.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/gethostbydns.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/gethostbyht.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/gethostbyname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/gethostbynis.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/gethostnamadr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getifaddrs.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getifaddrs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getifmaddrs.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getifmaddrs.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getipnodebyname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getnameinfo.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getnameinfo.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getnetbydns.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getnetbyht.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getnetbynis.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getnetent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getnetnamadr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getproto.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoent.c#5 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getprotoname.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getservbyname.c#6 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getservbyport.c#6 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getservent.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/getservent.c#15 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/herror.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/hesiod.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/hesiod.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/if_indextoname.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/if_indextoname.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/if_nameindex.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/if_nametoindex.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet6_opt_init.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet6_option_space.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet6_rth_space.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet6_rthdr_space.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_addr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_lnaof.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_makeaddr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_net.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_net_ntop.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_net_pton.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_neta.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_netof.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_network.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_ntoa.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_ntop.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/inet_pton.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ip6opt.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/linkaddr.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/linkaddr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/map_v4v6.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/name6.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/netdb_private.h#8 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ns_name.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ns_netint.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ns_parse.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ns_print.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/ns_ttl.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nsap_addr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nscache.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nscachedcli.c#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nsdispatch.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nsdispatch.c#5 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nslexer.l#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nsparser.y#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nss_backends.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/nss_compat.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/rcmd.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/rcmd.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/rcmdsh.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/rcmdsh.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/recv.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_comp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_config.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_data.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_debug.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_init.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_mkquery.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_mkupdate.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_query.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_send.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_send_private.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/res_update.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/resolver.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/rthdr.c#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/send.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/sockatmark.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/sockatmark.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/net/vars.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/C.msg#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/catclose.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/catgets.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/catopen.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/ko_KR.UTF-8.msg#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/ko_KR.eucKR.msg#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/msgcat.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/pl_PL.ISO8859-2.msg#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/nls/ru_RU.KOI8-R.msg#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_add_perm.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_calc_mask.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_calc_mask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_clear_perms.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_copy.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_copy_entry.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_create_entry.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_delete.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_delete.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_delete_entry.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_delete_entry.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_delete_perm.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_dup.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_entry.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_free.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_free.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_from_text.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_from_text.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get_entry.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get_perm_np.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get_permset.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get_qualifier.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_get_tag_type.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_init.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_init.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_perm.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_set.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_set.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_set_permset.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_set_qualifier.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_set_tag_type.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_size.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_support.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_support.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_to_text.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_to_text.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_valid.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/acl_valid.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/extattr.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/extattr.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac.conf.5#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_exec.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_free.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_get.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_get.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_is_present_np.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_prepare.3#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_set.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_set.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/mac_text.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/posix1e/posix1e.3#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/SYS.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/_fpmath.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/arith.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/Makefile.inc#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/_ctx_start.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/_set_tp.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/_setjmp.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/fabs.S#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/flt_rounds.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/fpgetmask.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/fpgetround.c#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/powerpc/gen/fpgetsticky.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 27 19:55:32 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F217B16A421; Sat, 27 Aug 2005 19:55:31 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AFADA16A41F for ; Sat, 27 Aug 2005 19:55:31 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8368943D46 for ; Sat, 27 Aug 2005 19:55:28 +0000 (GMT) (envelope-from soc-victor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j7RJtS0M079110 for ; Sat, 27 Aug 2005 19:55:28 GMT (envelope-from soc-victor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j7RJtStG079107 for perforce@freebsd.org; Sat, 27 Aug 2005 19:55:28 GMT (envelope-from soc-victor@freebsd.org) Date: Sat, 27 Aug 2005 19:55:28 GMT Message-Id: <200508271955.j7RJtStG079107@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-victor@freebsd.org using -f From: Victor Cruceru To: Perforce Change Reviews Cc: Subject: PERFORCE change 82680 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Aug 2005 19:55:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=82680 Change 82680 by soc-victor@soc-victor_82.76.158.176 on 2005/08/27 19:54:28 Added support for TCP-MIB::tcpConnectionProcess and TCP-MIB::tcpListenerProcess (based on "kern.file" sysctl ). Now we are fully compliant with the RFC 4022. Affected files ... .. //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#8 edit Differences ... ==== //depot/projects/soc2005/bsnmp/usr.sbin/bsnmpd/modules/snmp_tcp46/tcp46_snmp.c#8 (text+ko) ==== @@ -107,6 +107,7 @@ #include #include #include +#include /*forward declaration*/ static int @@ -206,6 +207,10 @@ struct tcp_index *listen_tcpoids; /*snmp vector for the unified v4 and v6 listners tcp table; malloc'd*/ size_t listen_tcpoids_len; /*the allocated len of the above vector */ + + struct xfile *xfiles; + size_t xfiles_len; + u_int xfiles_total; }; @@ -272,6 +277,11 @@ tcp46_state_g.xinpgen_len = 0; } + if (tcp46_state_g.xfiles != NULL && tcp46_state_g.xfiles_len > 0 ) { + free(tcp46_state_g.xfiles); + tcp46_state_g.xfiles = NULL; + tcp46_state_g.xfiles_len = 0; + } if (tcp46_registration_id > 0) { or_unregister(tcp46_registration_id); @@ -355,6 +365,26 @@ tcp46_loading_v }; + +static +pid_t +get_socket_pid(struct xtcpcb *tp) { + struct xfile *xf = NULL; + u_int n = 0; + assert(tp != NULL); + + for (xf = tcp46_state_g.xfiles, n = 0; n < tcp46_state_g.xfiles_total; ++n, ++xf) { + if (xf->xf_data == NULL) { + continue; + } + if (xf->xf_data == (void *)tp->xt_socket.xso_so) { + return (xf->xf_pid); + } + } + return ((pid_t)0); +} + + /* * Add an entry into the list associated with the old/ deprecated * tcpConnTable @@ -409,8 +439,8 @@ all_oid->index.subs[10] = (inaddr >> 0) & 0xff; all_oid->index.subs[11] = ntohs(tp->xt_inp.inp_fport); - /*FIX ME: this doesn't work*/ - all_oid->so_pgid = tp->xt_socket.so_pgid; + + all_oid->so_pgid = get_socket_pid(tp); } @@ -434,8 +464,8 @@ all_oid->index.subs[18] = IAT_ipv6; all_oid->index.subs[35] = ntohs(tp->xt_inp.in6p_fport); - /*FIX ME: this doesn't work*/ - all_oid->so_pgid = tp->xt_socket.so_pgid; + + all_oid->so_pgid = get_socket_pid(tp); } @@ -471,7 +501,8 @@ i++, _oid++ ) { if ( _oid->index.subs[0] == IAT_ipv6 ) { - if ( _oid->index.subs[17] == ntohs(tp->xt_inp.inp_lport) ){ + if ( _oid->index.subs[17] == ntohs(tp->xt_inp.inp_lport) && + listener_oid->so_pgid == _oid->so_pgid) { TCP46_DPRINTF((stderr, "V4: [%s] Got listener with port %d.\n ", __func__, _oid->index.subs[5])); @@ -522,7 +553,8 @@ i++, _oid++ ) { if ( _oid->index.subs[0] == IAT_ipv4 ) { - if ( _oid->index.subs[5] == ntohs(tp->xt_inp.in6p_lport) ) { + if ( _oid->index.subs[5] == ntohs(tp->xt_inp.in6p_lport) && + listener_oid->so_pgid == _oid->so_pgid ) { TCP46_DPRINTF((stderr, "[%s] Got listener with port %d.\n ", __func__, _oid->index.subs[5])); @@ -560,6 +592,9 @@ in_addr_t inaddr; assert(listener_oid != NULL); assert(tp != NULL); + + listener_oid->so_pgid = get_socket_pid(tp); + if ( check_duplicate6_listner( listener_oid, tp ) == 1 ) { return 1; } @@ -572,8 +607,8 @@ listener_oid->index.subs[3] = (inaddr >> 8) & 0xff; listener_oid->index.subs[4] = (inaddr >> 0) & 0xff; listener_oid->index.subs[5] = ntohs(tp->xt_inp.inp_lport); - /*FIX ME: this doesn't work*/ - listener_oid->so_pgid = tp->xt_socket.so_pgid; + + return 0; } @@ -595,6 +630,9 @@ int i = 0; assert(listener_oid != NULL); assert(tp != NULL); + + listener_oid->so_pgid = get_socket_pid(tp); + if ( check_duplicate4_listner( listener_oid, tp ) == 1 ) { return 1; } @@ -607,13 +645,45 @@ } listener_oid->index.subs[17] = ntohs(tp->xt_inp.in6p_lport); - /*FIX ME: this doesn't work*/ - listener_oid->so_pgid = tp->xt_socket.so_pgid; + + return 0; } static int +fetch_xfiles(void) { + size_t xfilesize = 0; + struct xfile *ptr = NULL; + + tcp46_state_g.xfiles_total = 0; + + /* Get the xfiles */ + if (sysctlbyname("kern.file", NULL, &xfilesize, NULL, 0)) { + syslog(LOG_ERR, "sysctlbyname(kern.file) failed: %m"); + return (-1); + } + if (xfilesize > tcp46_state_g.xfiles_len) { + if ((ptr = realloc(tcp46_state_g.xfiles, xfilesize)) == NULL) { + syslog(LOG_ERR, "%zu: %m", xfilesize); + return (-1); + } + tcp46_state_g.xfiles = ptr; + tcp46_state_g.xfiles_len = xfilesize; + } + + + if (sysctlbyname("kern.file", tcp46_state_g.xfiles, &xfilesize, NULL, 0) < 0) { + syslog(LOG_ERR, "sysctlbyname(kern.file) failed: %m"); + return (-1); + } + tcp46_state_g.xfiles_total = xfilesize / sizeof(struct xfile); + return 0; +} + + + +static int fetch_tcp(void) { size_t len; @@ -657,6 +727,10 @@ tcp46_state_g.all_tcp_total = 0; tcp46_state_g.listen_tcp_total = 0; + if (fetch_xfiles() != 0) { + TCP46_DPRINTF((stderr, "[%s] Failed to fetch the xfiles\n ", __func__ )); + } + /*First count the endpoints*/ for (ptr = (struct xinpgen *)(void *)((char *)tcp46_state_g.xinpgen + tcp46_state_g.xinpgen->xig_len); ptr->xig_len > sizeof(struct xinpgen);