From owner-p4-projects@FreeBSD.ORG Sun Aug 5 02:12:11 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F39DA16A41F; Sun, 5 Aug 2007 02:12:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8BBB16A417 for ; Sun, 5 Aug 2007 02:12:10 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CA7BC13C469 for ; Sun, 5 Aug 2007 02:12:10 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l752CAXg009539 for ; Sun, 5 Aug 2007 02:12:10 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l752CAgR009533 for perforce@freebsd.org; Sun, 5 Aug 2007 02:12:10 GMT (envelope-from andrew@freebsd.org) Date: Sun, 5 Aug 2007 02:12:10 GMT Message-Id: <200708050212.l752CAgR009533@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 124702 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, 05 Aug 2007 02:12:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=124702 Change 124702 by andrew@andrew_hermies on 2007/08/05 02:12:07 Add facund_read_directory_patchlevel to read a directory/patch object Add facund_run_update to execute freebsd-update. It dosn't run the command yet but echo's the command it would have run. Update the install_patches handler to read the arguments and call facund_run_update Start the rollback_patches handler Fix the frontend to send the correct data to install_patches Affected files ... .. //depot/projects/soc2007/andrew-update/backend/facund-be.c#20 edit .. //depot/projects/soc2007/andrew-update/frontend/facund/computer.py#8 edit .. //depot/projects/soc2007/andrew-update/frontend/facund/controller.py#5 edit .. //depot/projects/soc2007/andrew-update/frontend/facund/gui/main_window.py#9 edit Differences ... ==== //depot/projects/soc2007/andrew-update/backend/facund-be.c#20 (text+ko) ==== @@ -564,6 +564,7 @@ /* * Takes a either facund array of string objects or a single string * object and returns a C array of C strings of the objects + * TODO: Rename as it is a generic function to extract data from an array */ static const char ** facund_get_dir_list(const struct facund_object *obj) @@ -791,31 +792,134 @@ } static struct facund_response * +facund_read_directory_patchlevel(const char *id, + const struct facund_object *obj, const char **base_dir, + const char ***patches) +{ + const struct facund_object *cur, *dir, *patch; + + if (facund_object_get_type(obj) != FACUND_ARRAY) { + return facund_response_new(id, 1, "Bad data sent", NULL); + } + + cur = facund_object_get_array_item(obj, 0); + if (cur == NULL) { + facund_response_new(id, 1, "Bad data sent", NULL); + } + if (facund_object_get_type(cur) == FACUND_STRING) { + /* Get the data for this directory */ + dir = cur; + patch = facund_object_get_array_item(obj, 1); + if (patch == NULL) { + return facund_response_new(id, 1, "Bad data sent",NULL); + } + + /* Get the directory and patch level */ + *base_dir = facund_object_get_string(dir); + *patches = facund_get_dir_list(patch); + + if (*base_dir == NULL || *patches == NULL) { + return facund_response_new(id, 1, "Malloc failed",NULL); + } + } else { + return facund_response_new(id, 1, "Bad data sent", NULL); + } + + return NULL; +} + +static int +facund_run_update(const char *command, const char *basedir) +{ + char *cmd, *arg; + int ret; + + assert(command != NULL); +#define FREEBSD_COMMAND "/usr/sbin/freebsd-update" + arg = NULL; + if (basedir != NULL) { + asprintf(&arg, "-b %s", basedir); + if (arg == NULL) + return -1; + } + asprintf(&cmd, "echo " FREEBSD_COMMAND " %s %s", + (arg == NULL ? "" : arg), command); + //asprintf(&command, FREEBSD_COMMAND " install"); + + free(arg); + if (cmd == NULL) { + return -1; + } + + ret = system(cmd); + free(cmd); + + return ret; +} + +static struct facund_response * facund_call_install_patches(const char *id, struct facund_object *obj) { - const struct facund_object *cur; + const char *base_dir, **patches; + struct facund_response *ret; unsigned int pos; + int failed; if (obj == NULL) { /* TODO: Don't use magic numbers */ return facund_response_new(id, 1, "No data sent", NULL); } - if (facund_object_get_type(obj) != FACUND_ARRAY) { - return facund_response_new(id, 1, "Bad data sent", NULL); + base_dir = NULL; + patches = NULL; + ret = facund_read_directory_patchlevel(id, obj, &base_dir, &patches); + if (ret != NULL) + return ret; + + /* Check the directory is being watched */ + for (pos = 0; pos < watched_db_count; pos++) { + if (strcmp(watched_db[pos].db_base, base_dir) == 0) { + break; + } + } + if (pos == watched_db_count) { + return facund_response_new(id, 1, "Incorrect directory", NULL); + } + + /* In the all case we will install all avaliable patches */ + failed = 0; + if (strcmp(patches[0], "base") == 0) { + if (facund_run_update("install", base_dir) != 0) { + failed = 1; + } + } else { + return facund_response_new(id, 1, "Unsupported patch", NULL); } - for (pos = 0; (cur = facund_object_get_array_item(obj, pos)) != NULL; - pos++) { - facund_object_print(__DECONST(struct facund_object *, cur)); + if (failed != 0) { + return facund_response_new(id, 1, + "Some updates failed to install", NULL); } - printf("STUB: %s\n", __func__); - return NULL; + return facund_response_new(id, 0, "All updates installed", NULL); } static struct facund_response * -facund_call_rollback_patches(const char *id __unused, struct facund_object *obj __unused) +facund_call_rollback_patches(const char *id, struct facund_object *obj) { + const char *base_dir, **patches; + struct facund_response *ret; + + if (obj == NULL) { + /* TODO: Don't use magic numbers */ + return facund_response_new(id, 1, "No data sent", NULL); + } + + base_dir = NULL; + patches = NULL; + ret = facund_read_directory_patchlevel(id, obj, &base_dir, &patches); + if (ret != NULL) + return ret; + printf("STUB: %s\n", __func__); return NULL; } ==== //depot/projects/soc2007/andrew-update/frontend/facund/computer.py#8 (text+ko) ==== @@ -103,14 +103,7 @@ return arg def installUpdates(self, isInstall, installTypes): - args = facund.Array() - if isinstance(installTypes, types.TupleType): - args.append(self.buildInstallArg(installTypes[0], - installTypes[1])) - elif isinstance(installTypes, types.ListType): - for item in installTypes: - args.append(self.buildInstallArg(item[0], - item[1])) + args = self.buildInstallArg(installTypes[0], installTypes[1]) if isInstall: callType = "install_patches" ==== //depot/projects/soc2007/andrew-update/frontend/facund/controller.py#5 (text+ko) ==== @@ -31,6 +31,7 @@ self.__computersModel = computersModel self.__view.setComputerTreeModel(self.__computersModel) self.__currentComputer = None + self.__currentDirectory = None self.__updateModel = updateModel self.__view.setUpdateViewModel(self.__updateModel) @@ -38,6 +39,8 @@ self.__view.run() def onComputerTreeSelect(self, position): + self.__currentDirectory = None + computer = self.__computersModel.getComputer(position[0]) self.__view.setConnected(computer.getConnectionStatus()) if computer.getConnectionStatus() is not True: @@ -49,6 +52,7 @@ return dir = computer.getDirs()[position[1]] + self.__currentDirectory = dir if len(position) == 2: return @@ -76,6 +80,9 @@ def getCurrentComputer(self): return self.__currentComputer + def getCurrentDirectory(self): + return self.__currentDirectory + def installUpdates(self, updates): computer = self.getCurrentComputer() computer.installUpdates(True, updates) ==== //depot/projects/soc2007/andrew-update/frontend/facund/gui/main_window.py#9 (text+ko) ==== @@ -110,10 +110,11 @@ self.setInstallable(False, False) def onInstallClick(self, widget): - self.__controller.installUpdates(('base', 'all')) + dir = self.__controller.getCurrentDirectory() + self.__controller.installUpdates((dir.getName(), 'base')) def onRemoveClick(self, widget): - self.__controller.installUpdates(('base', 'all')) + self.__controller.installUpdates((dir.getName(), 'all')) def onSelectComputer(self, widget): '''Signal handler for when the selected item is changed''' From owner-p4-projects@FreeBSD.ORG Sun Aug 5 02:36:42 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1EB7916A41A; Sun, 5 Aug 2007 02:36:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8F0916A419 for ; Sun, 5 Aug 2007 02:36:41 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AB9E813C46A for ; Sun, 5 Aug 2007 02:36:41 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l752afab015282 for ; Sun, 5 Aug 2007 02:36:41 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l752afkj015279 for perforce@freebsd.org; Sun, 5 Aug 2007 02:36:41 GMT (envelope-from andrew@freebsd.org) Date: Sun, 5 Aug 2007 02:36:41 GMT Message-Id: <200708050236.l752afkj015279@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 124703 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, 05 Aug 2007 02:36:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=124703 Change 124703 by andrew@andrew_hermies on 2007/08/05 02:36:37 Add the get_directories call. It returns an array of directories the backend can update Use get_directories from the front end to build the list of directories to display Affected files ... .. //depot/projects/soc2007/andrew-update/backend/facund-be.c#21 edit .. //depot/projects/soc2007/andrew-update/frontend/facund.py#9 edit .. //depot/projects/soc2007/andrew-update/frontend/facund/computer.py#9 edit Differences ... ==== //depot/projects/soc2007/andrew-update/backend/facund-be.c#21 (text+ko) ==== @@ -73,6 +73,8 @@ static struct facund_response *facund_call_ping(const char *, struct facund_object *); +static struct facund_response *facund_get_directories(const char *, + struct facund_object *); static struct facund_response *facund_call_list_updates(const char *, struct facund_object *); static struct facund_response *facund_call_list_installed(const char *, @@ -515,6 +517,21 @@ return resp; } +static struct facund_response * +facund_get_directories(const char *id, struct facund_object *obj __unused) +{ + struct facund_object *dirs, *item; + unsigned int pos; + + dirs = facund_object_new_array(); + for (pos = 0; pos < watched_db_count; pos++) { + item = facund_object_new_string(); + facund_object_set_string(item, watched_db[pos].db_base); + facund_object_array_append(dirs, item); + } + return facund_response_new(id, 0, "No Error", dirs); +} + /* * Takes either a facund array or a facund string and sets base * or ports to true if they are contained in the object @@ -1013,6 +1030,7 @@ /* Add the callbacks for each call */ facund_server_add_call("ping", facund_call_ping); + facund_server_add_call("get_directories", facund_get_directories); facund_server_add_call("list_updates", facund_call_list_updates); facund_server_add_call("list_installed", facund_call_list_installed); facund_server_add_call("install_patches", facund_call_install_patches); ==== //depot/projects/soc2007/andrew-update/frontend/facund.py#9 (text+ko) ==== @@ -40,7 +40,6 @@ if __name__ == "__main__": computerModel = facund.gui.ComputerTreeModel() localComputer = facund.Computer("Local computer", '/tmp/facund') - localComputer.addDir('/') computerModel.addComputer(localComputer) updateModel = facund.gui.UpdateListModel() ==== //depot/projects/soc2007/andrew-update/frontend/facund/computer.py#9 (text+ko) ==== @@ -160,6 +160,15 @@ # Start the communication thread self.start() + + # Get a list of directories the server offers + call = facund.Call("get_directories", None) + self.__connection.doCall(call) + call.acquireLock() + call.releaseLock() + dirs = call.getResponse().getData().getData() + for dir in dirs: + self.addDir(dir.getData()) except socket.error: print "Couldn't connect to " + self.__host del self.__connection From owner-p4-projects@FreeBSD.ORG Sun Aug 5 03:11:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1BD5B16A41F; Sun, 5 Aug 2007 03:11:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BEC0416A419 for ; Sun, 5 Aug 2007 03:11:24 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C22FB13C458 for ; Sun, 5 Aug 2007 03:11:24 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l753BOxU018460 for ; Sun, 5 Aug 2007 03:11:24 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l753BOK3018457 for perforce@freebsd.org; Sun, 5 Aug 2007 03:11:24 GMT (envelope-from andrew@freebsd.org) Date: Sun, 5 Aug 2007 03:11:24 GMT Message-Id: <200708050311.l753BOK3018457@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 124704 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, 05 Aug 2007 03:11:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=124704 Change 124704 by andrew@andrew_hermies on 2007/08/05 03:10:36 Remove the directories from the tree view when disconnecting Affected files ... .. //depot/projects/soc2007/andrew-update/frontend/facund/computer.py#10 edit .. //depot/projects/soc2007/andrew-update/frontend/facund/gui/computer_model.py#6 edit Differences ... ==== //depot/projects/soc2007/andrew-update/frontend/facund/computer.py#10 (text+ko) ==== @@ -185,6 +185,7 @@ threading.Thread.__init__(self) del self.__connection self.__connection = None + self.__dirs = [] def run(self): '''The main communications thread''' ==== //depot/projects/soc2007/andrew-update/frontend/facund/gui/computer_model.py#6 (text+ko) ==== @@ -63,7 +63,10 @@ command_iter = self.append(dir_iter) self.set(command_iter, 0, command) else: - pass + iter = self.iter_children(self.__iterators[computer]) + while iter is not None: + self.remove(iter) + iter = self.iter_children(self.__iterators[computer]) def getComputer(self, position): From owner-p4-projects@FreeBSD.ORG Sun Aug 5 04:21:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1F3CC16A421; Sun, 5 Aug 2007 04:21:53 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CCE6C16A41F for ; Sun, 5 Aug 2007 04:21:52 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B5EFE13C467 for ; Sun, 5 Aug 2007 04:21:52 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l754LqZG023599 for ; Sun, 5 Aug 2007 04:21:52 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l754LqGL023596 for perforce@freebsd.org; Sun, 5 Aug 2007 04:21:52 GMT (envelope-from cnst@FreeBSD.org) Date: Sun, 5 Aug 2007 04:21:52 GMT Message-Id: <200708050421.l754LqGL023596@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124705 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, 05 Aug 2007 04:21:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=124705 Change 124705 by cnst@dale on 2007/08/05 04:20:56 KNF Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#6 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#6 (text+ko) ==== @@ -654,10 +654,10 @@ static int name2oid(char *name, int *oid, int *len, struct sysctl_oid **oidpp) { - char i; struct sysctl_oid *oidp; struct sysctl_oid_list *lsp = &sysctl__children; char *p; + char i; if (!*name) return (ENOENT); From owner-p4-projects@FreeBSD.ORG Sun Aug 5 05:12:58 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CCA2F16A477; Sun, 5 Aug 2007 05:12:57 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A0CE16A46D for ; Sun, 5 Aug 2007 05:12:57 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 41C4E13C4F9 for ; Sun, 5 Aug 2007 05:12:57 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l755Cvpm044539 for ; Sun, 5 Aug 2007 05:12:57 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l755CurM044536 for perforce@freebsd.org; Sun, 5 Aug 2007 05:12:56 GMT (envelope-from andrew@freebsd.org) Date: Sun, 5 Aug 2007 05:12:56 GMT Message-Id: <200708050512.l755CurM044536@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 124707 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, 05 Aug 2007 05:12:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=124707 Change 124707 by andrew@andrew_hermies on 2007/08/05 05:12:46 Convert the patchlevel to a number when reading it from the tag file Add db_next_patch to the fbsd_update_db struct to record the patch level that will be installed when "freebsd-update install" is run or 0 if no patches are avaliable Use the value of db_next_patch to implement list_updates Affected files ... .. //depot/projects/soc2007/andrew-update/backend/facund-be.c#22 edit Differences ... ==== //depot/projects/soc2007/andrew-update/backend/facund-be.c#22 (text+ko) ==== @@ -98,6 +98,8 @@ char *db_dir; int db_fd; + unsigned int db_next_patch; + char *db_tag_file; }; @@ -107,7 +109,7 @@ struct fbsd_tag_line { char *tag_platform; char *tag_release; - char *tag_patch; + unsigned int tag_patch; char tag_tindexhash[65]; char tag_eol[11]; }; @@ -120,7 +122,8 @@ { struct fbsd_tag_line *line; unsigned int len, item; - const char *str, *ptr; + char *num_buf; + const char *str, *ptr, *errstr; if (buf == NULL) return NULL; @@ -156,11 +159,16 @@ strlcpy(line->tag_release, str, len + 1); break; case 3: - line->tag_patch = malloc(len + 1); - if (line->tag_patch == NULL) + num_buf = malloc(len + 1); + if (num_buf == NULL) goto facund_decode_tag_line_exit; - strlcpy(line->tag_patch, str, len + 1); + strlcpy(num_buf, str, len + 1); + line->tag_patch = strtonum(num_buf, 0, UINT_MAX, + &errstr); + free(num_buf); + if (errstr != NULL) + goto facund_decode_tag_line_exit; break; case 4: if (len != 64) @@ -203,9 +211,6 @@ if (line->tag_release != NULL) free(line->tag_release); - if (line->tag_patch != NULL) - free(line->tag_patch); - free(line); } @@ -233,6 +238,8 @@ while (fgets(buf, sizeof buf, tag_fd) != NULL) { line = facund_tag_decode_line(buf); if (line != NULL) { + watched_db[pos].db_next_patch = + line->tag_patch; facund_tag_free(line); } } @@ -459,6 +466,8 @@ return -1; } + watched_db[pos].db_next_patch = 0; + ptr = next_ptr; if (ptr[0] == '\0') { return 0; @@ -714,30 +723,51 @@ args = facund_object_new_array(); for (pos = 0; base_dirs[pos] != NULL; pos++) { struct facund_object *pair, *item, *updates; + unsigned int i; + char *buf; + + for (i = 0; i < watched_db_count; i++) { + if (strcmp(watched_db[i].db_base, base_dirs[pos]) != 0) + continue; - pair = facund_object_new_array(); + printf("= %u\n", watched_db[i].db_next_patch); + if (watched_db[i].db_next_patch == 0) + break; + + pair = facund_object_new_array(); + + /* Add the directory to the start of the array */ + item = facund_object_new_string(); + facund_object_set_string(item, base_dirs[pos]); + facund_object_array_append(pair, item); - /* Add the directory to the start of the array */ - item = facund_object_new_string(); - facund_object_set_string(item, base_dirs[pos]); - facund_object_array_append(pair, item); + /* Add a list of updates to the array */ + updates = facund_object_new_array(); + item = facund_object_new_string(); + asprintf(&buf, "6.2-p%u", watched_db[i].db_next_patch); + if (buf == NULL) + return facund_response_new(id, 1, + "Malloc failed", NULL); - /* Add a list of updates to the array */ - updates = facund_object_new_array(); - item = facund_object_new_string(); - facund_object_set_string(item, "6.2-p2"); - facund_object_array_append(updates, item); - facund_object_array_append(pair, updates); + facund_object_set_string(item, buf); + free(buf); + facund_object_array_append(updates, item); + facund_object_array_append(pair, updates); - /* Add the directory on to the end of the arguments to return */ - facund_object_array_append(args, pair); + /* + * Add the directory on to the + * end of the arguments to return + */ + facund_object_array_append(args, pair); + break; + } + } + facund_object_print(args); + if (facund_object_array_size(args) == 0) { + facund_object_free(args); + args = NULL; } - printf("STUB: %s (base: %s, ports: %s)\n", __func__, - (get_base ? "yes" : "no"), (get_ports ? "yes" : "no")); - for (pos = 0; base_dirs[pos] != NULL; pos++) { - printf("Dir: %s\n", base_dirs[pos]); - } free(base_dirs); return facund_response_new(id, RESP_GOOD, "Success", args); } From owner-p4-projects@FreeBSD.ORG Sun Aug 5 15:16:34 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 673CA16A420; Sun, 5 Aug 2007 15:16:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2A23F16A418 for ; Sun, 5 Aug 2007 15:16:34 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0F68813C45A for ; Sun, 5 Aug 2007 15:16:34 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75FGXol012048 for ; Sun, 5 Aug 2007 15:16:33 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75FGX8B012045 for perforce@freebsd.org; Sun, 5 Aug 2007 15:16:33 GMT (envelope-from zec@FreeBSD.org) Date: Sun, 5 Aug 2007 15:16:33 GMT Message-Id: <200708051516.l75FGX8B012045@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124728 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, 05 Aug 2007 15:16:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=124728 Change 124728 by zec@zec_tpx32 on 2007/08/05 15:15:59 ifnet renaming when roaming from one vnet to another: - when returning to home vnet (the one where it was attached for the first time) always restore the original name in form of ("%s%d", if_dname, if_dunit); - otherwise, find the lowest unit number allowing the ifnet to be attached as ("eth%d", unit), unless - the request from userland included another name to be given to the ifnet, in which case set if_xname to this name; - return the new ifnet name to the userland properly. Affected files ... .. //depot/projects/vimage/src/sys/kern/kern_vimage.c#33 edit Differences ... ==== //depot/projects/vimage/src/sys/kern/kern_vimage.c#33 (text+ko) ==== @@ -268,7 +268,9 @@ /* * Move the interface to another vnet. The interface can be specified either - * by ifp argument, or by name contained in vi_req if NULL is passed as ifp. + * by ifp argument, or by name contained in vi_req->vi_chroot if NULL is + * passed as ifp. The interface will be renamed to vi_req->vi_parent_name + * if vi_req->vi_parent_name is not an empty string (uff ugly ugly)... * Similary, the target vnet can be specified either by vnet argument or * by name. If vnet name equals to "-" or vi_req is set to NULL the * interface is moved to the parent vnet. @@ -359,6 +361,41 @@ if_grow(); ifnet_byindex(ifp->if_index) = ifp; + /* Rename the ifnet */ + if (new_vnet == ifp->if_home_vnet) { + /* always restore the original name on return to home vnet */ + snprintf(ifp->if_xname, IFNAMSIZ, "%s%d", ifp->if_dname, + ifp->if_dunit); + } else { + if (vi_req && strlen(vi_req->vi_parent_name) > 0) { + snprintf(ifp->if_xname, IFNAMSIZ, "%s", + vi_req->vi_parent_name); + } else { + int unit = 0; + struct ifnet *iter; + + switch (ifp->if_type) { + case IFT_ETHER: + case IFT_L2VLAN: + do { + snprintf(ifp->if_xname, + IFNAMSIZ, "eth%d", unit); + TAILQ_FOREACH(iter, &V_ifnet, + if_link) + if (strcmp( + ifp->if_xname, + iter->if_xname) + == 0) + break; + unit++; + } while (iter); + break; + default: + break; + } + } + } + switch (ifp->if_type) { case IFT_ETHER: case IFT_L2VLAN: @@ -371,8 +408,7 @@ getmicrotime(&ifp->if_lastchange); if (vi_req != NULL) - sprintf(vi_req->vi_chroot, "%s%d", - ifp->if_dname, ifp->if_dunit); + sprintf(vi_req->vi_chroot, "%s", ifp->if_xname); CURVNET_RESTORE(); return (0); From owner-p4-projects@FreeBSD.ORG Sun Aug 5 16:06:39 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5151416A419; Sun, 5 Aug 2007 16:06:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE93816A417 for ; Sun, 5 Aug 2007 16:06:38 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A678413C458 for ; Sun, 5 Aug 2007 16:06:38 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75G6cLI017474 for ; Sun, 5 Aug 2007 16:06:38 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75G6cWT017471 for perforce@freebsd.org; Sun, 5 Aug 2007 16:06:38 GMT (envelope-from zec@FreeBSD.org) Date: Sun, 5 Aug 2007 16:06:38 GMT Message-Id: <200708051606.l75G6cWT017471@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124731 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, 05 Aug 2007 16:06:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=124731 Change 124731 by zec@zec_tpx32 on 2007/08/05 16:06:10 Print the "Ethernet address: x.x.x.x.x" message on the console only the first time the ifnet is attached, not each time it moves from one vnet to another. Affected files ... .. //depot/projects/vimage/src/sys/net/if_ethersubr.c#14 edit Differences ... ==== //depot/projects/vimage/src/sys/net/if_ethersubr.c#14 (text+ko) ==== @@ -909,6 +909,9 @@ int i; struct ifaddr *ifa; struct sockaddr_dl *sdl; +#ifdef VIMAGE + struct vnet *home_vnet_0 = ifp->if_home_vnet; +#endif ifp->if_addrlen = ETHER_ADDR_LEN; ifp->if_hdrlen = ETHER_HDR_LEN; @@ -936,7 +939,11 @@ for (i = 0; i < ifp->if_addrlen; i++) if (lla[i] != 0) break; +#ifdef VIMAGE + if (i != ifp->if_addrlen && home_vnet_0 != ifp->if_home_vnet) +#else if (i != ifp->if_addrlen) +#endif if_printf(ifp, "Ethernet address: %6D\n", lla, ":"); if (ifp->if_flags & IFF_NEEDSGIANT) if_printf(ifp, "if_start running deferred for Giant\n"); From owner-p4-projects@FreeBSD.ORG Sun Aug 5 16:15:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E503D16A420; Sun, 5 Aug 2007 16:15:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0BB816A417 for ; Sun, 5 Aug 2007 16:15:52 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9E32313C46B for ; Sun, 5 Aug 2007 16:15:52 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75GFq5L018118 for ; Sun, 5 Aug 2007 16:15:52 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75GFqWW018115 for perforce@freebsd.org; Sun, 5 Aug 2007 16:15:52 GMT (envelope-from zec@FreeBSD.org) Date: Sun, 5 Aug 2007 16:15:52 GMT Message-Id: <200708051615.l75GFqWW018115@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124733 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, 05 Aug 2007 16:15:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=124733 Change 124733 by zec@zec_tpx32 on 2007/08/05 16:15:25 When detaching an ifnet clear its if_vnet field, so that we know it's a homeless entity until it gets reattached. Do not announce ifnet events to devctl/devd, except for ifnets attached to the default vnet (vnet_0). Affected files ... .. //depot/projects/vimage/src/sys/net/if.c#19 edit Differences ... ==== //depot/projects/vimage/src/sys/net/if.c#19 (text+ko) ==== @@ -490,7 +490,7 @@ void if_free_type(struct ifnet *ifp, u_char type) { - INIT_VNET_NET(ifp->if_vnet); + INIT_VNET_NET(curvnet); /* ifp->if_vnet can be NULL here ! */ if (ifp != ifnet_byindex(ifp->if_index)) { if_printf(ifp, "%s: value was not if_alloced, skipping\n", @@ -631,6 +631,9 @@ if_attachdomain1(ifp); EVENTHANDLER_INVOKE(ifnet_arrival_event, ifp); +#ifdef VIMAGE + if (IS_VNET_0(curvnet)) +#endif devctl_notify("IFNET", ifp->if_xname, "ATTACH", NULL); /* Announce the interface. */ @@ -850,6 +853,9 @@ /* Announce that the interface is gone. */ rt_ifannouncemsg(ifp, IFAN_DEPARTURE); EVENTHANDLER_INVOKE(ifnet_departure_event, ifp); +#ifdef VIMAGE + if (IS_VNET_0(curvnet)) +#endif devctl_notify("IFNET", ifp->if_xname, "DETACH", NULL); IF_AFDATA_LOCK(ifp); @@ -868,6 +874,9 @@ knlist_destroy(&ifp->if_klist); mtx_destroy(&ifp->if_snd.ifq_mtx); IF_AFDATA_DESTROY(ifp); +#ifdef VIMAGE + ifp->if_vnet = NULL; +#endif splx(s); } @@ -1509,6 +1518,9 @@ (*lagg_linkstate_p)(ifp, link_state); } +#ifdef VIMAGE + if (IS_VNET_0(curvnet)) +#endif devctl_notify("IFNET", ifp->if_xname, (link_state == LINK_STATE_UP) ? "LINK_UP" : "LINK_DOWN", NULL); if (pending > 1) From owner-p4-projects@FreeBSD.ORG Sun Aug 5 18:21:33 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8746116A41A; Sun, 5 Aug 2007 18:21:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2304616A418 for ; Sun, 5 Aug 2007 18:21:33 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1DC6713C481 for ; Sun, 5 Aug 2007 18:21:33 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75ILXuL039961 for ; Sun, 5 Aug 2007 18:21:33 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75ILW5M039958 for perforce@freebsd.org; Sun, 5 Aug 2007 18:21:32 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 18:21:32 GMT Message-Id: <200708051821.l75ILW5M039958@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124740 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, 05 Aug 2007 18:21:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=124740 Change 124740 by fli@fli_nexus on 2007/08/05 18:20:44 - Add definitions needed to support record database operations, add/remove/list. - Add definitions needed to support cache operations, list/flush. - Add definitions needed to support interface operations, list. - Give structures and defintions a better prefix than "client packet", they are now called mipc. - Clean up comments and style. - Add several new error codes. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/shared/mdnsd_clipkg.h#3 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/shared/mdnsd_clipkg.h#3 (text+ko) ==== @@ -24,8 +24,8 @@ * */ -#ifndef _MDNSD_CLIPKG_H_ -#define _MDNSD_CLIPKG_H_ +#ifndef _MDNSD_IPC_H_ +#define _MDNSD_IPC_H_ /* * This contains definitions of the protocol used between mdnsd and @@ -39,7 +39,7 @@ * Protocol version, this is embedded in the first octet of the * initial header. */ -#define CP_VERSION 1 +#define MIPC_VERSION 1 /* * Maximum message length @@ -48,61 +48,97 @@ * limits the maximum resource length to 8978 bytes and thus should * 16384 bytes be well enough for any resources + message headers. */ -#define CP_MAXPLEN 16384 +#define MIPC_MAXPLEN 16384 /* - * Initial header + * Initial header - All message are prepended with this header * * 0 8 31 47 63 * +----+------------+--------+--------+ * |ver | message id | mtype | msglen | * +----+------------+--------+--------+ * - * `ver' - Set to CP_VERSION + * `ver' - Set to MIPC_VERSION * `message id' - Arbitrary integer specified by the client, it should * uniquely identify the message. A response from the server * will contain the same message id. * `mtype' - Defines the message type. * `msglen' - Hold the total message length, including initial header. */ -struct cp_head { - unsigned int cph_ver:8; /* protocol version */ - unsigned int cph_id:24; /* arbitrary message id */ - uint16_t cph_msgtype; /* message type */ - uint16_t cph_msglen; /* total message length */ +struct mipc_head { + unsigned int mih_ver:8; /* protocol version */ + unsigned int mih_id:24; /* arbitrary message id */ + uint16_t mih_msgtype; /* message type */ + uint16_t mih_msglen; /* total message length */ } __packed; /* * List of recognized message types */ -#define CPM_ACK 0 /* command successful, no payload */ -#define CPM_ERROR 1 /* struct cp_error {} */ -#define CPM_QUERY 2 /* struct cp_query {} */ -#define CPM_QRESP 3 /* struct cp_qresp {} */ +#define MIM_ACK 0 /* Command successful, no payload */ +#define MIM_ERROR 1 /* Error message, mipc_error {} */ +#define MIM_QUERY 2 /* Register a query, mipc_query {} */ +#define MIM_QRESP 3 /* Query response, mipc_qresp {} */ +#define MIM_IF_LIST 4 /* Req. Active interfaces, no payload */ +#define MIM_IF 5 /* Interface information, mipc_if {} */ +#define MIM_IDENT_ADD 6 /* Add identifier, mipc_dbident {} */ +#define MIM_IDENT_DEL 7 /* Rem. identifier, mipc_dbident {} */ +#define MIM_IDENT_LIST 8 /* List identifers, mipc_dbi_list {} */ +#define MIM_IDENT 10 /* Identifer info, mipc_dbident {} */ +#define MIM_IDENT_NAME_ADD 11 /* Add name to ident mipc_dbi_name {} */ +#define MIM_IDENT_NAME_DEL 12 /* Rem. name mipc_dbi_name {} */ +#define MIM_IDENT_NAME_LIST 13 /* List ident. mipc_dbi_name_list {} */ +#define MIM_IDENT_NAME 14 /* Name information, mipc_dbi_name {} */ +#define MIM_IDENT_RES_ADD 15 /* Add res., mipc_dbi_res_set {} */ +#define MIM_IDENT_RES_DEL 16 /* Rem. res., mipc_dbi_res_set {} */ +#define MIM_IDENT_RES_LIST 17 /* List res, mipc_dbi_res_list {} */ +#define MIM_IDENT_RES 18 /* Res. info., mipc_dbi_res_get {} */ +#define MIM_CACHE_LIST 19 /* Cache list, mipc_dbi_cache_list {} */ +#define MIM_CACHE 20 /* Cache record, mipc_cache {} */ +#define MIM_CACHE_FLUSH 21 /* Cache flush, mipc_cache_flush {} */ /* * Error message, in case an error occurs an error code * is returned that identifies the type of error. + * + * Usage context + * Might be return as a response to any message if an error was found + * during message processing. + * + * Message structure + * +----------------+ + * | error code | + * +----------------+ + * */ -struct cp_error { - uint32_t cpe_code; +struct mipc_error { + uint32_t mie_code; } __packed; /* * List of recognized error codes */ -#define CPE_PERM 1 /* Permission denied */ -#define CPE_IVAL 2 /* Invalid message */ -#define CPE_UMSG 3 /* Unknown message type */ -#define CPE_TOUT 4 /* Query timeout */ -#define CPE_REGQ 5 /* Failed to register query */ -#define CPE_DEREGQ 6 /* Failed to register query */ +#define MIE_PERM 1 /* Permission denied */ +#define MIE_IVAL 2 /* Invalid message */ +#define MIE_UMSG 3 /* Unknown message type */ +#define MIE_TOUT 4 /* Query timeout */ +#define MIE_REGQ 5 /* Failed to register query */ +#define MIE_DEREGQ 6 /* Failed to register query */ +#define MIE_EXISTS 7 /* Entry does already exists */ +#define MIE_NOENT 8 /* Entry does not exists */ +#define MIE_INTE 9 /* Internal software error */ +#define MIE_NOIF 10 /* No such interface */ /* - * Query message, has a 12 byte header followed by a - * wide character encoded domain name. + * Query message, has a 12 byte header followed by a wide character + * encoded domain name. * Direction: Client -> Server * + * Usage context + * MIM_QUERY - Register a query, client must be prepared to receive + * zero or many MIM_QRESP messages. + * + * Message structure * 0 7 15 31 39 63 79 95 * +----+----+--------+----+------------+--------+--------+---//---+ * |cmd |len |timeout |fam | ifidx | class | type | name | @@ -120,39 +156,39 @@ * `type' - Should contain the desired type or mdns_t_any * `name' - Wide character encoded (wchar_t) domain name * - * Responses to CPQ_CMD_ONESHOT + * Responses to MIQ_CMD_ONESHOT * - One or more struct cp_qresp {}, the more bit might be set to indicate * that more responses are to follow, this is only a hint. A client * must be able to accept responses for as long as the timeout value * specicied in the query message. * - If the timeout value expires without ANY responses an error - * message with the code CPE_TOUT is returned. + * message with the code MIE_TOUT is returned. * - * Responses to CPQ_CMD_CREG - * - If the query was successful registed a CPM_ACK message is returned, - * responses might come in at any point after this until a CPQ_CMD_CDEREG + * Responses to MIQ_CMD_CREG + * - If the query was successful registed a MIM_ACK message is returned, + * responses might come in at any point after this until a MIQ_CMD_CDEREG * command is issued. * - If the registration failed for some reason, an error message with - * the code CPE_REGQ is returned. + * the code MIE_REGQ is returned. * - * Responses to CPQ_CMD_CDEREG - * - If the de-registration was successful a CPM_ACK message is returned, - * otherwise an error message with the code CPE_DEREGQ is returned. + * Responses to MIQ_CMD_CDEREG + * - If the de-registration was successful a MIM_ACK message is returned, + * otherwise an error message with the code MIE_DEREGQ is returned. */ -struct cp_query { - uint8_t cpq_cmd; /* query command */ - uint8_t cpq_len; /* query name length in characters */ - uint16_t cpq_timeout; /* timeout in seconds (oneshot only) */ - unsigned int cpq_fam:8; /* address family to query */ - unsigned int cpq_ifidx:24; /* interface index, 0 = all ifs */ - uint16_t cpq_class; /* query class */ - uint16_t cpq_type; /* query type */ +struct mipc_query { + uint8_t miq_cmd; /* query command */ + uint8_t miq_len; /* query name length in characters */ + uint16_t miq_timeout; /* timeout in seconds (oneshot only) */ + unsigned int miq_fam:8; /* address family to query */ + unsigned int miq_ifidx:24; /* interface index, 0 = all ifs */ + uint16_t miq_class; /* query class */ + uint16_t miq_type; /* query type */ /* Query name follows */ } __packed; -#define CPQ_CMD_ONESHOT 0 -#define CPQ_CMD_CREG 1 -#define CPQ_CMD_CDEREG 2 +#define MIQ_CMD_ONESHOT 0 +#define MIQ_CMD_CREG 1 +#define MIQ_CMD_CDEREG 2 /* * Query response message, 16 byte header followed by a variable length @@ -160,6 +196,11 @@ * resource data field. * Direction: Server -> Client * + * Usage context + * MIM_QRESP - Response to a previous MIM_QUERY + * + * Message structure + * * 0 7 15 31 39 63 95 111 * +----+----+--------+----+------------+----------------+--------+--------+ * |m/z |nlen| reslen |fam | ifidx | ttl | class | type | @@ -180,22 +221,289 @@ * `type' - Resource type. * `resource' - Resource data is not decoded in any way (except for name * decompression) and contains the raw data from mDNS packets. - * - * The header message if will always be set to the id the original - * query message had. */ -struct cp_qresp { - unsigned int cpr_more:1; /* more resources are coming */ - unsigned int cpr_zero:7; /* reserved/zero */ - uint8_t cpr_namlen; /* resource name length in characters */ - uint16_t cpr_reslen; /* resource data length (bytes) */ - unsigned int cpr_fam:8; /* address family */ - unsigned int cpr_ifidx:24; /* interface index */ - uint32_t cpr_ttl; /* ttl (in seconds) */ - uint16_t cpr_class; /* resource class */ - uint16_t cpr_type; /* resource type */ +struct mipc_qresp { + unsigned int mir_more:1; /* more resources are coming */ + unsigned int mir_zero:7; /* reserved/zero */ + uint8_t mir_namlen; /* resource name length in characters */ + uint16_t mir_reslen; /* resource data length (bytes) */ + unsigned int mir_fam:8; /* address family */ + unsigned int mir_ifidx:24; /* interface index */ + uint32_t mir_ttl; /* ttl (in seconds) */ + uint16_t mir_class; /* resource class */ + uint16_t mir_type; /* resource type */ /* Wide character encoded name */ /* Resource data follows */ -}; +} __packed; + + +/* + * Interface information + * + * Usage context + * MIM_IF - Response to MIM_IF_LIST + * + * Message structure + * 0 31 39 63 + * +----------------+----+------------+ + * | interface idx |len | flags | + * +----------------+----+------------+ + */ +struct mipc_if { + uint32_t miif_ifidx; /* Interface index */ + unsigned int miif_len:8; /* Interface name length */ + unsigned int miif_flags:24; /* Flags */ + /* Interface name (ascii) */ +} __packed; + +/* + * List indentifiers from the record database + * Direction: Client -> Server + * + * Usage context + * MIM_IDENT_LIST - Request a list of identifiers on a specific interface. + * Response is zero or many MIM_IDENT followed by one MIM_OK + * + * Message structure + * +----------------+ + * | ident length | + * +----------------+ + * + */ +struct mipc_dbi_list { + uint32_t miil_ifidx; /* Interface index */ +} __packed; + +/* + * Database record ident message. + * A database record is uniquely identified by an identifier, which + * is a normal ascii string. + * Direction: Client <-> Server + * + * Usage context + * MIM_IDENT_ADD - cp_dbident {} as payload, will add the identifier + * specified in the message. MIM_ACK on success, MIM_ERROR + * on failure. + * MIM_IDENT_DEL - cp_dbident {} as payload, will remove the specified + * identifier (and all names + resources) from the + * record database. MIM_ACK on success, MIM_ERROR on failure. + * MIM_IDENT_LIST - No payload. Returns one MIM_IDENT message with + * cp_dbident {} as payload for each existing record. When + * no more records exists an CMP_ACK is returned. + * + * Message structure + * +----------------+-------//-------+ + * | ident length | ident string | + * +----------------+-------//-------+ + * + */ + +struct mipc_dbident { + uint32_t mii_ifidx; /* Interface index */ + uint32_t mii_len; /* ident length */ + /* Ident follows (ascii) */ +} __packed; + +/* + * Add/remove a name from an identifier in the record database + * Direction: Client <-> Server + * + * Usage context + * MIM_IDENT_NAME_ADD - Add a name to an identifier + * MIM_IDENT_NAME_DEL - Remove a name from an identifier + * MIM_IDENT_NAME - Details on a specific name + * + * Message structure + * 0 31 63 79 87 95 + * +----------------+----------------+--------+----+-+---+ + * | interface idx | ident length | len |elen|a|zer| + * +----------------+----------------+--------+----+-+---+ + * +---//---+-----//-----+-----//-----+ + * | ident | unexp name | exp name | + * +---//---+-----//-----+-----//-----+ + * + * The fields `miin_elen' and the flags miin_{active} are only used + * when retriving data from the server. These fields should be zeroed when + * this structure are used in the context client -> server. + */ +struct mipc_dbi_name { + uint32_t miin_ifidx; /* Interface index, 0 = all ifs */ + uint32_t miin_ilen; /* Identifier length */ + uint16_t miin_len; /* Name length (in characters) */ + uint8_t miin_elen; /* Expanded name length (characters) */ + unsigned int miin_active:1; /* Currently selected name */ + unsigned int miin_zero:7; + /* Identifier (ascii) */ + /* Unexpanded name, wide character encoded */ + /* Expanded name, wide character encoded */ +} __packed; + +/* + * List names assigned to an identifier + * Direction: Client -> Server + * + * Usage context + * MIM_IDENT_NAME_LIST - List names assigned to an identifier, the response + * is zero or many MIM_IDENT_NAME (mipc_dbi_name {}) followed by an MIM_ACK + * + * Message structure + * 0 31 63 + * +----------------+----------------+---//---+ + * | interface idx | ident length | ident | + * +----------------+----------------+---//---+ + */ +struct mipc_dbi_name_list { + uint32_t miinl_ifidx; /* Interface index */ + uint32_t miinl_ilen; /* Identifer length */ + /* Identifier (ascii) */ +} __packed; + +/* + * Resource set assigned to an identifier + * Direction: Client -> Server + * + * Usage context + * MIM_IDENT_RES_ADD - Add resource to an identifier + * MIM_IDENT_RES_DEL - Remove an resource to an identifier + * + * Message structure + * 0 31 47 63 95 127 + * +----------------+--------+--------+----------------+----------------+ + * | interface idx | class | type | ttl | ident length | + * +----------------+--------+--------+----------------+----------------+ + * + * 127 143 151 + * +--------+-+-------+----//----+-------------//-------------+ + * | reslen |p| zero | ident | wide name OR pointer ident | + * +--------+-+-------+----//----+------------//--------------+ + */ +struct mipc_dbi_res_set { + uint32_t mirs_ifidx; /* Interface index */ + uint16_t mirs_class; + uint16_t mirs_type; + uint32_t mirs_ttl; + uint32_t mirs_ilen; /* ident length */ + uint16_t mirs_rlen; /* Resource length (in characters) */ + unsigned int mirs_pointer:1; /* Resource data is a pointer */ + unsigned int mirs_zero:15; + /* Record identifier (ascii) */ + /* Wide character encoded name OR ascii encoded pointer name */ +} __packed; + +/* + * Retrive information on a resource assigned to an identifier + * Direction: Server -> Client + * + * Usage context + * MIM_IDENT_RES - Information on a resource, response to MIM_IDENT_RES_LIST + * + * Message structure + * 0 23 31 47 63 79 95 127 + * +------------+----+--------+--------+--------+--------+----------------+ + * | zero |rlen| len | elen | class | type | ttl | + * +------------+----+--------+--------+--------+--------+----------------+ + * 127 159 + * +----------------+----//----+----//----+----//----+----//----+ + * | ident length | rec name | unexp res| exp res |ident ptr | + * +----------------+----//----+----//----+----//----+----//----+ + */ +struct mipc_dbi_res_get { + unsigned int mirg_zero:24; + unsigned int mirg_rlen:8; /* Name length (in characters) */ + uint16_t mirg_len; /* Unencoded resource (in characters) */ + uint16_t mirg_elen; /* Encoded resource length */ + uint16_t mirg_class; /* Resource class */ + uint16_t mirg_type; /* Resource type */ + uint32_t mirg_ttl; /* TTL (in seconds)) */ + uint32_t mirg_ilen; /* Pointer identifer length */ + /* Record name, wide character encoded */ + /* Unencoded (unexpanded) resource data */ + /* Expanded, encoded resource data (binary) */ + /* Pointer identifier (if applicable) */ +} __packed; + +/* + * List resources assigned to an identifier + * Direction: Client -> Server + * + * Usage context + * MIM_IDENT_RES_LIST - Request a list of resources assigned to an identifier + * + * Message structure + * 0 31 63 + * +----------------+----------------+----//----+ + * | identifer len | interface idx | ident | + * +----------------+----------------+----//----+ + */ +struct mipc_dbi_res_list { + uint32_t mirl_ilen; /* Identifer length */ + uint32_t mirl_ifidx; /* Interface index */ + /* Record identifier (ascii) */ +} __packed; + + +/* + * Request to flush cache on given interface index, an index of 0 is equal + * to all active interfaces. + * Direction: Client -> Server + * + * Usage context + * MIM_CACHE_FLUSH - Request cache flush + * + * Message structure + * 0 31 + * +----------------+ + * | interface idx | + * +----------------+ + */ +struct mipc_cache_flush { + uint32_t mcf_ifidx; /* Interface index */ +} __packed; + +/* + * Request to view cache contents + * Direction: Client -> Server + * + * Usage context + * MIM_CACHE_LIST - Rquest to list cache contents + * + * Message structure + * 0 31 + * +----------------+ + * | interface idx | + * +----------------+ + */ +struct mipc_cache_list { + uint32_t mcl_ifidx; /* Interface index */ +} __packed; + +/* + * Information on a cache entry + * Direction: Server -> Client + * + * Usage context + * MIM_CACHE - Response to MIM_CACHE_LIST + * + * Message structure + * 0 15 31 63 95 103 111 127 + * +--------+--------+----------------+----------------+----+----+--------+ + * | class | type | ttl | ttl left |zero|rlen| reslen | + * +--------+--------+----------------+----------------+----+----+--------+ + * 127 + * +---------//---------+---------//---------+ + * | record name | resource (binary) | + * +---------//---------+---------//---------+ + */ +struct mipc_cache { + uint16_t mc_class; /* Resource class */ + uint16_t mc_type; /* Resource type */ + uint32_t mc_ttl; /* Resource TTL */ + uint32_t mc_ttl_left; /* Time left of TTL */ + uint8_t mc_zero; + uint8_t mc_reclen; /* Record length (in characters) */ + uint16_t mc_reslen; /* Resouce length */ + /* Wide character encoded record name */ + /* Binary resource */ +} __packed; -#endif /* _MDNSD_CLIPKG_H_ */ +#endif /* _MDNSD_IPC_H_ */ From owner-p4-projects@FreeBSD.ORG Sun Aug 5 18:23:38 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8109D16A421; Sun, 5 Aug 2007 18:23:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5778616A420 for ; Sun, 5 Aug 2007 18:23:38 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3AFE413C458 for ; Sun, 5 Aug 2007 18:23:38 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75INcMI040159 for ; Sun, 5 Aug 2007 18:23:38 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75INbM0040156 for perforce@freebsd.org; Sun, 5 Aug 2007 18:23:37 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 18:23:37 GMT Message-Id: <200708051823.l75INbM0040156@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124742 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, 05 Aug 2007 18:23:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=124742 Change 124742 by fli@fli_nexus on 2007/08/05 18:22:46 Rename mdnsd_clipkg.h to mdnsd_ipc.h which is a more descriptive name. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/shared/mdnsd_clipkg.h#4 delete .. //depot/projects/soc2007/fli-mdns_sd/shared/mdnsd_ipc.h#1 branch Differences ... From owner-p4-projects@FreeBSD.ORG Sun Aug 5 18:26:43 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 098BC16A419; Sun, 5 Aug 2007 18:26:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E8BE16A420 for ; Sun, 5 Aug 2007 18:26:42 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 89D5613C45B for ; Sun, 5 Aug 2007 18:26:42 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75IQg2i040331 for ; Sun, 5 Aug 2007 18:26:42 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75IQg3V040328 for perforce@freebsd.org; Sun, 5 Aug 2007 18:26:42 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 18:26:42 GMT Message-Id: <200708051826.l75IQg3V040328@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124743 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, 05 Aug 2007 18:26:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=124743 Change 124743 by fli@fli_nexus on 2007/08/05 18:26:22 - Fix a bug which caused the output engine to remain active after the queue had been destroyed. - Use the global object allocator to allocate queue entries. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/output.c#2 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/output.h#2 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/output.c#2 (text+ko) ==== @@ -54,7 +54,6 @@ MDNS_INIT_SET(oq, oq_magic); oq->oq_mif = mif; TAILQ_INIT(&oq->oq_queue); - TAILQ_INIT(&oq->oq_free); oq->oq_flags = 0; MTX_INIT(oq, oq_mtx, NULL); #ifdef HAVE_PTHREAD @@ -70,7 +69,7 @@ void oq_destroy(struct oqueue *oq) { - struct oq_entry *oqe, *oqe2; + struct oq_entry *oqe; struct md_if *mif; MDNS_INIT_ASSERT(oq, oq_magic); @@ -80,28 +79,23 @@ #ifdef HAVE_PTHREAD MTX_LOCK(oq, oq_mtx); oq->oq_flags |= OQ_DRAIN; + if (oq->oq_flags & OQ_ACTIVE) { pthread_cond_signal(&oq->oq_cond); - MTX_UNLOCK(oq, oq_mtx); pthread_cond_wait(&oq->oq_cond, &oq->oq_mtx); - TAILQ_FOREACH_SAFE(oqe, &oq->oq_queue, oqe_next, oqe2) { - MDNS_INIT_ASSERT(oqe, oqe_magic); + while (!TAILQ_EMPTY(&oq->oq_queue)) { + oqe = TAILQ_FIRST(&oq->oq_queue); TAILQ_REMOVE(&oq->oq_queue, oqe, oqe_next); mdns_pkgchain_free(&oqe->oqe_pc); - free(oqe); - } - TAILQ_FOREACH_SAFE(oqe, &oq->oq_free, oqe_next, oqe2) { - MDNS_INIT_ASSERT(oqe, oqe_magic); - TAILQ_REMOVE(&oq->oq_free, oqe, oqe_next); - free(oqe); + obj_free(OBJ_OQE, oqe); } } pthread_cond_destroy(&oq->oq_cond); #endif MDNS_INIT_UNSET(oq, oq_magic); + MTX_UNLOCK(oq, oq_mtx); MTX_DESTROY(oq, oq_mtx); - MTX_UNLOCK(oq, oq_mtx); dprintf(DEBUG_SEND, "Output queue oq=%x destroyed", oq); } @@ -123,6 +117,8 @@ wq_arg arg; MDNS_INIT_ASSERT(oq, oq_magic); + if (oq->oq_flags & OQ_DRAIN) + return; oqe = obj_alloc(OBJ_OQE); oqe->oqe_fam = family; @@ -185,11 +181,16 @@ MDNS_INIT_ASSERT(oq, oq_magic); mif = oq->oq_mif; MDNS_INIT_ASSERT(mif, mif_magic) + if (oq->oq_flags & OQ_DRAIN) + return (0); + dprintf(DEBUG_SEND, "Output queue %x engine started", oq); MTX_LOCK(oq, oq_mtx); for (;;) { while (!TAILQ_EMPTY(&oq->oq_queue)) { + if (oq->oq_flags & OQ_DRAIN) + break; oqe = TAILQ_FIRST(&oq->oq_queue); TAILQ_REMOVE(&oq->oq_queue, oqe, oqe_next); @@ -207,16 +208,21 @@ mdns_pkgchain_free(&oqe->oqe_pc); obj_free(OBJ_OQE, oqe); } + if (oq->oq_flags & OQ_DRAIN) + break; clock_gettime(CLOCK_REALTIME, &ts); ts.tv_sec += 60; error = pthread_cond_timedwait(&oq->oq_cond, &oq->oq_mtx, &ts); - if (error == ETIMEDOUT || (oq->oq_flags & OQ_DRAIN)) + if (error == ETIMEDOUT) break; } oq->oq_flags &= ~OQ_ACTIVE; MTX_UNLOCK(oq, oq_mtx); + if (oq->oq_flags & OQ_DRAIN) { + pthread_cond_signal(&oq->oq_cond); + } dprintf(DEBUG_SEND, "Output queue %x engine stopped", oq); return (0); } ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/output.h#2 (text+ko) ==== @@ -52,7 +52,6 @@ MAGIC(oq_magic); struct md_if *oq_mif; TAILQ_HEAD(, oq_entry) oq_queue; /* Entries in queue */ - TAILQ_HEAD(, oq_entry) oq_free; /* Free, pre-allocated entries */ int oq_flags; #define OQ_ACTIVE 0x01 #define OQ_DRAIN 0x02 From owner-p4-projects@FreeBSD.ORG Sun Aug 5 18:29:47 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4A25516A474; Sun, 5 Aug 2007 18:29:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F36B916A468 for ; Sun, 5 Aug 2007 18:29:46 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EE87313C457 for ; Sun, 5 Aug 2007 18:29:46 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75ITku8040470 for ; Sun, 5 Aug 2007 18:29:46 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75ITk3u040467 for perforce@freebsd.org; Sun, 5 Aug 2007 18:29:46 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 18:29:46 GMT Message-Id: <200708051829.l75ITk3u040467@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124744 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, 05 Aug 2007 18:29:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=124744 Change 124744 by fli@fli_nexus on 2007/08/05 18:28:58 - Add cache_flush() that flushes all entries in the cache. - Whitespace fixes. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/cache.c#5 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/cache.c#5 (text+ko) ==== @@ -85,7 +85,7 @@ { records_init(&c->c_recs, mdns_c_in); TAILQ_INIT(&c->c_list); - c->c_queries = q; + c->c_queries = q; } void @@ -213,7 +213,7 @@ rs.r_ttl = 0; rs.r_class = mdns_c_in; rs.r_type = rt->rt_type; - rs.r_data = rr->rr_data; + rs.r_data = rr->rr_data; rs.r_datalen = rr->rr_len; query_notify(c->c_queries, &rs, 0, 0, 0); } @@ -310,3 +310,18 @@ cr->cr_ttl_rel = ttl; enqueue_ttl(c, cr); } + +/* + * Flush all cache entries ignoring TTL + * c - Cache handle + */ +void +cache_flush(struct cache *c) +{ + struct cache_res *cr, *cr2; + + TAILQ_FOREACH_SAFE(cr, &c->c_list, cr_next, cr2) { + cache_del(c, &cr->cr_res); + } + dprintf(DEBUG_CACHE, "Flushed all cache entries c=%x", c); +} From owner-p4-projects@FreeBSD.ORG Sun Aug 5 18:46:08 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BAC7616A419; Sun, 5 Aug 2007 18:46:08 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D7E716A473 for ; Sun, 5 Aug 2007 18:46:08 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6352A13C474 for ; Sun, 5 Aug 2007 18:46:08 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75Ik8NC041482 for ; Sun, 5 Aug 2007 18:46:08 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75Ik8bQ041477 for perforce@freebsd.org; Sun, 5 Aug 2007 18:46:08 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 18:46:08 GMT Message-Id: <200708051846.l75Ik8bQ041477@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124745 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, 05 Aug 2007 18:46:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=124745 Change 124745 by fli@fli_nexus on 2007/08/05 18:45:59 - Refactor the record database (again..). Introduce "virtual" records and resources that are built upon configuration data, real records are resources are created from these templates. This allows (even) more dynamically created records than before, which is needed to properly support database mainpulation from client applications (via the unix domain socket). - Also adds proper locking which was long over due. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/dbrec.c#3 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/dbrec.h#2 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/dbrec.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2007 Fredrik Lindberg + * Copyright (c) 2007 Fredbik Lindberg * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -36,20 +36,28 @@ #include "var.h" static void record_type_del_cb(struct record_type *, void *); -static void rec_update(struct dbr_rec *, struct vt_data *, size_t); +static void rec_update(struct dbr_ident *, struct vt_data *, size_t); static void rec_var_update(void *); -static inline void rec_pastop(struct dbr_rec *); +static inline void rec_pastop(struct dbr_ident *); +static struct dbr_rec * rec_add(struct dbr_ident *, wchar_t *); static void rec_del(struct dbr_rec *); -static void res_update(struct dbr_res *, wchar_t **, size_t); +static void res_update(struct dbr_ident_res *, wchar_t **, size_t); static void res_var_update(void *); +static struct dbr_res * res_add(struct dbr_rec *, struct dbr_ident_res *, + struct dbr_res *, wchar_t *); static void res_del(struct dbr_res *); +static void ident_del(struct dbr *, struct dbr_ident *); +static int ident_setname(struct dbr_ident *, int); +static int ident_res_del(struct dbr *, struct dbr_ident_res *); + static int dbr_pac_add(struct dbr_pac *, struct dbr_rec *, int); static int dbr_pac_del(struct dbr_rec *, int); static void dbr_pac_start(struct dbr_pac *, int, int, void *); static int probe_step(const struct event_tmr *, const ev_arg); static int an_step(const struct event_tmr *, const ev_arg); + /* * Initialize a database record system */ @@ -61,6 +69,7 @@ dbr->dbr_ctx = context; MDNS_INIT_SET(dbr, dbr_magic); hashtbl_init(&dbr->dbr_ident, 8, 512, 3); + TAILQ_INIT(&dbr->dbr_ilist); var_init(&dbr->dbr_vars, mif->mif_glob->g_evl, dbr); /* We only do the IN class */ @@ -68,16 +77,6 @@ dprintf(DEBUG_DBR, "Database records initialized"); } -static void -record_del_cb(struct record *r, __unused void *arg) -{ - struct dbr_rec *dr; - - dr = record_getparent(r); - MDNS_INIT_ASSERT(dr, dr_magic); - dbr_del(dr); -} - /* * Destroy a database record system */ @@ -85,76 +84,29 @@ dbr_destroy(struct dbr *dbr) { struct md_if *mif; + struct dbr_ident *dbi, *dbi2; MDNS_INIT_ASSERT(dbr, dbr_magic); + RW_WLOCK(dbr, dbr_lock); mif = dbr->dbr_ctx; - records_foreach(&dbr->dbr_recs, record_del_cb, NULL); + TAILQ_FOREACH_SAFE(dbi, &dbr->dbr_ilist, dbi_next, dbi2) { + ident_del(dbr, dbi); + } + records_destroy(&dbr->dbr_recs); var_destroy(&dbr->dbr_vars, mif->mif_glob->g_evl); hashtbl_destroy(&dbr->dbr_ident); + + RW_UNLOCK(dbr, dbr_lock); + RW_DESTROY(dbr, dbr_lock); MDNS_INIT_UNSET(dbr, dbr_magic); - dprintf(DEBUG_DBR, "Database records destroyed"); } /* - * Clone a record - */ -static struct dbr_rec * -clone_rec(struct dbr_rec *orig) -{ - struct dbr_rec *dr; - - dr = malloc(sizeof(struct dbr_rec)); - if (dr == NULL) - return (NULL); - memcpy(dr, orig, sizeof(struct dbr_rec)); - dr->dr_flags |= DR_CLONE; - TAILQ_INSERT_TAIL(&orig->dr_clone.head, dr, dr_clone.next); - dprintf(DEBUG_DBR, "Database record cloned dr=%x, source=%x", dr, orig); - return (dr); -} - -/* - * Clone all resources from `orig' onto `dr' - */ -static void -clone_rec_res(struct dbr_rec *orig, struct dbr_rec *dr) -{ - struct record *r; - struct record_type *rt; - struct record_res *rr; - struct dbr_res *ds; - struct dbr_rec *dr2; - void *res; - int ptr; - - MDNS_INIT_ASSERT(dr, dr_magic); - MDNS_INIT_ASSERT(orig, dr_magic); - r = &orig->dr_rec; - MDNS_INIT_ASSERT(r, r_magic); - - record_foreach(rt, r) { - record_type_foreach(rr, rt) { - ds = record_res_getparent(rr); - ptr = ds->ds_flags & DS_POINTER; - if (ptr) { - dr2 = ds->ds_vdata.rec; - res = dr2->dr_ident; - } - else - res = ds->ds_vdata.wp; - - dbr_res_add(dr, rt->rt_type, ds->ds_ttl, res, ptr); - } - } - dprintf(DEBUG_DBR, "Cloned resources from %x to %x", orig, dr); -} - -/* * Update a database record - * dr - Database record + * dbi - Database record set identifier * vtd - Arrays of expanded names * vtd_len - Array length * @@ -163,81 +115,59 @@ * then those clones are removed. */ static void -rec_update(struct dbr_rec *dr, struct vt_data *vtd, size_t vtd_len) +rec_update(struct dbr_ident *dbi, struct vt_data *vtd, size_t vtd_len) { - struct dbr_rec *dr_clone, *dr_tmp; - struct dbr_res *ds, *ds2; + struct dbr_rec *dr, *dr2; struct dbr *dbr; + struct dbr_ident_res *dir, *dir2; struct record *r; uint32_t i; int32_t diff; wchar_t **names; char *nam; - MDNS_INIT_ASSERT(dr, dr_magic); - dbr = dr->dr_dbr; + MDNS_INIT_ASSERT(dbi, dbi_magic); + dbr = dbi->dbi_dbr; MDNS_INIT_ASSERT(dbr, dbr_magic); - assert(dr == dr->dr_chead); - /* Stop pending probes/announces */ - rec_pastop(dr); + rec_pastop(dbi); /* * If the provided array length is 0 there are no available * names, invalidate record and remove all clones. */ if (vtd_len == 0) { - if (dr->dr_name != NULL) - free(dr->dr_name); - dr->dr_name = NULL; - dr->dr_flags |= DR_INVALID; - dr->dr_flags &= ~DR_OK; - - TAILQ_FOREACH_SAFE(dr_clone, &dr->dr_clone.head, - dr_clone.next, dr_tmp) { - rec_del(dr_clone); + TAILQ_FOREACH_SAFE(dr, &dbi->dbi_rech, dr_next, dr2) { + rec_del(dr); } - /* - * Invalidate all database resources that are using this - * record name as their data source. - */ - TAILQ_FOREACH(ds, &dr->dr_res_ptr, ds_ptr_next) { - ds->ds_flags |= DS_INVALID; - free(ds->ds_data); - ds->ds_data = NULL; + /* Clear resources that points to this record */ + TAILQ_FOREACH(dir, &dbi->dbi_res_ptr, dir_ptr_next) { + MTX_LOCK(dir, dir_mtx); + res_update(dir, NULL, 0); + MTX_UNLOCK(dir, dir_mtx); } return; } - i = 1; - nam = mdns_name_encode(vtd[0].vtd_str, vtd[0].vtd_len, MDNS_ENC_AUTO); - r = &dr->dr_rec; - if (dr->dr_name != NULL) - free(dr->dr_name); - record_setname(r, nam); - - free(nam); - dr->dr_name = vtd[0].vtd_str; - dr->dr_flags &= ~(DR_OK | DR_INVALID); - /* * Replace names as long as there are enough clones * and results available. */ - TAILQ_FOREACH(dr_clone, &dr->dr_clone.head, dr_clone.next) { - if ((i - 1) == dr->dr_clones || i == vtd_len) + i = 0; + TAILQ_FOREACH(dr, &dbi->dbi_rech, dr_next) { + if (i == dbi->dbi_records || i == vtd_len) break; - r = &dr_clone->dr_rec; + r = &dr->dr_rec; + if (dr->dr_name != NULL) + free(dr->dr_name); nam = mdns_name_encode(vtd[i].vtd_str, vtd[i].vtd_len, MDNS_ENC_AUTO); record_setname(r, nam); free(nam); - if (dr_clone->dr_name != NULL) - free(dr_clone->dr_name); - dr_clone->dr_name = vtd[i].vtd_str; - dr_clone->dr_flags &= ~DR_OK; + dr->dr_name = _wcsdup(vtd[i].vtd_str); + dr->dr_flags &= ~DR_OK; i++; } @@ -245,41 +175,34 @@ if (vtd_len > i) { diff = vtd_len - i; while (diff-- > 0) { - dr_clone = clone_rec(dr); - dr_clone->dr_clones = 0; - dr->dr_clones++; - r = &dr_clone->dr_rec; - nam = mdns_name_encode(vtd[i].vtd_str, vtd[i].vtd_len, - MDNS_ENC_AUTO); - record_get(&dbr->dbr_recs, &r, RECORD_NOALLOC, nam); - record_setparent(r, dr_clone); - clone_rec_res(dr, dr_clone); - free(nam); - dr_clone->dr_name = vtd[i].vtd_str; + rec_add(dbi, vtd[i].vtd_str); i++; } } /* More clones than results, shrink */ - else if (dr->dr_clones >= i) { - diff = dr->dr_clones - i; + else if (dbi->dbi_records > i) { + diff = dbi->dbi_records - 1; while (diff-- >= 0) { - dr_tmp = TAILQ_LAST(&dr->dr_clone.head, recclone_head); - rec_del(dr_tmp); + dr = TAILQ_LAST(&dbi->dbi_rech, rechead); + rec_del(dr); } } /* Update resources that points to this record */ names = malloc(sizeof(wchar_t *) * vtd_len); - TAILQ_FOREACH_SAFE(ds, &dr->dr_res_ptr, ds_ptr_next, ds2) { - for (i = 0; i < vtd_len; i++) - names[i] = _wcsdup(vtd[i].vtd_str); - res_update(ds, names, vtd_len); + for (i = 0; i < vtd_len; i++) + names[i] = vtd[i].vtd_str; + + TAILQ_FOREACH_SAFE(dir, &dbi->dbi_res_ptr, dir_ptr_next, dir2) { + res_update(dir, names, vtd_len); } free(names); +#if 0 dprintf(DEBUG_DBR, "Database record r=%x, (%ls) updated, flags=%x, clones=%d", dr, dr->dr_names[dr->dr_cur], dr->dr_flags, dr->dr_clones); +#endif } /* @@ -290,362 +213,901 @@ rec_var_update(void *ptr) { struct dbr *dbr; - struct dbr_rec *dr, *dr2; + struct dbr_ident *dbi, *dbi2; + struct dbr_ident_res *dir; + struct dbr_rec *dr; struct dbr_pac *pac; - struct dbr_res *ds; - struct record *r; struct vt_data *vtd; size_t vtd_len; wchar_t *wp; - dr = ptr; - MDNS_INIT_ASSERT(dr, dr_magic); - dbr = dr->dr_dbr; + dbi = ptr; + MDNS_INIT_ASSERT(dbi, dbi_magic); + dbr = dbi->dbi_dbr; MDNS_INIT_ASSERT(dbr, dbr_magic); - r = &dr->dr_rec; - assert(dr == dr->dr_chead); + RW_WLOCK(dbr, dbr_lock); + MTX_LOCK(dbi, dbi_mtx); - wp = dr->dr_names[dr->dr_cur]; + wp = dbi->dbi_names[dbi->dbi_curnam]; vtd = var_expand(&dbr->dbr_vars, wp, &vtd_len); - rec_update(dr, vtd, vtd_len); + rec_update(dbi, vtd, vtd_len); free(vtd); /* * Create a probe context and and affected records to it */ pac = dbr_pac_new(dbr, PAC_PROBE); - dbr_probe_add(pac, dr); - TAILQ_FOREACH(dr2, &dr->dr_clone.head, dr_clone.next) { - dbr_probe_add(pac, dr2); + TAILQ_FOREACH(dr, &dbi->dbi_rech, dr_next) { + dbr_probe_add(pac, dr); } + /* Resources pointing to this record */ - TAILQ_FOREACH(ds, &dr->dr_res_ptr, ds_ptr_next) { - MDNS_INIT_ASSERT(ds, ds_magic); - dr2 = ds->ds_type->dt_rec; - MDNS_INIT_ASSERT(dr2, dr_magic); - dbr_probe_add(pac, dr2); + TAILQ_FOREACH(dir, &dbi->dbi_res_ptr, dir_ptr_next) { + MDNS_INIT_ASSERT(dir, dir_magic); + dbi2 = dir->dir_dbi; + MDNS_INIT_ASSERT(dbi2, dbi_magic); + + TAILQ_FOREACH(dr, &dbi2->dbi_rech, dr_next) { + dbr_probe_add(pac, dr); + } } + + MTX_UNLOCK(dbi, dbi_mtx); + RW_UNLOCK(dbr, dbr_lock); + dbr_probe_start(pac); } /* - * Add a new database record - * dbr - Record database - * ident - Unique record set identifier - * names - Array of un-expanded alternativ names (NULL-terminated) - * shared - Shared record? - * + * Select a name from the alternatives to use */ -struct dbr_rec * -dbr_add(struct dbr *dbr, char *ident, wchar_t **names, int shared) +static int +ident_setname(struct dbr_ident *dbi, int namsel) { - wchar_t *wp; + struct dbr *dbr; struct vt_data *vtd; size_t vtd_len; - struct dbr_rec *dr; - struct record *r; - int error; - uint32_t i; + wchar_t *wp; + + dbr = dbi->dbi_dbr; + MDNS_INIT_ASSERT(dbr, dbr_magic); + + if (namsel >= dbi->dbi_numnam) + return (-1); + + wp = dbi->dbi_names[namsel]; + vtd = var_expand(&dbr->dbr_vars, wp, &vtd_len); + if (vtd_len > 0) { + var_dereg(&dbr->dbr_vars, + dbi->dbi_names[dbi->dbi_curnam], dbi); + var_reg(&dbr->dbr_vars, wp, rec_var_update, dbi); + dbi->dbi_curnam = namsel; + rec_update(dbi, vtd, vtd_len); + } + else { + var_vtdfree(vtd, vtd_len); + return (-1); + } + var_vtdfree(vtd, vtd_len); + return (0); +} + +/* + * Create a record set identifier + * dbr - Database record handle + * ident - Record set identifier to create + */ +int +dbr_ident_add(struct dbr *dbr, char *ident) +{ + struct dbr_ident *dbi; + size_t ilen; + + ilen = strlen(ident); + + RW_WLOCK(dbr, dbr_lock); + dbi = hashtbl_find(&dbr->dbr_ident, ident, ilen); + if (dbi != NULL) { + dprintf(DEBUG_DBR, "Record set %s does already exists dbi=%x", + ident, dbi); + goto out; + } + + dbi = malloc(sizeof(struct dbr_ident)); + if (dbi == NULL) + goto out; + bzero(dbi, sizeof(struct dbr_ident)); + MTX_INIT(dbi, dbi_mtx, NULL); + dbi->dbi_dbr = dbr; + dbi->dbi_ident = strdup(ident); + TAILQ_INIT(&dbi->dbi_rech); + TAILQ_INIT(&dbi->dbi_res); + TAILQ_INIT(&dbi->dbi_res_ptr); + MDNS_INIT_SET(dbi, dbi_magic); + + TAILQ_INSERT_TAIL(&dbr->dbr_ilist, dbi, dbi_next); + hashtbl_add(&dbr->dbr_ident, dbi->dbi_ident, ilen, dbi, 0); + + RW_UNLOCK(dbr, dbr_lock); + return (0); +out: + RW_UNLOCK(dbr, dbr_lock); + return (-1); +} + +static void +ident_del(struct dbr *dbr, struct dbr_ident *dbi) +{ + struct dbr_ident_res *dir, *dir2; + size_t ilen; + int i; + + TAILQ_REMOVE(&dbr->dbr_ilist, dbi, dbi_next); + ilen = strlen(dbi->dbi_ident); + hashtbl_del(&dbr->dbr_ident, dbi->dbi_ident, ilen); + + if (dbi->dbi_numnam > 0) + var_dereg(&dbr->dbr_vars, dbi->dbi_names[dbi->dbi_curnam], dbi); + + /* Remove resources pointing to this record */ + TAILQ_FOREACH_SAFE(dir, &dbi->dbi_res_ptr, dir_ptr_next, dir2) { + ident_res_del(dbr, dir); + } + + /* Remove resources on this record */ + TAILQ_FOREACH_SAFE(dir, &dbi->dbi_res, dir_next, dir2) { + ident_res_del(dbr, dir); + } + + rec_update(dbi, NULL, 0); + + for (i = 0; i < dbi->dbi_numnam; i++) + free(dbi->dbi_names[i]); + + if (dbi->dbi_numnam > 0) + free(dbi->dbi_names); + + free(dbi->dbi_ident); + MTX_DESTROY(dbi, dbi_mtx); + MDNS_INIT_UNSET(dbi, dbi_magic); + free(dbi); + + dprintf(DEBUG_DBR, "Removed identifier %d", dbi); +} + +/* + * Remove a record set identifier + * dbr - Database record handle + * ident - Identifier to remove + * + * Removes an identifier and all records and resources associated with it. + */ +int +dbr_ident_del(struct dbr *dbr, char *ident) +{ + struct dbr_ident *dbi; + size_t ilen; - dr = hashtbl_find(&dbr->dbr_ident, ident, strlen(ident)); - if (dr != NULL) { - dprintf(DEBUG_DBR, "Record set %s does already exists dr=%x", - ident, dr); - return (dr); + ilen = strlen(ident); + RW_WLOCK(dbr, dbr_lock); + dbi = hashtbl_find(&dbr->dbr_ident, ident, ilen); + if (dbi == NULL) { + dprintf(DEBUG_DBR, "Record set %s does not exists", ident); + goto out; } - else if (names[0] == NULL) - return (NULL); + + ident_del(dbr, dbi); + RW_UNLOCK(dbr, dbr_lock); + return (0); +out: + RW_UNLOCK(dbr, dbr_lock); + return (-1); +} + +/* + * Return a list of identifiers + * dbr - Record database handle + */ +char ** +dbr_ident_list(struct dbr *dbr) +{ + struct dbr_ident *dbi; + char **ident; + int i; + + MDNS_INIT_ASSERT(dbr, dbr_magic); + ident = NULL; i = 0; - error = -1; - dr = malloc(sizeof(struct dbr_rec)); - TAILQ_INIT(&dr->dr_clone.head); - dr->dr_clones = 0; - dr->dr_dbr = dbr; - dr->dr_name = NULL; - dr->dr_ident = strdup(ident); - dr->dr_names = names; - dr->dr_cur = 0; - dr->dr_cols = 0; - dr->dr_col_ts = 0; - dr->dr_chead = dr; - dr->dr_flags = DR_INVALID; - r = &dr->dr_rec; - record_get(&dbr->dbr_recs, &r, RECORD_NOALLOC, ident); - record_setparent(r, dr); + RW_RLOCK(dbr, dbr_lock); + TAILQ_FOREACH(dbi, &dbr->dbr_ilist, dbi_next) { + MDNS_INIT_ASSERT(dbi, dbi_magic); + ident = realloc(ident, sizeof(char *) * ++i); + ident[i - 1] = strdup(dbi->dbi_ident); + } + RW_UNLOCK(dbr, dbr_lock); + + ident = realloc(ident, sizeof(char *) * ++i); + ident[i - 1] = NULL; + + return (ident); +} + +/* + * Free an identifier array previously allocated with dbr_ident_() + */ +void +dbr_ident_list_free(char **ident) +{ + int i = 0; + + if (ident == NULL) + return; + while (ident[i] != NULL) + free(ident[i++]); + free(ident); +} + +/* + * Add a record name to a record set identifier + * dbr - Database record handle + * ident - Record set identifier + * name - Wide character encoded (NULL-terminated) name to add + */ +int +dbr_name_add(struct dbr *dbr, char *ident, wchar_t *name) +{ + struct dbr_ident *dbi; + size_t ilen; + int i; + + ilen = strlen(ident); + RW_WLOCK(dbr, dbr_lock); + dbi = hashtbl_find(&dbr->dbr_ident, ident, ilen); + if (dbi == NULL) + goto out; + + MTX_LOCK(dbi, dbi_mtx); + i = dbi->dbi_numnam; + dbi->dbi_numnam++; + dbi->dbi_names = realloc(dbi->dbi_names, + dbi->dbi_numnam * sizeof(wchar_t *)); + dbi->dbi_names[i] = _wcsdup(name); + + if (dbi->dbi_records == 0) + ident_setname(dbi, i); + + MTX_UNLOCK(dbi, dbi_mtx); + RW_UNLOCK(dbr, dbr_lock); + return (0); +out: + RW_UNLOCK(dbr, dbr_lock); + return (-1); +} + +/* + * Remove a record name from a record set + * dbr - Database record handle + * ident - Record set identifier + * name - Record name to remove + */ +int +dbr_name_del(struct dbr *dbr, char *ident, wchar_t *name) +{ + struct dbr_ident *dbi; + size_t ilen; + int i, next; + + ilen = strlen(ident); + RW_WLOCK(dbr, dbr_lock); + dbi = hashtbl_find(&dbr->dbr_ident, ident, ilen); + if (dbi == NULL) + goto out; - if (shared) - dr->dr_flags |= DR_SHARED; - TAILQ_INIT(&dr->dr_res_ptr); - MDNS_INIT_SET(dr, dr_magic); + MTX_LOCK(dbi, dbi_mtx); - do { - wp = names[i++]; - if (wp == NULL) + for (i = 0; i < dbi->dbi_numnam; i++) { + if (wcscmp(name, dbi->dbi_names[i]) == 0) break; + } + + /* Not found */ + if (i == dbi->dbi_numnam) { + MTX_UNLOCK(dbi, dbi_mtx); + goto out; + } + + if (i == dbi->dbi_curnam) { + next = (dbi->dbi_curnam + 1) % dbi->dbi_numnam; + if (next != i) + ident_setname(dbi, next); + else { + rec_update(dbi, NULL, 0); + } + } + + free(dbi->dbi_names[i]); + dbi->dbi_numnam--; + + /* Overwrite entry if it's in the middle of array */ + if (i < dbi->dbi_numnam) { + memmove(dbi->dbi_names[i], dbi->dbi_names[i + 1], + (dbi->dbi_numnam - i) * sizeof(wchar_t)); + } + + if (dbi->dbi_numnam > 0) + dbi->dbi_names = realloc(dbi->dbi_names, + dbi->dbi_numnam * sizeof(wchar_t)); + else { + free(dbi->dbi_names); + dbi->dbi_names = NULL; + } + + MTX_UNLOCK(dbi, dbi_mtx); + RW_UNLOCK(dbr, dbr_lock); + return (0); +out: + RW_UNLOCK(dbr, dbr_lock); + return (-1); +} + +/* + * Return an array of names assigned to an identifier + * dbr - Record database handle + * ident - Identifier + * namlen - Will be set to array length + */ +struct dbr_name * +dbr_name_list(struct dbr *dbr, char *ident, size_t *namlen) +{ + struct dbr_ident *dbi; + struct dbr_name *dn, *dnp; + struct dbr_rec *dr; + size_t ilen, sz; + int i, j; + + ilen = strlen(ident); + RW_WLOCK(dbr, dbr_lock); + dbi = hashtbl_find(&dbr->dbr_ident, ident, ilen); + if (dbi == NULL) + goto out; + + MTX_LOCK(dbi, dbi_mtx); + sz = dbi->dbi_numnam; + + for (i = 0; i < dbi->dbi_numnam; i++) + sz += dbi->dbi_records; + + dn = malloc(sizeof(struct dbr_name) * sz); + if (dn == NULL) + goto out2; - vtd = var_expand(&dbr->dbr_vars, wp, &vtd_len); - if (vtd_len > 0) { - var_reg(&dbr->dbr_vars, wp, rec_var_update, dr); - rec_update(dr, vtd, vtd_len); + for (i = 0; i < dbi->dbi_numnam; i++) { + if (dbi->dbi_records == 0) { + if (dbi->dbi_curnam == i) + dn[i].dn_curnam = 1; + dn[i].dn_ename = NULL; + dn[i].dn_name = _wcsdup(dbi->dbi_names[i]); + continue; } - else { - var_vtdfree(vtd, vtd_len); + + j = 0; + TAILQ_FOREACH(dr, &dbi->dbi_rech, dr_next) { + dnp = &dn[i + j]; + dnp->dn_name = _wcsdup(dbi->dbi_names[i]); + if (dbi->dbi_curnam == i) + dnp->dn_curnam = 1; + dnp->dn_ename = _wcsdup(dr->dr_name); + j++; } - } while (vtd_len == 0); + } + + *namlen = sz; + + MTX_UNLOCK(dbi, dbi_mtx); + RW_UNLOCK(dbr, dbr_lock); + return (dn); +out2: + MTX_UNLOCK(dbi, dbi_mtx); +out: + RW_UNLOCK(dbr, dbr_lock); + *namlen = 0; + return (NULL); +} + +/* + * Free an array of names allocated with dbr_name_list() + * dn - Array pointer + * namlen - Array length + */ +void +dbr_name_list_free(struct dbr_name *dn, size_t namlen) +{ + size_t i; + + for (i = 0; i < namlen; i++) { + free(dn[i].dn_name); + if (dn[i].dn_ename != NULL) + free(dn[i].dn_ename); + i++; + } + free(dn); +} + +/* + * Add a resource to a record identifier + */ +int +dbr_res_add(struct dbr *dbr, char *ident, uint16_t class, uint16_t type, + uint32_t ttl, void *res, int ptr) +{ + struct dbr_ident *dbi, *dbip; + struct dbr_ident_res *dir; + struct dbr_rec *dr, *dr2; + struct dbr_res *dsh; + struct vt_data *vtd; + size_t ilen, vtd_len; + uint32_t i; + char *iptr; + + ilen = strlen(ident); + RW_RLOCK(dbr, dbr_lock); + dbi = hashtbl_find(&dbr->dbr_ident, ident, ilen); + if (dbi == NULL) + goto out; + + if (ptr) { + iptr = res; + dbip = hashtbl_find(&dbr->dbr_ident, iptr, strlen(iptr)); + if (dbip == NULL) + goto out; + } + + dir = malloc(sizeof(struct dbr_ident_res)); + if (dir == NULL) + goto out; + + bzero(dir, sizeof(struct dbr_ident_res)); + dir->dir_class = class; + dir->dir_type = type; + dir->dir_ttl = ttl; + dir->dir_dbi = dbi; + TAILQ_INIT(&dir->dir_resh); + MTX_INIT(dir, dir_mtx, NULL); + MDNS_INIT_SET(dir, dir_magic); - /* - * If all alternative names fail to expand just set it to the - * first name and mark the record as invalid. - */ - if (vtd_len == 0) { - wp = names[0]; - var_reg(&dbr->dbr_vars, wp, rec_var_update, dr); - dr->dr_cur = 0; + if (ptr) { + dir->dir_flags |= DIR_POINTER; + dir->dir_data.dbi = dbip; } else { - dr->dr_cur = i - 1; + dir->dir_data.wp = res; + } + + MTX_LOCK(dbi, dbi_mtx); + TAILQ_INSERT_TAIL(&dbi->dbi_res, dir, dir_next); + + if (ptr) { + MTX_LOCK(dbip, dbi_mtx); + TAILQ_FOREACH(dr, &dbi->dbi_rech, dr_next) { + dr2 = TAILQ_FIRST(&dbip->dbi_rech); + dsh = res_add(dr, dir, NULL, dr2->dr_name); + while ((dr2 = TAILQ_NEXT(dr2, dr_next)) != NULL) { + res_add(dr, dir, dsh, dr2->dr_name); + } + } + TAILQ_INSERT_TAIL(&dbip->dbi_res_ptr, dir, dir_ptr_next); + MTX_UNLOCK(dbip, dbi_mtx); } + else { + vtd = var_expand(&dbr->dbr_vars, dir->dir_data.wp, &vtd_len); + TAILQ_FOREACH(dr, &dbi->dbi_rech, dr_next) { + if (vtd_len > 0) + dsh = res_add(dr, dir, NULL, vtd[0].vtd_str); + for (i = 1; i < vtd_len; i++) + res_add(dr, dir, dsh, vtd[i].vtd_str); + } - dr->dr_flags &= ~DR_OK; - hashtbl_add(&dbr->dbr_ident, dr->dr_ident, strlen(dr->dr_ident), dr, 0); + var_vtdfree(vtd, vtd_len); + var_reg(&dbr->dbr_vars, dir->dir_data.wp, res_var_update, dir); + } - if ((dr->dr_flags & DR_SHARED) && !(dr->dr_flags & DR_INVALID)) - dr->dr_flags |= DR_OK; + dprintf(DEBUG_DBR, "Added resource res=%x to ident %s, ptr=%x", + res, dbi->dbi_ident, ptr); - dprintf(DEBUG_DBR, - "New database record ident=%s, dr=%x, name=%ls, clones=%d, " - "flags=%x", dr->dr_ident, dr, dr->dr_names[dr->dr_cur], - dr->dr_clones, dr->dr_flags); - return (dr); + MTX_UNLOCK(dbi, dbi_mtx); + RW_UNLOCK(dbr, dbr_lock); + return (0); +out: + RW_UNLOCK(dbr, dbr_lock); + return (-1); } -static void -record_res_del_cb(struct record_res *rr, __unused void *arg) +/* + * Remove a resource from an identifier + */ +int +dbr_res_del(struct dbr *dbr, char *ident, uint16_t class, uint16_t type, + void *res, int ptr) { - struct dbr_res *ds; + struct dbr_ident *dbi; + struct dbr_ident_res *dir; + size_t ilen; + int error; + char *ires; + wchar_t *wres; + + ilen = strlen(ident); + RW_RLOCK(dbr, dbr_lock); + dbi = hashtbl_find(&dbr->dbr_ident, ident, ilen); + if (dbi == NULL) + goto out; + MTX_LOCK(dbi, dbi_mtx); + + ires = res; + wres = res; + + TAILQ_FOREACH(dir, &dbi->dbi_res, dir_next) { + if (dir->dir_class != class || dir->dir_type != type) + continue; + if (ptr && !(dir->dir_flags & DIR_POINTER)) + continue; + + if (ptr) { + if (strcmp(dir->dir_data.dbi->dbi_ident, ires) == 0) + break; + } + else { + if (wcscmp(dir->dir_data.wp, wres) == 0) + break; + } + } + + if (dir != NULL) + error = ident_res_del(dbr, dir); + else + error = -1; - ds = record_res_getparent(rr); - MDNS_INIT_ASSERT(ds, ds_magic); - if (!(ds->ds_flags & DS_CLONE)) - dbr_res_del(ds); + MTX_UNLOCK(dbi, dbi_mtx); + RW_UNLOCK(dbr, dbr_lock); + return (error); +out: + RW_UNLOCK(dbr, dbr_lock); + return (-1); } -static void -record_type_del_cb(struct record_type *rt, __unused void *arg) +/* + * Return an array of resources assigned to an identifer + * dbr - Record database handle + * ident - Identifer + * reslen - Will be set to array length + */ +struct dbr_resource * +dbr_res_list(struct dbr *dbr, char *ident, size_t *reslen) { - struct dbr_type *dt; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 5 18:47:10 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 87E1C16A41A; Sun, 5 Aug 2007 18:47:10 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4CECD16A417 for ; Sun, 5 Aug 2007 18:47:10 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 40C8813C483 for ; Sun, 5 Aug 2007 18:47:10 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75IlAq2041533 for ; Sun, 5 Aug 2007 18:47:10 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75IlAwp041530 for perforce@freebsd.org; Sun, 5 Aug 2007 18:47:10 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 18:47:10 GMT Message-Id: <200708051847.l75IlAwp041530@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124746 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, 05 Aug 2007 18:47:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=124746 Change 124746 by fli@fli_nexus on 2007/08/05 18:47:07 Follow the changes done to the record database. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/parse.y#3 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/parse.y#3 (text+ko) ==== @@ -223,9 +223,8 @@ struct cfg_name *cn; struct cfg_res *cs; struct cfg_resdata *csd; - int i, ttl; - struct dbr_rec *dr; - wchar_t **names, *wp; + int ttl; + wchar_t *nam, *wp; size_t len; if (!cfg_ifvalid && cfg_ifpassed) @@ -241,21 +240,15 @@ cfg_rrset.cr_ident, (cfg_rrset.cr_shared ? " (shared)" : ""), cfg_rrset.cr_namcount); - /* Do not free names, its in use by dbr_add() */ - names = malloc(sizeof(wchar_t *) * (cfg_rrset.cr_namcount + 1)); - i = 0; + dbr_ident_add(dbr, cfg_rrset.cr_ident); TAILQ_FOREACH(cn, &cfg_rrset.cr_names, cn_next) { dprintf(DEBUG_CFGPARSE, " %s", cn->cn_name); len = strlen(cn->cn_name) + 1; - names[i] = malloc(len * sizeof(wchar_t)); - mbstowcs(names[i], cn->cn_name, len); - i++; + nam = malloc(len * sizeof(wchar_t)); + mbstowcs(nam, cn->cn_name, len); + dbr_name_add(dbr, cfg_rrset.cr_ident, nam); + free(nam); } - names[i] = NULL; - - dr = dbr_add(dbr, cfg_rrset.cr_ident, names, - cfg_rrset.cr_shared); - assert(dr != NULL); dprintf(DEBUG_CFGPARSE, "rrset resources"); TAILQ_FOREACH(cs, &cfg_rrset.cr_res, cs_next) { @@ -268,14 +261,16 @@ csd->csd_data, ttl); if (csd->csd_auto) { - dbr_res_add(dr, cs->cs_type, ttl, + dbr_res_add(dbr, cfg_rrset.cr_ident, + mdns_c_in, cs->cs_type, ttl, csd->csd_data, 1); } else { len = strlen(csd->csd_data) + 1; wp = malloc(len * sizeof(wchar_t)); mbstowcs(wp, csd->csd_data, len); - dbr_res_add(dr, cs->cs_type, ttl, + dbr_res_add(dbr, cfg_rrset.cr_ident, + mdns_c_in, cs->cs_type, ttl, wp, 0); } } From owner-p4-projects@FreeBSD.ORG Sun Aug 5 18:59:29 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA15216A41B; Sun, 5 Aug 2007 18:59:29 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75F7516A418 for ; Sun, 5 Aug 2007 18:59:29 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 69A9D13C46A for ; Sun, 5 Aug 2007 18:59:29 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75IxQlX044040 for ; Sun, 5 Aug 2007 18:59:26 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75IxPJj044037 for perforce@freebsd.org; Sun, 5 Aug 2007 18:59:25 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 18:59:25 GMT Message-Id: <200708051859.l75IxPJj044037@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124747 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, 05 Aug 2007 18:59:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=124747 Change 124747 by fli@fli_nexus on 2007/08/05 18:58:30 - Add support to manipulate the record database. Allows add, remove and list operations (root only). - Add support to view and flush the cache (root only). - Add support to view active interfaces (root only). - Follow name change (mdnsd_clipkg.h -> mdnsd_ipc.h). - Save client credentials aquired from socket. - Change how messages are read. Read for as long as data is available, also use length information encoded in message to properly separate messages. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/clisrv.c#2 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/clisrv.h#2 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/clisrv.c#2 (text+ko) ==== @@ -34,13 +34,14 @@ #include #include +#include #include #include #include "event.h" #include "clisrv.h" #include "mdnsd.h" -#include "mdnsd_clipkg.h" +#include "mdnsd_ipc.h" #include "log.h" #include "objalloc.h" #include "utf8.h" @@ -52,13 +53,44 @@ static int evh_cli(const struct event_io *, const ev_arg); static int cp_parse(struct cs_client *, char *, size_t, int); -static int mtpf_query(struct cs_client *, struct cp_head *, char *, size_t); +static int mtpf_query(struct cs_client *, struct mipc_head *, char *, size_t); +static int mtpf_if_list(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_ident_list(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_ident_add(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_ident_del(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_name_add(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_name_del(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_name_list(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_res_add(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_res_del(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_res_list(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_cache_flush(struct cs_client *, struct mipc_head *, char *, + size_t); +static int mtpf_cache_list(struct cs_client *, struct mipc_head *, char *f, + size_t); static void send_error(struct cs_client *, int, int); static void send_ack(struct cs_client *, int); -static int queryadd(struct cs_client *, struct csc_query *, int, int, int); -static int querydel(struct cs_client *, struct csc_query * , int); +static int queryadd(struct cs_client *, struct csc_query *, unsigned int, + int, int); +static int querydel(struct cs_client *, struct csc_query * , unsigned int); + +#define IPC_SETHDR(mih, id, type, len) \ + (mih)->mih_ver = MIPC_VERSION; \ + (mih)->mih_id = id; \ + (mih)->mih_msgtype = type; \ + (mih)->mih_msglen = len; /* * Open UNIX pipe socket to clients @@ -205,11 +237,12 @@ TAILQ_INSERT_TAIL(&cs->cs_head, csc, csc_next); csc->csc_sock = sock; csc->csc_serv = cs; + csc->csc_suser = 0; eva.ptr = csc; csc->csc_evid = event_add(g->g_evl, EVENT_TYPE_IO, evh_cli, &eva, evh_clisetup_init, &eva); - dprintf(DEBUG_CS, "New UNIX pipe client csc=%x", csc); + dprintf(DEBUG_CS, "New UNIX pipe client csc=%x, sock=%d", csc, sock); out: MTX_UNLOCK(cs, cs_mtx); return (0); @@ -270,11 +303,12 @@ struct cs_client *csc; struct cmsghdr *cmptr; struct sockcred *cred; - int n, sock, suser, error; + struct mipc_head *mih; + int n, sock, error, len; struct msghdr msg; struct iovec iov[1]; - char control[CMSG_LEN(SOCKCREDSIZE(1))]; - char buf[CP_MAXPLEN]; + char control[CMSG_LEN(SOCKCREDSIZE(1)) + sizeof(struct cmsghdr)]; + char buf[MIPC_MAXPLEN]; csc = arg.ptr; MDNS_INIT_ASSERT(csc, csc_magic); @@ -282,8 +316,6 @@ sock = csc->csc_sock; - iov[0].iov_base = buf; - iov[0].iov_len = CP_MAXPLEN; msg.msg_name = NULL; msg.msg_namelen = 0; msg.msg_iov = iov; @@ -291,30 +323,43 @@ msg.msg_control = control; msg.msg_controllen = sizeof(control); msg.msg_flags = 0; + iov[0].iov_base = buf + sizeof(struct mipc_head); + + for (;;) { + n = read(sock, buf, sizeof(struct mipc_head)); + if (n < (signed int)sizeof(struct mipc_head)) + break; - n = recvmsg(sock, &msg, 0); - if (n < 0) - goto out; - cmptr = CMSG_FIRSTHDR(&msg); - suser = 0; - if (cmptr != NULL) { - if (cmptr->cmsg_type == SCM_CREDS && - cmptr->cmsg_level == SOL_SOCKET) { - cred = (struct sockcred *)CMSG_DATA(cmptr); - if (cred->sc_euid == 0) - suser = 1; + mih = (struct mipc_head *)buf; + if (mih->mih_ver != MIPC_VERSION) + continue; + + len = mih->mih_msglen > MIPC_MAXPLEN ? + MIPC_MAXPLEN : mih->mih_msglen; + iov[0].iov_len = len - sizeof(struct mipc_head); + + n = recvmsg(sock, &msg, 0); + if ((unsigned int)n != iov[0].iov_len) + continue; + + /* Check credentials */ + cmptr = CMSG_FIRSTHDR(&msg); + if (cmptr != NULL) { + if (cmptr->cmsg_type == SCM_CREDS && + cmptr->cmsg_level == SOL_SOCKET) { + cred = (struct sockcred *)CMSG_DATA(cmptr); + csc->csc_suser = (cred->sc_euid == 0) ? 1 : 0; + } } - } - dprintf(DEBUG_CS, "Received packet on UNIX pipe " - "csc=%x, len=%d, suser=%d", csc, n, suser); + dprintf(DEBUG_CS, "Received packet on UNIX pipe csc=%x, " + "len=%d, suser=%d, sock=%d", csc, n, csc->csc_suser, sock); - error = cp_parse(csc, buf, n, suser); - if (error != 0) { - dprintf(DEBUG_CS, "Failed to parse packet csc=%x", csc); - } + error = cp_parse(csc, buf, n, csc->csc_suser); + if (error != 0) + dprintf(DEBUG_CS, "Failed to parse packet csc=%x", csc); + } -out: MTX_UNLOCK(csc, csc_mtx); return (0); } @@ -322,7 +367,7 @@ /* * Parser defintions to individual message types. */ -typedef int (*mtp_func) (struct cs_client *, struct cp_head *, char *, size_t); +typedef int (*mtp_func) (struct cs_client *, struct mipc_head *, char *, size_t); struct msgtype_parser { int mtp_msgtype; /* message type */ int mtp_suser; /* super user privs required */ @@ -333,163 +378,1119 @@ * Table of recognized message types and their corresponding parser. */ static struct msgtype_parser mtp_table[] = { - { .mtp_msgtype = CPM_ACK, .mtp_suser = 0, .mtp_parser = NULL }, - { .mtp_msgtype = CPM_ERROR, .mtp_suser = 0, .mtp_parser = NULL }, - { .mtp_msgtype = CPM_QUERY, .mtp_suser = 0, .mtp_parser = mtpf_query } + { .mtp_msgtype = MIM_ACK, .mtp_suser = 0, .mtp_parser = NULL }, + { .mtp_msgtype = MIM_ERROR, .mtp_suser = 0, .mtp_parser = NULL }, + { .mtp_msgtype = MIM_QUERY, .mtp_suser = 0, .mtp_parser = mtpf_query }, + { .mtp_msgtype = MIM_IF_LIST, .mtp_suser = 1, + .mtp_parser = mtpf_if_list }, + { .mtp_msgtype = MIM_IDENT_LIST, .mtp_suser = 1, + .mtp_parser = mtpf_ident_list }, + { .mtp_msgtype = MIM_IDENT_ADD, .mtp_suser = 1, + .mtp_parser = mtpf_ident_add }, + { .mtp_msgtype = MIM_IDENT_DEL, .mtp_suser = 1, + .mtp_parser = mtpf_ident_del }, + { .mtp_msgtype = MIM_IDENT_NAME_ADD, .mtp_suser = 1, + .mtp_parser = mtpf_name_add }, + { .mtp_msgtype = MIM_IDENT_NAME_DEL, .mtp_suser = 1, + .mtp_parser = mtpf_name_del }, + { .mtp_msgtype = MIM_IDENT_NAME_LIST, .mtp_suser = 1, + .mtp_parser = mtpf_name_list }, + { .mtp_msgtype = MIM_IDENT_RES_ADD, .mtp_suser = 1, + .mtp_parser = mtpf_res_add }, + { .mtp_msgtype = MIM_IDENT_RES_DEL, .mtp_suser = 1, + .mtp_parser = mtpf_res_del }, + { .mtp_msgtype = MIM_IDENT_RES_LIST, .mtp_suser = 1, + .mtp_parser = mtpf_res_list }, + { .mtp_msgtype = MIM_CACHE_FLUSH, .mtp_suser = 1, + .mtp_parser = mtpf_cache_flush }, + { .mtp_msgtype = MIM_CACHE_LIST, .mtp_suser = 1, + .mtp_parser = mtpf_cache_list } }; static int mtp_table_size = sizeof(mtp_table) / sizeof(struct msgtype_parser); - /* * Parse packet received on UNIX pipe */ static int cp_parse(struct cs_client *csc, char *buf, size_t len, int suser) { - struct cp_head *cph; + struct mipc_head *mih; int i, error = 0; - if (len < sizeof(struct cp_head)) - return (CPE_IVAL); + + if (len < sizeof(struct mipc_head)) + return (-1); - cph = (struct cp_head *)buf; - if (cph->cph_ver != CP_VERSION) - return (CPE_IVAL); + mih = (struct mipc_head *)buf; + + dprintf(DEBUG_CS, "Header ver=%d, msgtype=%d", + mih->mih_ver, mih->mih_msgtype); + + if (mih->mih_ver != MIPC_VERSION) { + error = MIE_IVAL; + goto error; + } for (i = 0; i < mtp_table_size; i++) - if (cph->cph_msgtype == mtp_table[i].mtp_msgtype) + if (mih->mih_msgtype == mtp_table[i].mtp_msgtype) break; - if (i == mtp_table_size) - return (CPE_IVAL); + if (i == mtp_table_size) { + error = MIE_IVAL; + goto error; + } - if (mtp_table[i].mtp_suser && !suser) - return (CPE_PERM); - - dprintf(DEBUG_CS, "Header ver=%d, msgtype=%d", - cph->cph_ver, cph->cph_msgtype); + if (mtp_table[i].mtp_suser && !suser) { + dprintf(DEBUG_CS, "Privileged request from non-root user " + "csc=%x", csc); + error = MIE_PERM; + goto error; + } if (mtp_table[i].mtp_parser != NULL) { - error = mtp_table[i].mtp_parser(csc, cph, - buf + sizeof(struct cp_head), - len - sizeof(struct cp_head)); + error = mtp_table[i].mtp_parser(csc, mih, + buf + sizeof(struct mipc_head), + len - sizeof(struct mipc_head)); } if (error != 0) - send_error(csc, cph->cph_id, error); + goto error; - return (error); + return (0); +error: + send_error(csc, mih->mih_id, error); + return (-1); } /* * Query parser */ static int -mtpf_query(struct cs_client *csc, struct cp_head *cph, char *buf, size_t len) +mtpf_query(struct cs_client *csc, struct mipc_head *mih, char *buf, size_t len) { - struct cp_query *cpq; + struct mipc_query *miq; wchar_t *wp; int error, retval = 0; struct csc_query cscq; wchar_t name[MDNS_RECORD_LEN+1]; - if (len < sizeof(struct cp_query)) - return (CPE_IVAL); + if (len < sizeof(struct mipc_query)) + return (MIE_IVAL); - cpq = (struct cp_query *)buf; - if ((cpq->cpq_len * sizeof(wchar_t)) + sizeof(struct cp_query) != len) - return (CPE_IVAL); + miq = (struct mipc_query *)buf; + if ((miq->miq_len * sizeof(wchar_t)) + sizeof(struct mipc_query) != len) + return (MIE_IVAL); - wp = (wchar_t *)(buf + sizeof(struct cp_query)); - memcpy(name, wp, cpq->cpq_len * sizeof(wchar_t)); - name[cpq->cpq_len] = L'\0'; + wp = (wchar_t *)(buf + sizeof(struct mipc_query)); + memcpy(name, wp, miq->miq_len * sizeof(wchar_t)); + name[miq->miq_len] = L'\0'; error = utf8_encode(name, cscq.cscq_qs.name, MDNS_RECORD_LEN); if (error < 0) - return (CPE_IVAL); + return (MIE_IVAL); dprintf(DEBUG_CS,"Query message class=%d, type=%d, name=%ls, " - "cmd=%d, fam=%d, ifidx=%d, timeout=%d", cpq->cpq_class, - cpq->cpq_type, name, cpq->cpq_cmd, cpq->cpq_fam, - cpq->cpq_ifidx, cpq->cpq_timeout); + "cmd=%d, fam=%d, ifidx=%d, timeout=%d", miq->miq_class, + miq->miq_type, name, miq->miq_cmd, miq->miq_fam, + miq->miq_ifidx, miq->miq_timeout); cscq.cscq_qs.q_name = cscq.cscq_qs.name; - cscq.cscq_qs.q_type = cpq->cpq_type; - cscq.cscq_qs.q_class = cpq->cpq_class; - cscq.cscq_id = cph->cph_id; + cscq.cscq_qs.q_type = miq->miq_type; + cscq.cscq_qs.q_class = miq->miq_class; + cscq.cscq_id = mih->mih_id; cscq.cscq_resp = 0; cscq.cscq_csc = csc; MDNS_INIT_SET(&cscq, cscq_magic); - switch (cpq->cpq_cmd) { - case CPQ_CMD_ONESHOT: - error = queryadd(csc, &cscq, cpq->cpq_ifidx, cpq->cpq_fam, - cpq->cpq_timeout); + switch (miq->miq_cmd) { + case MIQ_CMD_ONESHOT: + error = queryadd(csc, &cscq, miq->miq_ifidx, miq->miq_fam, + miq->miq_timeout); if (error != 0) - retval = CPE_IVAL; + retval = MIE_IVAL; break; - case CPQ_CMD_CREG: - error = queryadd(csc, &cscq, cpq->cpq_ifidx, cpq->cpq_fam, 0); + case MIQ_CMD_CREG: + error = queryadd(csc, &cscq, miq->miq_ifidx, miq->miq_fam, 0); if (error == 0) - send_ack(csc, cph->cph_id); + send_ack(csc, mih->mih_id); else - retval = CPE_REGQ; + retval = MIE_REGQ; break; - case CPQ_CMD_CDEREG: - error = querydel(csc, &cscq, cpq->cpq_ifidx); + case MIQ_CMD_CDEREG: + error = querydel(csc, &cscq, miq->miq_ifidx); if (error == 0) - send_ack(csc, cph->cph_id); + send_ack(csc, mih->mih_id); else - retval = CPE_DEREGQ; + retval = MIE_DEREGQ; break; default: - return (CPE_IVAL); + return (MIE_IVAL); + } + + return (0); +} + +/* + * List active interfaces + */ +static int +mtpf_if_list(struct cs_client *csc, struct mipc_head *mih, char *buf __unused, + size_t len) +{ + struct md_glob *g; + struct md_if *mif; + size_t iflen; + struct mipc_if miif; + struct mipc_head rmih; + struct iovec iov[3]; + + if (len != 0) + return (MIE_IVAL); + + dprintf(DEBUG_CS, "Interface list request csc=%x", csc); + + g = csc->csc_serv->cs_glob; + IPC_SETHDR(&rmih, mih->mih_id, MIM_IF, 0); + iov[0].iov_base = &rmih; + iov[0].iov_len = sizeof(struct mipc_head); + iov[1].iov_base = &miif; + iov[1].iov_len = sizeof(struct mipc_if); + + RW_RLOCK(g, g_lock); + TAILQ_FOREACH(mif, &g->g_ifs_head, mif_next) { + iflen = strlen(mif->mif_ifnam); + iov[2].iov_base = mif->mif_ifnam; + iov[2].iov_len = iflen; + miif.miif_ifidx = mif->mif_index; + miif.miif_len = iflen; + miif.miif_flags = 0; + rmih.mih_msglen = + sizeof(struct mipc_head) + sizeof(struct mipc_if) + iflen; + writev(csc->csc_sock, iov, 3); + } + + RW_UNLOCK(g, g_lock); + send_ack(csc, mih->mih_id); + return (0); +} + +/* + * List database record idents + */ +static int +mtpf_ident_list(struct cs_client *csc, struct mipc_head *mih, char *buf, + size_t len) +{ + struct mipc_dbi_list *miil; + struct md_glob *g; + struct md_if *mif; + char **ident; + int i, ilen; + struct mipc_dbident mii; + struct mipc_head rmih; + struct iovec iov[3]; + + if (len < sizeof(struct mipc_dbi_list)) + return (MIE_IVAL); + + miil = (struct mipc_dbi_list *)buf; + g = csc->csc_serv->cs_glob; + + if (miil->miil_ifidx > g->g_ifs_max) + return (MIE_IVAL); + + mif = g->g_ifs[miil->miil_ifidx]; + if (mif == NULL) + return (MIE_IVAL); + + IPC_SETHDR(&rmih, mih->mih_id, MIM_IDENT, 0); + iov[0].iov_base = &rmih; + iov[0].iov_len = sizeof(struct mipc_head); + iov[1].iov_base = &mii; + iov[1].iov_len = sizeof(struct mipc_dbident); + mii.mii_ifidx = mif->mif_index; + + ident = dbr_ident_list(&mif->mif_dbr); + + i = 0; + while (ident[i] != NULL) { + ilen = strlen(ident[i]); + rmih.mih_msglen = sizeof(struct mipc_head) + + sizeof(struct mipc_dbident) + ilen; + mii.mii_len = ilen; + iov[2].iov_base = ident[i]; + iov[2].iov_len = ilen; + writev(csc->csc_sock, iov, 3); + i++; + } + + dprintf(DEBUG_CS, "Sent identifier list to client, csc=%x", csc); + + send_ack(csc, mih->mih_id); + dbr_ident_list_free(ident); + return (0); +} + +/* + * IPC MIM_IDENT_ADD - Add an itentifier to the record database + * The message type MIM_IDENT_ADD allows a privileged client to add + * a new resource identifier to the record database, either to a specific + * interface index or to all active interfaces. + */ +static int +mtpf_ident_add(struct cs_client *csc, struct mipc_head *mih, char *buf, + size_t len) +{ + struct mipc_dbident *mii; + struct md_glob *g; + struct md_if *mif; + char *ident, *p; + int error = 0; + + g = csc->csc_serv->cs_glob; + + if (len < sizeof(struct mipc_dbident)) + return (MIE_IVAL); + + mii = (struct mipc_dbident *)buf; + p = buf + sizeof(struct mipc_dbident); + len -= sizeof(struct mipc_dbident); + + if (mii->mii_ifidx > g->g_ifs_max) + return (MIE_IVAL); + + if (mii->mii_len > len) + return (MIE_IVAL); + + ident = malloc(mii->mii_len + 1); + if (ident == NULL) + return (MIE_INTE); + memcpy(ident, p, mii->mii_len); + ident[mii->mii_len] = '\0'; + + dprintf(DEBUG_CS, "Request to add resource identifier %s, ifidx=%d " + "csc=%x", ident, mii->mii_ifidx, csc); + + RW_RLOCK(g, g_lock); + + /* + * Only add the identifier to a specific interface index + * if one was specified in the message. + */ + if (mii->mii_ifidx != 0) { + mif = g->g_ifs[mii->mii_ifidx]; + if (mif == NULL) { + RW_UNLOCK(g, g_lock); + free(ident); + return (MIE_IVAL); + } + error = dbr_ident_add(&mif->mif_dbr, ident); + } + else { + /* We ignore errors in this case */ + TAILQ_FOREACH(mif, &g->g_ifs_head, mif_next) { + dbr_ident_add(&mif->mif_dbr, ident); + } + } + + RW_UNLOCK(g, g_lock); + free(ident); + if (error < 0) + return (MIE_EXISTS); + + send_ack(csc, mih->mih_id); + return (0); +} + +/* + * IPC MIM_IDENT_DEL - Remove an identifier from the record database + */ +static int +mtpf_ident_del(struct cs_client *csc, struct mipc_head *mih, char *buf, + size_t len) +{ + struct mipc_dbident *mii; + struct md_glob *g; + struct md_if *mif; + char *p, *ident; + int error = 0; + + g = csc->csc_serv->cs_glob; + + if (len < sizeof(struct mipc_dbident)) + return (MIE_IVAL); + + mii = (struct mipc_dbident *)buf; + p = buf + sizeof(struct mipc_dbident); + len -= sizeof(struct mipc_dbident); + + if (mii->mii_ifidx > g->g_ifs_max) + return (MIE_IVAL); + + if (mii->mii_len > len) + return (MIE_IVAL); + + ident = malloc(mii->mii_len + 1); + if (ident == NULL) + return (MIE_INTE); + memcpy(ident, p, mii->mii_len); + ident[mii->mii_len] = '\0'; + + dprintf(DEBUG_CS, "Request to remove identifier %s, ifidx=%d, csc=%x", + ident, mii->mii_ifidx, csc); + + RW_RLOCK(g, g_lock); + + if (mii->mii_ifidx != 0) { + mif = g->g_ifs[mii->mii_ifidx]; + if (mif == NULL) { + RW_UNLOCK(g, g_lock); + free(ident); + return (MIE_IVAL); + } + error = dbr_ident_del(&mif->mif_dbr, ident); + } + else { + TAILQ_FOREACH(mif, &g->g_ifs_head, mif_next) { + dbr_ident_del(&mif->mif_dbr, ident); + } + } + + RW_UNLOCK(g, g_lock); + free(ident); + if (error < 0) + return (MIE_EXISTS); + + send_ack(csc, mih->mih_id); + return (0); +} + +static int +parse_dbi_name(char *buf, size_t len, struct mipc_dbi_name **miin, char **ident, + wchar_t **name) +{ + char *p; + struct mipc_dbi_name *miin2; + + if (len < sizeof(struct mipc_dbi_name)) + return (MIE_IVAL); + + *miin = (struct mipc_dbi_name *)buf; + len -= sizeof(struct mipc_dbi_name); + p = buf + sizeof(struct mipc_dbi_name); + + miin2 = *miin; + + if (len < miin2->miin_ilen) + return (MIE_IVAL); + + *ident = malloc(miin2->miin_ilen + 1); + if (*ident == NULL) + return (MIE_INTE); + memcpy(*ident, p, miin2->miin_ilen); + *ident[miin2->miin_ilen] = '\0'; + p += miin2->miin_ilen; + len -= miin2->miin_ilen; + + if (len < miin2->miin_len) { + free(*ident); + return (MIE_IVAL); + } + + *name = malloc((miin2->miin_len + 1) * sizeof(wchar_t)); + if (*name == NULL) { + free(*ident); + return (MIE_IVAL); + } + memcpy(*name, p, miin2->miin_len * sizeof(wchar_t)); + *name[miin2->miin_len] = L'\0'; + + return (0); +} + +/* + * IPC MIM_IDENT_NAME_ADD - Add a name record to a resource identifier + */ +static int +mtpf_name_add(struct cs_client *csc, struct mipc_head *mih, char *buf, + size_t len) +{ + struct md_glob *g; + struct md_if *mif; + struct mipc_dbi_name *miin; + wchar_t *name; + char *ident; + int error, retval = 0; + + error = parse_dbi_name(buf, len, &miin, &ident, &name); + if (error != 0) + return (error); + + g = csc->csc_serv->cs_glob; + + dprintf(DEBUG_CS, "Request to add name %ls to identifier %s, " + "csc=%x, ifidx=%d", name, ident, csc, miin->miin_ifidx); + + RW_RLOCK(g, g_lock); + + if (miin->miin_ifidx > g->g_ifs_max) + goto error; + + if (miin->miin_ifidx != 0) { + mif = g->g_ifs[miin->miin_ifidx]; + if (mif == NULL) + goto error; + error = dbr_name_add(&mif->mif_dbr, ident, name); + if (error != 0) + retval = MIE_NOENT; + } + else { + TAILQ_FOREACH(mif, &g->g_ifs_head, mif_next) { + dbr_name_add(&mif->mif_dbr, ident, name); + } + } + + RW_UNLOCK(g, g_lock); + free(ident); + free(name); + if (retval == 0) + send_ack(csc, mih->mih_id); + return (retval); +error: + RW_UNLOCK(g, g_lock); + free(ident); + free(name); + return (MIE_IVAL); +} + +/* + * IPC MIM_IDENT_NAME_DEL - Remove a name from a resource identifier + */ +static int +mtpf_name_del(struct cs_client *csc, struct mipc_head *mih, char *buf, + size_t len) +{ + struct md_glob *g; + struct md_if *mif; + struct mipc_dbi_name *miin; + wchar_t *name; + char *ident; + int error, retval = 0; + + error = parse_dbi_name(buf, len, &miin, &ident, &name); + if (error != 0) + return (error); + + g = csc->csc_serv->cs_glob; + + dprintf(DEBUG_CS, "Request to remove name %ls to identifier %s, " + "csc=%x, ifidx=%d", name, ident, csc, miin->miin_ifidx); + + RW_RLOCK(g, g_lock); + + if (miin->miin_ifidx > g->g_ifs_max) + goto error; + + if (miin->miin_ifidx != 0) { + mif = g->g_ifs[miin->miin_ifidx]; + if (mif == NULL) + goto error; + error = dbr_name_add(&mif->mif_dbr, ident, name); + if (error != 0) + retval = MIE_EXISTS; + } + else { + TAILQ_FOREACH(mif, &g->g_ifs_head, mif_next) { + dbr_name_add(&mif->mif_dbr, ident, name); + } + } + + RW_UNLOCK(g, g_lock); + free(ident); + free(name); + if (retval == 0) + send_ack(csc, mih->mih_id); + return (retval); +error: + RW_UNLOCK(g, g_lock); + free(ident); + free(name); + return (error); +} + +/* + * IPC MIM_IDENT_NAME_LIST - Return a list of names on an identifier + */ +static int +mtpf_name_list(struct cs_client *csc, struct mipc_head *mih, char *buf, + size_t len) +{ + struct md_glob *g; + struct md_if *mif; + struct mipc_dbi_name_list *miinl; + char *ident, *p; + struct dbr_name *dn; + int retval = 0; + size_t namlen, nlen, i; + struct mipc_dbi_name miin; + struct mipc_head rmih; + struct iovec iov[5]; + + if (len < sizeof(struct mipc_dbi_name_list)) + return (MIE_IVAL); + + miinl = (struct mipc_dbi_name_list *)buf; + p = buf + sizeof(struct mipc_dbi_name_list); + len -= sizeof(struct mipc_dbi_name_list); + + if (len < miinl->miinl_ilen) + return (MIE_IVAL); + + ident = malloc(miinl->miinl_ilen + 0); + if (ident == NULL) + return (MIE_INTE); + memcpy(ident, p, miinl->miinl_ilen); + ident[miinl->miinl_ilen] = '\0'; + + dprintf(DEBUG_CS, "Request to list names on identifier %s, " + "csc=%x, ifidx=%d", ident, csc, miinl->miinl_ifidx); + + if (miinl->miinl_ifidx == 0) + return (MIE_IVAL); + + g = csc->csc_serv->cs_glob; + RW_RLOCK(g, g_lock); + + mif = g->g_ifs[miinl->miinl_ifidx]; + if (mif == NULL) { + retval = MIE_IVAL; + goto out; + } + + dn = dbr_name_list(&mif->mif_dbr, ident, &namlen); + if (dn == NULL) { + retval = MIE_INTE; + goto out; + } + + miin.miin_ifidx = mif->mif_index; + miin.miin_zero = 0; + + RW_UNLOCK(g, g_lock); + + IPC_SETHDR(&rmih, mih->mih_id, MIM_IDENT_NAME, 0); + iov[0].iov_base = &rmih; + iov[0].iov_len = sizeof(struct mipc_head); + iov[1].iov_base = &miin; + iov[1].iov_len = sizeof(struct mipc_dbi_name); + iov[2].iov_base = ident; + iov[2].iov_len = miinl->miinl_ilen; + miin.miin_ilen = miinl->miinl_ilen; + + for (i = 0; i < namlen; i++) { + rmih.mih_msglen = sizeof(struct mipc_head) + + sizeof(struct mipc_dbi_name) + miinl->miinl_ilen; + + len = wcslen(dn[i].dn_name); + iov[3].iov_base = dn[i].dn_name; + iov[3].iov_len = len * sizeof(wchar_t); + rmih.mih_msglen += nlen; + miin.miin_len = nlen; + + if (dn[i].dn_ename != NULL) { + len = wcslen(dn[i].dn_ename); + iov[4].iov_base = dn[i].dn_ename; + iov[4].iov_len = len * sizeof(wchar_t); + rmih.mih_msglen += nlen; + miin.miin_elen = nlen; + } + else { + iov[4].iov_base = NULL; + iov[4].iov_len = 0; + miin.miin_elen = 0; + } + writev(csc->csc_sock, iov, 5); + } + + dbr_name_list_free(dn, namlen); + send_ack(csc, mih->mih_id); + return (0); +out: + RW_UNLOCK(g, g_lock); + free(ident); + return (retval); +} + +/* + * Parse MIM_IDENT_RES_{ADD,DEL} messages, helper do mtpf_res_{add,del} + */ +static int +parse_res_set(char *buf, size_t len, struct mipc_dbi_res_set **mirs, + char **ident, wchar_t **res, char **resptr) +{ + struct mipc_dbi_res_set *mirs2; + char *p; + + if (len < sizeof(struct mipc_dbi_res_set)) + return (MIE_IVAL); + + *mirs = (struct mipc_dbi_res_set *)buf; + mirs2 = *mirs; + + p = buf + sizeof(struct mipc_dbi_res_set); + len -= sizeof(struct mipc_dbi_res_set); + + if (len < mirs2->mirs_ilen) + return (MIE_IVAL); + + *ident = malloc(mirs2->mirs_ilen + 1); + if (*ident == NULL) + return (MIE_INTE); + memcpy(*ident, p, mirs2->mirs_ilen); + *ident[mirs2->mirs_ilen] = '\0'; + p += mirs2->mirs_ilen; + len -= mirs2->mirs_ilen; + + *res = NULL; + *resptr = NULL; + + if (mirs2->mirs_pointer) { + if (len < mirs2->mirs_rlen) { + free(*ident); + return (MIE_IVAL); + } + + *resptr = malloc(mirs2->mirs_rlen + 1); + if (*resptr == NULL) { + free(*ident); + return (MIE_IVAL); + } + memcpy(*resptr, p, mirs2->mirs_rlen); + *resptr[mirs2->mirs_rlen] = '\0'; + } + else { + if (len < (mirs2->mirs_rlen * sizeof(wchar_t))) { + free(*ident); + return (MIE_IVAL); + } + + *res = malloc((mirs2->mirs_rlen + 1) * sizeof(wchar_t)); + if (*res == NULL) { + free(*ident); + return (MIE_INTE); + } + memcpy(*res, p, mirs2->mirs_rlen * sizeof(wchar_t)); + *res[mirs2->mirs_rlen] = L'\0'; + } + + return (0); +} + +/* + * IPC MIM_IDENT_RES_ADD - Add a resource to an identifier + */ +static int +mtpf_res_add(struct cs_client *csc, struct mipc_head *mih, char *buf, + size_t len) +{ + struct md_glob *g; + struct md_if *mif; + struct mipc_dbi_res_set *mirs; + wchar_t *rres; + char *ident, *resptr; + void *res; + int error, ptr; + + error = parse_res_set(buf, len, &mirs, &ident, &rres, &resptr); + if (error != 0) + return (error); + res = (rres != NULL) ? (void *)rres : (void *)resptr; + ptr = (resptr != NULL); + + g = csc->csc_serv->cs_glob; + RW_RLOCK(g, g_lock); + if (mirs->mirs_ifidx > g->g_ifs_max) + goto out; + + error = 0; + if (mirs->mirs_ifidx != 0) { + mif = g->g_ifs[mirs->mirs_ifidx]; + if (mif == NULL) + goto out; + error = dbr_res_add(&mif->mif_dbr, ident, mirs->mirs_class, + mirs->mirs_type, mirs->mirs_ttl, res, ptr); + } + else { + TAILQ_FOREACH(mif, &g->g_ifs_head, mif_next) { + dbr_res_add(&mif->mif_dbr, ident, mirs->mirs_class, + mirs->mirs_type, mirs->mirs_ttl, res, ptr); + } + } + RW_UNLOCK(g, g_lock); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 5 19:02:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AED5C16A469; Sun, 5 Aug 2007 19:02:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6639E16A421 for ; Sun, 5 Aug 2007 19:02:30 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5B63C13C457 for ; Sun, 5 Aug 2007 19:02:30 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75J2UxC044380 for ; Sun, 5 Aug 2007 19:02:30 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75J2UwZ044377 for perforce@freebsd.org; Sun, 5 Aug 2007 19:02:30 GMT (envelope-from fli@FreeBSD.org) Date: Sun, 5 Aug 2007 19:02:30 GMT Message-Id: <200708051902.l75J2UwZ044377@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124748 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, 05 Aug 2007 19:02:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=124748 Change 124748 by fli@fli_nexus on 2007/08/05 19:01:53 - Use unsigned int on variables that hold interfaces indexes. - Add cache_flush() prototype. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/mdnsd.h#6 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/mdnsd.h#6 (text+ko) ==== @@ -58,7 +58,7 @@ DEF_MTX(g_bp_mtx); TAILQ_HEAD(, md_if) g_ifs_head; /* Active interfaces */ struct md_if **g_ifs; /* Interfaces by index */ - int g_ifs_max; /* Maximum interface index */ + unsigned int g_ifs_max; /* Maximum interface index */ int g_flags; #define GLOB_CSOPEN 0x01 /* unix client pipe open */ struct clisrv g_cs; /* unix client pipe server */ @@ -100,7 +100,7 @@ DEF_RW(mif_lock); struct md_glob *mif_glob; /* back pointer */ int mif_refcnt; - int mif_index; /* interface index */ + unsigned int mif_index; /* interface index */ int mif_flags; #define MIF_DYING 0x0001 /* Interface is going away */ #define MIF_LINKUP 0x0002 /* Link is up (carrier) */ @@ -137,6 +137,7 @@ void cache_purge(struct cache *, time_t, char *, uint16_t); void cache_clean(struct cache *); void cache_set_ttl(struct cache *, struct record_res *, uint32_t); +void cache_flush(struct cache *); /* parse.y */ int cfg_read(struct dbr *r, const char *, const char *); From owner-p4-projects@FreeBSD.ORG Sun Aug 5 21:11:09 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6AB8B16A418; Sun, 5 Aug 2007 21:11:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 10BBD16A41A for ; Sun, 5 Aug 2007 21:11:09 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 007BE13C45B for ; Sun, 5 Aug 2007 21:11:09 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75LB8qh065832 for ; Sun, 5 Aug 2007 21:11:08 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75LB8Uh065827 for perforce@freebsd.org; Sun, 5 Aug 2007 21:11:08 GMT (envelope-from rdivacky@FreeBSD.org) Date: Sun, 5 Aug 2007 21:11:08 GMT Message-Id: <200708052111.l75LB8Uh065827@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 124751 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, 05 Aug 2007 21:11:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=124751 Change 124751 by rdivacky@rdivacky_witten on 2007/08/05 21:10:54 IFC Affected files ... .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/conf/NOTES#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/conf/options#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/adlink/adlink.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/dc/if_dcreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/re/if_re.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/fs/msdosfs/msdosfs_fat.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/fs/msdosfs/msdosfs_vfsops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/clock.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/mp_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/pmap.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/include/ia64_cpu.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/kern/kern_switch.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/kern/sched_ule.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/net/bridgestp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/net/bridgestp.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/netinet/ip_input.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/netinet/ip_ipsec.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/netinet6/ip6_ipsec.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/sparc64/include/iommureg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/sparc64/pci/psycho.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/sparc64/pci/psychoreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/sparc64/sbus/sbus.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/sparc64/sparc64/iommu.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/vm/device_pager.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/vm/phys_pager.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/vm/swap_pager.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_fixes/sys/vm/vm_pager.c#2 integrate Differences ... ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/conf/NOTES#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1447 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1448 2007/08/05 16:16:15 bz Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -501,15 +501,15 @@ options IPSEC #IP security (requires device crypto) #options IPSEC_DEBUG #debug for IP security # -# Set IPSEC_FILTERGIF to force packets coming through a gif tunnel -# to be processed by any configured packet filtering (ipfw, ipf). -# The default is that packets coming from a tunnel are _not_ processed; +# Set IPSEC_FILTERTUNNEL to force packets coming through a tunnel +# to be processed by any configured packet filtering twice. +# The default is that packets coming out of a tunnel are _not_ processed; # they are assumed trusted. # # IPSEC history is preserved for such packets, and can be filtered # using ipfw(8)'s 'ipsec' keyword, when this option is enabled. # -#options IPSEC_FILTERGIF #filter ipsec packets from a tunnel +#options IPSEC_FILTERTUNNEL #filter ipsec packets from a tunnel options IPX #IPX/SPX communications protocols ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/conf/options#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.603 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/options,v 1.604 2007/08/05 16:16:15 bz Exp $ # # On the handling of kernel options # @@ -362,7 +362,7 @@ INET6 opt_inet6.h IPSEC opt_ipsec.h IPSEC_DEBUG opt_ipsec.h -IPSEC_FILTERGIF opt_ipsec.h +IPSEC_FILTERTUNNEL opt_ipsec.h IPDIVERT DUMMYNET opt_ipdn.h IPFILTER opt_ipfilter.h ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/adlink/adlink.c#2 (text+ko) ==== @@ -43,7 +43,7 @@ #ifdef _KERNEL #include -__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.16 2007/02/23 12:18:29 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.17 2007/08/04 17:43:11 kib Exp $"); #include #include @@ -119,6 +119,7 @@ static struct cdevsw adlink_cdevsw = { .d_version = D_VERSION, + .d_flags = D_NEEDGIANT, .d_ioctl = adlink_ioctl, .d_mmap = adlink_mmap, .d_name = "adlink", ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/dc/if_dc.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.191 2007/02/23 12:18:37 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.192 2007/08/05 11:28:19 marius Exp $"); /* * DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143 @@ -294,7 +294,6 @@ static void dc_apply_fixup(struct dc_softc *, int); static void dc_dma_map_txbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); -static void dc_dma_map_rxbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); #ifdef DC_USEIOSPACE #define DC_RES SYS_RES_IOPORT @@ -2424,29 +2423,6 @@ return (0); } -static void -dc_dma_map_rxbuf(arg, segs, nseg, mapsize, error) - void *arg; - bus_dma_segment_t *segs; - int nseg; - bus_size_t mapsize; - int error; -{ - struct dc_softc *sc; - struct dc_desc *c; - - sc = arg; - c = &sc->dc_ldata->dc_rx_list[sc->dc_cdata.dc_rx_cur]; - if (error) { - sc->dc_cdata.dc_rx_err = error; - return; - } - - KASSERT(nseg == 1, ("wrong number of segments, should be 1")); - sc->dc_cdata.dc_rx_err = 0; - c->dc_data = htole32(segs->ds_addr); -} - /* * Initialize an RX descriptor and attach an MBUF cluster. */ @@ -2455,7 +2431,8 @@ { struct mbuf *m_new; bus_dmamap_t tmp; - int error; + bus_dma_segment_t segs[1]; + int error, nseg; if (alloc) { m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); @@ -2478,17 +2455,14 @@ /* No need to remap the mbuf if we're reusing it. */ if (alloc) { - sc->dc_cdata.dc_rx_cur = i; - error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_sparemap, - m_new, dc_dma_map_rxbuf, sc, 0); + error = bus_dmamap_load_mbuf_sg(sc->dc_mtag, sc->dc_sparemap, + m_new, segs, &nseg, 0); + KASSERT(nseg == 1, ("wrong number of segments, should be 1")); if (error) { m_freem(m_new); return (error); } - if (sc->dc_cdata.dc_rx_err != 0) { - m_freem(m_new); - return (sc->dc_cdata.dc_rx_err); - } + sc->dc_ldata->dc_rx_list[i].dc_data = htole32(segs->ds_addr); bus_dmamap_unload(sc->dc_mtag, sc->dc_cdata.dc_rx_map[i]); tmp = sc->dc_cdata.dc_rx_map[i]; sc->dc_cdata.dc_rx_map[i] = sc->dc_sparemap; @@ -2865,12 +2839,11 @@ sc->dc_cdata.dc_tx_cnt--; DC_INC(idx, DC_TX_LIST_CNT); } + sc->dc_cdata.dc_tx_cons = idx; - if (idx != sc->dc_cdata.dc_tx_cons) { - /* Some buffers have been freed. */ - sc->dc_cdata.dc_tx_cons = idx; + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt > DC_TX_LIST_RSVD) ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - } + if (sc->dc_cdata.dc_tx_cnt == 0) sc->dc_wdog_timer = 0; } @@ -3161,10 +3134,8 @@ int cur, first, frag, i; sc = arg; - if (error) { - sc->dc_cdata.dc_tx_err = error; + if (error) return; - } first = cur = frag = sc->dc_cdata.dc_tx_prod; for (i = 0; i < nseg; i++) { @@ -3217,7 +3188,7 @@ /* * If there's no way we can send any packets, return now. */ - if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt < 6) + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt <= DC_TX_LIST_RSVD) return (ENOBUFS); /* @@ -3229,27 +3200,30 @@ for (m = *m_head; m != NULL; m = m->m_next) chainlen++; - if ((chainlen > DC_TX_LIST_CNT / 4) || - ((DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt)) < 6)) { + m = NULL; + if ((sc->dc_flags & DC_TX_COALESCE && ((*m_head)->m_next != NULL || + sc->dc_flags & DC_TX_ALIGN)) || (chainlen > DC_TX_LIST_CNT / 4) || + (DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt) <= + DC_TX_LIST_RSVD)) { m = m_defrag(*m_head, M_DONTWAIT); - if (m == NULL) + if (m == NULL) { + m_freem(*m_head); + *m_head = NULL; return (ENOBUFS); + } *m_head = m; } - - /* - * Start packing the mbufs in this chain into - * the fragment pointers. Stop when we run out - * of fragments or hit the end of the mbuf chain. - */ idx = sc->dc_cdata.dc_tx_prod; sc->dc_cdata.dc_tx_mapping = *m_head; error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], *m_head, dc_dma_map_txbuf, sc, 0); - if (error) - return (error); - if (sc->dc_cdata.dc_tx_err != 0) - return (sc->dc_cdata.dc_tx_err); + if (error != 0 || sc->dc_cdata.dc_tx_err != 0) { + if (m != NULL) { + m_freem(m); + *m_head = NULL; + } + return (error != 0 ? error : sc->dc_cdata.dc_tx_err); + } bus_dmamap_sync(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], BUS_DMASYNC_PREWRITE); bus_dmamap_sync(sc->dc_ltag, sc->dc_lmap, @@ -3279,7 +3253,7 @@ dc_start_locked(struct ifnet *ifp) { struct dc_softc *sc; - struct mbuf *m_head = NULL, *m; + struct mbuf *m_head = NULL; unsigned int queued = 0; int idx; @@ -3300,20 +3274,9 @@ if (m_head == NULL) break; - if (sc->dc_flags & DC_TX_COALESCE && - (m_head->m_next != NULL || - sc->dc_flags & DC_TX_ALIGN)) { - m = m_defrag(m_head, M_DONTWAIT); - if (m == NULL) { - IFQ_DRV_PREPEND(&ifp->if_snd, m_head); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if (dc_encap(sc, &m_head)) { + if (m_head == NULL) break; - } else { - m_head = m; - } - } - - if (dc_encap(sc, &m_head)) { IFQ_DRV_PREPEND(&ifp->if_snd, m_head); ifp->if_drv_flags |= IFF_DRV_OACTIVE; break; ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/dc/if_dcreg.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.53 2006/12/06 01:56:38 marius Exp $ + * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.54 2007/08/05 11:28:19 marius Exp $ */ /* @@ -461,6 +461,7 @@ #define DC_RX_LIST_CNT 64 #endif #define DC_TX_LIST_CNT 256 +#define DC_TX_LIST_RSVD 5 #define DC_MIN_FRAMELEN 60 #define DC_RXLEN 1536 @@ -496,8 +497,6 @@ int dc_tx_prod; int dc_tx_cons; int dc_tx_cnt; - int dc_rx_err; - int dc_rx_cur; int dc_rx_prod; }; ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/dev/re/if_re.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.93 2007/07/27 00:43:12 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.94 2007/08/05 11:20:33 marius Exp $"); /* * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver @@ -1005,6 +1005,7 @@ } cmdstat = segs[i].ds_len; totlen += segs[i].ds_len; + d->rl_vlanctl = 0; d->rl_bufaddr_lo = htole32(RL_ADDR_LO(segs[i].ds_addr)); d->rl_bufaddr_hi = htole32(RL_ADDR_HI(segs[i].ds_addr)); if (i == 0) ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/fs/msdosfs/msdosfs_fat.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.42 2007/07/20 16:21:47 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.43 2007/08/03 23:13:50 bde Exp $ */ /* $NetBSD: msdosfs_fat.c,v 1.28 1997/11/17 15:36:49 ws Exp $ */ /*- @@ -376,7 +376,7 @@ + ffs(pmp->pm_inusemap[cn / N_INUSEBITS] ^ (u_int)-1) - 1; } - if (bread(pmp->pm_devvp, pmp->pm_fsinfo, pmp->pm_bpcluster, + if (bread(pmp->pm_devvp, pmp->pm_fsinfo, pmp->pm_BytesPerSec, NOCRED, &bpn) != 0) { /* * Ignore the error, but turn off FSInfo update for the future. ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/fs/msdosfs/msdosfs_vfsops.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.167 2007/07/23 07:10:17 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.169 2007/08/05 12:58:34 bde Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -649,12 +649,15 @@ bp = NULL; /* - * Check FSInfo. + * Check the fsinfo sector if we have one. Silently fix up our + * in-core copy of fp->fsinxtfree if it is unknown (0xffffffff) + * or too large. Ignore fp->fsinfree for now, since we need to + * read the entire FAT anyway to fill the inuse map. */ if (pmp->pm_fsinfo) { struct fsinfo *fp; - if ((error = bread(devvp, pmp->pm_fsinfo, pmp->pm_bpcluster, + if ((error = bread(devvp, pmp->pm_fsinfo, pmp->pm_BytesPerSec, NOCRED, &bp)) != 0) goto error_exit; fp = (struct fsinfo *)bp->b_data; @@ -662,7 +665,7 @@ && !bcmp(fp->fsisig2, "rrAa", 4) && !bcmp(fp->fsisig3, "\0\0\125\252", 4)) { pmp->pm_nxtfree = getulong(fp->fsinxtfree); - if (pmp->pm_nxtfree == 0xffffffff) + if (pmp->pm_nxtfree > pmp->pm_maxcluster) pmp->pm_nxtfree = CLUST_FIRST; } else pmp->pm_fsinfo = 0; @@ -671,15 +674,14 @@ } /* - * Check and validate (or perhaps invalidate?) the fsinfo structure? + * Finish initializing pmp->pm_nxtfree (just in case the first few + * sectors aren't properly reserved in the FAT). This completes + * the fixup for fp->fsinxtfree, and fixes up the zero-initialized + * value if there is no fsinfo. We will use pmp->pm_nxtfree + * internally even if there is no fsinfo. */ - if (pmp->pm_fsinfo && pmp->pm_nxtfree > pmp->pm_maxcluster) { - printf( - "Next free cluster in FSInfo (%lu) exceeds maxcluster (%lu)\n", - pmp->pm_nxtfree, pmp->pm_maxcluster); - error = EINVAL; - goto error_exit; - } + if (pmp->pm_nxtfree < CLUST_FIRST) + pmp->pm_nxtfree = CLUST_FIRST; /* * Allocate memory for the bitmap of allocated clusters, and then ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/clock.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/clock.c,v 1.31 2007/07/23 09:42:31 dwmalone Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/clock.c,v 1.32 2007/08/04 19:28:19 marcel Exp $"); #include #include @@ -72,6 +72,7 @@ PCPU_SET(clock, ia64_get_itc()); ia64_set_itm(PCPU_GET(clock) + ia64_clock_reload); ia64_set_itv(CLOCK_VECTOR); /* highest priority class */ + ia64_srlz_d(); } /* ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/machdep.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.224 2007/07/30 22:12:53 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.225 2007/08/04 19:33:27 marcel Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -449,13 +449,13 @@ __asm __volatile("mov %0=psr" : "=r"(psr)); __asm __volatile("rsm psr.ic|psr.i"); - __asm __volatile("srlz.i"); - __asm __volatile("mov cr.ifa=%0" :: "r"(vhpt)); - __asm __volatile("mov cr.itir=%0" :: "r"(IA64_ID_PAGE_SHIFT << 2)); + ia64_srlz_i(); + ia64_set_ifa(vhpt); + ia64_set_itir(IA64_ID_PAGE_SHIFT << 2); + ia64_srlz_d(); __asm __volatile("itr.d dtr[%0]=%1" :: "r"(2), "r"(pte)); - __asm __volatile("srlz.d"); /* XXX not needed. */ __asm __volatile("mov psr.l=%0" :: "r" (psr)); - __asm __volatile("srlz.i"); + ia64_srlz_i(); } void @@ -476,15 +476,15 @@ __asm __volatile("mov %0=psr" : "=r"(psr)); __asm __volatile("rsm psr.ic|psr.i"); - __asm __volatile("srlz.i"); - __asm __volatile("mov cr.ifa=%0" :: - "r"(IA64_PHYS_TO_RR7(ia64_pal_base))); - __asm __volatile("mov cr.itir=%0" :: "r"(IA64_ID_PAGE_SHIFT << 2)); + ia64_srlz_i(); + ia64_set_ifa(IA64_PHYS_TO_RR7(ia64_pal_base)); + ia64_set_itir(IA64_ID_PAGE_SHIFT << 2); + ia64_srlz_d(); __asm __volatile("itr.d dtr[%0]=%1" :: "r"(1), "r"(pte)); - __asm __volatile("srlz.d"); /* XXX not needed. */ + ia64_srlz_d(); __asm __volatile("itr.i itr[%0]=%1" :: "r"(1), "r"(pte)); __asm __volatile("mov psr.l=%0" :: "r" (psr)); - __asm __volatile("srlz.i"); + ia64_srlz_i(); } void @@ -502,14 +502,15 @@ __asm __volatile("mov %0=psr" : "=r"(psr)); __asm __volatile("rsm psr.ic|psr.i"); - __asm __volatile("srlz.i"); - __asm __volatile("mov cr.ifa=%0" :: "r"(VM_MAX_ADDRESS)); - __asm __volatile("mov cr.itir=%0" :: "r"(PAGE_SHIFT << 2)); + ia64_srlz_i(); + ia64_set_ifa(VM_MAX_ADDRESS); + ia64_set_itir(PAGE_SHIFT << 2); + ia64_srlz_d(); __asm __volatile("itr.d dtr[%0]=%1" :: "r"(3), "r"(pte)); - __asm __volatile("srlz.d"); /* XXX not needed. */ + ia64_srlz_d(); __asm __volatile("itr.i itr[%0]=%1" :: "r"(3), "r"(pte)); __asm __volatile("mov psr.l=%0" :: "r" (psr)); - __asm __volatile("srlz.i"); + ia64_srlz_i(); /* Expose the mapping to userland in ar.k5 */ ia64_set_k5(VM_MAX_ADDRESS); @@ -827,6 +828,7 @@ #endif ia64_set_tpr(0); + ia64_srlz_d(); /* * Save our current context so that we have a known (maybe even ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/mp_machdep.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/mp_machdep.c,v 1.65 2007/07/30 22:12:53 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/mp_machdep.c,v 1.66 2007/08/04 19:52:10 marcel Exp $"); #include "opt_kstack_pages.h" @@ -91,8 +91,8 @@ ia64_set_k4((intptr_t)pcpup); map_vhpt(ap_vhpt); - __asm __volatile("mov cr.pta=%0;; srlz.i;;" :: - "r" (ap_vhpt + (1<<8) + (pmap_vhpt_log2size<<2) + 1)); + ia64_set_pta(ap_vhpt + (1 << 8) + (pmap_vhpt_log2size << 2) + 1); + ia64_srlz_i(); ap_awake = 1; ap_delay = 0; @@ -106,8 +106,6 @@ while (ap_spin) DELAY(0); - __asm __volatile("ssm psr.i;; srlz.d;;"); - /* Initialize curthread. */ KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread")); PCPU_SET(curthread, PCPU_GET(idlethread)); @@ -125,11 +123,13 @@ CTR1(KTR_SMP, "SMP: cpu%d launched", PCPU_GET(cpuid)); - ia64_set_tpr(0); - /* kick off the clock on this AP */ pcpu_initclock(); + ia64_set_tpr(0); + ia64_srlz_d(); + enable_intr(); + sched_throw(NULL); /* NOTREACHED */ } ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/ia64/pmap.c#2 (text+ko) ==== @@ -46,7 +46,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.190 2007/07/30 22:12:53 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.191 2007/08/04 19:36:14 marcel Exp $"); #include #include @@ -450,8 +450,9 @@ } map_vhpt(pmap_vhpt_base[0]); - __asm __volatile("mov cr.pta=%0;; srlz.i;;" :: - "r" (pmap_vhpt_base[0] + (1<<8) + (pmap_vhpt_log2size<<2) + 1)); + ia64_set_pta(pmap_vhpt_base[0] + (1 << 8) + + (pmap_vhpt_log2size << 2) + 1); + ia64_srlz_i(); virtual_avail = VM_MIN_KERNEL_ADDRESS; virtual_end = VM_MAX_KERNEL_ADDRESS; @@ -480,6 +481,7 @@ */ ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (IA64_ID_PAGE_SHIFT << 2)); ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (IA64_ID_PAGE_SHIFT << 2)); + ia64_srlz_d(); /* * Clear out any random TLB entries left over from booting. @@ -2254,7 +2256,7 @@ atomic_set_32(&pm->pm_active, PCPU_GET(cpumask)); } PCPU_SET(current_pmap, pm); - __asm __volatile("srlz.d"); + ia64_srlz_d(); out: critical_exit(); ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/ia64/include/ia64_cpu.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/include/ia64_cpu.h,v 1.21 2007/05/27 19:02:47 marcel Exp $ + * $FreeBSD: src/sys/ia64/include/ia64_cpu.h,v 1.23 2007/08/05 18:19:38 marcel Exp $ */ #ifndef _MACHINE_IA64_CPU_H_ @@ -400,7 +400,7 @@ static __inline void ia64_set_rr(u_int64_t rrbase, u_int64_t v) { - __asm __volatile("mov rr[%0]=%1;; srlz.d;;" + __asm __volatile("mov rr[%0]=%1" :: "r"(rrbase), "r"(v) : "memory"); } @@ -428,6 +428,18 @@ __asm __volatile("rsm psr.dfh;; srlz.d"); } +static __inline void +ia64_srlz_d(void) +{ + __asm __volatile("srlz.d"); +} + +static __inline void +ia64_srlz_i(void) +{ + __asm __volatile("srlz.i;;"); +} + #endif /* !LOCORE */ #endif /* _MACHINE_IA64_CPU_H_ */ ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/kern/kern_switch.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.132 2007/07/19 08:58:40 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.133 2007/08/03 23:35:35 jeff Exp $"); #include "opt_sched.h" @@ -192,7 +192,7 @@ thread_lock(td); td->td_critnest--; SCHED_STAT_INC(switch_owepreempt); - mi_switch(SW_INVOL, NULL); + mi_switch(SW_INVOL|SW_PREEMPT, NULL); thread_unlock(td); } } else ==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/kern/sched_ule.c#2 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.202 2007/07/19 20:03:15 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.204 2007/08/04 01:21:28 jeff Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_sched.h" @@ -183,7 +183,7 @@ * locking in sched_pickcpu(); */ struct tdq { - struct mtx tdq_lock; /* Protects all fields below. */ + struct mtx *tdq_lock; /* Pointer to group lock. */ struct runq tdq_realtime; /* real-time run queue. */ struct runq tdq_timeshare; /* timeshare run queue. */ struct runq tdq_idle; /* Queue of IDLE threads. */ @@ -198,7 +198,6 @@ #else int tdq_sysload; /* For loadavg, !ITHD load. */ #endif - char tdq_name[16]; /* lock name. */ } __aligned(64); @@ -212,13 +211,15 @@ * load balancer. */ struct tdq_group { - int tdg_cpus; /* Count of CPUs in this tdq group. */ - cpumask_t tdg_cpumask; /* Mask of cpus in this group. */ - cpumask_t tdg_idlemask; /* Idle cpus in this group. */ - cpumask_t tdg_mask; /* Bit mask for first cpu. */ - int tdg_load; /* Total load of this group. */ + struct mtx tdg_lock; /* Protects all fields below. */ + int tdg_cpus; /* Count of CPUs in this tdq group. */ + cpumask_t tdg_cpumask; /* Mask of cpus in this group. */ + cpumask_t tdg_idlemask; /* Idle cpus in this group. */ + cpumask_t tdg_mask; /* Bit mask for first cpu. */ + int tdg_load; /* Total load of this group. */ int tdg_transferable; /* Transferable load of this group. */ LIST_HEAD(, tdq) tdg_members; /* Linked list of all members. */ + char tdg_name[16]; /* lock name. */ } __aligned(64); #define SCHED_AFFINITY_DEFAULT (max(1, hz / 300)) @@ -249,10 +250,12 @@ #define TDQ_SELF() (&tdq_cpu[PCPU_GET(cpuid)]) #define TDQ_CPU(x) (&tdq_cpu[(x)]) -#define TDQ_ID(x) ((x) - tdq_cpu) +#define TDQ_ID(x) ((int)((x) - tdq_cpu)) #define TDQ_GROUP(x) (&tdq_groups[(x)]) +#define TDG_ID(x) ((int)((x) - tdq_groups)) #else /* !SMP */ static struct tdq tdq_cpu; +static struct mtx tdq_lock; #define TDQ_ID(x) (0) #define TDQ_SELF() (&tdq_cpu) @@ -263,7 +266,7 @@ #define TDQ_LOCK(t) mtx_lock_spin(TDQ_LOCKPTR((t))) #define TDQ_LOCK_FLAGS(t, f) mtx_lock_spin_flags(TDQ_LOCKPTR((t)), (f)) #define TDQ_UNLOCK(t) mtx_unlock_spin(TDQ_LOCKPTR((t))) -#define TDQ_LOCKPTR(t) (&(t)->tdq_lock) +#define TDQ_LOCKPTR(t) ((t)->tdq_lock) static void sched_priority(struct thread *); static void sched_thread_priority(struct thread *, u_char); @@ -296,6 +299,7 @@ static inline struct tdq *sched_setcpu(struct td_sched *, int, int); static inline struct mtx *thread_block_switch(struct thread *); static inline void thread_unblock_switch(struct thread *, struct mtx *); +static struct mtx *sched_switch_migrate(struct tdq *, struct thread *, int); #define THREAD_CAN_MIGRATE(td) ((td)->td_pinned == 0) #endif @@ -343,9 +347,8 @@ tdq = TDQ_CPU(cpu); - printf("tdq:\n"); + printf("tdq %d:\n", TDQ_ID(tdq)); printf("\tlockptr %p\n", TDQ_LOCKPTR(tdq)); - printf("\tlock name %s\n", tdq->tdq_name); printf("\tload: %d\n", tdq->tdq_load); printf("\ttimeshare idx: %d\n", tdq->tdq_idx); printf("\ttimeshare ridx: %d\n", tdq->tdq_ridx); @@ -357,7 +360,9 @@ runq_print(&tdq->tdq_idle); #ifdef SMP printf("\tload transferable: %d\n", tdq->tdq_transferable); - printf("\tlowest priority: %d\n", tdq->tdq_lowpri); + printf("\tlowest priority: %d\n", tdq->tdq_lowpri); + printf("\tgroup: %d\n", TDG_ID(tdq->tdq_group)); + printf("\tLock name: %s\n", tdq->tdq_group->tdg_name); #endif } @@ -389,7 +394,7 @@ * This queue contains only priorities between MIN and MAX * realtime. Use the whole queue to represent these values. */ - if ((flags & SRQ_BORROWING) == 0) { + if ((flags & (SRQ_BORROWING|SRQ_PREEMPTED)) == 0) { pri = (pri - PRI_MIN_TIMESHARE) / TS_RQ_PPQ; pri = (pri + tdq->tdq_idx) % RQ_NQS; /* @@ -454,7 +459,7 @@ THREAD_LOCK_ASSERT(ts->ts_thread, MA_OWNED); class = PRI_BASE(ts->ts_thread->td_pri_class); tdq->tdq_load++; - CTR2(KTR_SCHED, "cpu %jd load: %d", TDQ_ID(tdq), tdq->tdq_load); + CTR2(KTR_SCHED, "cpu %d load: %d", TDQ_ID(tdq), tdq->tdq_load); if (class != PRI_ITHD && (ts->ts_thread->td_proc->p_flag & P_NOLOAD) == 0) #ifdef SMP @@ -484,7 +489,7 @@ tdq->tdq_sysload--; #endif KASSERT(tdq->tdq_load != 0, - ("tdq_load_rem: Removing with 0 load on queue %d", (int)TDQ_ID(tdq))); + ("tdq_load_rem: Removing with 0 load on queue %d", TDQ_ID(tdq))); tdq->tdq_load--; CTR1(KTR_SCHED, "load: %d", tdq->tdq_load); ts->ts_runq = NULL; @@ -916,6 +921,8 @@ tdq = TDQ_CPU(cpu); td = ts->ts_thread; ts->ts_cpu = cpu; + + /* If the lock matches just return the queue. */ if (td->td_lock == TDQ_LOCKPTR(tdq)) return (tdq); #ifdef notyet @@ -936,9 +943,7 @@ */ thread_lock_block(td); TDQ_LOCK(tdq); - /* Return to sched_switch() with the lock still blocked */ - if ((flags & SRQ_OURSELF) == 0) - thread_lock_unblock(td, TDQ_LOCKPTR(tdq)); + thread_lock_unblock(td, TDQ_LOCKPTR(tdq)); return (tdq); } @@ -1129,107 +1134,159 @@ tdq_setup(struct tdq *tdq) { - snprintf(tdq->tdq_name, sizeof(tdq->tdq_name), - "sched lock %d", (int)TDQ_ID(tdq)); - mtx_init(&tdq->tdq_lock, tdq->tdq_name, "sched lock", - MTX_SPIN | MTX_RECURSE); + if (bootverbose) + printf("ULE: setup cpu %d\n", TDQ_ID(tdq)); runq_init(&tdq->tdq_realtime); runq_init(&tdq->tdq_timeshare); runq_init(&tdq->tdq_idle); tdq->tdq_load = 0; } -/* - * Setup the thread queues and initialize the topology based on MD - * information. - */ +#ifdef SMP +static void +tdg_setup(struct tdq_group *tdg) +{ + if (bootverbose) + printf("ULE: setup cpu group %d\n", TDG_ID(tdg)); + snprintf(tdg->tdg_name, sizeof(tdg->tdg_name), + "sched lock %d", (int)TDG_ID(tdg)); + mtx_init(&tdg->tdg_lock, tdg->tdg_name, "sched lock", + MTX_SPIN | MTX_RECURSE); + LIST_INIT(&tdg->tdg_members); + tdg->tdg_load = 0; + tdg->tdg_transferable = 0; + tdg->tdg_cpus = 0; + tdg->tdg_mask = 0; + tdg->tdg_cpumask = 0; + tdg->tdg_idlemask = 0; +} + +static void +tdg_add(struct tdq_group *tdg, struct tdq *tdq) +{ + if (tdg->tdg_mask == 0) + tdg->tdg_mask |= 1 << TDQ_ID(tdq); + tdg->tdg_cpumask |= 1 << TDQ_ID(tdq); + tdg->tdg_cpus++; + tdq->tdq_group = tdg; + tdq->tdq_lock = &tdg->tdg_lock; + LIST_INSERT_HEAD(&tdg->tdg_members, tdq, tdq_siblings); + if (bootverbose) + printf("ULE: adding cpu %d to group %d: cpus %d mask 0x%X\n", + TDQ_ID(tdq), TDG_ID(tdg), tdg->tdg_cpus, tdg->tdg_cpumask); +} + static void -sched_setup(void *dummy) +sched_setup_topology(void) { + struct tdq_group *tdg; + struct cpu_group *cg; + int balance_groups; struct tdq *tdq; -#ifdef SMP - int balance_groups; int i; + int j; + topology = 1; balance_groups = 0; - /* - * Initialize the tdqs. - */ - for (i = 0; i < MAXCPU; i++) { + for (i = 0; i < smp_topology->ct_count; i++) { + cg = &smp_topology->ct_group[i]; + tdg = &tdq_groups[i]; + /* + * Initialize the group. + */ + tdg_setup(tdg); + /* + * Find all of the group members and add them. + */ + for (j = 0; j < MAXCPU; j++) { + if ((cg->cg_mask & (1 << j)) != 0) { + tdq = TDQ_CPU(j); + tdq_setup(tdq); + tdg_add(tdg, tdq); + } + } + if (tdg->tdg_cpus > 1) + balance_groups = 1; + } + tdg_maxid = smp_topology->ct_count - 1; + if (balance_groups) + sched_balance_groups(NULL); +} + +static void +sched_setup_smp(void) +{ + struct tdq_group *tdg; + struct tdq *tdq; + int cpus; + int i; + + for (cpus = 0, i = 0; i < MAXCPU; i++) { + if (CPU_ABSENT(i)) + continue; tdq = &tdq_cpu[i]; - tdq_setup(&tdq_cpu[i]); + tdg = &tdq_groups[i]; + /* + * Setup a tdq group with one member. + */ + tdg_setup(tdg); + tdq_setup(tdq); + tdg_add(tdg, tdq); + cpus++; } - if (smp_topology == NULL) { - struct tdq_group *tdg; - int cpus; + tdg_maxid = cpus - 1; +} + +/* + * Fake a topology with one group containing all CPUs. + */ +static void +sched_fake_topo(void) +{ +#ifdef SCHED_FAKE_TOPOLOGY + static struct cpu_top top; + static struct cpu_group group; + + top.ct_count = 1; + top.ct_group = &group; + group.cg_mask = all_cpus; + group.cg_count = mp_ncpus; + group.cg_children = 0; + smp_topology = ⊤ +#endif +} +#endif - for (cpus = 0, i = 0; i < MAXCPU; i++) { - if (CPU_ABSENT(i)) - continue; - tdq = &tdq_cpu[i]; - tdg = &tdq_groups[cpus]; - /* - * Setup a tdq group with one member. - */ - tdq->tdq_transferable = 0; - tdq->tdq_group = tdg; - tdg->tdg_cpus = 1; - tdg->tdg_idlemask = 0; - tdg->tdg_cpumask = tdg->tdg_mask = 1 << i; - tdg->tdg_load = 0; - tdg->tdg_transferable = 0; - LIST_INIT(&tdg->tdg_members); - LIST_INSERT_HEAD(&tdg->tdg_members, tdq, tdq_siblings); - cpus++; - } - tdg_maxid = cpus - 1; - } else { - struct tdq_group *tdg; - struct cpu_group *cg; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 5 23:53:51 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BD10216A421; Sun, 5 Aug 2007 23:53:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 908AD16A417 for ; Sun, 5 Aug 2007 23:53:50 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8202E13C457 for ; Sun, 5 Aug 2007 23:53:50 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l75Nrorp079348 for ; Sun, 5 Aug 2007 23:53:50 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l75NroZD079345 for perforce@freebsd.org; Sun, 5 Aug 2007 23:53:50 GMT (envelope-from mharvan@FreeBSD.org) Date: Sun, 5 Aug 2007 23:53:50 GMT Message-Id: <200708052353.l75NroZD079345@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124758 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, 05 Aug 2007 23:53:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=124758 Change 124758 by mharvan@mharvan_bike-planet on 2007/08/05 23:53:35 changed the icmp plugin to simulate ICMP echo request/reply exchanges Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.doc/design.txt#3 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/README#2 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin.h#3 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#4 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#6 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#5 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#13 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.h#7 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/mtund.doc/design.txt#3 (text+ko) ==== @@ -4,11 +4,13 @@ mentors. TODO: -o use libevent (http://www.monkey.org/~provos/libevent/) -o configuration of tun iface done by daemon (call ifconfig&friends) o man page o port skeleton +TODO this document +o plugin_send() return values - prevent filling the stack +o fragmenation, fragment reassembly, framing + TUN(4) INTERFACE (OR SOMETHING ELSE?) My original idea, as described in the proposal is to use the tun(4) interface. It gives a virtual network interface (point-to-point). ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/README#2 (text+ko) ==== @@ -65,4 +65,8 @@ 3333: iptables -t filter -A INPUT --protocol tcp --destination-port 3333 -j DROP -To get some security, you may want to set up IPSec on the tun interface.+To get some security, you may want to set up IPSec on the tun interface. + +Older FreeBSD versions may have problems with kqueue. You can use +alternative mechanisms by setting the environment variable +EVENT_NOKQUEUE. ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin.h#3 (text+ko) ==== @@ -60,6 +60,12 @@ void plugin_receive(int fd, short ev_type, void *arg); /* + * Check whether plugin is ready to send data. + * Return: 1 if ready to send, 0 if not. + */ +int plugin_is_ready_to_send(); + +/* * Send the data. * Return: number of bytes sent, -1 on error. */ ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#4 (text+ko) ==== @@ -1,3 +1,12 @@ +/* + * ICMP encapsulation plugin + * + * Client encapsulates the data as ICMP payload of ICMP echo + * requests. The server encapsulates the data as ICMP payload of + * replies to the received ICMP echo requests. For this reasons, the + * server always queues one packet at a time from the daemon. + */ + #include #include #include @@ -16,18 +25,14 @@ #include #include +#include +#include +#include +#include + #include "tunneld.h" #include "plugin.h" -#define ID 0x42 - -/* - * Establish a connected UDP endpoint. First get the list of potential - * network layer addresses and transport layer port numbers. Iterate - * through the returned address list until an attempt to create and - * connect a UDP endpoint is successful (or no other alternative - * exists). - */ typedef struct { int fd; /* udp socket to the other endpoint */ @@ -35,7 +40,7 @@ int server; } plugin_icmp_datat; -struct myicmp { +struct my_icmp_hdr { u_int8_t type; u_int8_t code; u_int16_t cksum; @@ -46,6 +51,13 @@ static struct sockaddr_in dst_addr; /* address of the other endpoint */ static socklen_t dst_addr_len = sizeof(dst_addr); +char *queued_data = NULL; +int queued_data_len = 0; +u_int16_t id = 0; +u_int16_t seq = 0; +int old_sysctl; +size_t old_sysctl_size = sizeof(old_sysctl); + u_int16_t in_cksum(u_int16_t *addr, int len) { register int nleft = len; @@ -60,6 +72,13 @@ return (answer); } +/* + * Establish a connected ICMP endpoint. First get the list of + * potential network layer addresses. Iterate through the returned + * address list until an attempt to create and connect an ICMP + * endpoint is successful (or no other alternative exists). + */ + /* static int */ /* icmp_connect(char *host) */ /* { */ @@ -111,13 +130,16 @@ return close(fd); } -int plugin_register(plugint* pl) { +int +plugin_register(plugint* pl) +{ pl->name = "icmp"; - pl->need_frag = 1; + pl->mtu = 1400; pl->initialize = plugin_initialize; pl->deinitialize = plugin_deinitialize; + pl->receive = plugin_receive; + pl->is_ready_to_send = plugin_is_ready_to_send; pl->send = plugin_send; - pl->receive = plugin_receive; pl->next = NULL; pl->data = malloc(sizeof(plugin_icmp_datat)); @@ -131,7 +153,9 @@ return 0; } -void plugin_unregister(plugint* pl) { +void +plugin_unregister(plugint* pl) +{ if (pl->data) { free(pl->data); pl->data = NULL; @@ -145,9 +169,12 @@ * not work. It will fail once we try to send data, so it may be wise * to first send some handshake data. */ -int plugin_initialize(plugint *pl, const int server, char *host, char *port) { +int +plugin_initialize(plugint *pl, const int server, char *host, char *port) +{ struct addrinfo hints, *ai; int n; + int new_sysctl = 1; plugin_icmp_datat *data = (plugin_icmp_datat*) pl->data; fprintf(stderr, "starting plugin_initialize...\n"); @@ -155,7 +182,13 @@ data->server = server; if (server) { + id = 0; + seq = 0; } else { + srandomdev(); + id = random(); + seq = random(); + memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_RAW; @@ -185,11 +218,17 @@ } if (data->server) { - #ifdef __FreeBSD__ +#ifdef __FreeBSD__ + if (0 != sysctlbyname("net.inet.icmp.echo_user", + &old_sysctl, &old_sysctl_size, + &new_sysctl, sizeof(new_sysctl))) + errx(EX_UNAVAILABLE, "Cannot set net.inet.icmp.echo_user " + "sysctl. Maybe you need to patch your kernel?"); + //system("sysctl net.inet.icmp.echo_user=1"); +#endif +#ifdef __linux__ system("sysctl net.ipv4.icmp_echo_ignore_all=0"); - #else - system("sysctl net.ipv4.icmp_echo_ignore_all=0"); - #endif +#endif } return 0; } else { @@ -197,26 +236,76 @@ } } -void plugin_deinitialize(plugint *pl) { +void +plugin_deinitialize(plugint *pl) +{ plugin_icmp_datat *data = (plugin_icmp_datat*) pl->data; unregister_select_fd(data->fd); icmp_close(data->fd); data->state = PLUGIN_STATE_UNINITIALIZED; + +#ifdef __FreeBSD__ + if (data->server) + sysctlbyname("net.inet.icmp.echo_user", NULL, 0, + &old_sysctl, old_sysctl_size); +#endif } -void plugin_receive(int fd, short ev_type, void *arg) { +static int +send_icmp_pkt(plugint *pl, int id, int seq, char *data, int len) +{ + plugin_icmp_datat *datapl = (plugin_icmp_datat*)pl->data; + int n = 0; + char* packet; + struct my_icmp_hdr *icmp; + + packet = malloc(sizeof(struct my_icmp_hdr) + len); + if (!packet) { + fprintf(stderr, "plugin_send: out of memory\n"); + return PLUGIN_SEND_ERROR_MALLOC; + } + memset (packet, 0, sizeof(struct my_icmp_hdr) + len); + memcpy (packet+sizeof(struct my_icmp_hdr), data, len); + + icmp = (struct my_icmp_hdr*)(packet); + if (datapl->server) { + icmp->type = ICMP_ECHOREPLY; + } else { /* client */ + icmp->type = ICMP_ECHO; + //icmp->type = 123; + } + + icmp->code = 0; + icmp->id = htons(id); + icmp->seq = htons(seq); + icmp->cksum = 0; + icmp->cksum = in_cksum((u_int16_t*)packet, sizeof(struct my_icmp_hdr) + len); + + n = sendto(datapl->fd, (char*)packet, sizeof(struct my_icmp_hdr) + len, 0, + (struct sockaddr*)&dst_addr, dst_addr_len); + //(struct sockaddr*)dst, sizeof (struct sockaddr_in)); + fprintf(stderr, "plugin_send: send returned %d\n", n); + return n; +} + + +void +plugin_receive(int fd, short ev_type, void *arg) +{ plugint *pl = (plugint *) arg; plugin_icmp_datat *data = (plugin_icmp_datat*) pl->data; int n = 0; - char packet[PACKETLEN]; + char packet[PACKETLEN]; + char *packetp = packet; struct sockaddr_in from; socklen_t fromlen = sizeof(from); char host[NI_MAXHOST]; char serv[NI_MAXSERV]; + struct my_icmp_hdr *icmp = NULL; if (! (data->state == PLUGIN_STATE_CONNECTED || data->state == PLUGIN_STATE_INITIALIZED)) { - //return -1; + return; } fprintf(stderr, "data on plugin fd\n"); @@ -240,66 +329,104 @@ memcpy(&dst_addr, &from, fromlen); dst_addr_len = fromlen; data->state = PLUGIN_STATE_CONNECTED; - + } else { // TODO: fix the comparison - if (memcmp(&dst_addr, &from, dst_addr_len) == 0 || 1) { - if (n == -1) { - //return -1; - } else if (n > 0) { - // TODO: check values in the ICMP header - process_data_from_plugin(pl, packet + sizeof(struct myicmp) - + 20, - //+ sizeof(struct ip), - n - sizeof(struct myicmp) - //- sizeof(struct ip) - - 20); + if (n == -1) { + report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); + return; + } + if (memcmp(&dst_addr, &from, dst_addr_len) != 0) { + goto pkt_not_for_us; + } + + if (n < 20 + sizeof(struct my_icmp_hdr)) { + warnx("plugin_icmp: plugin_receive: received data too short " + "to contain IP and ICMP headers\n"); + } else { + /* skip the IP header */ + packetp += 20; + n -= 20; + + /* skip the icmp header */ + //icmp = (struct my_icmp_header*)packetp; + icmp = (void*)packetp; + packetp += sizeof(struct my_icmp_hdr); + n -= sizeof(struct my_icmp_hdr); + + /* check values in the ICMP header */ + if (//(ntohs(icmp->id) == id ) && + icmp->type == ((data->server)? + ICMP_ECHO : ICMP_ECHOREPLY)) + process_data_from_plugin(pl, packetp, n); + // else // pkt not for us, send back an echo reply + // goto pkt_not_for_us; + + /* use the reply to send data */ + if (queued_data != NULL) { + send_icmp_pkt(pl, ntohs(icmp->id), ntohs(icmp->seq), + queued_data, queued_data_len); + free(queued_data); + queued_data = NULL; + queued_data_len = 0; + report_plugin_error(pl, PLUGIN_ERROR_PKT_SENT); + } else if (!data->server) { /* client */ + /* client should send back an empty request + * to give the server a chance to send data back + */ + if (seq == 65535) + seq = 0; + else + seq++; + send_icmp_pkt(pl, id, seq, NULL, 0); } - fprintf(stderr, "plugin_receive: recv return 0\n"); - } else { - fprintf(stderr, "discarding data from a different client\n"); } + return; + + pkt_not_for_us: + fprintf(stderr, "discarding data from a different client\n"); } - //return 0; +} + +int +plugin_is_ready_to_send() +{ + if (queued_data == NULL) + return 1; + else + return 0; } -int plugin_send(plugint *pl, char *data, int len) { +int +plugin_send(plugint *pl, char *data, int len) +{ plugin_icmp_datat *datapl = (plugin_icmp_datat*) pl->data; int n = 0; - char* packet; - struct myicmp *icmp; if (datapl->state != PLUGIN_STATE_CONNECTED) { fprintf(stderr, "no client connected yet, discarding data\n"); - return 0; - } else { - packet = malloc(sizeof(struct myicmp) + len); - if (!packet) { - fprintf(stderr, "plugin_send: out of memory\n"); - return -1; + return PLUGIN_SEND_ERROR; + } + + if (datapl->server) { /* server */ + if (queued_data == NULL) { + queued_data = malloc(len); + if (queued_data == NULL) { + return PLUGIN_SEND_ERROR_MALLOC; + } + memcpy(queued_data, data, len); + queued_data_len = len; + return PLUGIN_SEND_PKT_QUEUED; + } else { + return PLUGIN_SEND_ERROR_QUEUE_FULL; } - memset (packet, 0, sizeof(struct myicmp) + len); - memcpy (packet+sizeof(struct myicmp), data, len); - - icmp = (struct myicmp*)(packet); -/* if (datapl->server) { */ -/* icmp->type = ICMP_ECHOREPLY; */ -/* } else { */ -/* icmp->type = ICMP_ECHO; */ -/* } */ - //icmp->type = ICMP_ECHO; - icmp->type = 123; - - icmp->code = 0; - icmp->id = ID; - icmp->seq = 0; - icmp->cksum = 0; - icmp->cksum = in_cksum((u_int16_t*)packet, sizeof(struct myicmp) + len); - - n = sendto(datapl->fd, (char*)packet, sizeof(struct myicmp) + len, 0, - (struct sockaddr*)&dst_addr, dst_addr_len); - //(struct sockaddr*)dst, sizeof (struct sockaddr_in)); - fprintf(stderr, "plugin_send: send returned %d\n", n); + } else { /* client */ + n = send_icmp_pkt(pl, id, seq, data, len); + seq++; + fprintf(stderr, "send_icmp_pkt: send returned %d\n", n); + if (n > 0) + return PLUGIN_SEND_PKT_SENT; + else + return PLUGIN_SEND_ERROR; } - return n; } ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#6 (text+ko) ==== @@ -190,9 +190,10 @@ int plugin_register(plugint* pl) { pl->name = "tcp"; - pl->need_frag = 0; + pl->mtu = 1450; pl->initialize = plugin_initialize; pl->deinitialize = plugin_deinitialize; + pl->is_ready_to_send = plugin_is_ready_to_send; pl->send = plugin_send; pl->receive = plugin_receive; pl->next = NULL; @@ -315,6 +316,12 @@ } } +int +plugin_is_ready_to_send() +{ + return 1; +} + /* * BUG: the write might not send the whole buffer in one go, should check * and call again, but then the receiver would have to reassemble packets @@ -338,5 +345,6 @@ if (n < 0 || (len != 0 && n == 0) ) { report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); } - return n; + //return n; + return PLUGIN_SEND_PKT_SENT; } ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#5 (text+ko) ==== @@ -129,9 +129,10 @@ int plugin_register(plugint* pl) { pl->name = "udp"; - pl->need_frag = 1; + pl->mtu = 1450; pl->initialize = plugin_initialize; pl->deinitialize = plugin_deinitialize; + pl->is_ready_to_send = plugin_is_ready_to_send; pl->send = plugin_send; pl->receive = plugin_receive; pl->next = NULL; @@ -246,6 +247,12 @@ //return 0; } +int +plugin_is_ready_to_send() +{ + return 1; +} + int plugin_send(plugint *pl, char *data, int len) { plugin_udp_datat *datapl = (plugin_udp_datat*) pl->data; int n = 0; @@ -256,5 +263,5 @@ n = send(datapl->fd, data, len, 0); fprintf(stderr, "plugin_send: send returned %d\n", n); } - return n; + return PLUGIN_SEND_PKT_SENT; } ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#13 (text+ko) ==== @@ -10,34 +10,37 @@ * > VTun - Virtual Tunnel over TCP/IP network. */ -//#include "driver.h" -#include -#include -#include -#include - -//#include #include -#include #include #include #include +#include +#include +#include +#include +#include +#include #include #include "tun_dev.h" - #include "tunneld.h" -// linux only -#include -#include +// Linux only +//#include +//#include #define min(a,b) ( (a>b) ? b : a ) +/* + * Pass data received from the tun interface to the daemon. + */ +static int process_data_from_tun(char *data, int len); + + /* max transfered unit - encapsulated packet size */ -//const int mtu = 1400; #define MTU 1500 /* how many pings can fail before the plugin is declared broken */ +#define PING_INTERVAL 20 #define PING_FAIL 3 int server = 0; /* are we a server or a client? */ @@ -55,6 +58,7 @@ uint echo_seq = 0; /* fragment id for the next packet to be fragmented */ +frag_hdr_t frag_hdr; uint frag_id = 0; // TODO: randomize /* fragmentat reassembly info list */ @@ -132,28 +136,37 @@ return system(cmd); } -/* tun functions - this could be turned into a plugin as well */ - -void tun_receive(int fd, short ev_type, void *arg) { +/* read data from the tun interface and pass it to the daemon */ +static void +tun_receive() +{ char packet[PACKETLEN]; - int result = 0; + int nread = 0; + int nwrite = 0; + + printf("tun_receive()\n"); + if (current_pl == NULL) + return; - /* data available on tunnel device */ - memset(packet, 0, sizeof(packet)); - result = tun_read(tun_fd, packet, PACKETLEN); - - if (!result) { - //return 0; - } else if (result==-1) { - perror ("read"); - //return -1; - } - //fprintf(stderr, "data on tun interface\n"); - process_data_from_tun(packet, result); - //return result; + do { + /* only read from the tun device of the plugin is ready to send data */ + if (current_pl->is_ready_to_send() != 0) { + memset(packet, 0, sizeof(packet)); + nread = tun_read(tun_fd, packet, PACKETLEN); + if (nread > 0) { + nwrite = process_data_from_tun(packet, nread); + } + } + /* continue the loop if we read something + * and the plugin has sent it immediately + */ + printf("tun_receive: nread: %d, nwrite: %d\n", nread, nwrite); + } while (nread > 0 && nwrite == PLUGIN_SEND_PKT_SENT); } -int tun_send(char *data, int len) { +/* send data via the tun interface */ +static int +tun_send(char *data, int len) { int n; n = tun_write(tun_fd, data, len); /* @@ -166,13 +179,22 @@ return n; } +/* handler function for events on the tun device - called by libevent */ +static void +tun_ev_handler(int fd, short ev_type, void *arg) +{ + printf("tun_ev_handler(): ev_type: 0x%x\n", ev_type); + tun_receive(); +} + /* * BUGS: if dlclose() is called, I get a segfault when trying to use * the loaded functions. Maybe I'm not passing the right flags to * dlopen()? Well, RTLD_NODELETE seems to help here, at least on * linux. */ -int load_plugin(char *path) { +static int +load_plugin(char *path) { plugint *pl; int (*plugin_register)(plugint*); void *handle; @@ -198,7 +220,7 @@ //dlclose(handle); - /* add plugin to the list of laoded plugins */ + /* add plugin to the list of loaded plugins */ pl->next = plugins; plugins = pl; @@ -213,7 +235,12 @@ return 2; } -void send_echo_request() +/* + * Send a tunnel probe - echo request. Note that this is different + * from ICMP echo. + */ +static void +send_echo_request() { char data[10]; plugint *pl = current_pl; @@ -225,7 +252,9 @@ } } -void timer_ev_handler(int fd, short ev_type, void *arg) +/* handler function for the libevent timer event */ +static void +timer_ev_handler(int fd, short ev_type, void *arg) { struct timeval tv; struct frag_info *np, *np_temp; @@ -245,19 +274,19 @@ /* fragment reassembly timeout */ if (gettimeofday(&tv, NULL) != 0) { errx(EX_OSERR, "gettimeofday() failed"); - //TODO: maybe fail - } - LIST_FOREACH_SAFE(np, &frag_info_list, frag_infos, np_temp) { - if (tv.tv_sec - np->tv_sec > FRAG_TIMEOUT) { - LIST_REMOVE(np, frag_infos); - free(np->bitmap); - free(np->buf); - free(np); + } else { + LIST_FOREACH_SAFE(np, &frag_info_list, frag_infos, np_temp) { + if (tv.tv_sec - np->tv_sec > FRAG_TIMEOUT) { + LIST_REMOVE(np, frag_infos); + free(np->bitmap); + free(np->buf); + free(np); + } } } /* register a timer event again */ - tv.tv_sec=1; + tv.tv_sec=PING_INTERVAL; tv.tv_usec=0; evtimer_set(&timer_ev, timer_ev_handler, NULL); evtimer_add(&timer_ev, &tv); @@ -266,7 +295,8 @@ /* * Pass data received by the plugin to the daemon. */ -void process_data_from_plugin(plugint *pl, char *data, int len) +void +process_data_from_plugin(plugint *pl, char *data, int len) { u_int8_t dispatch = *data; frag_hdr_t *frag_hdr = NULL; @@ -340,7 +370,6 @@ /* collect information about the fragments */ if (gettimeofday(&tv, NULL) != 0) { errx(EX_OSERR, "gettimeofday() failed"); - //TODO: maybe fail } p->id = frag_hdr->id; p->size = frag_hdr->size; @@ -408,117 +437,124 @@ /* * Pass data received from the tun interface to the daemon. */ -void process_data_from_tun(char *data, int len) +static int +process_data_from_tun(char *data, int len) { int n = 0; char ldata[MTU+1]; char *ldatap = ldata; - frag_hdr_t frag_hdr; - int mtu = 100; // TODO: add mtu to plugint if (current_pl == NULL) { fprintf(stderr, "no plugin connected yet, discarding tun data\n"); report_plugin_error(NULL, PLUGIN_ERROR_BOOTSTRAP); - return; + return PLUGIN_SEND_ERROR; } /* no need to add the fragmentation header */ - if (! current_pl->need_frag) { + printf("process_data_from_tun: len: %d, current_pl->mtu: %d\n", + len, current_pl->mtu); + if (len < current_pl->mtu || 1) { *ldata = DISPATCH_DATA; memcpy(ldata+1, data, min(sizeof(ldata)-1, len)); - n = current_pl->send(current_pl, ldata, min(sizeof(ldata), len+1)); - - if (n < min(sizeof(ldata), len+1)) { - fprintf(stderr, "process_data_from_tun: plugind sent less " - "bytes (%d) than requested (%d)\n", n, len); - } + return current_pl->send(current_pl, ldata, min(sizeof(ldata), len+1)); + /* add the fragmentation header */ } else { - // mtu = current_pl->mtu; - - /* prepare the frag header */ - frag_hdr.dispatch = DISPATCH_FRAG; - frag_hdr.id = frag_id; - frag_id++; - frag_hdr.size = len; - frag_hdr.offset = 0; - - /* copy the payload */ - memcpy(ldatap + sizeof(frag_hdr), data, - min(sizeof(ldata) - sizeof(frag_hdr), len)); - len += sizeof(frag_hdr); + /* prepare the frag header */ + frag_hdr.dispatch = DISPATCH_FRAG; + frag_hdr.id = frag_id; + frag_id++; + frag_hdr.size = len; + frag_hdr.offset = 0; + + /* copy the payload */ + memcpy(ldatap + sizeof(frag_hdr), data, + min(sizeof(ldata) - sizeof(frag_hdr), len)); + len += sizeof(frag_hdr); + + while(len > sizeof(frag_hdr)) { + printf("process_data_from_tun: sending frag " + "offset %d, send_len %d, len %d\n", + frag_hdr.offset, min(current_pl->mtu, len), len); + /* prepend the frag dispatch and header before the payload */ + memcpy(ldatap, &frag_hdr, sizeof(frag_hdr)); - while(len > sizeof(frag_hdr)) { - printf("process_data_from_tun: sending frag " - "offset %d, send_len %d, len %d\n", - frag_hdr.offset, min(mtu, len), len); - /* prepend the frag dispatch and header before the payload */ - memcpy(ldatap, &frag_hdr, sizeof(frag_hdr)); - - /* send it */ - //TODO: change the logic here, we should not fragment based - // on the return value from send() - n = min(mtu, len); - (void) current_pl->send(current_pl, ldatap, min(mtu, len)); - n -= sizeof(frag_hdr); - if (n <= 0) { - fprintf(stderr, "process_data_from_tun: failed to send" - "data (%d)\n", n); - report_plugin_error(current_pl, PLUGIN_ERROR_SEND); - return; - } - ldatap += n; - frag_hdr.offset += n; - len -= n; + /* send it */ + //TODO: change the logic here, we should not fragment based + // on the return value from send() + n = min(current_pl->mtu, len); + (void) current_pl->send(current_pl, ldatap, + min(current_pl->mtu, len)); + n -= sizeof(frag_hdr); + if (n <= 0) { + fprintf(stderr, "process_data_from_tun: failed to send " + "data (%d)\n", n); + report_plugin_error(current_pl, PLUGIN_ERROR_SEND); + return PLUGIN_SEND_ERROR; } + ldatap += n; + frag_hdr.offset += n; + len -= n; + } + return PLUGIN_SEND_PKT_SENT; } } -void report_plugin_error(plugint *pl, int err) +void +report_plugin_error(plugint *pl, int err) { - if (err == PLUGIN_ERROR_SUCCESS) { + switch (err) { + case PLUGIN_ERROR_SUCCESS: + return; + case PLUGIN_ERROR_PKT_SENT: + /* plugin is ready to send the next packet */ + tun_receive(); return; - } - - /* server */ - if (server) { - if (pl) { - /* reinitialize the broken plugin */ - fprintf(stderr, "plugin %s failed, reinitializing...\n", pl->name); - // TODO: pl->reinitialize(pl); + default: /* errors */ + /* server */ + if (server) { + if (pl) { + /* reinitialize the broken plugin */ + fprintf(stderr, "plugin %s failed, reinitializing...\n", + pl->name); + // TODO: pl->reinitialize(pl); //pl->deinitialize(pl); //(void) pl->initialize(pl, server, host, 1234); - } - /* client */ - } else { - if (pl) { - /* deinitialize the broken plugin */ - fprintf(stderr, "plugin failed: %s\n", pl->name); - pl->deinitialize(pl); - - /* move to next plugin */ - pl = pl->next; - } - - /* scan - find a working plugin */ - //for (pl=plugins; pl; pl = pl->next) { - if (!pl) pl=plugins; - for (; pl; pl = pl->next) { - /* try to initialize plugin */ - //if (((pl->initialize)(server, host, port)) == 0) { - fprintf(stderr, "initalizing plugin: %s...\n", pl->name); - if (((pl->initialize)(pl, server, host, pl->name+4)) == 0) { - fprintf(stderr, "found a working plugin: %s\n", pl->name); - current_pl = pl; - return; - } else { - fprintf(stderr, "plugin %s failed to initialize\n", pl->name); + } + /* client */ + } else { + if (pl) { + /* deinitialize the broken plugin */ + fprintf(stderr, "plugin failed: %s\n", pl->name); + pl->deinitialize(pl); + + /* move to next plugin */ + pl = pl->next; + } + + /* scan - find a working plugin */ + //for (pl=plugins; pl; pl = pl->next) { + if (!pl) pl=plugins; + for (; pl; pl = pl->next) { + /* try to initialize plugin */ + //if (((pl->initialize)(server, host, port)) == 0) { + fprintf(stderr, "initalizing plugin: %s...\n", pl->name); + if (((pl->initialize)(pl, server, host, pl->name+4)) == 0) { + fprintf(stderr, "found a working plugin: %s\n", pl->name); + current_pl = pl; + return; + } else { + fprintf(stderr, "plugin %s failed to initialize\n", + pl->name); + } } } } } -void cleanup() +/* garbage collection before exiting */ +void +cleanup() { plugint *pl; struct frag_info *p; @@ -547,20 +583,25 @@ exit(0); } -void sigcb(int sig) +/* signal handler */ +void +sigcb(int sig) { cleanup(); } -void usage() { +void +usage() { fprintf(stderr, "usage:\n"); fprintf(stderr, "server: tunneld -s -p port\n"); fprintf(stderr, "client: tunneld -c -p port host\n"); } -int main(int argc, char **argv) { +int +main(int argc, char **argv) { plugint *pl; char opt; + int tun_flags; /* argument parsing */ while((opt=getopt(argc, argv, "scp:")) != EOF) { @@ -607,14 +648,17 @@ printf("Could not create tunnel device\n"); return 1; } - /* Initalize one event */ - event_set(&tun_ev, tun_fd, EV_PERSIST | EV_READ, tun_receive, NULL); - /* Add it to the active events, without a timeout */ + /* non-blocking i/o */ + tun_flags = fcntl(tun_fd, F_GETFL, 0); + if (tun_flags == -1) + errx(EX_OSFILE, "Failed to get flags from the tun device\n"); + fcntl(tun_fd, F_SETFL, tun_flags|O_NONBLOCK); + /* watch the tun device with libevent */ + event_set(&tun_ev, tun_fd, EV_PERSIST | EV_READ, tun_ev_handler, NULL); event_add(&tun_ev, NULL); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 6 05:07:19 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC42D16A420; Mon, 6 Aug 2007 05:07:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56A5A16A41A for ; Mon, 6 Aug 2007 05:07:18 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4444D13C47E for ; Mon, 6 Aug 2007 05:07:18 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7657I2i023496 for ; Mon, 6 Aug 2007 05:07:18 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7657Isu023493 for perforce@freebsd.org; Mon, 6 Aug 2007 05:07:18 GMT (envelope-from cnst@FreeBSD.org) Date: Mon, 6 Aug 2007 05:07:18 GMT Message-Id: <200708060507.l7657Isu023493@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124760 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, 06 Aug 2007 05:07:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=124760 Change 124760 by cnst@dale on 2007/08/06 05:06:23 convert bus_space_map(9) to bus_alloc_resource(9)/rman_get_bus{tag,handle}(9). Some direction of which functions should and should not be used was given by imp@, but appropriate usage was fine-tuned by manually comparing how these functions are called in FreeBSD vs OpenBSD drivers. I.e. NetBSD's/OpenBSD's 'size' argument of type bus_size_t to bus_space_map(9) is called 'count' in FreeBSD's bus_alloc_resource(9) et al, even though most drivers have a define called *IOSIZE that they pass as this 'count' value. (Hence my question of why is it called 'count' on FreeBSD in the first place?) Can be quickly verified by comparing FreeBSD's dev/ex/if_ex{_isa.c,reg.h} to OpenBSD's dev/isa/if_ex{.c,reg.h} (see EX_IOSIZE define on both systems), but many other drivers can be used for this comparison, too. Correctness was also verified by comparing the notation appearing in dmesg: OpenBSD: ... lm0 at isa0 port 0x290/8: W83627DHG ... pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo ... FreeBSD (before this patch or with a similar patch but using bus_alloc_resource_any): ... sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 ... lm0: at port 0x290 on isa0 ... FreeBSD (after this patch, only lm0 part is shown below): ... lm0: at port 0x290-0x297 on isa0 ... Anyhow, lm(4) continues to work, all recommended functions are used, and all newly introduced XXX are removed, so that's all that matters in the end. Also, I assume working through source-code instead of documentation adds some valuable flavour to the experience. :) Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78_isa.c#5 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78_isa.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $P4: //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78_isa.c#4 $ */ +/* $P4: //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78_isa.c#5 $ */ /* $FreeBSD$ */ /* $OpenBSD: lm78_isa.c,v 1.2 2007/07/01 21:48:57 cnst Exp $ */ @@ -56,6 +56,8 @@ struct lm_isa_softc { struct lm_softc sc_lmsc; + struct resource *sc_iores; + int sc_iorid; bus_space_tag_t sc_iot; bus_space_handle_t sc_ioh; }; @@ -90,22 +92,20 @@ lm_isa_probe(struct device *dev) { struct lm_isa_softc *sc = device_get_softc(dev); + struct resource *iores; + int iorid = 0; bus_space_tag_t iot; - bus_addr_t iobase; bus_space_handle_t ioh; int banksel, vendid, chipid, addr; - /* XXX */ - iot = I386_BUS_SPACE_IO; - if (device_get_unit(dev) == 0) - iobase = 0x290; /* XXX */ - else - return (1); - - if (bus_space_map(iot, iobase, 8, 0, &ioh)) { + iores = bus_alloc_resource(dev, SYS_RES_IOPORT, &iorid, + 0ul, ~0ul, 8, RF_ACTIVE); + if (iores == NULL) { DPRINTF(("%s: can't map i/o space\n", __func__)); return (1); } + iot = rman_get_bustag(iores); + ioh = rman_get_bushandle(iores); /* Probe for Winbond chips. */ bus_space_write_1(iot, ioh, LMC_ADDR, WB_BANKSEL); @@ -146,7 +146,7 @@ } notfound: - bus_space_unmap(iot, ioh, 8); + bus_release_resource(dev, SYS_RES_IOPORT, iorid, iores); return (1); @@ -159,16 +159,10 @@ sc->sc_lmsc.lm_readreg = lm_isa_readreg; lm_probe(&sc->sc_lmsc); - bus_space_unmap(iot, ioh, 8); + bus_release_resource(dev, SYS_RES_IOPORT, iorid, iores); + sc->sc_iot = 0; + sc->sc_ioh = 0; -#ifdef fixme - ia->ipa_nio = 1; - ia->ipa_io[0].length = 8; - - ia->ipa_nmem = 0; - ia->ipa_nirq = 0; - ia->ipa_ndrq = 0; -#endif return (0); } @@ -176,24 +170,20 @@ lm_isa_attach(struct device *dev) { struct lm_isa_softc *sc = device_get_softc(dev); - bus_addr_t iobase; #ifdef notyet struct lm_softc *lmsc; int i; u_int8_t sbusaddr; #endif - sc->sc_iot = I386_BUS_SPACE_IO; - - if (device_get_unit(dev) == 0) - iobase = 0x290; /* XXX */ - else - return (1); - - if (bus_space_map(sc->sc_iot, iobase, 8, 0, &sc->sc_ioh)) { + sc->sc_iores = bus_alloc_resource(dev, SYS_RES_IOPORT, &sc->sc_iorid, + 0ul, ~0ul, 8, RF_ACTIVE); + if (sc->sc_iores == NULL) { device_printf(dev, "can't map i/o space\n"); return (1); } + sc->sc_iot = rman_get_bustag(sc->sc_iores); + sc->sc_ioh = rman_get_bushandle(sc->sc_iores); /* Bus-independent attachment */ lm_attach(&sc->sc_lmsc); @@ -235,7 +225,10 @@ if (error) return (error); - bus_space_unmap(sc->sc_iot, sc->sc_ioh, 8); + error = bus_release_resource(dev, SYS_RES_IOPORT, sc->sc_iorid, + sc->sc_iores); + if (error) + return (error); return (0); } From owner-p4-projects@FreeBSD.ORG Mon Aug 6 13:56:17 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 55CAD16A41B; Mon, 6 Aug 2007 13:56:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 04A8716A417 for ; Mon, 6 Aug 2007 13:56:17 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F294B13C459 for ; Mon, 6 Aug 2007 13:56:16 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l76DuGHT004608 for ; Mon, 6 Aug 2007 13:56:16 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l76DuGFe004605 for perforce@freebsd.org; Mon, 6 Aug 2007 13:56:16 GMT (envelope-from gabor@freebsd.org) Date: Mon, 6 Aug 2007 13:56:16 GMT Message-Id: <200708061356.l76DuGFe004605@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124771 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, 06 Aug 2007 13:56:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=124771 Change 124771 by gabor@gabor_server on 2007/08/06 13:55:24 - Divide bsd.perl.mk into pre- and post- section. Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#5 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#5 (text+ko) ==== @@ -11,11 +11,11 @@ # $FreeBSD$ # -.if !defined(_PERLMKINCLUDED) +.if !defined(_POSTMKINCLUDED) && !defined(_PERLPREMKINCLUDED) PERL_Include_MAINTAINER= perl@FreeBSD.org -_PERLMKINCLUDED= yes +_PERLPREMKINCLUDED= yes PERL_VERSION?= 5.8.8 PERL_VER?= 5.8.8 @@ -97,6 +97,12 @@ .undef HAS_CONFIGURE .endif # defined(PERL_CONFIGURE) +.endif # !defined(_POSTMKINCLUDED) && !defined(_PERLPREMKINCLUDED) + +.if defined (_POSTMKINCLUDED) && !defined(_PERLPOSTMKINCLUDED) + +_PERLPOSTMKINCLUDED= yes + .if defined(PERL_CONFIGURE) .if !target(do-configure) do-configure: @@ -117,4 +123,4 @@ @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${ALL_TARGET}) .endif # !target(do-build) .endif # defined(PERL_MODBUILD) -.endif # !defined(_PERLMKINCLUDED) +.endif # defined (_POSTMKINCLUDED) && !defined(_PERLPOSTMKINCLUDED) From owner-p4-projects@FreeBSD.ORG Mon Aug 6 14:35:08 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3BC7116A418; Mon, 6 Aug 2007 14:35:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EBEED16A41B for ; Mon, 6 Aug 2007 14:35:07 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E7E5C13C46C for ; Mon, 6 Aug 2007 14:35:07 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l76EZ7ru008758 for ; Mon, 6 Aug 2007 14:35:07 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l76EZ7SJ008755 for perforce@freebsd.org; Mon, 6 Aug 2007 14:35:07 GMT (envelope-from gabor@freebsd.org) Date: Mon, 6 Aug 2007 14:35:07 GMT Message-Id: <200708061435.l76EZ7SJ008755@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124775 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, 06 Aug 2007 14:35:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=124775 Change 124775 by gabor@gabor_server on 2007/08/06 14:34:14 - Check in work-in-progress version handling. Somehow it only works for the exact version only. Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#6 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#6 (text+ko) ==== @@ -44,6 +44,19 @@ PERL_PORT?= perl5 .endif +.if defined(USE_PERL5) && ${USE_PERL5} != "yes" +__prefix=${USE_PERL5:C/[^[:digit:].]+$//} +__suffix=${USE_PERL5:C/^[0-9.]+//} + +.if ${__suffix} == "+" && ${__prefix} < ${PERL_LEVEL} +IGNORE= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 +.elif ${__suffix} == "" && ${__prefix} != ${PERL_LEVEL} +IGNORE= You need Perl ${__prefix} exectly +.elif ${__suffix} == "-" && ${__prefix} > ${PERL_LEVEL} +IGNORE= You need Perl ${__prefix} or earlier +.endif +.endif #defined(USE_PERL5) && ${USE_PERL5} != "yes" + SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VER} SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL} From owner-p4-projects@FreeBSD.ORG Mon Aug 6 14:37:11 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2329016A469; Mon, 6 Aug 2007 14:37:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA89716A41B for ; Mon, 6 Aug 2007 14:37:10 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E5F4313C474 for ; Mon, 6 Aug 2007 14:37:10 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l76EbAAX008848 for ; Mon, 6 Aug 2007 14:37:10 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l76EbAox008845 for perforce@freebsd.org; Mon, 6 Aug 2007 14:37:10 GMT (envelope-from gabor@freebsd.org) Date: Mon, 6 Aug 2007 14:37:10 GMT Message-Id: <200708061437.l76EbAox008845@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124776 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, 06 Aug 2007 14:37:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=124776 Change 124776 by gabor@gabor_server on 2007/08/06 14:36:56 - Whitespace Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#7 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#7 (text+ko) ==== @@ -109,7 +109,6 @@ MAN3PREFIX?= ${PREFIX}/lib/perl5/${PERL_VERSION} .undef HAS_CONFIGURE .endif # defined(PERL_CONFIGURE) - .endif # !defined(_POSTMKINCLUDED) && !defined(_PERLPREMKINCLUDED) .if defined (_POSTMKINCLUDED) && !defined(_PERLPOSTMKINCLUDED) @@ -130,7 +129,6 @@ .endif # defined(PERL_CONFIGURE) .if defined(PERL_MODBUILD) - .if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${ALL_TARGET}) From owner-p4-projects@FreeBSD.ORG Mon Aug 6 16:49:57 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E54A516A421; Mon, 6 Aug 2007 16:49:56 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B255416A418 for ; Mon, 6 Aug 2007 16:49:56 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id ACBA113C465 for ; Mon, 6 Aug 2007 16:49:56 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l76GnucD027916 for ; Mon, 6 Aug 2007 16:49:56 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l76Gnug6027913 for perforce@freebsd.org; Mon, 6 Aug 2007 16:49:56 GMT (envelope-from gonzo@FreeBSD.org) Date: Mon, 6 Aug 2007 16:49:56 GMT Message-Id: <200708061649.l76Gnug6027913@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124780 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, 06 Aug 2007 16:49:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=124780 Change 124780 by gonzo@gonzo_jeeves on 2007/08/06 16:49:28 o Add mips to soft-float platforms for libgcc Affected files ... .. //depot/projects/mips2/src/gnu/lib/libgcc/Makefile#4 edit Differences ... ==== //depot/projects/mips2/src/gnu/lib/libgcc/Makefile#4 (text+ko) ==== @@ -173,8 +173,8 @@ # # Floating point emulation functions # -.if ${TARGET_ARCH} == "armNOT_YET" || ${TARGET_ARCH} == "powerpc" || \ - ${TARGET_ARCH} == "sparc64" +.if ${TARGET_ARCH} == "armNOT_YET" || ${TARGET_ARCH} == "mips" || \ + ${TARGET_ARCH} == "powerpc" || ${TARGET_ARCH} == "sparc64" FPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES -DFLOAT DPBIT_CFLAGS = -DFINE_GRAINED_LIBRARIES From owner-p4-projects@FreeBSD.ORG Mon Aug 6 22:20:57 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B183616A420; Mon, 6 Aug 2007 22:20:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5F9416A417 for ; Mon, 6 Aug 2007 22:20:55 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C7CC213C442 for ; Mon, 6 Aug 2007 22:20:55 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l76MKtXN064557 for ; Mon, 6 Aug 2007 22:20:55 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l76MKs1v064513 for perforce@freebsd.org; Mon, 6 Aug 2007 22:20:54 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 6 Aug 2007 22:20:54 GMT Message-Id: <200708062220.l76MKs1v064513@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124782 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, 06 Aug 2007 22:20:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=124782 Change 124782 by kmacy@kmacy:freefall_ethng on 2007/08/06 22:03:59 initial next-gen ethernet branch create Affected files ... .. //depot/projects/ethng/doc/Makefile#1 branch .. //depot/projects/ethng/doc/README#1 branch .. //depot/projects/ethng/doc/bn_BD.ISO10646-1/Makefile#1 branch .. //depot/projects/ethng/doc/bn_BD.ISO10646-1/articles/Makefile#1 branch .. //depot/projects/ethng/doc/bn_BD.ISO10646-1/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/bn_BD.ISO10646-1/articles/explaining-bsd/Makefile#1 branch .. //depot/projects/ethng/doc/bn_BD.ISO10646-1/articles/explaining-bsd/article.sgml#1 branch .. //depot/projects/ethng/doc/bn_BD.ISO10646-1/articles/new-users/Makefile#1 branch .. //depot/projects/ethng/doc/bn_BD.ISO10646-1/articles/new-users/article.sgml#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/Makefile#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/Makefile#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/euro/Makefile#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/euro/article.sgml#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/ipsec-must/Makefile#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/ipsec-must/article.sgml#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/Makefile#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/article.sgml#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/dhcpd.conf#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/install.cfg#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/loader.rc#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/pkgmaker.sh#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/post#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/articles/pxe/pre#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/authors.ent#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/bookinfo.ent#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/disclaimer.sgml#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/license.sgml#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/teams.ent#1 branch .. //depot/projects/ethng/doc/da_DK.ISO8859-1/share/sgml/translators.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/contributing-ports/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/contributing-ports/article.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/contributing/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/contributing/article.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/explaining-bsd/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/laptop/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/laptop/article.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/new-users/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/new-users/article.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/version-guide/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/articles/version-guide/article.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/Makefile.inc#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/faq/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/faq/book.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/book.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/chapter.decl#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/chapters.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/examples/appendix.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/see-also/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/structure/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/the-website/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/tools/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/appendix.decl#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/audit/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/chapter.decl#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/colophon.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/config/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/geom/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/install/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/introduction/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/jails/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/mac/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/preface/preface.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/security/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/txtfiles.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/users/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/virtualization/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/flyer/Makefile#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/flyer/flyer.tex#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/articles.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/bibliography.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/bookinfo.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/books.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/mirrors-local.xsl#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/teams.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/trademarks.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/trademarks.sgml#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/translators.ent#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/transtable-local.xsl#1 branch .. //depot/projects/ethng/doc/de_DE.ISO8859-1/share/sgml/transtable.xml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/cvs-freebsd/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/dialup-firewall/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/dialup-firewall/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/explaining-bsd/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/explaining-bsd/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/formatting-media/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/formatting-media/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/freebsd-questions/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/freebsd-questions/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/laptop/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/laptop/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/multi-os/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/multi-os/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/new-users/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/new-users/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/problem-reports/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/problem-reports/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/releng-packages/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/releng-packages/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/releng-packages/extra.css#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/releng/Makefile#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/releng/article.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/articles/releng/extra.css#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/mk/doc.local.mk#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/articles.ent#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/bookinfo.ent#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/glossary/freebsd-glossary.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/teams.ent#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/trademarks.ent#1 branch .. //depot/projects/ethng/doc/el_GR.ISO8859-7/share/sgml/trademarks.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/5-roadmap/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/5-roadmap/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/5-roadmap/extra.css#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/bsdl-gpl/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/bsdl-gpl/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/building-products/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/building-products/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/casestudy-argentina.com/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/casestudy-argentina.com/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/checkpoint/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/checkpoint/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/committers-guide/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/committers-guide/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/console-server/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/console-server/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributing-ports/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributing-ports/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributing/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributing/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/chapter.decl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.386bsd.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.core.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.corealumni.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.develalumni.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.docproj.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.staff.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/contributors/contrib.who.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/cvs-freebsd/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/cvs-freebsd/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/cvsup-advanced/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/cvsup-advanced/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/dialup-firewall/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/dialup-firewall/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/diskless-x/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/diskless-x/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/euro/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/euro/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/explaining-bsd/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/explaining-bsd/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fbsd-from-scratch/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fbsd-from-scratch/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/filtering-bridges/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/filtering-bridges/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fonts/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/fonts/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/formatting-media/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/formatting-media/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/freebsd-questions/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/freebsd-questions/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/geom-class/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/geom-class/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/hats/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/hats/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/hubs/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/hubs/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/ipsec-must/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/ipsec-must/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/laptop/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/laptop/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/linux-comparison/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/linux-comparison/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/mailing-list-faq/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/mailing-list-faq/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/mh/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/mh/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/multi-os/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/multi-os/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/nanobsd/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/nanobsd/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/new-users/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/new-users/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/p4-primer/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/p4-primer/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pam/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pam/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pam/converse.c#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pam/pam_unix.c#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pam/su.c#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/portbuild/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/portbuild/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pr-guidelines/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pr-guidelines/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/problem-reports/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/problem-reports/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/dhcpd.conf#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/install.cfg#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/loader.rc#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/pkgmaker.sh#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/post#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/pxe/pre#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/rc-scripting/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/rc-scripting/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/relaydelay/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/relaydelay/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/releng-packages/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/releng-packages/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/releng-packages/extra.css#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/releng/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/releng/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/releng/extra.css#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/serial-uart/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/serial-uart/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/solid-state/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/solid-state/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/storage-devices/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/storage-devices/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/version-guide/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/version-guide/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/vinum/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/vinum/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/vm-design/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/vm-design/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/wp-toolbox/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/wp-toolbox/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/zip-drive/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/articles/zip-drive/article.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/Makefile.inc#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/boot/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/isa/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/jail/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/kobj/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/locking/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/mac.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/mac/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/newbus/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/pccard/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/pci/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/scsi/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/smp/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/sound/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/sysinit/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/usb/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/arch-handbook/vm/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/bibliography/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/bibliography/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/corp-net-guide/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/corp-net-guide/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/corp-net-guide/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/design-44bsd/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/design-44bsd/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/design-44bsd/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/dev-model/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/dev-model/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/dev-model/chapters.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/dma/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/introduction/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/ipv6/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/kernelbuild/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/l10n/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/policies/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/secure/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/sockets/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/testing/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/tools/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/developers-handbook/x86/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/faq/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/faq/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/chapter.decl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/chapters.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/doc-build/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/examples/appendix.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/advanced-networking/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/appendix.decl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/audit/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/audit/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/disk-layout.kil#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/example-dir1.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/example-dir2.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/example-dir3.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/example-dir4.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/basics/example-dir5.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/bibliography/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/boot/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/boot/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/chapter.decl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/colophon.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/config/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/config/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/cutting-edge/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/desktop/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/disks/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/eresources/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/firewalls/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/firewalls/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/geom/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/geom/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/disk-layout.kil#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/example-dir1.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/example-dir2.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/example-dir3.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/example-dir4.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/install/example-dir5.dot#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/introduction/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/jails/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/kernelconfig/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/l10n/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/linuxemu/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/mac/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/mac/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/mail/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/mail/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/mirrors/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/multimedia/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/network-servers/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/pgpkeys/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/ports/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/ports/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/ppp-and-slip/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/preface/preface.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/printing/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/printing/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/security/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/serialcomms/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/txtfiles.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/users/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/users/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/vinum/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/vinum/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/virtualization/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/virtualization/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/x11/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/answers/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/basics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/chapters.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/glossary/glossary.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/gods/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/intro/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/pmake/shortcuts/chapter.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/porters-handbook/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/books/porters-handbook/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/flyer/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/flyer/flyer.tex#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/mk/doc.local.mk#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/authors.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/bookinfo.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/teams.ent#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/share/sgml/trademarks.sgml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/20050513-bsdcan-slides/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/20050513-bsdcan-slides/slides.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/README#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/freebsd-5.3.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/freebsd-dev-model.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/freebsd-linux-license.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/freebsd-organization.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/freebsd-recent-releases.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/freebsd-release-process.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/freebsd-users.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/common/what-is-freebsd.xml#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/freebsd-general/Makefile#1 branch .. //depot/projects/ethng/doc/en_US.ISO8859-1/slides/freebsd-general/slides.xml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/FAQ.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/acknowledgments.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/admin.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/applications.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/commercial.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/hackers.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/hardware.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/includes.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/install.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/kernelconfig.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/misc.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/network.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/preface.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/serial.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/troubleshoot.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/FAQ/x.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/casestudy-argentina.com/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/casestudy-argentina.com/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/contributing/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/contributing/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/cvs-freebsd/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/cvs-freebsd/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/dialup-firewall/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/dialup-firewall/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/euro/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/euro/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/explaining-bsd/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/explaining-bsd/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/fbsd-from-scratch/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/fbsd-from-scratch/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/fbsd-from-scratch/fase_1.sh#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/fbsd-from-scratch/fase_2.sh#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/fbsd-from-scratch/fase_3.mk#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/laptop/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/laptop/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/mailing-list-faq/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/mailing-list-faq/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/p4-primer/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/p4-primer/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/problem-reports/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/problem-reports/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/releng/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/releng/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/releng/extra.css#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/zip-drive/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/articles/zip-drive/article.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/Makefile.inc#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/faq/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/faq/book.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/appendix.decl#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/authors.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/backups/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/basics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/bibliography/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/boot/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/chapter.decl#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/colophon.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/config/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/contrib/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/desktop/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/disks/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/eresources/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/firewalls/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/firewalls/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/geom/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/hw/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/install/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/internals/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/kerneldebug/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/kernelopts/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/l10n/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/mac/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/mail/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/mirrors/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/multimedia/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/pgpkeys/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/pgpkeys/pgpkeys.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/policies/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/preface/preface.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/quotas/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/security/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/serialcomms/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/staff/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/txtfiles.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/users/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/vinum/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/books/handbook/x11/chapter.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/flyer/Makefile#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/flyer/flyer.tex#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/authors.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/bookinfo.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/es-mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/teams.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/trademarks.ent#1 branch .. //depot/projects/ethng/doc/es_ES.ISO8859-1/share/sgml/translators.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/committers-guide/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/committers-guide/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/contributing/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/contributing/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/contributors/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/contributors/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/cvsup-advanced/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/cvsup-advanced/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ddwg/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ddwg/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/dialup-firewall/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/dialup-firewall/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/diskless-x/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/diskless-x/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/euro/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/euro/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/filtering-bridges/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/filtering-bridges/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/fonts/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/fonts/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/formatting-media/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/formatting-media/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ipsec-must/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ipsec-must/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/java-tomcat/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/java-tomcat/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/laptop/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/laptop/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/make-world/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/make-world/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/mh/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/mh/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/multi-os/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/multi-os/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/new-users/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/new-users/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ntfs/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ntfs/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pam/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pam/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pam/converse.c#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pam/pam_unix.c#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pam/su.c#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ppp/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/ppp/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pr-guidelines/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pr-guidelines/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/problem-reports/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/problem-reports/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/programming-tools/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/programming-tools/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/dhcpd.conf#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/install.cfg#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/loader.rc#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/pkgmaker.sh#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/post#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/pxe/pre#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/releng-packages/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/releng-packages/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/releng-packages/extra.css#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/releng/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/releng/branches.ascii#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/releng/branches.pic#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/releng/extra.css#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/zip-drive/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/articles/zip-drive/article.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/Makefile.inc#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/driverbasics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/locking/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/pci/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/scsi/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/secure/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/tools/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/developers-handbook/usb/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/faq/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/faq/book.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/book.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/chapters.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/in-progress.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/todo.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/advanced-networking/isdn-bus.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/advanced-networking/isdn-twisted-pair.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/advanced-networking/natd.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/advanced-networking/net-routing.pic#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/appendix.decl#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/audit/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/audit/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/basics/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/bibliography/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/bibliography/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/boot/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/boot/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/chapter.decl#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/colophon.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/config/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/config/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/cutting-edge/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/desktop/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/desktop/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/disks/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/eresources/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/eresources/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/geom/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/geom/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/disk-layout.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/example-dir1.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/example-dir2.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/example-dir3.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/example-dir4.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/install/example-dir5.eps#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/introduction/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/jails/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/kernelconfig/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/l10n/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/l10n/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/mac/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/mac/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/mail/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/mirrors/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/multimedia/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/multimedia/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/network-servers/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/network-servers/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/pgpkeys/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/pgpkeys/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/ports/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/preface/preface.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/serialcomms/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/users/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/users/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/vinum/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/vinum/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/virtualization/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/virtualization/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/x11/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/porters-handbook/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/porters-handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/porters-handbook/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/ppp-primer/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/books/ppp-primer/book.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/flyer/Makefile#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/flyer/flyer.tex#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man1/builtin.1#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man1/cat.1#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man1/chkey.1#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man1/echo.1#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man1/head.1#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man1/intro.1#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/agp.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/amd.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/cardbus.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/man4.i386/aic.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/man4.i386/wt.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/ncr.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/sd.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/sn.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/spic.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/st.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man4/uscanner.4#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man5/intro.5#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man5/publickey.5#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man6/intro.6#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man7/ascii.7#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/man/man7/intro.7#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/abstract.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/artheader.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/authors.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/bookinfo.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/books.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/copyright.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/disclaimer.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/glossary/freebsd-glossary.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/license.sgml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/mirrors-local.xsl#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/teams.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/trademarks.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/translators.ent#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/transtable-local.xsl#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/transtable.xml#1 branch .. //depot/projects/ethng/doc/fr_FR.ISO8859-1/share/sgml/urls.ent#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/Makefile#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/articles/Makefile#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/articles/linux-comparison/Makefile#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/articles/linux-comparison/article.sgml#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/articles.ent#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/newsgroups.ent#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/teams.ent#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#1 branch .. //depot/projects/ethng/doc/hu_HU.ISO8859-2/share/sgml/translators.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/committers-guide/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/committers-guide/article.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/euro/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/euro/article.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/explaining-bsd/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/explaining-bsd/article.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/filtering-bridges/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/filtering-bridges/article.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/multi-os/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/multi-os/article.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/new-users/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/new-users/article.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/vm-design/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/articles/vm-design/article.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/Makefile.inc#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/advanced-networking/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/advanced-networking/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/appendix.decl#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/audit/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/audit/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/basics/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/bibliography/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/bibliography/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/book.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/boot/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/boot/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/chapter.decl#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/chapters.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/colophon.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/config/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/config/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/cutting-edge/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/cutting-edge/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/desktop/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/desktop/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/disks/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/disks/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/eresources/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/eresources/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/firewalls/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/firewalls/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/geom/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/geom/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/install/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/install/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/introduction/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/introduction/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/kernelconfig/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/kernelconfig/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/l10n/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/l10n/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/linuxemu/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/linuxemu/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/mac/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/mac/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/mail/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/mail/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/mirrors/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/mirrors/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/multimedia/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/multimedia/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/network-servers/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/network-servers/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/pgpkeys/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/pgpkeys/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/ports/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/ports/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/ppp-and-slip/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/ppp-and-slip/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/preface/preface.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/printing/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/printing/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/security/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/security/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/serialcomms/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/serialcomms/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/txtfiles.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/users/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/users/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/vinum/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/vinum/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/x11/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/handbook/x11/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/bibliography/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/book.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/chapters.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/command-summary/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/commands/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/editors/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/getting-started/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/glossary/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/history/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/preface/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/shell-programming/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/shells/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/special-features/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/structure/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/system-resource/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/books/unix-introduction/text-processing/chapter.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/flyer/Makefile#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/flyer/flyer.tex#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/articles.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/bookinfo.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/books.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/catalog#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/freebsd.dsl#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/glossary/freebsd-glossary.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/l10n.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/legalnotice.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/mailing-lists.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/mirrors-local.xsl#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/trademarks.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/trademarks.sgml#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/translators.ent#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/transtable-local.xsl#1 branch .. //depot/projects/ethng/doc/it_IT.ISO8859-15/share/sgml/transtable.xml#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/Makefile#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/Makefile#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/Makefile.inc#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/contributing/Makefile#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/contributing/article.sgml#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/contributors/Makefile#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/contributors/article.sgml#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/dialup-firewall/Makefile#1 branch .. //depot/projects/ethng/doc/ja_JP.eucJP/articles/dialup-firewall/article.sgml#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 7 00:30:36 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CDD3316A41A; Tue, 7 Aug 2007 00:30:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C8C016A417 for ; Tue, 7 Aug 2007 00:30:35 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C57913C457 for ; Tue, 7 Aug 2007 00:30:35 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l770UZBa074254 for ; Tue, 7 Aug 2007 00:30:35 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l770UY8d074251 for perforce@freebsd.org; Tue, 7 Aug 2007 00:30:34 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 7 Aug 2007 00:30:34 GMT Message-Id: <200708070030.l770UY8d074251@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124786 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, 07 Aug 2007 00:30:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=124786 Change 124786 by kmacy@kmacy_home:ethng on 2007/08/07 00:30:21 first cut of ifnet extensions for supporting multiple queues Affected files ... .. //depot/projects/ethng/src/sys/conf/options#2 edit .. //depot/projects/ethng/src/sys/net/if.c#2 edit .. //depot/projects/ethng/src/sys/net/if.h#2 edit .. //depot/projects/ethng/src/sys/net/if_var.h#2 edit Differences ... ==== //depot/projects/ethng/src/sys/conf/options#2 (text+ko) ==== @@ -546,6 +546,7 @@ RWLOCK_NOINLINE opt_global.h SX_NOINLINE opt_global.h VFS_BIO_DEBUG opt_global.h +IFNET_MULTIQUEUE opt_global.h # These are VM related options VM_KMEM_SIZE opt_vm.h ==== //depot/projects/ethng/src/sys/net/if.c#2 (text+ko) ==== @@ -2680,6 +2680,42 @@ return (retval); } +#ifdef IFNET_MULTIQUEUE +int ifnet_multiqueue = 1; + +int +if_mq_start(struct ifnet *ifp, int32_t cookie, struct mbuf *m) +{ + + KASSERT((ifp->if_flags & IFF_NEEDSGIANT) == 0, ("IFF_NEEDSGIANT set on multi queue interface")); + + return (*(ifp)->if_mq_start)(ifp, cookie, m); +} + + +int +if_mq_enqueue_packet(struct ifnet *ifp, int32_t cookie, struct mbuf *m) +{ + + KASSERT((ifp->if_flags & IFF_NEEDSGIANT) == 0, ("IFF_NEEDSGIANT set on multi queue interface")); + + return (*(ifp)->if_mq_enqueue_packet)(ifp, cookie, m); +} + +int32_t +if_mq_get_cookie(struct ifnet *ifp, struct in6_addr *lip, uint16_t lport, struct in6_addr *rip, uint16_t rport, int ipv6) +{ + + KASSERT((ifp->if_flags & IFF_NEEDSGIANT) == 0, ("IFF_NEEDSGIANT set on multi queue interface")); + + return (*(ifp)->if_mq_get_cookie)(ifp, lip, lport, rip, rport, ipv6); +} +#else +int ifnet_multiqueue = 0; +#endif + + + /* * When an interface is marked IFF_NEEDSGIANT, its if_start() routine cannot * be called without Giant. However, we often can't acquire the Giant lock ==== //depot/projects/ethng/src/sys/net/if.h#2 (text+ko) ==== @@ -150,6 +150,7 @@ #define IFF_MONITOR 0x40000 /* (n) user-requested monitor mode */ #define IFF_STATICARP 0x80000 /* (n) static ARP */ #define IFF_NEEDSGIANT 0x100000 /* (i) hold Giant over if_start calls */ +#define IFF_MULTIQ 0x200000 /* (i) driver has multiple queues and manages them privately */ /* * Old names for driver flags so that user space tools can continue to use ==== //depot/projects/ethng/src/sys/net/if_var.h#2 (text+ko) ==== @@ -86,6 +86,9 @@ #define IF_DUNIT_NONE -1 #include +#ifdef IFNET_MULTIQUEUE +#include +#endif TAILQ_HEAD(ifnethead, ifnet); /* we use TAILQs so that the order of */ TAILQ_HEAD(ifaddrhead, ifaddr); /* instantiation is preserved in the list */ @@ -152,6 +155,14 @@ (struct ifnet *, struct mbuf *); void (*if_start) /* initiate output routine */ (struct ifnet *); +#ifdef IFNET_MULTIQUEUE + int (*if_mq_start) /* initiate output routine with immediate */ + (struct ifnet *, int32_t, struct mbuf *); + int (*if_mq_enqueue_packet) /* enqueue packet to the appropriate queue */ + (struct ifnet *, int32_t, struct mbuf *); + int32_t (*if_mq_get_cookie) /* calculate the txq cookie for this connection */ + (struct ifnet *, struct in6_addr *, uint16_t, struct in6_addr *, uint16_t, int); +#endif int (*if_ioctl) /* ioctl routine */ (struct ifnet *, u_long, caddr_t); void (*if_watchdog) /* timer routine */ @@ -378,6 +389,13 @@ if_handoff((struct ifqueue *)ifq, m, ifp, adj) void if_start(struct ifnet *); +#ifdef IFNET_MULTIQUEUE +int if_mq_start(struct ifnet *, int32_t, struct mbuf *); +int if_mq_enqueue_packet(struct ifnet *, int32_t, struct mbuf *); +int32_t if_mq_get_cookie(struct ifnet *ifp, struct in6_addr *lip, uint16_t lport, struct in6_addr *rip, uint16_t rport, int ipv6); +#endif +extern int ifnet_multiqueue; /* allow driver module to confirm that multiqueue is supported */ + #define IFQ_ENQUEUE(ifq, m, err) \ do { \ @@ -459,10 +477,52 @@ #define IFQ_INC_DROPS(ifq) ((ifq)->ifq_drops++) #define IFQ_SET_MAXLEN(ifq, len) ((ifq)->ifq_maxlen = (len)) + +#ifdef IFNET_MULTIQUEUE +#define IFQ_HANDOFF_ADJ_MQ(ifp, m, adj, err, cookie) \ +do { \ + int len; \ + short mflags; \ + \ + len = (m)->m_pkthdr.len; \ + mflags = (m)->m_flags; \ + err = if_mq_start((ifp), cookie, m); \ + if ((err) == 0) { \ + (ifp)->if_obytes += len + (adj); \ + if (mflags & M_MCAST) \ + (ifp)->if_omcasts++; \ + } \ +} while (0) +#define IFQ_HANDOFF_MQ(ifp, m, err, cookie) \ + IFQ_HANDOFF_ADJ_MQ(ifp, m, 0, err, cookie) +#endif + /* * The IFF_DRV_OACTIVE test should really occur in the device driver, not in * the handoff logic, as that flag is locked by the device driver. */ +#ifdef IFNET_MULTIQUEUE +#define IFQ_HANDOFF_ADJ(ifp, m, adj, err) \ +do { \ + int len; \ + short mflags; \ + \ + len = (m)->m_pkthdr.len; \ + mflags = (m)->m_flags; \ + if ((ifp)->if_flags & IFF_MULTIQ) \ + err = if_mq_start((ifp), -1, m); \ + else \ + IFQ_ENQUEUE(&(ifp)->if_snd, m, err); \ + if ((err) == 0) { \ + (ifp)->if_obytes += len + (adj); \ + if (mflags & M_MCAST) \ + (ifp)->if_omcasts++; \ + if (((ifp)->if_drv_flags & IFF_DRV_OACTIVE) == 0 && \ + ((ifp)->if_flags & IFF_MULTIQ) == 0) \ + if_start(ifp); \ + } \ +} while (0) +#else #define IFQ_HANDOFF_ADJ(ifp, m, adj, err) \ do { \ int len; \ @@ -479,6 +539,7 @@ if_start(ifp); \ } \ } while (0) +#endif #define IFQ_HANDOFF(ifp, m, err) \ IFQ_HANDOFF_ADJ(ifp, m, 0, err) From owner-p4-projects@FreeBSD.ORG Tue Aug 7 00:30:36 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7FE9616A505; Tue, 7 Aug 2007 00:30:36 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E948E16A4C2 for ; Tue, 7 Aug 2007 00:30:35 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D363513C458 for ; Tue, 7 Aug 2007 00:30:35 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l770UZNw074261 for ; Tue, 7 Aug 2007 00:30:35 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l770UZ4f074257 for perforce@freebsd.org; Tue, 7 Aug 2007 00:30:35 GMT (envelope-from cnst@FreeBSD.org) Date: Tue, 7 Aug 2007 00:30:35 GMT Message-Id: <200708070030.l770UZ4f074257@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124787 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, 07 Aug 2007 00:30:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=124787 Change 124787 by cnst@dale on 2007/08/07 00:30:22 sensordev_get(9)/sensor_find(9) are only used for sysctl(3) glue code, and on FreeBSD it is all located in kern_sensors.c, so no need to put prototypes in . Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#7 edit .. //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#2 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $P4: //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#6 $ */ +/* $P4: //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#7 $ */ /* $FreeBSD$ */ /* $OpenBSD: kern_sensors.c,v 1.19 2007/06/04 18:42:05 deraadt Exp $ */ /* $OpenBSD: kern_sysctl.c,v 1.154 2007/06/01 17:29:10 beck Exp $ */ @@ -38,6 +38,9 @@ int sensordev_count = 0; SLIST_HEAD(, ksensordev) sensordev_list = SLIST_HEAD_INITIALIZER(sensordev_list); +struct ksensordev *sensordev_get(int); +struct ksensor *sensor_find(int, enum sensor_type, int); + struct sensor_task { void *arg; void (*func)(void *); ==== //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $P4: //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#1 $ */ +/* $P4: //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#2 $ */ /* $FreeBSD$ */ /* $OpenBSD: sensors.h,v 1.23 2007/03/22 16:55:31 deraadt Exp $ */ @@ -149,12 +149,10 @@ /* struct ksensordev */ void sensordev_install(struct ksensordev *); void sensordev_deinstall(struct ksensordev *); -struct ksensordev *sensordev_get(int); /* struct ksensor */ void sensor_attach(struct ksensordev *, struct ksensor *); void sensor_detach(struct ksensordev *, struct ksensor *); -struct ksensor *sensor_find(int, enum sensor_type, int); /* task scheduling */ int sensor_task_register(void *, void (*)(void *), int); From owner-p4-projects@FreeBSD.ORG Tue Aug 7 00:47:59 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52ECF16A419; Tue, 7 Aug 2007 00:47:59 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D920916A418 for ; Tue, 7 Aug 2007 00:47:58 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C824D13C45B for ; Tue, 7 Aug 2007 00:47:58 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l770lw1T083857 for ; Tue, 7 Aug 2007 00:47:58 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l770lwVR083854 for perforce@freebsd.org; Tue, 7 Aug 2007 00:47:58 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 7 Aug 2007 00:47:58 GMT Message-Id: <200708070047.l770lwVR083854@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124788 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, 07 Aug 2007 00:47:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=124788 Change 124788 by kmacy@kmacy_home:ethng on 2007/08/07 00:47:03 commit local configuration for convenience Affected files ... .. //depot/projects/ethng/src/sys/amd64/conf/GENERIC#2 edit Differences ... ==== //depot/projects/ethng/src/sys/amd64/conf/GENERIC#2 (text+ko) ==== @@ -19,14 +19,16 @@ # $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.483 2007/07/01 21:47:45 njl Exp $ cpu HAMMER -ident GENERIC +ident CXGB # To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. +makeoptions MODULES_OVERRIDE="cxgb em if_vlan linux linprocfs netgraph" makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols -options SCHED_4BSD # 4BSD scheduler +options SCHED_ULE +options IPI_PREEMPTION options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols @@ -125,28 +127,6 @@ device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) -# RAID controllers interfaced to the SCSI subsystem -device amr # AMI MegaRAID -device arcmsr # Areca SATA II RAID -device ciss # Compaq Smart RAID 5* -device dpt # DPT Smartcache III, IV - See NOTES for options -device hptmv # Highpoint RocketRAID 182x -device rr232x # Highpoint RocketRAID 232x -device iir # Intel Integrated RAID -device ips # IBM (Adaptec) ServeRAID -device mly # Mylex AcceleRAID/eXtremeRAID -device twa # 3ware 9000 series PATA/SATA RAID - -# RAID controllers -device aac # Adaptec FSA RAID -device aacp # SCSI passthrough for aac (requires CAM) -device ida # Compaq Smart RAID -device mfi # LSI MegaRAID SAS -device mlx # Mylex DAC960 family -#XXX pointer/int warnings -#device pst # Promise Supertrak SX6000 -device twe # 3ware ATA RAID - # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller device atkbd # AT keyboard @@ -186,67 +166,6 @@ # line to enable it (connects to sio, uart and/or ppc drivers): #device puc -# PCI Ethernet NICs. -device de # DEC/Intel DC21x4x (``Tulip'') -device em # Intel PRO/1000 adapter Gigabit Ethernet Card -device ixgb # Intel PRO/10GbE Ethernet Card -device le # AMD Am7900 LANCE and Am79C9xx PCnet -device txp # 3Com 3cR990 (``Typhoon'') -device vx # 3Com 3c590, 3c595 (``Vortex'') - -# PCI Ethernet NICs that use the common MII bus controller code. -# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! -device miibus # MII bus support -device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet -device bfe # Broadcom BCM440x 10/100 Ethernet -device bge # Broadcom BCM570xx Gigabit Ethernet -device dc # DEC/Intel 21143 and various workalikes -device fxp # Intel EtherExpress PRO/100B (82557, 82558) -device lge # Level 1 LXT1001 gigabit Ethernet -device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet -device nfe # nVidia nForce MCP on-board Ethernet -device nge # NatSemi DP83820 gigabit Ethernet -#device nve # nVidia nForce MCP on-board Ethernet Networking -device pcn # AMD Am79C97x PCI 10/100 (precedence over 'le') -device re # RealTek 8139C+/8169/8169S/8110S -device rl # RealTek 8129/8139 -device sf # Adaptec AIC-6915 (``Starfire'') -device sis # Silicon Integrated Systems SiS 900/SiS 7016 -device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet -device ste # Sundance ST201 (D-Link DFE-550TX) -device ti # Alteon Networks Tigon I/II gigabit Ethernet -device tl # Texas Instruments ThunderLAN -device tx # SMC EtherPower II (83c170 ``EPIC'') -device vge # VIA VT612x gigabit Ethernet -device vr # VIA Rhine, Rhine II -device wb # Winbond W89C840F -device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') - -# ISA Ethernet NICs. pccard NICs included. -device cs # Crystal Semiconductor CS89x0 NIC -# 'device ed' requires 'device miibus' -device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards -device ex # Intel EtherExpress Pro/10 and Pro/10+ -device ep # Etherlink III based cards -device fe # Fujitsu MB8696x based cards -device sn # SMC's 9000 series of Ethernet chips -device xe # Xircom pccard Ethernet - -# Wireless NIC cards -device wlan # 802.11 support -device wlan_wep # 802.11 WEP support -device wlan_ccmp # 802.11 CCMP support -device wlan_tkip # 802.11 TKIP support -device wlan_amrr # AMRR transmit rate control algorithm -device wlan_scan_ap # 802.11 AP mode scanning -device wlan_scan_sta # 802.11 STA mode scanning -device an # Aironet 4500/4800 802.11 wireless NICs. -device ath # Atheros pci/cardbus NIC's -device ath_hal # Atheros HAL (Hardware Access Layer) -device ath_rate_sample # SampleRate tx rate control for ath -device awi # BayStack 660 and others -device ral # Ralink Technology RT2500 wireless NICs. -device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. # Pseudo devices. device loop # Network loopback @@ -278,16 +197,8 @@ device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse -device ural # Ralink Technology RT2500USB wireless NICs device urio # Diamond Rio 500 MP3 player device uscanner # Scanners -# USB Ethernet, requires miibus -device aue # ADMtek USB Ethernet -device axe # ASIX Electronics USB Ethernet -device cdce # Generic USB over Ethernet -device cue # CATC USB Ethernet -device kue # Kawasaki LSI USB Ethernet -device rue # RealTek RTL8150 USB Ethernet # FireWire support device firewire # FireWire bus code @@ -296,3 +207,6 @@ device fwip # IP over FireWire (RFC 2734,3146) device dcons # Dumb console driver device dcons_crom # Configuration ROM for dcons + +options IFNET_MULTIQUEUE # add support for using multiple tx queues to ifnet +options ALT_BREAK_TO_DEBUGGER From owner-p4-projects@FreeBSD.ORG Tue Aug 7 02:41:33 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C3E7116A419; Tue, 7 Aug 2007 02:41:32 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9AEF416A417 for ; Tue, 7 Aug 2007 02:41:32 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8492913C458 for ; Tue, 7 Aug 2007 02:41:32 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l772fWSt093482 for ; Tue, 7 Aug 2007 02:41:32 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l772fWVC093479 for perforce@freebsd.org; Tue, 7 Aug 2007 02:41:32 GMT (envelope-from cnst@FreeBSD.org) Date: Tue, 7 Aug 2007 02:41:32 GMT Message-Id: <200708070241.l772fWVC093479@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124794 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, 07 Aug 2007 02:41:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=124794 Change 124794 by cnst@dale on 2007/08/07 02:40:31 change sensor_find(9) to make the framework slightly more efficient and better prepared for some future locking. This also saves a few bytes in kern_sensors.o. Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#8 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $P4: //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#7 $ */ +/* $P4: //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sensors.c#8 $ */ /* $FreeBSD$ */ /* $OpenBSD: kern_sensors.c,v 1.19 2007/06/04 18:42:05 deraadt Exp $ */ /* $OpenBSD: kern_sysctl.c,v 1.154 2007/06/01 17:29:10 beck Exp $ */ @@ -39,7 +39,7 @@ SLIST_HEAD(, ksensordev) sensordev_list = SLIST_HEAD_INITIALIZER(sensordev_list); struct ksensordev *sensordev_get(int); -struct ksensor *sensor_find(int, enum sensor_type, int); +struct ksensor *sensor_find(struct ksensordev *, enum sensor_type, int); struct sensor_task { void *arg; @@ -156,16 +156,11 @@ } struct ksensor * -sensor_find(int dev, enum sensor_type type, int numt) +sensor_find(struct ksensordev *sensdev, enum sensor_type type, int numt) { struct ksensor *s; - struct ksensordev *sensdev; struct ksensors_head *sh; - sensdev = sensordev_get(dev); - if (sensdev == NULL) - return (NULL); - sh = &sensdev->sensors_list; SLIST_FOREACH(s, sh, list) if (s->type == type && s->numt == numt) @@ -315,11 +310,12 @@ return (ENOTDIR); dev = name[0]; + + ksd = sensordev_get(dev); + if (ksd == NULL) + return (ENOENT); + if (namelen == 1) { - ksd = sensordev_get(dev); - if (ksd == NULL) - return (ENOENT); - /* Grab a copy, to clear the kernel pointers */ usd = malloc(sizeof(*usd), M_TEMP, M_WAITOK); bzero(usd, sizeof(*usd)); @@ -338,7 +334,7 @@ type = name[1]; numt = name[2]; - ks = sensor_find(dev, type, numt); + ks = sensor_find(ksd, type, numt); if (ks == NULL) return (ENOENT); From owner-p4-projects@FreeBSD.ORG Tue Aug 7 02:43:37 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 854E216A420; Tue, 7 Aug 2007 02:43:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57B7B16A417 for ; Tue, 7 Aug 2007 02:43:37 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3F4D313C428 for ; Tue, 7 Aug 2007 02:43:37 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l772hbSE093586 for ; Tue, 7 Aug 2007 02:43:37 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l772hZVi093583 for perforce@freebsd.org; Tue, 7 Aug 2007 02:43:35 GMT (envelope-from delphij@freebsd.org) Date: Tue, 7 Aug 2007 02:43:35 GMT Message-Id: <200708070243.l772hZVi093583@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 124795 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, 07 Aug 2007 02:43:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=124795 Change 124795 by delphij@delphij_odin on 2007/08/07 02:42:54 IFC Affected files ... .. //depot/projects/delphij_fork/contrib/less/main.c#2 integrate .. //depot/projects/delphij_fork/lib/libdisk/open_disk.c#2 integrate .. //depot/projects/delphij_fork/lib/libutil/flopen.3#2 integrate .. //depot/projects/delphij_fork/lib/libutil/flopen.c#2 integrate .. //depot/projects/delphij_fork/lib/libutil/pidfile.c#2 integrate .. //depot/projects/delphij_fork/sbin/ipfw/ipfw.8#2 integrate .. //depot/projects/delphij_fork/share/man/man4/ipsec.4#3 integrate .. //depot/projects/delphij_fork/share/man/man4/vpo.4#2 integrate .. //depot/projects/delphij_fork/share/man/man9/rtentry.9#2 integrate .. //depot/projects/delphij_fork/sys/compat/linux/linux_socket.c#2 integrate .. //depot/projects/delphij_fork/sys/conf/NOTES#8 integrate .. //depot/projects/delphij_fork/sys/conf/options#6 integrate .. //depot/projects/delphij_fork/sys/dev/adlink/adlink.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/ath/if_ath.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/dc/if_dcreg.h#2 integrate .. //depot/projects/delphij_fork/sys/dev/em/if_em.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/re/if_re.c#5 integrate .. //depot/projects/delphij_fork/sys/dev/streams/streams.c#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_conv.c#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_fat.c#5 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vfsops.c#4 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vnops.c#3 integrate .. //depot/projects/delphij_fork/sys/ia64/ia64/clock.c#3 integrate .. //depot/projects/delphij_fork/sys/ia64/ia64/exception.S#3 integrate .. //depot/projects/delphij_fork/sys/ia64/ia64/interrupt.c#3 integrate .. //depot/projects/delphij_fork/sys/ia64/ia64/machdep.c#3 integrate .. //depot/projects/delphij_fork/sys/ia64/ia64/mp_machdep.c#3 integrate .. //depot/projects/delphij_fork/sys/ia64/ia64/pmap.c#3 integrate .. //depot/projects/delphij_fork/sys/ia64/include/ia64_cpu.h#2 integrate .. //depot/projects/delphij_fork/sys/ia64/include/md_var.h#3 integrate .. //depot/projects/delphij_fork/sys/kern/kern_descrip.c#2 integrate .. //depot/projects/delphij_fork/sys/kern/kern_poll.c#2 integrate .. //depot/projects/delphij_fork/sys/kern/kern_switch.c#3 integrate .. //depot/projects/delphij_fork/sys/kern/sched_ule.c#4 integrate .. //depot/projects/delphij_fork/sys/kern/sys_socket.c#2 integrate .. //depot/projects/delphij_fork/sys/kern/uipc_domain.c#3 integrate .. //depot/projects/delphij_fork/sys/kern/uipc_syscalls.c#2 integrate .. //depot/projects/delphij_fork/sys/net/bpf.c#3 integrate .. //depot/projects/delphij_fork/sys/net/bpfdesc.h#2 integrate .. //depot/projects/delphij_fork/sys/net/bridgestp.c#2 integrate .. //depot/projects/delphij_fork/sys/net/bridgestp.h#2 integrate .. //depot/projects/delphij_fork/sys/net/netisr.c#3 integrate .. //depot/projects/delphij_fork/sys/netgraph/netflow/netflow.c#2 integrate .. //depot/projects/delphij_fork/sys/netinet/in_mcast.c#3 integrate .. //depot/projects/delphij_fork/sys/netinet/in_pcb.h#2 integrate .. //depot/projects/delphij_fork/sys/netinet/ip_divert.c#2 integrate .. //depot/projects/delphij_fork/sys/netinet/ip_dummynet.c#3 integrate .. //depot/projects/delphij_fork/sys/netinet/ip_fw2.c#3 integrate .. //depot/projects/delphij_fork/sys/netinet/ip_input.c#2 integrate .. //depot/projects/delphij_fork/sys/netinet/ip_ipsec.c#2 integrate .. //depot/projects/delphij_fork/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/delphij_fork/sys/netinet/ip_mroute.c#3 integrate .. //depot/projects/delphij_fork/sys/netinet/sctp_constants.h#4 integrate .. //depot/projects/delphij_fork/sys/netinet/sctp_input.c#6 integrate .. //depot/projects/delphij_fork/sys/netinet/sctp_uio.h#2 integrate .. //depot/projects/delphij_fork/sys/netinet/sctp_usrreq.c#6 integrate .. //depot/projects/delphij_fork/sys/netinet/sctputil.c#5 integrate .. //depot/projects/delphij_fork/sys/netinet/tcp_syncache.c#3 integrate .. //depot/projects/delphij_fork/sys/netinet6/ip6_ipsec.c#3 integrate .. //depot/projects/delphij_fork/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/delphij_fork/sys/netipsec/xform_ah.c#2 integrate .. //depot/projects/delphij_fork/sys/netipsec/xform_esp.c#2 integrate .. //depot/projects/delphij_fork/sys/netipsec/xform_ipcomp.c#2 integrate .. //depot/projects/delphij_fork/sys/nfsclient/bootp_subr.c#2 integrate .. //depot/projects/delphij_fork/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/delphij_fork/sys/nfsclient/nfs_socket.c#2 integrate .. //depot/projects/delphij_fork/sys/nfsclient/nfs_vfsops.c#2 integrate .. //depot/projects/delphij_fork/sys/nfsserver/nfs_srvsock.c#2 integrate .. //depot/projects/delphij_fork/sys/nfsserver/nfs_srvsubs.c#3 integrate .. //depot/projects/delphij_fork/sys/nfsserver/nfs_syscalls.c#3 integrate .. //depot/projects/delphij_fork/sys/pci/if_xl.c#2 integrate .. //depot/projects/delphij_fork/sys/rpc/rpcclnt.c#2 integrate .. //depot/projects/delphij_fork/sys/security/mac/mac_syscalls.c#2 integrate .. //depot/projects/delphij_fork/sys/sparc64/include/iommureg.h#2 integrate .. //depot/projects/delphij_fork/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/delphij_fork/sys/sparc64/pci/psycho.c#2 integrate .. //depot/projects/delphij_fork/sys/sparc64/pci/psychoreg.h#2 integrate .. //depot/projects/delphij_fork/sys/sparc64/sbus/sbus.c#2 integrate .. //depot/projects/delphij_fork/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/delphij_fork/sys/sparc64/sparc64/iommu.c#2 integrate .. //depot/projects/delphij_fork/sys/sys/mutex.h#4 integrate .. //depot/projects/delphij_fork/sys/vm/device_pager.c#2 integrate .. //depot/projects/delphij_fork/sys/vm/phys_pager.c#2 integrate .. //depot/projects/delphij_fork/sys/vm/swap_pager.c#2 integrate .. //depot/projects/delphij_fork/sys/vm/vm_pager.c#2 integrate .. //depot/projects/delphij_fork/tools/regression/lib/libutil/Makefile#2 integrate .. //depot/projects/delphij_fork/tools/regression/lib/libutil/test-flopen.c#1 branch .. //depot/projects/delphij_fork/tools/regression/lib/libutil/test-flopen.t#1 branch .. //depot/projects/delphij_fork/usr.sbin/iostat/iostat.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/rpc.statd/statd.c#2 integrate Differences ... ==== //depot/projects/delphij_fork/contrib/less/main.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/main.c,v 1.9 2007/06/23 15:28:00 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/main.c,v 1.10 2007/08/04 13:16:09 deischen Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -165,7 +165,7 @@ quit(QUIT_OK); } - if (less_is_more && get_quit_at_eof()) + if (less_is_more || get_quit_at_eof()) no_init = quit_if_one_screen = TRUE; #if EDITOR ==== //depot/projects/delphij_fork/lib/libdisk/open_disk.c#2 (text+ko) ==== @@ -8,7 +8,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libdisk/open_disk.c,v 1.10 2005/03/08 21:46:18 stefanf Exp $"); +__FBSDID("$FreeBSD: src/lib/libdisk/open_disk.c,v 1.11 2007/08/05 16:55:40 rink Exp $"); #include #include @@ -43,19 +43,24 @@ Int_Open_Disk(const char *name, char *conftxt) { struct disk *d; - int i; + int i, line = 1; char *p, *q, *r, *a, *b, *n, *t, *sn; daddr_t o, len, off; u_int l, s, ty, sc, hd, alt; daddr_t lo[10]; - for (p = conftxt; p != NULL && *p; p = strchr(p, '\n')) { + /* + * Locate the disk (by name) in our sysctl output + */ + for (p = conftxt; p != NULL && *p; p = strchr(p, '\n'), line++) { if (*p == '\n') p++; a = strsep(&p, " "); + /* Skip anything not with index 0 */ if (strcmp(a, "0")) continue; + /* Skip anything not a disk */ a = strsep(&p, " "); if (strcmp(a, "DISK")) continue; @@ -79,15 +84,17 @@ a = strsep(&p, " "); /* length in bytes */ len = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse length in line %d (r='%s')\n", + name, line, r); + return NULL; } a = strsep(&p, " "); /* sectorsize */ s = strtoul(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse sector size in line %d (r='%s')\n", + name, line, r); + return NULL; } if (s == 0) @@ -99,6 +106,7 @@ DPRINT(("Failed to add 'whole' chunk")); } + /* Try to parse any fields after the sector size in the DISK entry line */ for (;;) { a = strsep(&p, " "); if (a == NULL) @@ -106,15 +114,17 @@ b = strsep(&p, " "); o = strtoimax(b, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse parameter '%s' in line %d (r='%s')\n", + name, a, line, r); + return NULL; } if (!strcmp(a, "hd")) d->bios_hd = o; else if (!strcmp(a, "sc")) d->bios_sect = o; else - printf("HUH ? <%s> <%s>\n", a, b); + printf("libdisk: Int_Open_Disk(%s): unknown parameter '%s' with value '%s' in line %d, ignored\n", + name, a, b, line); } /* @@ -124,35 +134,43 @@ o = d->bios_hd * d->bios_sect; d->bios_cyl = (o != 0) ? len / o : 0; - p = q; + p = q; line++; /* p is now the start of the line _after_ the DISK entry */ lo[0] = 0; - for (; p != NULL && *p; p = q) { + for (; p != NULL && *p; p = q, line++) { sn = NULL; q = strchr(p, '\n'); if (q != NULL) *q++ = '\0'; a = strsep(&p, " "); /* Index */ + /* + * If we find index 0 again, this means we've encountered another disk, so it's safe to assume this disk + * has been processed. + */ if (!strcmp(a, "0")) break; l = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse depth '%s' in line %d (r='%s')\n", + name, a, line, r); + return NULL; + } t = strsep(&p, " "); /* Type {SUN, BSD, MBR, PC98, GPT} */ n = strsep(&p, " "); /* name */ a = strsep(&p, " "); /* len */ len = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse length '%s' in line %d (r='%s')\n", + name, a, line, r); + continue; } a = strsep(&p, " "); /* secsize */ s = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse sector size '%s' in line %d (r='%s')\n", + name, a, line, r); + continue; } for (;;) { a = strsep(&p, " "); @@ -167,8 +185,9 @@ o = strtoimax(b, &r, 0); /* APPLE have ty as a string */ if ((*r) && (strcmp(t, "APPLE") && strcmp(t, "GPT"))) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse parameter '%s' in line %d (r='%s')\n", + name, a, line, r); + break; } if (!strcmp(a, "o")) off = o; ==== //depot/projects/delphij_fork/lib/libutil/flopen.3#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/libutil/flopen.3,v 1.3 2007/05/10 18:15:30 des Exp $ +.\" $FreeBSD: src/lib/libutil/flopen.3,v 1.5 2007/08/03 09:20:28 des Exp $ .\" .Dd May 10, 2007 .Dt FLOPEN 3 ==== //depot/projects/delphij_fork/lib/libutil/flopen.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libutil/flopen.c,v 1.7 2007/05/23 12:09:33 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libutil/flopen.c,v 1.9 2007/08/03 09:20:28 des Exp $"); #include #include ==== //depot/projects/delphij_fork/lib/libutil/pidfile.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libutil/pidfile.c,v 1.5 2007/05/11 11:10:05 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libutil/pidfile.c,v 1.7 2007/08/03 09:20:28 des Exp $"); #include #include ==== //depot/projects/delphij_fork/sbin/ipfw/ipfw.8#2 (text+ko) ==== @@ -1,7 +1,7 @@ .\" -.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.201 2007/06/18 17:52:37 maxim Exp $ +.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.203 2007/08/05 16:16:14 bz Exp $ .\" -.Dd June 16, 2007 +.Dd August 5, 2007 .Dt IPFW 8 .Os .Sh NAME @@ -1156,14 +1156,10 @@ A .Ar group may be specified by name or number. -This option should be used only if debug.mpsafenet=0 to avoid possible -deadlocks due to layering violations in its implementation. .It Cm jail Ar prisonID Matches all TCP or UDP packets sent by or received for the jail whos prison ID is .Ar prisonID . -This option should be used only if debug.mpsafenet=0 to avoid possible -deadlocks due to layering violations in its implementation. .It Cm icmptypes Ar types Matches ICMP packets whose ICMP type is in the list .Ar types . @@ -1255,7 +1251,7 @@ .It Cm ipsec Matches packets that have IPSEC history associated with them (i.e., the packet comes encapsulated in IPSEC, the kernel -has IPSEC support and IPSEC_FILTERGIF option, and can correctly +has IPSEC support and IPSEC_FILTERTUNNEL option, and can correctly decapsulate it). .Pp Note that specifying @@ -1508,8 +1504,6 @@ A .Ar user may be matched by name or identification number. -This option should be used only if debug.mpsafenet=0 to avoid possible -deadlocks due to layering violations in its implementation. .It Cm verrevpath For incoming packets, a routing table lookup is done on the packet's source address. @@ -1973,8 +1967,7 @@ .El .Pp When used with IPv6 data, dummynet currently has several limitations. -First, debug.mpsafenet=0 must be set. -Second, the information necessicary to route link-local packets to an +Information necessary to route link-local packets to an interface is not avalable after processing by dummynet so those packets are dropped in the output path. Care should be taken to insure that link-local packets are not passed to @@ -2610,8 +2603,6 @@ .Xr dummynet 4 traffic shaper supported by Akamba Corp. .Sh BUGS -Use of dummynet with IPv6 requires that debug.mpsafenet be set to 0. -.Pp The syntax has grown over the years and sometimes it might be confusing. Unfortunately, backward compatibility prevents cleaning up mistakes made in the definition of the syntax. @@ -2655,10 +2646,6 @@ .Xr setuid 2 or similar system calls. .Pp -Rules which use uid, gid or jail based matching should be used only -if debug.mpsafenet=0 to avoid possible deadlocks due to layering -violations in its implementation. -.Pp Rule syntax is subject to the command line environment and some patterns may need to be escaped with the backslash character or quoted appropriately. ==== //depot/projects/delphij_fork/share/man/man4/ipsec.4#3 (text+ko) ==== @@ -27,9 +27,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ipsec.4,v 1.21 2007/08/02 08:04:48 bz Exp $ +.\" $FreeBSD: src/share/man/man4/ipsec.4,v 1.22 2007/08/05 16:16:14 bz Exp $ .\" -.Dd August 1, 2007 +.Dd August 5, 2007 .Dt IPSEC 4 .Os .Sh NAME @@ -37,7 +37,7 @@ .Nd Internet Protocol Security protocol .Sh SYNOPSIS .Cd "options IPSEC" -.Cd "options IPSEC_FILTERGIF" +.Cd "options IPSEC_FILTERTUNNEL" .Cd "device crypto" .Pp .In sys/types.h @@ -89,7 +89,7 @@ To properly filter on the inner packets of an .Nm tunnel with firewalls, add -.Cd "options IPSEC_FILTERGIF" +.Cd "options IPSEC_FILTERTUNNEL" to the kernel configuration file. .\" .Ss Kernel interface ==== //depot/projects/delphij_fork/share/man/man4/vpo.4#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/vpo.4,v 1.22 2005/01/21 08:36:37 ru Exp $ +.\" $FreeBSD: src/share/man/man4/vpo.4,v 1.23 2007/08/05 07:39:30 maxim Exp $ .\" .Dd December 14, 2004 .Dt VPO 4 @@ -38,7 +38,7 @@ .Sh DESCRIPTION The .Nm -driver provide access to parallel port Iomage Zip and Jaz drives. +driver provide access to parallel port Iomega Zip and Jaz drives. .Sh HARDWARE The .Nm ==== //depot/projects/delphij_fork/share/man/man9/rtentry.9#2 (text+ko) ==== @@ -26,7 +26,7 @@ .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/rtentry.9,v 1.24 2005/01/21 08:36:40 ru Exp $ +.\" $FreeBSD: src/share/man/man9/rtentry.9,v 1.25 2007/08/05 07:38:09 maxim Exp $ .\" .Dd October 7, 2004 .Os @@ -263,7 +263,7 @@ .Dv RMX_RTTUNIT per second. .It Vt "u_long rmx_rttvar" ; -The average deviation of the round-type time to this destination, in +The average deviation of the round-trip time to this destination, in units of .Dv RMX_RTTUNIT per second. ==== //depot/projects/delphij_fork/sys/compat/linux/linux_socket.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.73 2007/04/14 10:35:09 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.74 2007/08/06 14:25:59 rwatson Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -670,7 +670,6 @@ * socket and use the file descriptor reference instead of * creating a new one. */ - NET_LOCK_GIANT(); error = fgetsock(td, linux_args.s, &so, &fflag); if (error == 0) { error = EISCONN; @@ -683,7 +682,6 @@ } fputsock(so); } - NET_UNLOCK_GIANT(); return (error); } ==== //depot/projects/delphij_fork/sys/conf/NOTES#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1447 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1448 2007/08/05 16:16:15 bz Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -501,15 +501,15 @@ options IPSEC #IP security (requires device crypto) #options IPSEC_DEBUG #debug for IP security # -# Set IPSEC_FILTERGIF to force packets coming through a gif tunnel -# to be processed by any configured packet filtering (ipfw, ipf). -# The default is that packets coming from a tunnel are _not_ processed; +# Set IPSEC_FILTERTUNNEL to force packets coming through a tunnel +# to be processed by any configured packet filtering twice. +# The default is that packets coming out of a tunnel are _not_ processed; # they are assumed trusted. # # IPSEC history is preserved for such packets, and can be filtered # using ipfw(8)'s 'ipsec' keyword, when this option is enabled. # -#options IPSEC_FILTERGIF #filter ipsec packets from a tunnel +#options IPSEC_FILTERTUNNEL #filter ipsec packets from a tunnel options IPX #IPX/SPX communications protocols ==== //depot/projects/delphij_fork/sys/conf/options#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.603 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/options,v 1.605 2007/08/06 14:25:59 rwatson Exp $ # # On the handling of kernel options # @@ -362,7 +362,7 @@ INET6 opt_inet6.h IPSEC opt_ipsec.h IPSEC_DEBUG opt_ipsec.h -IPSEC_FILTERGIF opt_ipsec.h +IPSEC_FILTERTUNNEL opt_ipsec.h IPDIVERT DUMMYNET opt_ipdn.h IPFILTER opt_ipfilter.h @@ -383,7 +383,6 @@ MBUF_STRESS_TEST NCP NETATALK opt_atalk.h -NET_WITH_GIANT opt_net.h PPP_BSDCOMP opt_ppp.h PPP_DEFLATE opt_ppp.h PPP_FILTER opt_ppp.h ==== //depot/projects/delphij_fork/sys/dev/adlink/adlink.c#2 (text+ko) ==== @@ -43,7 +43,7 @@ #ifdef _KERNEL #include -__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.16 2007/02/23 12:18:29 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.17 2007/08/04 17:43:11 kib Exp $"); #include #include @@ -119,6 +119,7 @@ static struct cdevsw adlink_cdevsw = { .d_version = D_VERSION, + .d_flags = D_NEEDGIANT, .d_ioctl = adlink_ioctl, .d_mmap = adlink_mmap, .d_name = "adlink", ==== //depot/projects/delphij_fork/sys/dev/ath/if_ath.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.172 2007/06/24 01:57:20 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.173 2007/08/06 14:25:59 rwatson Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -888,11 +888,9 @@ * truly a bmiss we'll get another interrupt soon and that'll * be dispatched up for processing. */ - if (tsf - lastrx > bmisstimeout) { - NET_LOCK_GIANT(); + if (tsf - lastrx > bmisstimeout) ieee80211_beacon_miss(ic); - NET_UNLOCK_GIANT(); - } else + else sc->sc_stats.ast_bmiss_phantom++; } } @@ -3447,7 +3445,6 @@ int16_t nf; u_int64_t tsf; - NET_LOCK_GIANT(); /* XXX */ DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s: pending %u\n", __func__, npending); ngood = 0; @@ -3715,7 +3712,6 @@ !IFQ_IS_EMPTY(&ifp->if_snd)) ath_start(ifp); - NET_UNLOCK_GIANT(); /* XXX */ #undef PA2DESC } ==== //depot/projects/delphij_fork/sys/dev/dc/if_dc.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.191 2007/02/23 12:18:37 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.192 2007/08/05 11:28:19 marius Exp $"); /* * DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143 @@ -294,7 +294,6 @@ static void dc_apply_fixup(struct dc_softc *, int); static void dc_dma_map_txbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); -static void dc_dma_map_rxbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); #ifdef DC_USEIOSPACE #define DC_RES SYS_RES_IOPORT @@ -2424,29 +2423,6 @@ return (0); } -static void -dc_dma_map_rxbuf(arg, segs, nseg, mapsize, error) - void *arg; - bus_dma_segment_t *segs; - int nseg; - bus_size_t mapsize; - int error; -{ - struct dc_softc *sc; - struct dc_desc *c; - - sc = arg; - c = &sc->dc_ldata->dc_rx_list[sc->dc_cdata.dc_rx_cur]; - if (error) { - sc->dc_cdata.dc_rx_err = error; - return; - } - - KASSERT(nseg == 1, ("wrong number of segments, should be 1")); - sc->dc_cdata.dc_rx_err = 0; - c->dc_data = htole32(segs->ds_addr); -} - /* * Initialize an RX descriptor and attach an MBUF cluster. */ @@ -2455,7 +2431,8 @@ { struct mbuf *m_new; bus_dmamap_t tmp; - int error; + bus_dma_segment_t segs[1]; + int error, nseg; if (alloc) { m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); @@ -2478,17 +2455,14 @@ /* No need to remap the mbuf if we're reusing it. */ if (alloc) { - sc->dc_cdata.dc_rx_cur = i; - error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_sparemap, - m_new, dc_dma_map_rxbuf, sc, 0); + error = bus_dmamap_load_mbuf_sg(sc->dc_mtag, sc->dc_sparemap, + m_new, segs, &nseg, 0); + KASSERT(nseg == 1, ("wrong number of segments, should be 1")); if (error) { m_freem(m_new); return (error); } - if (sc->dc_cdata.dc_rx_err != 0) { - m_freem(m_new); - return (sc->dc_cdata.dc_rx_err); - } + sc->dc_ldata->dc_rx_list[i].dc_data = htole32(segs->ds_addr); bus_dmamap_unload(sc->dc_mtag, sc->dc_cdata.dc_rx_map[i]); tmp = sc->dc_cdata.dc_rx_map[i]; sc->dc_cdata.dc_rx_map[i] = sc->dc_sparemap; @@ -2865,12 +2839,11 @@ sc->dc_cdata.dc_tx_cnt--; DC_INC(idx, DC_TX_LIST_CNT); } + sc->dc_cdata.dc_tx_cons = idx; - if (idx != sc->dc_cdata.dc_tx_cons) { - /* Some buffers have been freed. */ - sc->dc_cdata.dc_tx_cons = idx; + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt > DC_TX_LIST_RSVD) ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - } + if (sc->dc_cdata.dc_tx_cnt == 0) sc->dc_wdog_timer = 0; } @@ -3161,10 +3134,8 @@ int cur, first, frag, i; sc = arg; - if (error) { - sc->dc_cdata.dc_tx_err = error; + if (error) return; - } first = cur = frag = sc->dc_cdata.dc_tx_prod; for (i = 0; i < nseg; i++) { @@ -3217,7 +3188,7 @@ /* * If there's no way we can send any packets, return now. */ - if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt < 6) + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt <= DC_TX_LIST_RSVD) return (ENOBUFS); /* @@ -3229,27 +3200,30 @@ for (m = *m_head; m != NULL; m = m->m_next) chainlen++; - if ((chainlen > DC_TX_LIST_CNT / 4) || - ((DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt)) < 6)) { + m = NULL; + if ((sc->dc_flags & DC_TX_COALESCE && ((*m_head)->m_next != NULL || + sc->dc_flags & DC_TX_ALIGN)) || (chainlen > DC_TX_LIST_CNT / 4) || + (DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt) <= + DC_TX_LIST_RSVD)) { m = m_defrag(*m_head, M_DONTWAIT); - if (m == NULL) + if (m == NULL) { + m_freem(*m_head); + *m_head = NULL; return (ENOBUFS); + } *m_head = m; } - - /* - * Start packing the mbufs in this chain into - * the fragment pointers. Stop when we run out - * of fragments or hit the end of the mbuf chain. - */ idx = sc->dc_cdata.dc_tx_prod; sc->dc_cdata.dc_tx_mapping = *m_head; error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], *m_head, dc_dma_map_txbuf, sc, 0); - if (error) - return (error); - if (sc->dc_cdata.dc_tx_err != 0) - return (sc->dc_cdata.dc_tx_err); + if (error != 0 || sc->dc_cdata.dc_tx_err != 0) { + if (m != NULL) { + m_freem(m); + *m_head = NULL; + } + return (error != 0 ? error : sc->dc_cdata.dc_tx_err); + } bus_dmamap_sync(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], BUS_DMASYNC_PREWRITE); bus_dmamap_sync(sc->dc_ltag, sc->dc_lmap, @@ -3279,7 +3253,7 @@ dc_start_locked(struct ifnet *ifp) { struct dc_softc *sc; - struct mbuf *m_head = NULL, *m; + struct mbuf *m_head = NULL; unsigned int queued = 0; int idx; @@ -3300,20 +3274,9 @@ if (m_head == NULL) break; - if (sc->dc_flags & DC_TX_COALESCE && - (m_head->m_next != NULL || - sc->dc_flags & DC_TX_ALIGN)) { - m = m_defrag(m_head, M_DONTWAIT); - if (m == NULL) { - IFQ_DRV_PREPEND(&ifp->if_snd, m_head); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if (dc_encap(sc, &m_head)) { + if (m_head == NULL) break; - } else { - m_head = m; - } - } - - if (dc_encap(sc, &m_head)) { IFQ_DRV_PREPEND(&ifp->if_snd, m_head); ifp->if_drv_flags |= IFF_DRV_OACTIVE; break; ==== //depot/projects/delphij_fork/sys/dev/dc/if_dcreg.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.53 2006/12/06 01:56:38 marius Exp $ + * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.54 2007/08/05 11:28:19 marius Exp $ */ /* @@ -461,6 +461,7 @@ #define DC_RX_LIST_CNT 64 #endif #define DC_TX_LIST_CNT 256 +#define DC_TX_LIST_RSVD 5 #define DC_MIN_FRAMELEN 60 #define DC_RXLEN 1536 @@ -496,8 +497,6 @@ int dc_tx_prod; int dc_tx_cons; int dc_tx_cnt; - int dc_rx_err; - int dc_rx_cur; int dc_rx_prod; }; ==== //depot/projects/delphij_fork/sys/dev/em/if_em.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ ***************************************************************************/ -/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.182 2007/07/27 14:48:05 cognet Exp $*/ +/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.183 2007/08/06 14:25:59 rwatson Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" @@ -1474,7 +1474,6 @@ struct adapter *adapter = context; struct ifnet *ifp; - NET_LOCK_GIANT(); ifp = adapter->ifp; /* @@ -1493,7 +1492,6 @@ } em_enable_intr(adapter); - NET_UNLOCK_GIANT(); } /********************************************************************* ==== //depot/projects/delphij_fork/sys/dev/re/if_re.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.93 2007/07/27 00:43:12 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.94 2007/08/05 11:20:33 marius Exp $"); /* * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver @@ -1005,6 +1005,7 @@ } cmdstat = segs[i].ds_len; totlen += segs[i].ds_len; + d->rl_vlanctl = 0; d->rl_bufaddr_lo = htole32(RL_ADDR_LO(segs[i].ds_addr)); d->rl_bufaddr_hi = htole32(RL_ADDR_HI(segs[i].ds_addr)); if (i == 0) ==== //depot/projects/delphij_fork/sys/dev/streams/streams.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.55 2007/04/04 09:11:31 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.56 2007/08/06 14:26:00 rwatson Exp $"); #include #include @@ -244,9 +244,7 @@ return error; /* An extra reference on `fp' has been held for us by falloc(). */ - NET_LOCK_GIANT(); error = socreate(family, &so, type, protocol, td->td_ucred, td); - NET_UNLOCK_GIANT(); if (error) { fdclose(fdp, fp, fd, td); fdrop(fp, td); ==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_conv.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_conv.c,v 1.50 2006/11/26 18:49:44 maxim Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_conv.c,v 1.52 2007/08/07 02:11:16 bde Exp $ */ /* $NetBSD: msdosfs_conv.c,v 1.25 1997/11/17 15:36:40 ws Exp $ */ /*- @@ -48,26 +48,18 @@ * October 1992 */ -/* - * System include files. - */ #include -#include -#include /* defines tz */ #include #include #include +#include #include -#include -extern struct iconv_functions *msdosfs_iconv; - -/* - * MSDOSFS include files. - */ #include +#include #include -#include + +extern struct iconv_functions *msdosfs_iconv; static int mbsadjpos(const char **, size_t, size_t, int, int, void *handle); static u_int16_t dos2unixchr(const u_char **, size_t *, int, struct msdosfsmount *); ==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_denode.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_denode.c,v 1.93 2007/03/13 01:50:23 tegge Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_denode.c,v 1.96 2007/08/07 02:25:55 bde Exp $ */ /* $NetBSD: msdosfs_denode.c,v 1.28 1998/02/10 14:10:00 mrg Exp $ */ /*- @@ -50,23 +50,21 @@ #include #include +#include +#include #include +#include #include -#include -#include -#include -#include #include -#include #include #include #include -#include #include #include #include +#include static MALLOC_DEFINE(M_MSDOSFSNODE, "msdosfs_node", "MSDOSFS vnode private part"); ==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_fat.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.42 2007/07/20 16:21:47 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.46 2007/08/07 02:25:55 bde Exp $ */ /* $NetBSD: msdosfs_fat.c,v 1.28 1997/11/17 15:36:49 ws Exp $ */ /*- @@ -48,24 +48,17 @@ * October 1992 */ -/* - * kernel include files. - */ #include #include -#include #include -#include /* to define statfs structure */ -#include /* to define vattr structure */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 7 02:58:57 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8EDEB16A419; Tue, 7 Aug 2007 02:58:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CCBA16A417 for ; Tue, 7 Aug 2007 02:58:57 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 25BD613C45B for ; Tue, 7 Aug 2007 02:58:57 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l772wuMe094349 for ; Tue, 7 Aug 2007 02:58:56 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l772wujl094346 for perforce@freebsd.org; Tue, 7 Aug 2007 02:58:56 GMT (envelope-from cnst@FreeBSD.org) Date: Tue, 7 Aug 2007 02:58:56 GMT Message-Id: <200708070258.l772wujl094346@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124796 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, 07 Aug 2007 02:58:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=124796 Change 124796 by cnst@dale on 2007/08/07 02:58:54 include , to make sure that headers by themselves always compile Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#3 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $P4: //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#2 $ */ +/* $P4: //depot/projects/soc2007/cnst-sensors/sys.sys/sensors.h#3 $ */ /* $FreeBSD$ */ /* $OpenBSD: sensors.h,v 1.23 2007/03/22 16:55:31 deraadt Exp $ */ @@ -122,6 +122,7 @@ #define MAXSENSORDEVICES 32 #ifdef _KERNEL +#include /* Sensor data */ struct ksensor { From owner-p4-projects@FreeBSD.ORG Tue Aug 7 03:29:39 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 115B116A41A; Tue, 7 Aug 2007 03:29:39 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9AE9816A417 for ; Tue, 7 Aug 2007 03:29:38 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1612913C465 for ; Tue, 7 Aug 2007 03:29:38 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l773Tbgl097398 for ; Tue, 7 Aug 2007 03:29:37 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l773TbB2097395 for perforce@freebsd.org; Tue, 7 Aug 2007 03:29:37 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 7 Aug 2007 03:29:37 GMT Message-Id: <200708070329.l773TbB2097395@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124798 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, 07 Aug 2007 03:29:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=124798 Change 124798 by kmacy@kmacy_home:ethng on 2007/08/07 03:29:22 Pull in interface updates required for multi-queue support Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#2 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#2 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_offload.c#2 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_osdep.h#2 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#2 edit .. //depot/projects/ethng/src/sys/dev/cxgb/sys/mbufq.h#2 edit .. //depot/projects/ethng/src/sys/modules/cxgb/Makefile#2 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#2 (text+ko) ==== @@ -117,8 +117,9 @@ #else struct mtx lock; #endif - int port; + int port_id; uint8_t hw_addr[ETHER_ADDR_LEN]; + uint8_t tx_chan; uint8_t nqsets; uint8_t first_qset; struct taskqueue *tq; @@ -267,6 +268,8 @@ bus_dmamap_t desc_map; bus_dma_tag_t entry_tag; struct mbuf_head sendq; + struct mbuf_ring txq_mr; + uint32_t txq_drops; struct mtx lock; #define TXQ_NAME_LEN 32 char lockbuf[TXQ_NAME_LEN]; @@ -286,6 +289,10 @@ #define SGE_PSTAT_MAX (SGE_PSTATS_LRO_X_STREAMS+1) +#define QS_EXITING 0x1 +#define QS_RUNNING 0x2 +#define QS_BOUND 0x4 + struct sge_qset { struct sge_rspq rspq; struct sge_fl fl[SGE_RXQ_PER_SET]; @@ -295,6 +302,8 @@ uint64_t port_stats[SGE_PSTAT_MAX]; struct port_info *port; int idx; /* qset # */ + int qs_cpuid; + int qs_flags; }; struct sge { @@ -336,7 +345,8 @@ void *msix_intr_tag[SGE_QSETS]; uint8_t rxpkt_map[8]; /* maps RX_PKT interface values to port ids */ uint8_t rrss_map[SGE_QSETS]; /* revers RSS map table */ - + uint16_t rspq_map[RSS_TABLE_SIZE]; /* maps 7-bit cookie to qidx */ + struct filter_info *filters; /* Tasks */ @@ -466,7 +476,7 @@ uint8_t *macaddr = NULL; if (rm->idx == 0) - macaddr = rm->port->hw_addr; + macaddr = (uint8_t *)rm->port->hw_addr; rm->idx++; return (macaddr); @@ -507,11 +517,12 @@ void t3b_intr(void *data); void t3_intr_msi(void *data); void t3_intr_msix(void *data); -int t3_encap(struct port_info *, struct mbuf **); +int t3_encap(struct sge_qset *, struct mbuf **); int t3_sge_init_adapter(adapter_t *); int t3_sge_init_port(struct port_info *); void t3_sge_deinit_sw(adapter_t *); +int t3_free_tx_desc(struct sge_txq *q, int n, struct mbuf **m_vec); void t3_rx_eth_lro(adapter_t *adap, struct sge_rspq *rq, struct mbuf *m, int ethpad, uint32_t rss_hash, uint32_t rss_csum, int lro); ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#2 (text+ko) ==== @@ -557,7 +557,7 @@ sc->port[i].adapter = sc; sc->port[i].nqsets = port_qsets; sc->port[i].first_qset = i*port_qsets; - sc->port[i].port = i; + sc->port[i].port_id = i; sc->portdev[i] = child; device_set_softc(child, &sc->port[i]); } @@ -905,7 +905,7 @@ p = device_get_softc(dev); - snprintf(buf, sizeof(buf), "Port %d %s", p->port, p->port_type->desc); + snprintf(buf, sizeof(buf), "Port %d %s", p->port_id, p->port_type->desc); device_set_desc_copy(dev, buf); return (0); } @@ -950,7 +950,7 @@ p = device_get_softc(dev); snprintf(p->lockbuf, PORT_NAME_LEN, "cxgb port lock %d:%d", - device_get_unit(device_get_parent(dev)), p->port); + device_get_unit(device_get_parent(dev)), p->port_id); PORT_LOCK_INIT(p, p->lockbuf); /* Allocate an ifnet object and set it up */ @@ -1032,7 +1032,7 @@ } - snprintf(p->taskqbuf, TASKQ_NAME_LEN, "cxgb_port_taskq%d", p->port); + snprintf(p->taskqbuf, TASKQ_NAME_LEN, "cxgb_port_taskq%d", p->port_id); #ifdef TASKQUEUE_CURRENT /* Create a port for handling TX without starvation */ p->tq = taskqueue_create(p->taskqbuf, M_NOWAIT, @@ -1195,7 +1195,6 @@ } } - /* * Interrupt-context handler for external (PHY) interrupts. */ @@ -1704,7 +1703,7 @@ t3_intr_clear(sc); t3_sge_init_adapter(sc); } - setbit(&p->adapter->open_device_map, p->port); + setbit(&p->adapter->open_device_map, p->port_id); ADAPTER_UNLOCK(p->adapter); if (is_offload(sc) && !ofld_disable) { @@ -1714,10 +1713,10 @@ "Could not initialize offload capabilities\n"); } cxgb_link_start(p); - t3_link_changed(sc, p->port); + t3_link_changed(sc, p->port_id); ifp->if_baudrate = p->link_config.speed * 1000000; - t3_port_intr_enable(sc, p->port); + t3_port_intr_enable(sc, p->port_id); callout_reset(&sc->cxgb_tick_ch, sc->params.stats_update_period * hz, cxgb_tick, sc); @@ -1748,13 +1747,13 @@ ifp = p->ifp; - t3_port_intr_disable(p->adapter, p->port); + t3_port_intr_disable(p->adapter, p->port_id); ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); p->phy.ops->power_down(&p->phy, 1); t3_mac_disable(&p->mac, MAC_DIRECTION_TX | MAC_DIRECTION_RX); ADAPTER_LOCK(p->adapter); - clrbit(&p->adapter->open_device_map, p->port); + clrbit(&p->adapter->open_device_map, p->port_id); if (p->adapter->open_device_map == 0) { @@ -1936,10 +1935,10 @@ m = m0; m_collapse(m, TX_MAX_SEGS, &m0); } else - break; + break; } m = m0; - if ((err = t3_encap(p, &m)) != 0) + if ((err = t3_encap(qs, &m)) != 0) break; BPF_MTAP(ifp, m); } @@ -2119,7 +2118,7 @@ cxgb_set_rxmode(p); t3_link_start(&p->phy, mac, &p->link_config); t3_mac_enable(mac, MAC_DIRECTION_RX | MAC_DIRECTION_TX); - t3_port_intr_enable(adapter, p->port); + t3_port_intr_enable(adapter, p->port_id); p->mac.stats.num_resets++; } PORT_UNLOCK(p); @@ -2527,7 +2526,7 @@ } case CHELSIO_SET_QSET_NUM: { struct ch_reg *edata = (struct ch_reg *)data; - unsigned int port_idx = pi->port; + unsigned int port_idx = pi->port_id; if (sc->flags & FULL_INIT_DONE) return (EBUSY); ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_offload.c#2 (text+ko) ==== @@ -1250,7 +1250,7 @@ } /* Add new L2T entry */ - e = t3_l2t_get(tdev, new, ((struct port_info *)new->rt_ifp->if_softc)->port); + e = t3_l2t_get(tdev, new, ((struct port_info *)new->rt_ifp->if_softc)->port_id); if (!e) { log(LOG_ERR, "%s: couldn't allocate new l2t entry!\n", __FUNCTION__); ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_osdep.h#2 (text+ko) ==== @@ -52,6 +52,13 @@ typedef struct adapter adapter_t; struct sge_rspq; +struct mbuf_ring { + struct mbuf **mr_ring; + volatile uint32_t mr_cons; + volatile uint32_t mr_prod; + int mr_size; +}; + #define PANIC_IF(exp) do { \ if (exp) \ panic("BUG: %s", exp); \ @@ -99,19 +106,28 @@ #define TX_MAX_SIZE (1 << 16) /* 64KB */ #define TX_MAX_SEGS 36 /* maximum supported by card */ + #define TX_MAX_DESC 4 /* max descriptors per packet */ + #define TX_START_MIN_DESC (TX_MAX_DESC << 2) -#if 0 -#define TX_START_MAX_DESC (TX_ETH_Q_SIZE >> 2) /* maximum number of descriptors */ -#endif +#ifdef IFNET_MULTIQUEUE +#define TX_START_MAX_DESC (TX_MAX_DESC << 4) +#else #define TX_START_MAX_DESC (TX_MAX_DESC << 3) /* maximum number of descriptors * call to start used per */ +#endif #define TX_CLEAN_MAX_DESC (TX_MAX_DESC << 4) /* maximum tx descriptors * to clean per iteration */ +#define TX_WR_SIZE_MAX 11*1024 /* the maximum total size of packets aggregated into a single + * TX WR + */ +#define TX_WR_COUNT_MAX 7 /* the maximum total number of packets that can be + * aggregated into a single TX WR + */ #if defined(__i386__) || defined(__amd64__) @@ -174,8 +190,6 @@ #define net_device ifnet #define cpu_to_be32 htobe32 - - /* Standard PHY definitions */ #define BMCR_LOOPBACK BMCR_LOOP #define BMCR_ISOLATE BMCR_ISO ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#2 (text+ko) ==== @@ -1160,14 +1160,14 @@ #define TCPPKTHDRSIZE (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN + 20 + 20) int -t3_encap(struct port_info *p, struct mbuf **m) +t3_encap(struct sge_qset *qs, struct mbuf **m) { adapter_t *sc; struct mbuf *m0; - struct sge_qset *qs; struct sge_txq *txq; struct tx_sw_desc *stx; struct txq_state txqs; + struct port_info *p; unsigned int nsegs, ndesc, flits, cntrl, mlen; int err, tso_info = 0; @@ -1181,9 +1181,9 @@ struct cpl_tx_pkt *cpl; DPRINTF("t3_encap "); - m0 = *m; + m0 = *m; + p = qs->port; sc = p->adapter; - qs = &sc->sge.qs[p->first_qset]; txq = &qs->txq[TXQ_ETH]; stx = &txq->sdesc[txq->pidx]; txd = &txq->desc[txq->pidx]; @@ -1196,7 +1196,7 @@ * XXX handle checksum, TSO, and VLAN here * */ - cntrl = V_TXPKT_INTF(p->port); + cntrl = V_TXPKT_INTF(p->port_id); /* * XXX need to add VLAN support for 6.x ==== //depot/projects/ethng/src/sys/dev/cxgb/sys/mbufq.h#2 (text+ko) ==== @@ -36,6 +36,7 @@ struct mbuf *head; struct mbuf *tail; uint32_t qlen; + uint32_t qsize; struct mtx lock; }; @@ -57,13 +58,28 @@ return (l->qlen); } +static __inline int +mbufq_size(struct mbuf_head *l) +{ + return (l->qsize); +} +static __inline int +mbufq_head_size(struct mbuf_head *l) +{ + return (l->head ? l->head->m_pkthdr.len : 0); +} + static __inline void mbufq_tail(struct mbuf_head *l, struct mbuf *m) { l->qlen++; - l->tail->m_nextpkt = m; + if (l->head == NULL) + l->head = m; + else + l->tail->m_nextpkt = m; l->tail = m; + l->qsize += m->m_pkthdr.len; } static __inline struct mbuf * @@ -74,9 +90,12 @@ m = l->head; if (m) { if (m == l->tail) - l->tail = NULL; - l->head = m->m_nextpkt; + l->head = l->tail = NULL; + else + l->head = m->m_nextpkt; + m->m_nextpkt = NULL; l->qlen--; + l->qsize -= m->m_pkthdr.len; } return (m); ==== //depot/projects/ethng/src/sys/modules/cxgb/Makefile#2 (text+ko) ==== @@ -11,7 +11,11 @@ SRCS+= uipc_mvec.c CFLAGS+= -DCONFIG_CHELSIO_T3_CORE -g -DCONFIG_DEFINED -DDEFAULT_JUMBO -I${CXGB} -#CFLAGS+= -DINVARIANT_SUPPORT -DINVARIANTS +CFLAGS+= -DIFNET_MULTIQUEUE +CFLAGS+= -DINVARIANT_SUPPORT -DINVARIANTS +CFLAGS+= -DWITNESS +#CFLAGS+= -DDEBUG -DDEBUG_PRINT + .if ${MACHINE_ARCH} != "ia64" # ld is broken on ia64 From owner-p4-projects@FreeBSD.ORG Tue Aug 7 04:38:05 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E367F16A417; Tue, 7 Aug 2007 04:38:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8761D16A41B for ; Tue, 7 Aug 2007 04:38:04 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 55AEB13C469 for ; Tue, 7 Aug 2007 04:38:04 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l774c4oZ003289 for ; Tue, 7 Aug 2007 04:38:04 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l774c43p003286 for perforce@freebsd.org; Tue, 7 Aug 2007 04:38:04 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 7 Aug 2007 04:38:04 GMT Message-Id: <200708070438.l774c43p003286@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124801 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, 07 Aug 2007 04:38:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=124801 Change 124801 by kmacy@kmacy_home:ethng on 2007/08/07 04:37:08 Disable multiqueue until support is complete Affected files ... .. //depot/projects/ethng/src/sys/modules/cxgb/Makefile#3 edit Differences ... ==== //depot/projects/ethng/src/sys/modules/cxgb/Makefile#3 (text+ko) ==== @@ -11,7 +11,7 @@ SRCS+= uipc_mvec.c CFLAGS+= -DCONFIG_CHELSIO_T3_CORE -g -DCONFIG_DEFINED -DDEFAULT_JUMBO -I${CXGB} -CFLAGS+= -DIFNET_MULTIQUEUE +#CFLAGS+= -DIFNET_MULTIQUEUE CFLAGS+= -DINVARIANT_SUPPORT -DINVARIANTS CFLAGS+= -DWITNESS #CFLAGS+= -DDEBUG -DDEBUG_PRINT From owner-p4-projects@FreeBSD.ORG Tue Aug 7 05:01:35 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 59ABE16A420; Tue, 7 Aug 2007 05:01:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2B96116A41A for ; Tue, 7 Aug 2007 05:01:35 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1185513C468 for ; Tue, 7 Aug 2007 05:01:35 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7751YVP013304 for ; Tue, 7 Aug 2007 05:01:34 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7751YPO013301 for perforce@freebsd.org; Tue, 7 Aug 2007 05:01:34 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 7 Aug 2007 05:01:34 GMT Message-Id: <200708070501.l7751YPO013301@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124803 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, 07 Aug 2007 05:01:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=124803 Change 124803 by kmacy@kmacy_home:ethng on 2007/08/07 05:01:15 add multiq tunables setup producer consumer rings for relaying mbufs between cpus in case of multiqueue: disable periodic tx cleaner and freelist refill bind msix ithreads to corresponding cpu Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#3 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#3 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#3 (text+ko) ==== @@ -208,11 +208,34 @@ * The driver uses an auto-queue algorithm by default. * To disable it and force a single queue-set per port, use singleq = 1. */ +#ifdef IFNET_MULTIQUEUE +static int singleq = 0; +#else static int singleq = 1; +#endif TUNABLE_INT("hw.cxgb.singleq", &singleq); SYSCTL_UINT(_hw_cxgb, OID_AUTO, singleq, CTLFLAG_RDTUN, &singleq, 0, "use a single queue-set per port"); +#ifdef IFNET_MULTIQUEUE +static int cxgb_pcpu_tx_coalesce = 0; +TUNABLE_INT("hw.cxgb.tx_coalesce", &cxgb_pcpu_tx_coalesce); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, tx_coalesce, CTLFLAG_RDTUN, &cxgb_pcpu_tx_coalesce, 0, + "coalesce small packets into a single work request"); + +static int sleep_ticks = 1; +TUNABLE_INT("hw.cxgb.sleep_ticks", &sleep_ticks); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, sleep_ticks, CTLFLAG_RDTUN, &sleep_ticks, 0, + "ticks to sleep between checking pcpu queues"); + +int cxgb_txq_mbuf_ring_size = 2048; +TUNABLE_INT("hw.cxgb.txq_mr_size", &cxgb_txq_mbuf_ring_size); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, txq_mr_size, CTLFLAG_RDTUN, &cxgb_txq_mbuf_ring_size, 0, + "size of per-queue mbuf ring"); +#else +int cxgb_txq_mbuf_ring_size = 0; +#endif + enum { MAX_TXQ_ENTRIES = 16384, MAX_CTRL_TXQ_ENTRIES = 1024, @@ -558,6 +581,7 @@ sc->port[i].nqsets = port_qsets; sc->port[i].first_qset = i*port_qsets; sc->port[i].port_id = i; + sc->port[i].tx_chan = i >= ai->nports0; sc->portdev[i] = child; device_set_softc(child, &sc->port[i]); } ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#3 (text+ko) ==== @@ -69,6 +69,7 @@ int txq_fills = 0; int collapse_mbufs = 0; static int recycle_enable = 1; +extern int cxgb_txq_mbuf_ring_size; static int bogus_imm = 0; /* @@ -708,12 +709,13 @@ sge_timer_cb(void *arg) { adapter_t *sc = arg; +#ifndef IFNET_MULTIQUEUE struct port_info *p; struct sge_qset *qs; struct sge_txq *txq; int i, j; int reclaim_eth, reclaim_ofl, refill_rx; - + for (i = 0; i < sc->params.nports; i++) for (j = 0; j < sc->port[i].nqsets; j++) { qs = &sc->sge.qs[i + j]; @@ -728,6 +730,7 @@ break; } } +#endif if (sc->params.nports > 2) { int i; @@ -845,6 +848,11 @@ struct sge_txq *txq; struct mtx *lock; +#ifdef IFNET_MULTIQUEUE + panic("%s should not be called with multiqueue support\n", __FUNCTION__); +#endif + + for (i = 0; i < nqsets; i++) { qs = &sc->sge.qs[i]; txq = &qs->txq[TXQ_ETH]; @@ -897,6 +905,10 @@ qs->txq[TXQ_OFLD].cntxt_id = FW_OFLD_SGEEC_START + id; qs->txq[TXQ_CTRL].cntxt_id = FW_CTRL_SGEEC_START + id; qs->txq[TXQ_CTRL].token = FW_CTRL_TID_START + id; + + mbufq_init(&qs->txq[TXQ_ETH].sendq); + mbufq_init(&qs->txq[TXQ_OFLD].sendq); + mbufq_init(&qs->txq[TXQ_CTRL].sendq); } @@ -1519,7 +1531,11 @@ { int i; - for (i = 0; i < SGE_RXQ_PER_SET; ++i) { + for (i = 0; i < SGE_TXQ_PER_SET; i++) + if (q->txq[i].txq_mr.mr_ring != NULL) + free(q->txq[i].txq_mr.mr_ring, M_DEVBUF); + + for (i = 0; i < SGE_RXQ_PER_SET; ++i) { if (q->fl[i].desc) { mtx_lock(&sc->sge.reg_lock); t3_sge_disable_fl(sc, q->fl[i].cntxt_id); @@ -2034,6 +2050,16 @@ struct sge_qset *q = &sc->sge.qs[id]; int i, ret = 0; + for (i = 0; i < SGE_TXQ_PER_SET; i++) { + if ((q->txq[i].txq_mr.mr_ring = malloc(cxgb_txq_mbuf_ring_size*sizeof(struct mbuf *), + M_DEVBUF, M_WAITOK|M_ZERO)) == NULL) { + device_printf(sc->dev, "failed to allocate mbuf ring\n"); + goto err; + } + q->txq[i].txq_mr.mr_prod = q->txq[i].txq_mr.mr_cons = 0; + q->txq[i].txq_mr.mr_size = cxgb_txq_mbuf_ring_size; + } + init_qset_cntxt(q, id); if ((ret = alloc_ring(sc, p->fl_size, sizeof(struct rx_desc), @@ -2094,9 +2120,6 @@ TASK_INIT(&q->txq[TXQ_ETH].qreclaim_task, 0, sge_txq_reclaim_handler, &q->txq[TXQ_ETH]); TASK_INIT(&q->txq[TXQ_OFLD].qreclaim_task, 0, sge_txq_reclaim_handler, &q->txq[TXQ_OFLD]); - - - q->fl[0].gen = q->fl[1].gen = 1; q->fl[0].size = p->fl_size; q->fl[1].size = p->jumbo_size; @@ -2328,9 +2351,11 @@ credits = G_RSPD_TXQ0_CR(flags); if (credits) { qs->txq[TXQ_ETH].processed += credits; +#ifndef IFNET_MULTIQUEUE if (desc_reclaimable(&qs->txq[TXQ_ETH]) > TX_START_MAX_DESC) taskqueue_enqueue(qs->port->adapter->tq, &qs->port->timer_reclaim_task); +#endif } credits = G_RSPD_TXQ2_CR(flags); @@ -2582,6 +2607,19 @@ taskqueue_enqueue(adap->tq, &adap->slow_intr_task); } +#ifdef IFNET_MULTIQUEUE +static void +bind_qs_thread(struct sge_qset *qs) +{ + struct thread *td = curthread; + thread_lock(td); + sched_bind(td, qs->cpuid); + thread_unlock(td); + critical_enter(); + qs->flags |= QS_BOUND; + critical_exit(); +} + void t3_intr_msix(void *data) { @@ -2590,11 +2628,28 @@ struct sge_rspq *rspq = &qs->rspq; mtx_lock(&rspq->lock); + if ((qs->flags & QS_BOUND) == 0) + bind_qs_thread(qs); + if (process_responses_gts(adap, rspq) == 0) rspq->unhandled_irqs++; mtx_unlock(&rspq->lock); } +#else +void +t3_intr_msix(void *data) +{ + struct sge_qset *qs = data; + adapter_t *adap = qs->port->adapter; + struct sge_rspq *rspq = &qs->rspq; + + mtx_lock(&rspq->lock); + if (process_responses_gts(adap, rspq) == 0) + rspq->unhandled_irqs++; + mtx_unlock(&rspq->lock); +} +#endif /* * broken by recent mbuf changes */ From owner-p4-projects@FreeBSD.ORG Tue Aug 7 08:21:41 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4BC1116A46C; Tue, 7 Aug 2007 08:21:41 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03D3516A419 for ; Tue, 7 Aug 2007 08:21:41 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DE9A413C45B for ; Tue, 7 Aug 2007 08:21:40 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l778Letg029977 for ; Tue, 7 Aug 2007 08:21:40 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l778Leek029974 for perforce@freebsd.org; Tue, 7 Aug 2007 08:21:40 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 7 Aug 2007 08:21:40 GMT Message-Id: <200708070821.l778Leek029974@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124806 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, 07 Aug 2007 08:21:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=124806 Change 124806 by kmacy@kmacy_home:ethng on 2007/08/07 08:21:12 integrate baseline multiq support functionality Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#3 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#4 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_multiq.c#1 add .. //depot/projects/ethng/src/sys/modules/cxgb/Makefile#4 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#3 (text+ko) ==== @@ -572,5 +572,12 @@ return isset(&adapter->open_device_map, OFFLOAD_DEVMAP_BIT); } +#ifdef IFNET_MULTIQUEUE +int cxgb_pcpu_enqueue_packet(struct ifnet *ifp, int32_t cpuid, struct mbuf *m); +int cxgb_pcpu_start(struct ifnet *ifp, int32_t cpuid, struct mbuf *m); +int32_t cxgb_pcpu_get_cookie(struct ifnet *ifp, struct in6_addr *lip, uint16_t lport, + struct in6_addr *rip, uint16_t rport, int ipv6); + #endif +#endif ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#4 (text+ko) ==== @@ -636,6 +636,10 @@ { int i; +#ifdef IFNET_MULTIQUEUE + cxgb_pcpu_shutdown_threads(sc); +#endif + ADAPTER_LOCK(sc); /* * drops the lock @@ -993,6 +997,18 @@ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = cxgb_ioctl; ifp->if_start = cxgb_start; + +#ifdef IFNET_MULTIQUEUE + if (ifnet_multiqueue == 0) { + device_printf(dev, "cxgb compiled with multi-queue support, but kernel doesn't support it\n"); + return (EDOOFUS); + } + ifp->if_flags |= IFF_MULTIQ; + ifp->if_mq_start = cxgb_pcpu_start; + ifp->if_mq_enqueue_packet = cxgb_pcpu_enqueue_packet; + ifp->if_mq_get_cookie = cxgb_pcpu_get_cookie; +#endif + ifp->if_timer = 0; /* Disable ifnet watchdog */ ifp->if_watchdog = NULL; @@ -1408,6 +1424,10 @@ { int i, j; +#ifdef IFNET_MULTIQUEUE + cxgb_pcpu_startup_threads(sc); +#endif + for (i = 0; i < (sc)->params.nports; ++i) { const struct port_info *pi = adap2pinfo(sc, i); @@ -2007,6 +2027,16 @@ } while (error == 0); } +#ifndef IFNET_MULTIQUEUE +static inline struct mbuf * +cxgb_dequeue_packet(struct ifnet *ifp, struct sge_txq *unused) +{ + struct mbuf *m; + + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); + return (m); +} + static void cxgb_start(struct ifnet *ifp) { @@ -2027,7 +2057,7 @@ if (err == 0) taskqueue_enqueue(pi->tq, &pi->start_task); } - +#endif static int cxgb_media_change(struct ifnet *ifp) ==== //depot/projects/ethng/src/sys/modules/cxgb/Makefile#4 (text+ko) ==== @@ -8,7 +8,7 @@ SRCS+= cxgb_xgmac.c cxgb_vsc7323.c cxgb_t3_hw.c cxgb_main.c SRCS+= cxgb_sge.c cxgb_lro.c cxgb_offload.c cxgb_l2t.c SRCS+= device_if.h bus_if.h pci_if.h opt_zero.h -SRCS+= uipc_mvec.c +SRCS+= uipc_mvec.c cxgb_multiq.c CFLAGS+= -DCONFIG_CHELSIO_T3_CORE -g -DCONFIG_DEFINED -DDEFAULT_JUMBO -I${CXGB} #CFLAGS+= -DIFNET_MULTIQUEUE From owner-p4-projects@FreeBSD.ORG Tue Aug 7 14:29:28 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D5FA716A46B; Tue, 7 Aug 2007 14:29:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C71916A420 for ; Tue, 7 Aug 2007 14:29:27 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8136513C46A for ; Tue, 7 Aug 2007 14:29:27 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77ETRLS077779 for ; Tue, 7 Aug 2007 14:29:27 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77ETQL1077776 for perforce@freebsd.org; Tue, 7 Aug 2007 14:29:26 GMT (envelope-from gonzo@FreeBSD.org) Date: Tue, 7 Aug 2007 14:29:26 GMT Message-Id: <200708071429.l77ETQL1077776@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124823 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, 07 Aug 2007 14:29:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=124823 Change 124823 by gonzo@gonzo_jeeves on 2007/08/07 14:28:43 o MIPS has no atomic_XXX_8 functions family Affected files ... .. //depot/projects/mips2/src/sys/compat/opensolaris/kern/opensolaris_atomic.c#2 edit .. //depot/projects/mips2/src/sys/compat/opensolaris/sys/atomic.h#2 edit Differences ... ==== //depot/projects/mips2/src/sys/compat/opensolaris/kern/opensolaris_atomic.c#2 (text+ko) ==== @@ -74,7 +74,8 @@ return (newval); } -#if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) +#if defined(__sparc64__) || defined(__mips__) || \ + defined(__powerpc__) || defined(__arm__) void atomic_or_8(volatile uint8_t *target, uint8_t value) { ==== //depot/projects/mips2/src/sys/compat/opensolaris/sys/atomic.h#2 (text+ko) ==== @@ -44,7 +44,8 @@ extern uint8_t atomic_or_8_nv(volatile uint8_t *target, uint8_t value); extern void membar_producer(void); -#if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) +#if defined(__sparc64__) || defined(__powerpc__) || \ + defined(__arm__) || defined(__mips__) extern void atomic_or_8(volatile uint8_t *target, uint8_t value); #else static __inline void From owner-p4-projects@FreeBSD.ORG Tue Aug 7 15:18:32 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EBECD16A41A; Tue, 7 Aug 2007 15:18:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C044616A417 for ; Tue, 7 Aug 2007 15:18:31 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B64A413C45E for ; Tue, 7 Aug 2007 15:18:31 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77FIV8a081745 for ; Tue, 7 Aug 2007 15:18:31 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77FIV71081742 for perforce@freebsd.org; Tue, 7 Aug 2007 15:18:31 GMT (envelope-from lulf@FreeBSD.org) Date: Tue, 7 Aug 2007 15:18:31 GMT Message-Id: <200708071518.l77FIV71081742@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 124825 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, 07 Aug 2007 15:18:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=124825 Change 124825 by lulf@lulf_carrot on 2007/08/07 15:18:24 - Added more on TODO. - Add more to manpage. - Use return values in gv_create_ functions! Gvinum would crash if the gv_create_ functions did not create their objects, which lead to dereferencing free()'d memory. Check for this error in gv_parse_config. Affected files ... .. //depot/projects/soc2007/lulf/TODO#7 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.8#4 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#25 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_create.c#7 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#26 edit Differences ... ==== //depot/projects/soc2007/lulf/TODO#7 (text+ko) ==== @@ -190,4 +190,18 @@ flag which tells the system to expand the array when 'init' is run. Should there be a grow command perhaps? +Fixed... + + + + + + +25. Would it be nice with a way to block gvinum userland if we needed to? A way +to sleep on events... + +26. Documentation: + 1) Update handbook, add practical examples. + 2) Update manpage with more examples and perhaps better explanation of + commands. ==== //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.8#4 (text+ko) ==== @@ -171,7 +171,9 @@ Read configuration from all vinum drives. .It Ic start Oo Fl S Ar size Oc Ar volume | plex | subdisk Allow the system to access the objects. If necessary, plexes will be synced and -rebuilt. +rebuilt. If a subdisk was added to a running RAID-5 or striped plex, gvinum will +expand into this subdisk and grow the whole RAID-5 array. This can be done +without unmounting your filesystem. The .Fl S flag is currently ignored. ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#25 (text+ko) ==== @@ -120,10 +120,10 @@ void gv_bio_done(struct gv_softc *, struct bio *); void gv_cleanup(struct gv_softc *); -void gv_create_drive(struct gv_softc *, struct gv_drive *); -void gv_create_volume(struct gv_softc *, struct gv_volume *); -void gv_create_plex(struct gv_softc *, struct gv_plex *); -void gv_create_sd(struct gv_softc *, struct gv_sd *); +int gv_create_drive(struct gv_softc *, struct gv_drive *); +int gv_create_volume(struct gv_softc *, struct gv_volume *); +int gv_create_plex(struct gv_softc *, struct gv_plex *); +int gv_create_sd(struct gv_softc *, struct gv_sd *); int gv_stripe_active(struct gv_plex *, struct bio *); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_create.c#7 (text+ko) ==== @@ -41,7 +41,7 @@ * Create a new drive object, either by user request, during taste of the drive * itself, or because it was referenced by a subdisk during taste. */ -void +int gv_create_drive(struct gv_softc *sc, struct gv_drive *d) { struct g_geom *gp; @@ -67,7 +67,7 @@ if (gv_find_drive(sc, d->name) != NULL) { printf("VINUM: drive '%s' already exists\n", d->name); g_free(d); - return; + return (GV_ERR_CREATE); } pp = g_provider_by_name(d->device); @@ -75,7 +75,7 @@ printf("VINUM: create '%s': device '%s' disappeared?\n", d->name, d->device); g_free(d); - return; + return (GV_ERR_CREATE); } g_topology_lock(); @@ -86,7 +86,7 @@ printf("VINUM: create drive '%s': couldn't attach\n", d->name); g_free(d); - return; + return (GV_ERR_CREATE); } g_topology_unlock(); @@ -106,7 +106,7 @@ LIST_INSERT_HEAD(&sc->drives, d, drive); else LIST_INSERT_AFTER(d2, d, drive); - return; + return (0); } /* @@ -129,7 +129,7 @@ if (d->hdr != NULL) g_free(d->hdr); g_free(d); - return; + return (GV_ERR_CREATE); } g_topology_unlock(); break; @@ -163,9 +163,10 @@ LIST_INSERT_HEAD(&sc->drives, d, drive); gv_set_drive_state(d, GV_DRIVE_UP, 0); + return (0); } -void +int gv_create_volume(struct gv_softc *sc, struct gv_volume *v) { KASSERT(v != NULL, ("gv_create_volume: NULL v")); @@ -176,9 +177,10 @@ LIST_INSERT_HEAD(&sc->volumes, v, volume); v->wqueue = g_malloc(sizeof(struct bio_queue_head), M_WAITOK | M_ZERO); bioq_init(v->wqueue); + return (0); } -void +int gv_create_plex(struct gv_softc *sc, struct gv_plex *p) { struct gv_volume *v; @@ -191,7 +193,7 @@ printf("VINUM: create plex '%s': volume '%s' not found\n", p->name, p->volume); g_free(p); - return; + return (GV_ERR_CREATE); } if (!(v->flags & GV_VOL_NEWBORN)) p->flags |= GV_PLEX_ADDED; @@ -209,9 +211,10 @@ bioq_init(p->wqueue); p->rqueue = g_malloc(sizeof(struct bio_queue_head), M_WAITOK | M_ZERO); bioq_init(p->rqueue); + return (0); } -void +int gv_create_sd(struct gv_softc *sc, struct gv_sd *s) { struct gv_plex *p; @@ -237,7 +240,7 @@ printf("VINUM: create sd '%s': drive '%s' not found\n", s->name, s->drive); g_free(s); - return; + return (GV_ERR_CREATE); } } @@ -247,7 +250,7 @@ printf("VINUM: create sd '%s': plex '%s' not found\n", s->name, s->plex); g_free(s); - return; + return (GV_ERR_CREATE); } /* @@ -256,7 +259,7 @@ */ if (gv_sd_to_drive(s, d) != 0) { g_free(s); - return; + return (GV_ERR_CREATE); } /* @@ -275,14 +278,16 @@ * the attached plex either, if it is also a new one. */ if (!(p->flags & GV_PLEX_NEWBORN)) - return; + return (GV_ERR_CREATE); gv_rm_plex(sc, p); - return; + return (GV_ERR_CREATE); } s->flags |= GV_SD_NEWBORN; s->vinumconf = sc; LIST_INSERT_HEAD(&sc->subdisks, s, sd); + + return (0); } /* ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#26 (text+ko) ==== @@ -61,7 +61,7 @@ struct gv_volume *v, *v2; struct gv_plex *p, *p2; struct gv_sd *s, *s2; - int is_newer, tokens; + int error, is_newer, tokens; char *token[GV_MAXARGS]; is_newer = gv_drive_is_newer(sc); @@ -116,8 +116,9 @@ continue; } - gv_create_plex(sc, p); - + error = gv_create_plex(sc, p); + if (error) + continue; /* * These flags were set in gv_create_plex() and are not * needed here (on-disk config parsing). @@ -152,7 +153,9 @@ if (s->state == GV_SD_UP) s->flags |= GV_SD_CANGOUP; - gv_create_sd(sc, s); + error = gv_create_sd(sc, s); + if (error) + continue; /* * This flag was set in gv_create_sd() and is not @@ -160,7 +163,6 @@ */ s->flags &= ~GV_SD_NEWBORN; s->flags &= ~GV_SD_GROW; - printf("S-flags is now: %d\n", s->flags); } } } From owner-p4-projects@FreeBSD.ORG Tue Aug 7 15:39:59 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32CF016A46B; Tue, 7 Aug 2007 15:39:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DFBBE16A468 for ; Tue, 7 Aug 2007 15:39:58 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D749E13C461 for ; Tue, 7 Aug 2007 15:39:58 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77Fdwe9083102 for ; Tue, 7 Aug 2007 15:39:58 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77Fdwo6083099 for perforce@freebsd.org; Tue, 7 Aug 2007 15:39:58 GMT (envelope-from zec@FreeBSD.org) Date: Tue, 7 Aug 2007 15:39:58 GMT Message-Id: <200708071539.l77Fdwo6083099@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124828 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, 07 Aug 2007 15:39:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=124828 Change 124828 by zec@zec_tpx32 on 2007/08/07 15:39:55 With each netgraph node store its vnet affinity. So far this info is used to set the curvnet context when processing the workqueue in ngintr(). Affected files ... .. //depot/projects/vimage/src/sys/netgraph/netgraph.h#4 edit .. //depot/projects/vimage/src/sys/netgraph/ng_base.c#19 edit Differences ... ==== //depot/projects/vimage/src/sys/netgraph/netgraph.h#4 (text+ko) ==== @@ -340,6 +340,7 @@ LIST_ENTRY(ng_node) nd_idnodes; /* ID hash collision list */ TAILQ_ENTRY(ng_node) nd_work; /* nodes with work to do */ struct ng_queue nd_input_queue; /* input queue for locking */ + struct vnet *nd_vnet; /* network stack instance */ #ifdef NETGRAPH_DEBUG /*----------------------------------------------*/ #define ND_MAGIC 0x59264837 int nd_magic; ==== //depot/projects/vimage/src/sys/netgraph/ng_base.c#19 (text+ko) ==== @@ -633,6 +633,9 @@ return (ENOMEM); } node->nd_type = type; +#ifdef VIMAGE + node->nd_vnet = curvnet; +#endif NG_NODE_REF(node); /* note reference */ type->refs++; @@ -3399,6 +3402,7 @@ NG_WORKLIST_UNLOCK(); break; } + CURVNET_SET(node->nd_vnet); node->nd_flags &= ~NGF_WORKQ; TAILQ_REMOVE(&ng_worklist, node, nd_work); NG_WORKLIST_UNLOCK(); @@ -3433,6 +3437,7 @@ } } NG_NODE_UNREF(node); + CURVNET_RESTORE(); } } From owner-p4-projects@FreeBSD.ORG Tue Aug 7 16:17:01 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E18D16A41B; Tue, 7 Aug 2007 16:17:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A80B16A419 for ; Tue, 7 Aug 2007 16:17:01 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5084013C491 for ; Tue, 7 Aug 2007 16:17:01 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77GH1Vl086691 for ; Tue, 7 Aug 2007 16:17:01 GMT (envelope-from taleks@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77GH0or086686 for perforce@freebsd.org; Tue, 7 Aug 2007 16:17:00 GMT (envelope-from taleks@FreeBSD.org) Date: Tue, 7 Aug 2007 16:17:00 GMT Message-Id: <200708071617.l77GH0or086686@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to taleks@FreeBSD.org using -f From: Alexey Tarasov To: Perforce Change Reviews Cc: Subject: PERFORCE change 124834 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, 07 Aug 2007 16:17:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=124834 Change 124834 by taleks@taleks_th on 2007/08/07 16:16:08 all: most of all ip4 related uint32_t replaced by PXE_IPADDR. May be usefuil n future. pxe_dhcp: updated pxe_dhcp_query() in case of bootp() call. pxe_core: removed unused functions, updated pxe_core_init(), returned static buffers support. loader.rc: added as example of .rc-script, used during testing of RAM drive loading. Affected files ... .. //depot/projects/soc2007/taleks-pxe_http/Makefile#13 edit .. //depot/projects/soc2007/taleks-pxe_http/httpfs.c#6 edit .. //depot/projects/soc2007/taleks-pxe_http/libi386_mod/Makefile#1 add .. //depot/projects/soc2007/taleks-pxe_http/libi386_mod/pxe.c#3 edit .. //depot/projects/soc2007/taleks-pxe_http/loader_mod/loader.rc#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_arp.c#15 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_arp.h#10 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_await.c#4 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_connection.c#12 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_connection.h#9 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#25 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#21 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_dhcp.c#8 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_dhcp.h#8 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_dns.c#7 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_dns.h#6 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_filter.c#8 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_filter.h#6 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_http.c#10 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_http.h#7 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.c#14 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.h#9 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_ip.c#15 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_ip.h#10 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_segment.c#10 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.c#18 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.h#16 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_tcp.c#13 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_udp.c#10 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_udp.h#7 edit Differences ... ==== //depot/projects/soc2007/taleks-pxe_http/Makefile#13 (text+ko) ==== @@ -34,4 +34,7 @@ #CFLAGS+= -DPXE_HTTP_DEBUG #CFLAGS+= -DPXE_HTTP_DEBUG_HELL +# define to get more PXE related code and testing functions +CFLAGS+= -DPXE_MORE + .include ==== //depot/projects/soc2007/taleks-pxe_http/httpfs.c#6 (text+ko) ==== @@ -87,7 +87,7 @@ pxe_memset(httpfile, 0, sizeof(PXE_HTTP_HANDLE)); - httpfile->ip = pxe_get_ip32(PXE_IP_WWW); + pxe_memcpy(pxe_get_ip(PXE_IP_WWW), &httpfile->addr, sizeof(PXE_IPADDR)); httpfile->offset = 0; httpfile->socket = -1; @@ -100,10 +100,7 @@ /* TODO: may be implement getting name by PTR resource records */ - PXE_IPADDR server; - server.ip = httpfile->ip; - - httpfile->servername = strdup(inet_ntoa(server.ip)); + httpfile->servername = strdup(inet_ntoa(httpfile->addr.ip)); if (httpfile->servername == NULL) { handle_cleanup(httpfile); ==== //depot/projects/soc2007/taleks-pxe_http/libi386_mod/pxe.c#3 (text+ko) ==== @@ -201,13 +201,17 @@ } - if (pxe_get_ip32(PXE_IP_ROOT) == 0) { + const PXE_IPADDR *addr = pxe_get_ip(PXE_IP_ROOT); + + if (addr->ip == 0) { #ifdef PXE_BOOTP_USE_LIBSTAND pxe_dhcp_query(0); - if (pxe_get_ip32(PXE_IP_ROOT) == 0) - pxe_set_ip32(PXE_IP_ROOT, - pxe_get_ip32(PXE_IP_SERVER)); + addr = pxe_get_ip(PXE_IP_ROOT); + + if (addr->ip == 0) + pxe_set_ip(PXE_IP_ROOT, + pxe_get_ip(PXE_IP_SERVER)); #endif if (!rootpath[1]) @@ -220,9 +224,12 @@ if (i && i != FNAME_SIZE && rootpath[i] == ':') { rootpath[i++] = '\0'; - if (inet_addr(&rootpath[0]) != INADDR_NONE) - pxe_set_ip32(PXE_IP_ROOT, - inet_addr(&rootpath[0])); + if (inet_addr(&rootpath[0]) != INADDR_NONE) { + + PXE_IPADDR root_addr; + root_addr.ip = inet_addr(&rootpath[0]); + pxe_set_ip(PXE_IP_ROOT, &root_addr); + } pxe_memcpy(&rootpath[i], &temp[0], strlen(&rootpath[i])+1); @@ -233,7 +240,7 @@ struct in_addr tmp_in; - tmp_in.s_addr = pxe_get_ip32(PXE_IP_ROOT); + tmp_in.s_addr = pxe_get_ip(PXE_IP_ROOT)->ip; #ifdef PXE_DEBUG printf("pxe_open: server addr: %s\n", inet_ntoa(tmp_in)); @@ -241,17 +248,17 @@ setenv("boot.nfsroot.server", inet_ntoa(tmp_in), 1); - tmp_in.s_addr = pxe_get_ip32(PXE_IP_GATEWAY); + tmp_in.s_addr = pxe_get_ip(PXE_IP_GATEWAY)->ip; setenv("boot.netif.gateway", inet_ntoa(tmp_in), 1); #ifdef PXE_DEBUG printf("pxe_open: server path: %s\n", rootpath); printf("pxe_open: gateway ip: %s\n", inet_ntoa(tmp_in)); #endif - tmp_in.s_addr = pxe_get_ip32(PXE_IP_MY); + tmp_in.s_addr = pxe_get_ip(PXE_IP_MY)->ip; setenv("boot.netif.ip", inet_ntoa(tmp_in), 1); - tmp_in.s_addr = pxe_get_ip32(PXE_IP_NETMASK); + tmp_in.s_addr = pxe_get_ip(PXE_IP_NETMASK)->ip; setenv("boot.netif.netmask", inet_ntoa(tmp_in), 1); sprintf(temp, "%6D", pxe_get_mymac(), ":"); @@ -260,11 +267,11 @@ setenv("boot.nfsroot.path", rootpath, 1); #ifdef PXEHTTP_UDP_FOR_LIBSTAND - gateip.s_addr = pxe_get_ip32(PXE_IP_GATEWAY); - rootip.s_addr = pxe_get_ip32(PXE_IP_ROOT); - netmask = pxe_get_ip32(PXE_IP_NETMASK); - myip.s_addr = pxe_get_ip32(PXE_IP_MY); - nameip.s_addr = pxe_get_ip32(PXE_IP_NAMESERVER); + gateip.s_addr = pxe_get_ip(PXE_IP_GATEWAY)->ip; + rootip.s_addr = pxe_get_ip(PXE_IP_ROOT)->ip; + netmask = pxe_get_ip(PXE_IP_NETMASK)->ip; + myip.s_addr = pxe_get_ip(PXE_IP_MY)->ip; + nameip.s_addr = pxe_get_ip(PXE_IP_NAMESERVER)->ip; #endif } } @@ -328,7 +335,10 @@ t_PXENV_UDP_OPEN *udpopen_p = (t_PXENV_UDP_OPEN *)scratch_buffer; bzero(udpopen_p, sizeof(*udpopen_p)); - udpopen_p->src_ip = pxe_get_ip32(PXE_IP_MY); + + const PXE_IPADDR *my = pxe_get_ip(PXE_IP_MY); + udpopen_p->src_ip = my->ip; + pxe_core_call(PXENV_UDP_OPEN); if (udpopen_p->status != 0) { @@ -365,13 +375,14 @@ #ifdef PXE_DEBUG printf("pxe_netif_init(): called.\n"); #endif - uint8_t* mac = pxe_get_mymac(); + uint8_t *mac = pxe_get_mymac(); int i; for (i = 0; i < 6; ++i) desc->myea[i] = mac[i]; - - desc->xid = pxe_get_ip32(PXE_IP_MY); + + const PXE_IPADDR *my = pxe_get_ip(PXE_IP_MY); + desc->xid = my->ip; } static int @@ -458,8 +469,11 @@ inet_ntoa(h->destip), ntohs(h->destport)); #endif void *ipdata = pkt - sizeof(PXE_UDP_PACKET); + + PXE_IPADDR dst; + dst.ip = h->destip.s_addr; - if (!pxe_udp_send(ipdata, h->destip.s_addr, ntohs(h->destport), + if (!pxe_udp_send(ipdata, &dst, ntohs(h->destport), ntohs(h->myport), len + sizeof(PXE_UDP_PACKET))) { printf("sendudp(): failed\n"); ==== //depot/projects/soc2007/taleks-pxe_http/pxe_arp.c#15 (text+ko) ==== @@ -68,11 +68,13 @@ /* filling source related data: client ip & MAC */ pxe_memcpy(pxe_get_mymac(), packet_to_send.body.src_hwaddr, 6); - packet_to_send.body.src_paddr = pxe_get_ip32(PXE_IP_MY); + + const PXE_IPADDR *addr = pxe_get_ip(PXE_IP_MY);; + packet_to_send.body.src_paddr = addr->ip; /* filling entry for own ip/mac*/ pxe_memcpy(pxe_get_mymac(), arp_table[MAX_ARP_ENTRIES].mac, 6); - arp_table[MAX_ARP_ENTRIES].ip4.ip = pxe_get_ip32(PXE_IP_MY); + arp_table[MAX_ARP_ENTRIES].addr.ip = addr->ip; /* setting broadcast target address */ pxe_memset(packet_to_send.body.target_hwaddr, 0xff, 6); @@ -96,7 +98,7 @@ for (; entry < MAX_ARP_ENTRIES + 1; ++entry) { - if (arp_table[entry].ip4.ip == ip) { + if (arp_table[entry].addr.ip == ip) { uint8_t *mac = &arp_table[entry].mac[0]; #ifdef PXE_ARP_DEBUG_HELL @@ -124,21 +126,18 @@ for (; entry < limit; ++entry) { - PXE_IPADDR ip; - uint8_t *mac = arp_table[entry].mac; - ip.ip = arp_table[entry].ip4.ip; - - if ( (ip.ip == 0) || (mac == NULL) ) + if ( (arp_table[entry].addr.ip == 0) || + (arp_table[entry].mac == NULL) ) continue; - printf("%d.%d.%d.%d\t%2x:%2x:%2x:%2x:%2x:%2x\n", - ip.octet[0], ip.octet[1], ip.octet[2], ip.octet[3], - mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] - ); + printf("%s\t%6D\n", + inet_ntoa(arp_table[entry].addr.ip), + arp_table[entry].mac, ":"); } } -#endif +#endif /* PXE_MORE */ + /* * pxe_arp_protocol() - process received arp packet, this function is called in * style of pxe_protocol_call function type, but last @@ -162,12 +161,14 @@ uint8_t *mac_src = arp_reply->body.src_hwaddr; uint8_t *mac_dst = arp_reply->body.target_hwaddr; PXE_IPADDR ip4_src; - PXE_IPADDR ip4_dst; + PXE_IPADDR ip4_dst; + + const PXE_IPADDR *addr = pxe_get_ip(PXE_IP_MY); ip4_src.ip = arp_reply->body.src_paddr; ip4_dst.ip = arp_reply->body.target_paddr; - if (ip4_src.ip == pxe_get_ip32(PXE_IP_MY)) { + if (ip4_src.ip == addr->ip) { /* got broadcast send by us */ #ifdef PXE_ARP_DEBUG_HELL printf("arp request from myself ignored.\n"); @@ -176,21 +177,15 @@ } #ifdef PXE_ARP_DEBUG - printf("arp request from %x:%x:%x:%x:%x:%x/%d.%d.%d.%d\n\t" - " to: %x:%x:%x:%x:%x:%x/%d.%d.%d.%d\n", - mac_src[0], mac_src[1], mac_src[2], - mac_src[3], mac_src[4], mac_src[5], - ip4_src.octet[0], ip4_src.octet[1], - ip4_src.octet[2], ip4_src.octet[3], - mac_dst[0], mac_dst[1], mac_dst[2], - mac_dst[3], mac_dst[4], mac_dst[5], - ip4_dst.octet[0], ip4_dst.octet[1], - ip4_dst.octet[2], ip4_dst.octet[3] - ); + printf("arp request from %6D/%s\n\t", + mac_src, ":", inet_ntoa(ip4_src.ip)); + + printf("to: %6D/%s\n", + mac_dst, ":", inet_ntoa(ip4_dst.ip)); #endif /* somebody is looking for us */ - if (ip4_dst.ip == arp_table[MAX_ARP_ENTRIES].ip4.ip) { + if (ip4_dst.ip == arp_table[MAX_ARP_ENTRIES].addr.ip) { pxe_memcpy(arp_reply->body.src_hwaddr, packet_to_send.body.target_hwaddr, 6); @@ -262,7 +257,7 @@ pxe_memcpy(&arp_reply->body.src_hwaddr, &arp_table[arp_usage % MAX_ARP_ENTRIES].mac, 6); - arp_table[arp_usage % MAX_ARP_ENTRIES].ip4.ip = + arp_table[arp_usage % MAX_ARP_ENTRIES].addr.ip = arp_reply->body.src_paddr; ++arp_usage; @@ -325,7 +320,7 @@ switch (function) { case PXE_AWAIT_STARTTRY: /* handle start of new try */ - if (!pxe_arp_send_whois(wait_data->ip)) { + if (!pxe_arp_send_whois(wait_data->addr.ip)) { /* failed to send request, try once more * after waiting a little */ @@ -338,7 +333,7 @@ /* check if ARP protocol was called and * arp_table updated */ - res = pxe_arp_table_search(wait_data->ip); + res = pxe_arp_table_search(wait_data->addr.ip); if (res != NULL) { wait_data->mac = res; return (PXE_AWAIT_COMPLETED); @@ -370,9 +365,9 @@ * not NULL - pointer to MAC address */ const MAC_ADDR * -pxe_arp_ip4mac(uint32_t ip) +pxe_arp_ip4mac(const PXE_IPADDR *addr) { - const MAC_ADDR *res = pxe_arp_table_search(ip); + const MAC_ADDR *res = pxe_arp_table_search(addr->ip); if (res != NULL) return (res); @@ -381,7 +376,7 @@ #endif PXE_ARP_WAIT_DATA wait_data; - wait_data.ip = ip; + wait_data.addr.ip = addr->ip; wait_data.mac = NULL; pxe_await(pxe_arp_await, PXE_MAX_ARP_TRY, PXE_TIME_TO_DIE, &wait_data); ==== //depot/projects/soc2007/taleks-pxe_http/pxe_arp.h#10 (text+ko) ==== @@ -52,7 +52,7 @@ #define PXE_ARP_SNIFF typedef struct pxe_arp_entry { - PXE_IPADDR ip4; + PXE_IPADDR addr; MAC_ADDR mac; } PXE_ARP_ENTRY; @@ -61,7 +61,7 @@ void pxe_arp_init(); /* find MAC by provided ip */ -const MAC_ADDR *pxe_arp_ip4mac(uint32_t ip); +const MAC_ADDR *pxe_arp_ip4mac(const PXE_IPADDR *addr); /* protocol handler for received packets */ int pxe_arp_protocol(PXE_PACKET *pack, uint8_t function); @@ -99,7 +99,7 @@ } __packed PXE_ARP_PACK_DATA; typedef struct pxe_arp_wait_data { - uint32_t ip; + PXE_IPADDR addr; const MAC_ADDR *mac; } PXE_ARP_WAIT_DATA; ==== //depot/projects/soc2007/taleks-pxe_http/pxe_await.c#4 (text+ko) ==== @@ -116,4 +116,3 @@ */ return (0); } - ==== //depot/projects/soc2007/taleks-pxe_http/pxe_connection.c#12 (text+ko) ==== @@ -252,11 +252,11 @@ connection->dst_port = filter->src_port; connection->src_port = filter->dst_port; - connection->dst_ip = filter->src_ip; + connection->dst.ip = filter->src.ip; connection->next_recv = 0; /* NOTE: need to make more correct initial number */ - connection->iss = (filter->src_ip + filter->dst_ip) + + connection->iss = (filter->src.ip + filter->dst.ip) + (uint32_t)pxe_get_secs(); connection->next_send = connection->iss; @@ -688,4 +688,4 @@ connection->iss, connection->irs); } } -#endif+#endif /* PXE_MORE */ ==== //depot/projects/soc2007/taleks-pxe_http/pxe_connection.h#9 (text+ko) ==== @@ -79,7 +79,7 @@ uint16_t src_port; /* source port */ uint16_t dst_port; /* destination port */ - uint32_t dst_ip; /* destination ip */ + PXE_IPADDR dst; /* destination ip */ PXE_BUFFER *recv; /* recieve buffer */ PXE_BUFFER *send; /* send buffer */ ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#25 (text+ko) ==== @@ -46,22 +46,22 @@ * the only difference - installation of isr, that was not needed in pxe.c. */ -/* calls PXE/UNDI API, registers of processor must be filled in with - * appropriate values. - */ -/* static int pxe_core_call(int func); */ /* stores data in packet */ static int pxe_core_recieve(PXE_PACKET *pack, void *data, size_t size); uint8_t *scratch_buffer = NULL; uint8_t *data_buffer = NULL; +#ifdef PXE_CORE_STATIC_BUFFERS +static uint8_t static_scratch_buffer[PXE_BUFFER_SIZE]; +static uint8_t static_data_buffer[PXE_BUFFER_SIZE]; +#endif + #ifdef PXE_EXCLUSIVE static uint8_t exclusive_protocol = 0; #endif static pxenv_t *pxenv = NULL; /* PXENV+ */ static pxe_t *pxe = NULL; /* !PXE */ -/* static BOOTPLAYER* bootplayer; /* pointer PXE Cached information. */ /* pxe core structures*/ /* current processing packet */ @@ -76,61 +76,6 @@ static int pxe_state = PXE_DOWN; -/* pxe_core_undi_startup() - performs UNDI startup call during pxe_core_init() - * in: - * none - * out: - * 1 - success - * 0 - failed - */ -int -pxe_core_undi_startup() -{ - t_PXENV_UNDI_STARTUP *undi_startup = - (t_PXENV_UNDI_STARTUP *)scratch_buffer; - -#ifdef PXE_CORE_DEBUG - printf("pxe_core_undi_startup(): started\n"); -#endif - - undi_startup->Status = 0; - - int status = pxe_core_call(PXENV_UNDI_STARTUP); - - if (!status) - printf("pxe_core_undi_startup(): status 0x%x\n", - undi_startup->Status); - - return (status); -} - -/* pxe_core_undi_init() - performs UNDI initialization - * in: - * none - * out: - * 1 - success - * 0 - failed - */ -int pxe_core_undi_init() -{ - t_PXENV_UNDI_INITIALIZE *undi_init = - (t_PXENV_UNDI_INITIALIZE *)scratch_buffer; - -#ifdef PXE_CORE_DEBUG - printf("pxe_core_undi_init(): started\n"); -#endif - - pxe_memset(undi_init, 0, sizeof(t_PXENV_UNDI_INITIALIZE)); - - int status = pxe_core_call(PXENV_UNDI_INITIALIZE); - - if (!status) - printf("pxe_core_undi_init(): status 0x%x\n", - undi_init->Status); - - return (status); -} - /* pxe_core_init() - performs initialization of all PXE related code * in: * pxenv_p - pointer to PXENV+ structure @@ -162,6 +107,7 @@ pxenv = pxenv_p; pxe = pxe_p; +#ifndef PXE_CORE_STATIC_BUFFERS /* 0. initing scratch and data buffers */ data_buffer = pxe_alloc(PXE_BUFFER_SIZE); @@ -175,7 +121,10 @@ pxe_free(data_buffer); return (0); } - +#else + data_buffer = static_data_buffer; + scratch_buffer = static_scratch_buffer; +#endif /* 1. determine PXE API entry point */ if(pxenv_p == NULL) return (0); @@ -262,9 +211,9 @@ /* getting Boot Server Discovery reply */ /* pointer to PXE Cached information. */ - BOOTPLAYER* bootplayer = data_buffer; + BOOTPLAYER* bootplayer = (BOOTPLAYER *)data_buffer; + gci_p->PacketType = PXENV_PACKET_TYPE_BINL_REPLY; - gci_p->BufferSize = sizeof(BOOTPLAYER); gci_p->Buffer.segment = VTOPSEG(bootplayer); gci_p->Buffer.offset = VTOPOFF(bootplayer); @@ -302,30 +251,37 @@ } /* showing information about NIC */ - PXE_IPADDR nic_ip; - - nic_ip.ip = bootplayer->yip; /* my ip */ - printf("my ip: %d.%d.%d.%d\n", - nic_ip.octet[0], nic_ip.octet[1], nic_ip.octet[2], nic_ip.octet[3]); + PXE_IPADDR addr; + addr.ip = bootplayer->yip; /* my ip */ + + printf("my ip: %s\n", inet_ntoa(addr.ip)); /* my MAC */ pxe_memcpy(&bootplayer->CAddr, &nic_mac, MAC_ADDR_LEN); printf("my MAC: %6D\n", nic_mac, ":"); /* setting default ips*/ - pxe_set_ip32(PXE_IP_MY, bootplayer->yip); /* nic ip */ - pxe_set_ip32(PXE_IP_SERVER, bootplayer->sip); /* boot server ip */ + pxe_set_ip(PXE_IP_MY, &addr); /* nic ip */ + + addr.ip = bootplayer->sip; /* boot server ip */ + pxe_set_ip(PXE_IP_SERVER, &addr); + + /* setting next to default ip (boot server ip) */ + /* nameserver ip*/ + pxe_set_ip(PXE_IP_NAMESERVER, &addr); + /* gateway ip */ + pxe_set_ip(PXE_IP_GATEWAY, &addr); + - /* nameserver ip, default to 192.168.0.1 */ - pxe_set_ip32(PXE_IP_NAMESERVER, 0x0100a8c0); - /* gateway ip, default to 192.168.0.1 */ - pxe_set_ip32(PXE_IP_GATEWAY, 0x0100a8c0); + /* web server */ + addr.ip = 0; + pxe_set_ip(PXE_IP_WWW, &addr); + + addr.ip = 0xffffffff; /* netmask, default to 255.255.255.0 */ - pxe_set_ip32(PXE_IP_NETMASK, 0x00ffffff); + pxe_set_ip(PXE_IP_NETMASK, &addr); /* broadcast address, default to 255.255.255.255 */ - pxe_set_ip32(PXE_IP_BROADCAST, 0xffffffff); - /* web server */ - pxe_set_ip32(PXE_IP_WWW, 0x0); + pxe_set_ip(PXE_IP_BROADCAST, &addr); /* initing modules */ pxe_arp_init(); @@ -345,7 +301,7 @@ pxe_dhcp_query(bootplayer->ident); #endif /* initing route tables, using DHCP reply data */ - pxe_ip_route_init(pxe_get_ip32(PXE_IP_GATEWAY)); + pxe_ip_route_init(pxe_get_ip(PXE_IP_GATEWAY)); #ifdef PXE_CORE_DEBUG printf("pxe_core_init(): ended.\n"); @@ -492,13 +448,14 @@ t_PXENV_UNDI_SHUTDOWN *undi_shutdown_p = (t_PXENV_UNDI_SHUTDOWN *)scratch_buffer; - -/* pxe_core_call(PXENV_UNDI_SHUTDOWN); +/* + pxe_core_call(PXENV_UNDI_SHUTDOWN); pxe_core_call(PXENV_UNLOAD_STACK); */ +#ifndef PXE_CORE_STATIC_BUFFERS pxe_free(scratch_buffer); pxe_free(data_buffer); - +#endif /* make pxe_core_call() unavailable */ pxe_state = PXE_DOWN; @@ -1030,22 +987,22 @@ return (const MAC_ADDR *)&nic_mac; } -/* pxe_get_ip32() - returns ip related data, specified by id parameter +/* pxe_get_ip() - returns ip related data, specified by id parameter * in: * id - id of needed data (PXE_IP_ constants) * out: * associated with this id value */ -uint32_t -pxe_get_ip32(uint8_t id) +const PXE_IPADDR * +pxe_get_ip(uint8_t id) { if (id < PXE_IP_MAX) - return (core_ips[id].ip); + return (&core_ips[id]); return (0); } -/* pxe_set_ip32() - sets ip related data, specified by id parameter +/* pxe_set_ip() - sets ip related data, specified by id parameter * in: * id - id of needed data (PXE_IP_ constants) * new_ip - new uint32_t data @@ -1053,10 +1010,10 @@ * none */ void -pxe_set_ip32(uint8_t id, uint32_t new_ip) +pxe_set_ip(uint8_t id, const PXE_IPADDR *new_ip) { if (id < PXE_IP_MAX) { - core_ips[id].ip = new_ip; + pxe_memcpy(new_ip, &core_ips[id], sizeof(PXE_IPADDR)); } } ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#21 (text+ko) ==== @@ -37,9 +37,16 @@ #include #include "../libi386/pxe.h" +#include "pxe_ip.h" #define PXE_BUFFER_SIZE 0x0800 +/* define to use statically allocated buffers */ +#define PXE_CORE_STATIC_BUFFERS + +/* packet states for packets, used by pxe_core. + * Currently (only one packet at any time) - is unused. + */ #define PXE_PACKET_STATE_FREE 0 #define PXE_PACKET_STATE_USING 1 @@ -134,8 +141,8 @@ #define PXE_IP_WWW 7 #define PXE_IP_ROOT 7 #define PXE_IP_MAX 8 -uint32_t pxe_get_ip32(uint8_t id); -void pxe_set_ip32(uint8_t id, uint32_t ip); +const PXE_IPADDR *pxe_get_ip(uint8_t id); +void pxe_set_ip(uint8_t id, const PXE_IPADDR *ip); /* returns time in seconds */ time_t pxe_get_secs(); ==== //depot/projects/soc2007/taleks-pxe_http/pxe_dhcp.c#8 (text+ko) ==== @@ -29,6 +29,7 @@ #include "pxe_core.h" #include "pxe_dhcp.h" +#include "pxe_ip.h" #ifdef PXE_BOOTP_USE_LIBSTAND #include @@ -96,19 +97,19 @@ case PXE_DHCP_OPT_NETMASK: printf("netmask: %d.%d.%d.%d\n", *(p + 1), *(p + 2), *(p + 3), *(p + 4)); - result->netmask = *((uint32_t *)(p + 1)); + result->netmask.ip = *((uint32_t *)(p + 1)); break; case PXE_DHCP_OPT_ROUTER: printf("first router: %d.%d.%d.%d\n", *(p + 1), *(p + 2), *(p + 3), *(p + 4)); - result->gw = *((uint32_t *)(p + 1)); + result->gw.ip = *((uint32_t *)(p + 1)); break; case PXE_DHCP_OPT_NAMESERVER: printf("first nameserver: %d.%d.%d.%d\n", *(p + 1), *(p + 2), *(p + 3), *(p + 4)); - result->ns = *((uint32_t *)(p + 1)); + result->ns.ip = *((uint32_t *)(p + 1)); break; case PXE_DHCP_OPT_TYPE: @@ -122,7 +123,7 @@ case PXE_DHCP_OPT_WWW_SERVER: printf("www server ip: %d.%d.%d.%d\n", *(p + 1), *(p + 2), *(p + 3), *(p + 4)); - result->www = *((uint32_t *)(p + 1)); + result->www.ip = *((uint32_t *)(p + 1)); break; case PXE_DHCP_OPT_ROOTPATH: @@ -154,7 +155,7 @@ case PXE_DHCP_OPT_BROADCAST_IP: printf("broadcast: %d.%d.%d.%d\n", *(p + 1), *(p + 2), *(p + 3), *(p + 4)); - result->bcast_addr = *((uint32_t *)(p + 1)); + result->bcast_addr.ip = *((uint32_t *)(p + 1)); break; case PXE_DHCP_OPT_ID: @@ -205,7 +206,9 @@ dhcp_hdr->hops = 0; dhcp_hdr->secs = 0; dhcp_hdr->xid = wait_data->xid; - dhcp_hdr->ciaddr = pxe_get_ip32(PXE_IP_MY); + + const PXE_IPADDR *my = pxe_get_ip(PXE_IP_MY); + dhcp_hdr->ciaddr = my->ip; dhcp_hdr->magic = htonl(PXE_MAGIC_DHCP); pxe_memcpy(pxe_get_mymac(), dhcp_hdr->chaddr, dhcp_hdr->hlen); @@ -233,10 +236,10 @@ options = add_option(options, PXE_DHCP_OPT_TYPE, &message_type, 1); /* requesting for my ip */ - uint32_t client_ip = pxe_get_ip32(PXE_IP_MY); + const PXE_IPADDR *client_ip = pxe_get_ip(PXE_IP_MY); options = add_option(options, PXE_DHCP_OPT_REQUEST_IP, - &client_ip, sizeof(client_ip)); + &(client_ip->ip), sizeof(client_ip->ip)); /* end of options */ options = add_option(options, PXE_DHCP_OPT_END, NULL, 0); @@ -258,7 +261,10 @@ return (0); } - if (send_size != pxe_sendto(socket, PXE_IP_BCAST, PXE_DHCP_SERVER_PORT, + PXE_IPADDR bcast; + bcast.ip = PXE_IP_BCAST; + + if (send_size != pxe_sendto(socket, &bcast, PXE_DHCP_SERVER_PORT, wait_data->data, send_size)) { printf("dhcp_send_request(): failed to send DHCP request.\n"); @@ -314,20 +320,20 @@ } /* if successfuly parsed, setting appropriate ip data */ - if (opts_result.ns) - pxe_set_ip32(PXE_IP_NAMESERVER, opts_result.ns); + if (opts_result.ns.ip) + pxe_set_ip(PXE_IP_NAMESERVER, &opts_result.ns); - if (opts_result.gw) - pxe_set_ip32(PXE_IP_GATEWAY, opts_result.gw); + if (opts_result.gw.ip) + pxe_set_ip(PXE_IP_GATEWAY, &opts_result.gw); - if (opts_result.netmask) - pxe_set_ip32(PXE_IP_NETMASK, opts_result.netmask); + if (opts_result.netmask.ip) + pxe_set_ip(PXE_IP_NETMASK, &opts_result.netmask); - if (opts_result.bcast_addr) - pxe_set_ip32(PXE_IP_BROADCAST, opts_result.bcast_addr); + if (opts_result.bcast_addr.ip) + pxe_set_ip(PXE_IP_BROADCAST, &opts_result.bcast_addr); - if (opts_result.www) - pxe_set_ip32(PXE_IP_WWW, opts_result.www); + if (opts_result.www.ip) + pxe_set_ip(PXE_IP_WWW, &opts_result.www); if (opts_result.rootpath[0]) strcpy(PXENFSROOTPATH, opts_result.rootpath); @@ -423,10 +429,28 @@ printf("pxe_dhcp_query(): starting libstand bootp()\n"); bootp(pxe_sock, BOOTP_PXE); - pxe_set_ip32(PXE_IP_NAMESERVER, nameip.s_addr); - pxe_set_ip32(PXE_IP_GATEWAY, gateip.s_addr); - pxe_set_ip32(PXE_IP_NETMASK, netmask); - pxe_set_ip32(PXE_IP_ROOT, rootip.s_addr); + /* setting pxe_core variables */ + PXE_IPADDR addr; + + addr.ip = nameip.s_addr; + pxe_set_ip(PXE_IP_NAMESERVER, &addr); + + addr.ip = netmask; + pxe_set_ip(PXE_IP_NETMASK, &addr); + + addr.ip = rootip.s_addr; + pxe_set_ip(PXE_IP_ROOT, &addr); + + /* "network route". direct connect for those addresses */ + pxe_ip_route_add(pxe_get_ip(PXE_IP_MY), netmask, NULL); + + addr.ip = gateip.s_addr; + pxe_set_ip(PXE_IP_GATEWAY, &addr); + + /* need update gateway information, cause it's already set to default */ + pxe_ip_route_default(&addr); + + } #endif /* PXE_BOOTP_USE_LIBSTAND */ ==== //depot/projects/soc2007/taleks-pxe_http/pxe_dhcp.h#8 (text+ko) ==== @@ -37,7 +37,7 @@ /* define if want use bootp() instead of functions, provided by * pxe_dhcp module */ -/* #define PXE_BOOTP_USE_LIBSTAND */ +#define PXE_BOOTP_USE_LIBSTAND /* DHCP request/reply packet header */ typedef struct pxe_dhcp_hdr { @@ -123,11 +123,11 @@ } PXE_DHCP_WAIT_DATA; typedef struct pxe_dhcp_parse_result { - uint32_t netmask; - uint32_t bcast_addr; - uint32_t ns; - uint32_t gw; - uint32_t www; + PXE_IPADDR netmask; + PXE_IPADDR bcast_addr; + PXE_IPADDR ns; + PXE_IPADDR gw; + PXE_IPADDR www; char rootpath[256]; uint8_t message_type; } PXE_DHCP_PARSE_RESULT; ==== //depot/projects/soc2007/taleks-pxe_http/pxe_dns.c#7 (text+ko) ==== @@ -33,6 +33,8 @@ #include "pxe_ip.h" #include "pxe_sock.h" +static PXE_DNS_WAIT_DATA static_wait_data; + /* write_question_for()- writes labels for provided domain name * in: * question - where to write @@ -85,18 +87,19 @@ /* create_dns_packet()- creates DNS request packet * in: - * name - domain name to resolve - * data - buffer for request packet. - * max_size - size of buffer [NOT IMPLEMENTED] + * wd - pointer to wait data structure * id - request id to distinguish requests * out: * 0 - failed * >0 - size of created packet */ int -create_dns_packet(char *name, void *data, int max_size, uint16_t id, - uint16_t query_type) +create_dns_packet(PXE_DNS_WAIT_DATA *wd, uint16_t id, uint16_t query_type) { + char *name = wd->name; + void *data = wd->data; + int max_size = wd->size; + PXE_DNS_REQUEST_HDR *request = (PXE_DNS_REQUEST_HDR *)data; pxe_memset(request, 0, sizeof(PXE_DNS_REQUEST_HDR)); @@ -175,17 +178,19 @@ /* parse_dns_reply() - parses reply from DNS server * in: - * data - pointer to buffer, containing packet data - * size - buffer size - * name - domain name to resolve - * canme - where to store cname if found. + * wd - pointer to waiting data structure * out: * 0 - parsing failed, or packet has no information about our domain - * ip - success, 32bit ip4 address + * 1 - success, wait_data->result contains ip */ -uint32_t -parse_dns_reply(uint8_t* data, int size, char *name, uint16_t id, uint8_t *cname) +int +parse_dns_reply(PXE_DNS_WAIT_DATA *wd) { + uint8_t *data = wd->data; + int size = wd->size; + char *name = wd->name; + uint16_t id = wd->id; + uint8_t *cname = wd->cname; cname[0] = 0; @@ -331,19 +336,15 @@ } /* answer points to rdata = ip4 */ - PXE_IPADDR ret; - - ret.octet[0] = answer[0]; - ret.octet[1] = answer[1]; - ret.octet[2] = answer[2]; - ret.octet[3] = answer[3]; + + wd->result.octet[0] = answer[0]; + wd->result.octet[1] = answer[1]; + wd->result.octet[2] = answer[2]; + wd->result.octet[3] = answer[3]; #ifdef PXE_DEBUG - printf(" = %d.%d.%d.%d\n", - ret.octet[0], ret.octet[1], - ret.octet[2], ret.octet[3] - ); + printf(" = %s\n", inet_ntoa(wd->result.ip)); #endif - return ret.ip; + return (1); } #ifdef PXE_DEBUG @@ -433,8 +434,8 @@ return (0); } - uint16_t size = create_dns_packet(wait_data->name, wait_data->data, - wait_data->size, wait_data->id, PXE_DNS_QUERY_A); + uint16_t size = create_dns_packet(wait_data, wait_data->id, + PXE_DNS_QUERY_A); if (size == 0) { printf("dns_request(): failed to create request.\n"); @@ -442,7 +443,7 @@ return (0); } - if (size != pxe_sendto(socket, pxe_get_ip32(PXE_IP_NAMESERVER), 53, + if (size != pxe_sendto(socket, pxe_get_ip(PXE_IP_NAMESERVER), 53, wait_data->data, size)) { printf("dns_request(): failed to send DNS request.\n"); @@ -494,12 +495,9 @@ printf("dns_await(): Received DNS reply (%d bytes).\n", size); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 7 16:30:18 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3408016A421; Tue, 7 Aug 2007 16:30:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E9EEA16A418 for ; Tue, 7 Aug 2007 16:30:17 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E24B413C46C for ; Tue, 7 Aug 2007 16:30:17 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77GUHBQ087415 for ; Tue, 7 Aug 2007 16:30:17 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77GUHC5087412 for perforce@freebsd.org; Tue, 7 Aug 2007 16:30:17 GMT (envelope-from gonzo@FreeBSD.org) Date: Tue, 7 Aug 2007 16:30:17 GMT Message-Id: <200708071630.l77GUHC5087412@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124836 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, 07 Aug 2007 16:30:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=124836 Change 124836 by gonzo@gonzo_jeeves on 2007/08/07 16:30:09 o We use softfloat stuff from libgcc, so drop softfloat support for mips in libc. Affected files ... .. //depot/projects/mips2/src/lib/libc/Makefile#5 edit Differences ... ==== //depot/projects/mips2/src/lib/libc/Makefile#5 (text+ko) ==== @@ -62,7 +62,7 @@ .include "${.CURDIR}/rpc/Makefile.inc" .include "${.CURDIR}/uuid/Makefile.inc" .include "${.CURDIR}/xdr/Makefile.inc" -.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "mips" +.if ${MACHINE_ARCH} == "arm" .include "${.CURDIR}/softfloat/Makefile.inc" .endif .if ${MK_NIS} != "no" From owner-p4-projects@FreeBSD.ORG Tue Aug 7 16:30:18 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B727516A4C9; Tue, 7 Aug 2007 16:30:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FAD116A4D0 for ; Tue, 7 Aug 2007 16:30:18 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 520DB13C474 for ; Tue, 7 Aug 2007 16:30:18 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77GUISG087423 for ; Tue, 7 Aug 2007 16:30:18 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77GUHE6087418 for perforce@freebsd.org; Tue, 7 Aug 2007 16:30:17 GMT (envelope-from zec@FreeBSD.org) Date: Tue, 7 Aug 2007 16:30:17 GMT Message-Id: <200708071630.l77GUHE6087418@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124837 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, 07 Aug 2007 16:30:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=124837 Change 124837 by zec@zec_tpx32 on 2007/08/07 16:30:15 Initial netgraph wormhole implementation. A "worm" node can be used to establish a datapath between independent netgraph address spaces, i.e. between two virtual network stacks. A wormhole path is defined by a pair of wormhole nodes each residing in a different stack instance. Each node accepts only a single arbitrarily named hook. Once a wormhole datapath is established, all data messages received on the local hook will be forwarded to the hook connected to the remote node, and vice versa. "worm" nodes understand two node-specific messages: "peer" and "status". The "peer" message is used to specify the remote endpoint in form of "remote_worm_node_name@remote_vnet_name", or to fetch the current peering configuration if invoked without arguments. Both involved nodes must configure their peerings before the datapath will be established. The "status" command can be used to check the current state of the wormhole path, which can be one of unconfigured, pending or active. Affected files ... .. //depot/projects/vimage/src/sys/modules/netgraph/Makefile#4 edit .. //depot/projects/vimage/src/sys/netgraph/ng_wormhole.c#1 add .. //depot/projects/vimage/src/sys/netgraph/vnetgraph.h#6 edit .. //depot/projects/vimage/src/sys/sys/vimage.h#32 edit Differences ... ==== //depot/projects/vimage/src/sys/modules/netgraph/Makefile#4 (text+ko) ==== @@ -51,7 +51,8 @@ tty \ UI \ vjc \ - vlan + vlan \ + wormhole .if ${MACHINE_ARCH} == "i386" _sync_ar= sync_ar ==== //depot/projects/vimage/src/sys/netgraph/vnetgraph.h#6 (text+ko) ==== @@ -50,6 +50,7 @@ ng_ID_t _nextID; struct unrhdr *_ng_iface_unit; struct unrhdr *_ng_eiface_unit; + struct unrhdr *_ng_wormhole_unit; }; #endif @@ -59,5 +60,6 @@ #define V_nextID VNET_NETGRAPH(nextID) #define V_ng_iface_unit VNET_NETGRAPH(ng_iface_unit) #define V_ng_eiface_unit VNET_NETGRAPH(ng_eiface_unit) +#define V_ng_wormhole_unit VNET_NETGRAPH(ng_wormhole_unit) #endif /* !_NETGRAPH_VNETGRAPH_H_ */ ==== //depot/projects/vimage/src/sys/sys/vimage.h#32 (text+ko) ==== @@ -68,6 +68,7 @@ #define V_CPU 3 #define VNET_MOD_NONE -1 +/*statefull modules */ #define VNET_MOD_NET 0 #define VNET_MOD_NETGRAPH 1 #define VNET_MOD_INET 2 @@ -79,7 +80,8 @@ #define VNET_MOD_ALTQ 8 #define VNET_MOD_IPX 9 #define VNET_MOD_ATALK 10 - +/* stateless modules */ +#define VNET_MOD_NG_WORMHOLE 19 #define VNET_MOD_NG_ETHER 20 #define VNET_MOD_NG_IFACE 21 #define VNET_MOD_NG_EIFACE 22 From owner-p4-projects@FreeBSD.ORG Tue Aug 7 16:31:20 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7FCC716A420; Tue, 7 Aug 2007 16:31:20 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4577416A419 for ; Tue, 7 Aug 2007 16:31:20 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 257DB13C467 for ; Tue, 7 Aug 2007 16:31:20 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77GVKv2087608 for ; Tue, 7 Aug 2007 16:31:20 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77GVJRb087604 for perforce@freebsd.org; Tue, 7 Aug 2007 16:31:19 GMT (envelope-from gonzo@FreeBSD.org) Date: Tue, 7 Aug 2007 16:31:19 GMT Message-Id: <200708071631.l77GVJRb087604@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124838 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, 07 Aug 2007 16:31:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=124838 Change 124838 by gonzo@gonzo_jeeves on 2007/08/07 16:30:46 o Add semicolon, otherwise siglongjmp is local to libc. Affected files ... .. //depot/projects/mips2/src/lib/libc/mips/Symbol.map#2 edit Differences ... ==== //depot/projects/mips2/src/lib/libc/mips/Symbol.map#2 (text+ko) ==== @@ -20,7 +20,7 @@ setjmp; longjmp; sigsetjmp; - siglongjmp + siglongjmp; htonl; __htonl; htons; From owner-p4-projects@FreeBSD.ORG Tue Aug 7 18:39:00 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D5CB16A41B; Tue, 7 Aug 2007 18:39:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A090216A419 for ; Tue, 7 Aug 2007 18:38:59 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 98A2C13C459 for ; Tue, 7 Aug 2007 18:38:59 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77IcxtY006473 for ; Tue, 7 Aug 2007 18:38:59 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77Icx3B006470 for perforce@freebsd.org; Tue, 7 Aug 2007 18:38:59 GMT (envelope-from mharvan@FreeBSD.org) Date: Tue, 7 Aug 2007 18:38:59 GMT Message-Id: <200708071838.l77Icx3B006470@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124841 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, 07 Aug 2007 18:39:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=124841 Change 124841 by mharvan@mharvan_bike-planet on 2007/08/07 18:38:46 ICMP plugin now correctly implements the polling strategy - design with normal and urgent data libevent events firign with EV_TIMEOUT have to be re-added Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.src/Makefile#7 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/README#3 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin.h#4 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#5 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#7 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#6 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.c#2 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.c.freebsd#2 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.c.linux#2 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.h#2 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#14 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.h#8 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/Makefile#7 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/README#3 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin.h#4 (text+ko) ==== @@ -69,7 +69,7 @@ * Send the data. * Return: number of bytes sent, -1 on error. */ -int plugin_send(plugint *pl, char *data, int len); +int plugin_send(plugint *pl, char *data, int len, int data_type); #endif ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#5 (text+ko) ==== @@ -7,32 +7,36 @@ * server always queues one packet at a time from the daemon. */ +#include #include +#include #include -#include -#include -#include -#include -#include - -#include -#include -#include +#include +#include +#include #include - #include #include #include #include - +#include +#include +#include +#include +#include +#include #include -#include -#include -#include +#include +#include #include "tunneld.h" #include "plugin.h" +/* + * how often should an empty request be sent to the server - This is + * useful when the server has data to send but the client doesn't. + */ +#define PLUGIN_ICMP_KEEP_ALIVE 1 typedef struct { int fd; /* udp socket to the other endpoint */ @@ -51,12 +55,22 @@ static struct sockaddr_in dst_addr; /* address of the other endpoint */ static socklen_t dst_addr_len = sizeof(dst_addr); -char *queued_data = NULL; -int queued_data_len = 0; -u_int16_t id = 0; -u_int16_t seq = 0; +/* normal data queue - regular traffic from the tun interface, ping request */ +char *queued_normal_data = NULL; +int queued_normal_data_len = 0; +/* urgent data queue - ping replies */ +char *queued_urgent_data = NULL; +int queued_urgent_data_len = 0; +u_int16_t id = 0; /* ICMP echo ID */ +u_int16_t seq = 0; /* ICMP echo SEQ */ +/* previous value of net.inet.icmp.echo_user sysctl variable */ int old_sysctl; size_t old_sysctl_size = sizeof(old_sysctl); +struct event ev; /* used by libevent to monitor our fd */ +int data_sent_after_last_receive = 0; /* has the client sent data + * after the last reply from the + * server was received? + */ u_int16_t in_cksum(u_int16_t *addr, int len) { @@ -175,6 +189,7 @@ struct addrinfo hints, *ai; int n; int new_sysctl = 1; + int fd_flags; plugin_icmp_datat *data = (plugin_icmp_datat*) pl->data; fprintf(stderr, "starting plugin_initialize...\n"); @@ -210,14 +225,23 @@ data->fd = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP); if (data->fd != -1) { - register_select_fd(data->fd, plugin_receive, pl); + /* non-blocking i/o */ + fd_flags = fcntl(data->fd, F_GETFL, 0); + if (fd_flags == -1) + errx(EX_OSFILE, "Failed to get flags from the icmp socket fd\n"); + fcntl(data->fd, F_SETFL, fd_flags|O_NONBLOCK); + if (server) { + register_select_fd(data->fd, plugin_receive, pl, -1); data->state = PLUGIN_STATE_INITIALIZED; } else { + /* the client should send keep-alive request to the server */ + register_select_fd(data->fd, plugin_receive, pl, + PLUGIN_ICMP_KEEP_ALIVE); data->state = PLUGIN_STATE_CONNECTED; } - if (data->server) { + if (server) { #ifdef __FreeBSD__ if (0 != sysctlbyname("net.inet.icmp.echo_user", &old_sysctl, &old_sysctl_size, @@ -259,10 +283,12 @@ char* packet; struct my_icmp_hdr *icmp; + printf("send_icmp_pkt(): len: %d\n", len); + packet = malloc(sizeof(struct my_icmp_hdr) + len); if (!packet) { fprintf(stderr, "plugin_send: out of memory\n"); - return PLUGIN_SEND_ERROR_MALLOC; + return SEND_ERROR_MALLOC; } memset (packet, 0, sizeof(struct my_icmp_hdr) + len); memcpy (packet+sizeof(struct my_icmp_hdr), data, len); @@ -303,130 +329,177 @@ char serv[NI_MAXSERV]; struct my_icmp_hdr *icmp = NULL; + printf("plugin_receive(ev_type: 0x%x)\n", ev_type); + if (! (data->state == PLUGIN_STATE_CONNECTED || data->state == PLUGIN_STATE_INITIALIZED)) { return; } - fprintf(stderr, "data on plugin fd\n"); + /* upon timeout send another request to the server */ + if (ev_type == EV_TIMEOUT) { + register_select_fd(data->fd, plugin_receive, arg, + PLUGIN_ICMP_KEEP_ALIVE); + //goto send_request; + } n = recvfrom(data->fd, packet, sizeof(packet), 0, (struct sockaddr *) &from, &fromlen); - if (data->state != PLUGIN_STATE_CONNECTED) { - /* client connecting for the first time */ - - if (getnameinfo((struct sockaddr *) &from, fromlen, - host, sizeof(host), serv, sizeof(serv), - NI_NUMERICHOST | NI_DGRAM) ) { - fprintf(stderr, "getnameinfo failed: %s\n", - gai_strerror(errno)); - } else { - fprintf(stderr, "received traffic from client %s:%s\n", - host, serv); + printf("plugin_receive: read %d bytes\n", n); + + /* process the packet */ + if (n > -1) { + /* check whether the packet is for us */ + if (n < 20 + sizeof(struct my_icmp_hdr)) { + warnx("plugin_icmp: plugin_receive: received data too short " + "to contain IP and ICMP headers\n"); + goto pkt_not_for_us; } + /* IP header */ + packetp += 20; + n -= 20; + /* ICMP header */ + //icmp = (struct my_icmp_header*)packetp; + icmp = (void*)packetp; + packetp += sizeof(struct my_icmp_hdr); + n -= sizeof(struct my_icmp_hdr); - memcpy(&dst_addr, &from, fromlen); - dst_addr_len = fromlen; - data->state = PLUGIN_STATE_CONNECTED; - - } else { - // TODO: fix the comparison - if (n == -1) { - report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); - return; - } - if (memcmp(&dst_addr, &from, dst_addr_len) != 0) { + /* check values in the ICMP header */ + if (//(ntohs(icmp->id) == id ) && + icmp->type != ((data->server)? ICMP_ECHO : ICMP_ECHOREPLY)) + //icmp->type != ((data->server)? 123 : ICMP_ECHOREPLY)) goto pkt_not_for_us; - } - if (n < 20 + sizeof(struct my_icmp_hdr)) { - warnx("plugin_icmp: plugin_receive: received data too short " - "to contain IP and ICMP headers\n"); - } else { - /* skip the IP header */ - packetp += 20; - n -= 20; + /* payload */ + if (data->state != PLUGIN_STATE_CONNECTED) { + /* client connecting for the first time */ - /* skip the icmp header */ - //icmp = (struct my_icmp_header*)packetp; - icmp = (void*)packetp; - packetp += sizeof(struct my_icmp_hdr); - n -= sizeof(struct my_icmp_hdr); + if (getnameinfo((struct sockaddr *) &from, fromlen, + host, sizeof(host), serv, sizeof(serv), + NI_NUMERICHOST | NI_DGRAM) ) { + fprintf(stderr, "getnameinfo failed: %s\n", + gai_strerror(errno)); + } else { + fprintf(stderr, "received traffic from client %s\n", host); + } - /* check values in the ICMP header */ - if (//(ntohs(icmp->id) == id ) && - icmp->type == ((data->server)? - ICMP_ECHO : ICMP_ECHOREPLY)) - process_data_from_plugin(pl, packetp, n); - // else // pkt not for us, send back an echo reply - // goto pkt_not_for_us; + //if xxx + memcpy(&dst_addr, &from, fromlen); + dst_addr_len = fromlen; + data->state = PLUGIN_STATE_CONNECTED; + // else goto pkt_no_for_us + } else { + if (memcmp(&dst_addr, &from, dst_addr_len) != 0) { + goto pkt_not_for_us; + } + + //if (ntohs(icmp->id) != id ) { + // pkt not for us, send back an echo reply + // goto pkt_not_for_us; + } + } + data_sent_after_last_receive = 0; + if (n > 0) + process_data_from_plugin(pl, packetp, n); + + // send_request: + /* if no data was queued then ask the daemon for more data */ + if (queued_urgent_data == NULL && queued_normal_data == NULL) + plugin_report(pl, REPORT_READY_TO_SEND); - /* use the reply to send data */ - if (queued_data != NULL) { - send_icmp_pkt(pl, ntohs(icmp->id), ntohs(icmp->seq), - queued_data, queued_data_len); - free(queued_data); - queued_data = NULL; - queued_data_len = 0; - report_plugin_error(pl, PLUGIN_ERROR_PKT_SENT); - } else if (!data->server) { /* client */ - /* client should send back an empty request - * to give the server a chance to send data back - */ - if (seq == 65535) - seq = 0; + /* use the reply to send data */ + if (queued_urgent_data != NULL || queued_normal_data != NULL) { + if (queued_urgent_data != NULL) { + send_icmp_pkt(pl, ntohs(icmp->id), ntohs(icmp->seq), + queued_urgent_data, queued_urgent_data_len); + free(queued_urgent_data); + queued_urgent_data = NULL; + queued_urgent_data_len = 0; + } else { + send_icmp_pkt(pl, ntohs(icmp->id), ntohs(icmp->seq), + queued_normal_data, queued_normal_data_len); + free(queued_normal_data); + queued_normal_data = NULL; + queued_normal_data_len = 0; + } + } + /* + * The client should send back an empty request if there was not + * data to sent. This allows the server to send more data back. + */ + if (!data->server && !data_sent_after_last_receive) { + if (seq == 65535) + seq = 0; else seq++; - send_icmp_pkt(pl, id, seq, NULL, 0); - } - } - return; + send_icmp_pkt(pl, id, seq, NULL, 0); + } + return; pkt_not_for_us: fprintf(stderr, "discarding data from a different client\n"); - } } int plugin_is_ready_to_send() { - if (queued_data == NULL) - return 1; + if (queued_normal_data == NULL) + return WILL_QUEUE; else - return 0; + return QUEUE_FULL; } int -plugin_send(plugint *pl, char *data, int len) +plugin_send(plugint *pl, char *data, int len, int data_type) { + char **queued_data; + int *queued_data_len; + plugin_icmp_datat *datapl = (plugin_icmp_datat*) pl->data; int n = 0; + printf("plugin_send(): urgent_data: %d, normal_data: %d\n", + queued_urgent_data_len, queued_normal_data_len); + if (datapl->state != PLUGIN_STATE_CONNECTED) { fprintf(stderr, "no client connected yet, discarding data\n"); - return PLUGIN_SEND_ERROR; + return SEND_ERROR; } - if (datapl->server) { /* server */ - if (queued_data == NULL) { - queued_data = malloc(len); - if (queued_data == NULL) { - return PLUGIN_SEND_ERROR_MALLOC; + if (datapl->server) { /* server - queue the data */ + switch (data_type) { + case NORMAL_DATA: + queued_data = &queued_normal_data; + queued_data_len = &queued_normal_data_len; + goto process_queued_data; + case URGENT_DATA: + queued_data = &queued_urgent_data; + queued_data_len = &queued_urgent_data_len; + process_queued_data: + if (*queued_data == NULL) { + *queued_data = malloc(len); + if (*queued_data == NULL) { + return SEND_ERROR_MALLOC; + } + memcpy(*queued_data, data, len); + *queued_data_len = len; + return SEND_PKT_QUEUED; + } else { + return SEND_ERROR_QUEUE_FULL; } - memcpy(queued_data, data, len); - queued_data_len = len; - return PLUGIN_SEND_PKT_QUEUED; - } else { - return PLUGIN_SEND_ERROR_QUEUE_FULL; + default: + errx(EX_SOFTWARE, "plugin_icmp: plugin_send(): invalid data_type " + "0x%x\n", data_type); } - } else { /* client */ + } else { /* client - send the data straight away */ n = send_icmp_pkt(pl, id, seq, data, len); seq++; fprintf(stderr, "send_icmp_pkt: send returned %d\n", n); - if (n > 0) - return PLUGIN_SEND_PKT_SENT; - else - return PLUGIN_SEND_ERROR; + if (n > 0) { + data_sent_after_last_receive = 1; + return SEND_PKT_SENT; + } else + return SEND_ERROR; } } ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#7 (text+ko) ==== @@ -1,15 +1,14 @@ +#include +#include +#include #include -#include #include -#include +#include #include -#include -#include - #include #include -#include -#include +#include +#include //#include #include "tunneld.h" @@ -234,7 +233,7 @@ } if (data->fd != -1) { - register_select_fd(data->fd, plugin_receive, pl); + register_select_fd(data->fd, plugin_receive, pl, -1); return 0; } else return -1; } @@ -258,7 +257,7 @@ //fprintf(stderr, "state: %d\n", data->state); if (! (data->state == PLUGIN_STATE_CONNECTED || data->state == PLUGIN_STATE_INITIALIZED)) { - report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); + plugin_report(pl, REPORT_ERROR_RECEIVE); return; } @@ -267,15 +266,15 @@ new_fd = tcp_accept(fd); if (new_fd == -1) { fprintf(stderr, "accept failed\n"); - report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); + plugin_report(pl, REPORT_ERROR_RECEIVE); } else { unregister_select_fd(data->fd); tcp_close(data->fd); data->fd = new_fd; - register_select_fd(data->fd, plugin_receive, pl); + register_select_fd(data->fd, plugin_receive, pl, -1); data->state = PLUGIN_STATE_CONNECTED; fprintf(stderr, "new client connection accepted\n"); - //report_plugin_error(pl, PLUGIN_ERROR_SUCCESS); + //plugin_report(pl, REPORT_SUCCESS); } } else { /* get length of the next packet */ @@ -293,7 +292,7 @@ } } process_data_from_plugin(pl, packet, n); - //report_plugin_error(pl, PLUGIN_ERROR_SUCCESS); + //plugin_report(pl, REPORT_SUCCESS); /* packet too large */ } else { fprintf(stderr, "client sent a too large packet (len: %d)\n", @@ -312,21 +311,21 @@ /* client disconnected */ unregister_select_fd(fd); data->state = PLUGIN_STATE_DISCONNECTED; - report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); + plugin_report(pl, REPORT_ERROR_RECEIVE); } } int plugin_is_ready_to_send() { - return 1; + return WILL_SEND_IMMEDIATELY; } /* * BUG: the write might not send the whole buffer in one go, should check * and call again, but then the receiver would have to reassemble packets */ -int plugin_send(plugint *pl, char *data, int len) { +int plugin_send(plugint *pl, char *data, int len, int data_type) { plugin_tcp_datat *datapl = (plugin_tcp_datat*) pl->data; int n = 0; @@ -343,8 +342,8 @@ //fprintf(stderr, "plugin_send: write returned %d\n", n); } if (n < 0 || (len != 0 && n == 0) ) { - report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); + plugin_report(pl, REPORT_ERROR_RECEIVE); } //return n; - return PLUGIN_SEND_PKT_SENT; + return SEND_PKT_SENT; } ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#6 (text+ko) ==== @@ -169,7 +169,7 @@ if (server) { data->fd = udp_open(port); if (data->fd != -1) { - register_select_fd(data->fd, plugin_receive, pl); + register_select_fd(data->fd, plugin_receive, pl, -1); data->state = PLUGIN_STATE_INITIALIZED; return 0; } @@ -178,10 +178,10 @@ if (data->fd != -1) { //n = send(fd,"test",5,0); //if (n == 5) { - register_select_fd(data->fd, plugin_receive, pl); - data->state = PLUGIN_STATE_CONNECTED; - return 0; - //} + register_select_fd(data->fd, plugin_receive, pl, -1); + data->state = PLUGIN_STATE_CONNECTED; + return 0; + //} } } return -1; @@ -250,10 +250,10 @@ int plugin_is_ready_to_send() { - return 1; + return WILL_SEND_IMMEDIATELY; } -int plugin_send(plugint *pl, char *data, int len) { +int plugin_send(plugint *pl, char *data, int len, int data_type) { plugin_udp_datat *datapl = (plugin_udp_datat*) pl->data; int n = 0; if (datapl->state != PLUGIN_STATE_CONNECTED) { @@ -263,5 +263,5 @@ n = send(datapl->fd, data, len, 0); fprintf(stderr, "plugin_send: send returned %d\n", n); } - return PLUGIN_SEND_PKT_SENT; + return SEND_PKT_SENT; } ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.c#2 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.c.freebsd#2 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.c.linux#2 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tun_dev.h#2 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#14 (text+ko) ==== @@ -40,7 +40,7 @@ /* max transfered unit - encapsulated packet size */ #define MTU 1500 /* how many pings can fail before the plugin is declared broken */ -#define PING_INTERVAL 20 +#define PING_INTERVAL 7 #define PING_FAIL 3 int server = 0; /* are we a server or a client? */ @@ -55,7 +55,7 @@ struct event timer_ev; /* sequence number for the echo request */ -uint echo_seq = 0; +uint8_t echo_seq = 0; /* fragment id for the next packet to be fragmented */ frag_hdr_t frag_hdr; @@ -83,9 +83,13 @@ } fdlt; fdlt *fdl; -void register_select_fd(int fd, - void (*ev_callback)(int, short, void *arg), void *arg) +void +register_select_fd(int fd, + void (*ev_callback)(int, short, void *arg), + void *arg, long tv_sec) { + struct timeval tv; + fdlt* nfdl = malloc(sizeof(fdlt)); if (!nfdl) { fprintf(stderr, "failed to malloc an fdlt: out of mem!\n"); @@ -95,10 +99,15 @@ nfdl->next = fdl; fdl = nfdl; - //update_fdset(); + event_set(&nfdl->ev, fd, EV_PERSIST | EV_READ, ev_callback, arg); + + if (tv_sec > -1) { + tv.tv_sec = tv_sec; + tv.tv_usec = 0; + event_add(&nfdl->ev, &tv); + } else + event_add(&nfdl->ev, NULL); - event_set(&nfdl->ev, fd, EV_PERSIST | EV_READ, ev_callback, arg); - event_add(&nfdl->ev, NULL); } void unregister_select_fd(int fd) { @@ -136,6 +145,20 @@ return system(cmd); } +void +set_current_pl(plugint* pl) +{ + if (current_pl) { + event_del(&tun_ev); + } + current_pl = pl; + if (pl) { + if (pl->is_ready_to_send() == WILL_SEND_IMMEDIATELY) + event_add(&tun_ev, NULL); + // otherwise the tun read is timed by the plugin + } +} + /* read data from the tun interface and pass it to the daemon */ static void tun_receive() @@ -149,19 +172,16 @@ return; do { - /* only read from the tun device of the plugin is ready to send data */ - if (current_pl->is_ready_to_send() != 0) { - memset(packet, 0, sizeof(packet)); - nread = tun_read(tun_fd, packet, PACKETLEN); - if (nread > 0) { - nwrite = process_data_from_tun(packet, nread); - } + //memset(packet, 0, sizeof(packet)); + nread = tun_read(tun_fd, packet, PACKETLEN); + if (nread > 0) { + nwrite = process_data_from_tun(packet, nread); } /* continue the loop if we read something * and the plugin has sent it immediately */ printf("tun_receive: nread: %d, nwrite: %d\n", nread, nwrite); - } while (nread > 0 && nwrite == PLUGIN_SEND_PKT_SENT); + } while (nread > 0 && nwrite == SEND_PKT_SENT); } /* send data via the tun interface */ @@ -184,7 +204,14 @@ tun_ev_handler(int fd, short ev_type, void *arg) { printf("tun_ev_handler(): ev_type: 0x%x\n", ev_type); - tun_receive(); + /* + * Only read from the tun device can send the data immediately. + * Otherwise, we will be notified via plugin_report() when data + * can be sent. + */ + if (current_pl != NULL) + if (current_pl->is_ready_to_send() == WILL_SEND_IMMEDIATELY) + tun_receive(); } /* @@ -242,13 +269,15 @@ static void send_echo_request() { - char data[10]; + int nwrite = 0; + char data[2]; plugint *pl = current_pl; if (pl) { *data = DISPATCH_ECHO_REQUEST; *(data+1) = echo_seq++; - (void) pl->send(pl, data, sizeof(data)); + nwrite = pl->send(pl, data, sizeof(data), NORMAL_DATA); pl->ping_counter--; + printf("send_cho_request(): nwrite: 0x%x\n", nwrite); } } @@ -260,12 +289,11 @@ struct frag_info *np, *np_temp; plugint *pl = current_pl; - fprintf(stderr, "timer fired\n"); - /* check if too many ping requests have not failed */ if (pl) { - if (! pl->ping_counter) { - report_plugin_error(pl, PLUGIN_ERROR_PING); + printf("ping_counter: %d\n", pl->ping_counter); + if (pl->ping_counter <= 0) { + plugin_report(pl, REPORT_ERROR_PING); } else { send_echo_request(); } @@ -305,17 +333,20 @@ struct timeval tv; int i; int dgram_reassembled; + int nwrite; + + if (len <= 0) + return; switch (dispatch) { case DISPATCH_DATA: - if (len > 0) { - current_pl = pl; - } + printf("process_data_from_plugin(): DATA\n"); tun_send(data+1, len-1); + goto plugin_ok; break; case DISPATCH_FRAG: if (len <= sizeof(frag_hdr)) { - report_plugin_error(pl, PLUGIN_ERROR_RECEIVE); + plugin_report(pl, REPORT_ERROR_RECEIVE); return; } @@ -407,7 +438,7 @@ /* packet completely reassembled */ if (dgram_reassembled) { fprintf(stderr, "frag reassembly: packet complete\n"); - current_pl = pl; + set_current_pl(pl); tun_send(p->buf, p->size); /* remove fragment info from linked list */ @@ -416,22 +447,31 @@ free(p->bitmap); free(p); } + goto plugin_ok; break; case DISPATCH_ECHO_REQUEST: + printf("process_data_from_plugin(): ECHO_REQUEST\n"); *data = (u_int8_t) DISPATCH_ECHO_REPLY; - pl->send(pl, data, len); + nwrite = pl->send(pl, data, len, URGENT_DATA); fprintf(stderr, "got echo request (plugin: %s)\n", pl->name); + printf("sending reply, returned 0x%x\n", nwrite); + goto plugin_ok; break; case DISPATCH_ECHO_REPLY: + printf("process_data_from_plugin(): ECHO_REPLY\n"); fprintf(stderr, "got echo reply (plugin: %s)\n", pl->name); - pl->ping_counter++; + pl->ping_counter = PING_FAIL; + //pl->ping_counter++; + goto plugin_ok; break; default: fprintf(stderr, "unknown dispatch 0x%X in data from plugin %s\n", dispatch, pl->name); } + plugin_ok: + set_current_pl(pl); } /* @@ -446,17 +486,19 @@ if (current_pl == NULL) { fprintf(stderr, "no plugin connected yet, discarding tun data\n"); - report_plugin_error(NULL, PLUGIN_ERROR_BOOTSTRAP); - return PLUGIN_SEND_ERROR; + plugin_report(NULL, REPORT_ERROR_BOOTSTRAP); + return SEND_ERROR; } - /* no need to add the fragmentation header */ printf("process_data_from_tun: len: %d, current_pl->mtu: %d\n", len, current_pl->mtu); + /* no need to add the fragmentation header */ + //TODO: fix fragmentation if (len < current_pl->mtu || 1) { *ldata = DISPATCH_DATA; memcpy(ldata+1, data, min(sizeof(ldata)-1, len)); - return current_pl->send(current_pl, ldata, min(sizeof(ldata), len+1)); + return current_pl->send(current_pl, ldata, min(sizeof(ldata), len+1), + NORMAL_DATA); /* add the fragmentation header */ } else { @@ -484,29 +526,34 @@ // on the return value from send() n = min(current_pl->mtu, len); (void) current_pl->send(current_pl, ldatap, - min(current_pl->mtu, len)); + min(current_pl->mtu, len), NORMAL_DATA); n -= sizeof(frag_hdr); if (n <= 0) { fprintf(stderr, "process_data_from_tun: failed to send " "data (%d)\n", n); - report_plugin_error(current_pl, PLUGIN_ERROR_SEND); - return PLUGIN_SEND_ERROR; + plugin_report(current_pl, REPORT_ERROR_SEND); + return SEND_ERROR; } ldatap += n; frag_hdr.offset += n; len -= n; } - return PLUGIN_SEND_PKT_SENT; + return SEND_PKT_SENT; } } void -report_plugin_error(plugint *pl, int err) +plugin_report(plugint *pl, int err) { + if (pl) + printf("plugin_report(%s, 0x%x)\n", pl->name, err); + else + printf("plugin_report(NULL plugin, 0x%x)\n", err); + switch (err) { - case PLUGIN_ERROR_SUCCESS: - return; - case PLUGIN_ERROR_PKT_SENT: +/* case PLUGIN_REPORT_SUCCESS: */ +/* return; */ + case REPORT_READY_TO_SEND: /* plugin is ready to send the next packet */ tun_receive(); return; @@ -541,7 +588,7 @@ fprintf(stderr, "initalizing plugin: %s...\n", pl->name); if (((pl->initialize)(pl, server, host, pl->name+4)) == 0) { fprintf(stderr, "found a working plugin: %s\n", pl->name); - current_pl = pl; + set_current_pl(pl); return; } else { fprintf(stderr, "plugin %s failed to initialize\n", @@ -655,7 +702,6 @@ fcntl(tun_fd, F_SETFL, tun_flags|O_NONBLOCK); /* watch the tun device with libevent */ event_set(&tun_ev, tun_fd, EV_PERSIST | EV_READ, tun_ev_handler, NULL); - event_add(&tun_ev, NULL); printf("Created tunnel device: %s\n", tun_dev); /* configure the tun interface */ @@ -709,7 +755,7 @@ } } else { /* initialize a working plugin */ - report_plugin_error(NULL, PLUGIN_ERROR_BOOTSTRAP); + plugin_report(NULL, REPORT_ERROR_BOOTSTRAP); } /* kick off the timer event, it will re-register itself */ ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.h#8 (text+ko) ==== @@ -43,39 +43,47 @@ int (*initialize)(struct _plugint*, int, char*, char*); void (*deinitialize)(struct _plugint*); void (*receive)(int fd, short ev_type, void *arg); /* select fired on some fd - check for data */ - int (*send)(struct _plugint*, char*, int); + int (*send)(struct _plugint*, char*, int, int); int (*is_ready_to_send)(); void* data; int mtu; struct _plugint *next; } plugint; -/* report_plugin_error() argument values */ +/* plugin_report() argument values */ +enum { + REPORT_READY_TO_SEND, /* ready to send the next packet */ + REPORT_ERROR_BOOTSTRAP, /* no plugin initialized yet */ + REPORT_ERROR_SEND, /* problem with sending */ + REPORT_ERROR_RECEIVE, /* problem with receiving */ + REPORT_ERROR_TIMEOUT, + REPORT_ERROR_PING, +}; + +/* plugin_is_ready_to_send() return values */ +enum { + WILL_SEND_IMMEDIATELY, + WILL_QUEUE, + QUEUE_FULL +}; + +/* plugin_send() argument */ enum { - PLUGIN_ERROR_SUCCESS = 0, - PLUGIN_ERROR_PKT_SENT, /* packet has been sent, - * ready to send the next one - */ - PLUGIN_ERROR_BOOTSTRAP, /* no plugin initialized yet */ - PLUGIN_ERROR_SEND, /* problem with sending */ - PLUGIN_ERROR_RECEIVE, /* problem with receiving */ - PLUGIN_ERROR_TIMEOUT, - PLUGIN_ERROR_PING, + NORMAL_DATA, /* normal data */ + URGENT_DATA /* urgent data */ }; /* plugin_send() return values */ enum { - PLUGIN_SEND_PKT_SENT = 0, /* packet has been sent, + SEND_PKT_SENT = 0, /* packet has been sent, * ready to send the next one */ - PLUGIN_SEND_PKT_QUEUED, /* packet queued, not yet ready + SEND_PKT_QUEUED, /* packet queued, not yet ready * to send the next one */ - PLUGIN_SEND_ERROR_MALLOC, /* malloc failed */ - PLUGIN_SEND_ERROR_QUEUE_FULL, /* packet queue is full, cannot yet - * send more packets - */ - PLUGIN_SEND_ERROR /* sending the packet failed */ + SEND_ERROR_MALLOC, /* malloc failed, packet dropped */ + SEND_ERROR_QUEUE_FULL, /* queue is full, packet dropped */ + SEND_ERROR /* sending the packet failed */ }; /* dispatch type - prepended before the payload */ @@ -90,8 +98,8 @@ /* * Register file descriptor fd to be watched by the main select(). */ -void register_select_fd(int fd, - void (*ev_callback)(int, short, void *arg), void *arg); +void register_select_fd(int fd, void (*ev_callback)(int, short, void *arg), + void *arg, long tv_sec); /* * Unregister file descriptor fd to no longer be watched by the main * select(). @@ -110,6 +118,6 @@ /* * Report a problem in the plugin to the daemon. */ -void report_plugin_error(plugint *pl, int err); +void plugin_report(plugint *pl, int err); #endif From owner-p4-projects@FreeBSD.ORG Tue Aug 7 18:54:19 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD9DE16A468; Tue, 7 Aug 2007 18:54:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5CCCB16A417 for ; Tue, 7 Aug 2007 18:54:19 +0000 (UTC) (envelope-from thioretic@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 38E1713C4A7 for ; Tue, 7 Aug 2007 18:54:19 +0000 (UTC) (envelope-from thioretic@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77IsJUw007641 for ; Tue, 7 Aug 2007 18:54:19 GMT (envelope-from thioretic@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77IsI7M007638 for perforce@freebsd.org; Tue, 7 Aug 2007 18:54:18 GMT (envelope-from thioretic@FreeBSD.org) Date: Tue, 7 Aug 2007 18:54:18 GMT Message-Id: <200708071854.l77IsI7M007638@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thioretic@FreeBSD.org using -f From: Maxim Zhuravlev To: Perforce Change Reviews Cc: Subject: PERFORCE change 124843 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, 07 Aug 2007 18:54:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=124843 Change 124843 by thioretic@thioretic on 2007/08/07 18:53:40 Some initial stuff for input handling. Specifically, support variable number of io requests processing kthreads. Affected files ... .. //depot/projects/soc2007/thioretic_gidl2/kern/subr_busio.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Tue Aug 7 18:54:20 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0331516A520; Tue, 7 Aug 2007 18:54:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93E6216A420 for ; Tue, 7 Aug 2007 18:54:19 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8DC8813C4B0 for ; Tue, 7 Aug 2007 18:54:19 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77IsJUU007648 for ; Tue, 7 Aug 2007 18:54:19 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77IsJiN007644 for perforce@freebsd.org; Tue, 7 Aug 2007 18:54:19 GMT (envelope-from gabor@freebsd.org) Date: Tue, 7 Aug 2007 18:54:19 GMT Message-Id: <200708071854.l77IsJiN007644@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124844 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, 07 Aug 2007 18:54:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=124844 Change 124844 by gabor@gabor_server on 2007/08/07 18:53:54 - Be bit more precise about USE_PERL5 syntax Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#8 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#8 (text+ko) ==== @@ -48,13 +48,23 @@ __prefix=${USE_PERL5:C/[^[:digit:].]+$//} __suffix=${USE_PERL5:C/^[0-9.]+//} -.if ${__suffix} == "+" && ${__prefix} < ${PERL_LEVEL} +.if ${__suffix} == "+" +.if ${__prefix} < ${PERL_LEVEL} IGNORE= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 -.elif ${__suffix} == "" && ${__prefix} != ${PERL_LEVEL} +.endif +.elif ${__suffix} == "" +.if ${__prefix} != ${PERL_LEVEL} IGNORE= You need Perl ${__prefix} exectly -.elif ${__suffix} == "-" && ${__prefix} > ${PERL_LEVEL} +.endif +.elif ${__suffix} == "-" +.if ${__prefix} > ${PERL_LEVEL} IGNORE= You need Perl ${__prefix} or earlier .endif +.else +.BEGIN: + @${ECHO_MSG} "${PKGNAME}: Makefile error: inproper use of USE_PERL5" + @${FALSE} +.endif .endif #defined(USE_PERL5) && ${USE_PERL5} != "yes" SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VER} From owner-p4-projects@FreeBSD.ORG Tue Aug 7 19:24:59 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31A0A16A46B; Tue, 7 Aug 2007 19:24:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB7A816A417 for ; Tue, 7 Aug 2007 19:24:58 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D4F5913C4D3 for ; Tue, 7 Aug 2007 19:24:58 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77JOwv6010953 for ; Tue, 7 Aug 2007 19:24:58 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77JOwYp010949 for perforce@freebsd.org; Tue, 7 Aug 2007 19:24:58 GMT (envelope-from fli@FreeBSD.org) Date: Tue, 7 Aug 2007 19:24:58 GMT Message-Id: <200708071924.l77JOwYp010949@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124845 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, 07 Aug 2007 19:24:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=124845 Change 124845 by fli@fli_nexus on 2007/08/07 19:24:15 - Sent an ACK to clients when a oneshot query begins. - Additional debug printouts - Always sent a timeout message to client when we tracking a query on their behalf. - Minor fixes (wrong return values/argument values). Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/clisrv.c#3 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/clisrv.c#3 (text+ko) ==== @@ -355,6 +355,7 @@ dprintf(DEBUG_CS, "Received packet on UNIX pipe csc=%x, " "len=%d, suser=%d, sock=%d", csc, n, csc->csc_suser, sock); + n += sizeof(struct mipc_head); error = cp_parse(csc, buf, n, csc->csc_suser); if (error != 0) dprintf(DEBUG_CS, "Failed to parse packet csc=%x", csc); @@ -503,7 +504,9 @@ case MIQ_CMD_ONESHOT: error = queryadd(csc, &cscq, miq->miq_ifidx, miq->miq_fam, miq->miq_timeout); - if (error != 0) + if (error == 0) + send_ack(csc, mih->mih_id); + else retval = MIE_IVAL; break; case MIQ_CMD_CREG: @@ -524,7 +527,7 @@ return (MIE_IVAL); } - return (0); + return (retval); } /* @@ -1469,6 +1472,8 @@ iov[1].iov_base = &cpe; iov[1].iov_len = sizeof(struct mipc_error); writev(csc->csc_sock, iov, 2); + dprintf(DEBUG_CS, "Error sent to client csc=%x, id=%d, code=%d", + csc, id, code); } /* @@ -1528,8 +1533,7 @@ query_dereg(cscq->cscq_q, &cscq->cscq_qs, cscq); TAILQ_REMOVE(&csc->csc_queries, cscq, cscq_next); - if (cscq->cscq_resp == 0) - send_error(csc, cscq->cscq_id, MIE_TOUT); + send_error(csc, cscq->cscq_id, MIE_TOUT); obj_free(OBJ_CSCQ, cscq); MTX_UNLOCK(csc, csc_mtx); @@ -1566,9 +1570,13 @@ iov[3].iov_base = rs->r_data; iov[3].iov_len = rs->r_datalen; - writev(csc->csc_sock, iov, 3); + writev(csc->csc_sock, iov, 4); cscq->cscq_resp++; MTX_UNLOCK(csc, csc_mtx); + + dprintf(DEBUG_CS, "Response to query cscq=%x sent to client csc=%x " + "name=%ls, class=%d, type=%d, ttl=%d", cscq, csc, name, + rs->r_class, rs->r_type, rs->r_ttl); } static int From owner-p4-projects@FreeBSD.ORG Tue Aug 7 20:21:08 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 89D4616A420; Tue, 7 Aug 2007 20:21:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4637F16A41A for ; Tue, 7 Aug 2007 20:21:08 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2842C13C467 for ; Tue, 7 Aug 2007 20:21:08 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77KL8Ds016045 for ; Tue, 7 Aug 2007 20:21:08 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77KL73P016042 for perforce@freebsd.org; Tue, 7 Aug 2007 20:21:07 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 7 Aug 2007 20:21:07 GMT Message-Id: <200708072021.l77KL73P016042@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124847 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, 07 Aug 2007 20:21:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=124847 Change 124847 by kmacy@kmacy_home:ethng on 2007/08/07 20:20:27 comment out multiq until driver implementation is complete Affected files ... .. //depot/projects/ethng/src/sys/amd64/conf/GENERIC#3 edit Differences ... ==== //depot/projects/ethng/src/sys/amd64/conf/GENERIC#3 (text+ko) ==== @@ -208,5 +208,5 @@ device dcons # Dumb console driver device dcons_crom # Configuration ROM for dcons -options IFNET_MULTIQUEUE # add support for using multiple tx queues to ifnet +#options IFNET_MULTIQUEUE # add support for using multiple tx queues to ifnet options ALT_BREAK_TO_DEBUGGER From owner-p4-projects@FreeBSD.ORG Tue Aug 7 22:23:33 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 354C216A420; Tue, 7 Aug 2007 22:23:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E398F16A41A for ; Tue, 7 Aug 2007 22:23:32 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DD94913C46C for ; Tue, 7 Aug 2007 22:23:32 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77MNW25039262 for ; Tue, 7 Aug 2007 22:23:32 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77MNWCn039259 for perforce@freebsd.org; Tue, 7 Aug 2007 22:23:32 GMT (envelope-from cnst@FreeBSD.org) Date: Tue, 7 Aug 2007 22:23:32 GMT Message-Id: <200708072223.l77MNWCn039259@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124851 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, 07 Aug 2007 22:23:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=124851 Change 124851 by cnst@dale on 2007/08/07 22:22:58 when the debugging output was removed, a newline was left behind Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78.c#8 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78.c#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $P4: //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78.c#7 $ */ +/* $P4: //depot/projects/soc2007/cnst-sensors/sys.dev.lm/lm78.c#8 $ */ /* $FreeBSD$ */ /* $OpenBSD: lm78.c,v 1.18 2007/05/26 22:47:39 cnst Exp $ */ @@ -632,7 +632,6 @@ for (i = 0; i < sc->numsensors; i++) sc->lm_sensors[i].refresh(sc, i); - } void From owner-p4-projects@FreeBSD.ORG Tue Aug 7 23:10:31 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 197C816A420; Tue, 7 Aug 2007 23:10:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E125F16A468 for ; Tue, 7 Aug 2007 23:10:30 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D8BA313C46E for ; Tue, 7 Aug 2007 23:10:30 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77NAUlE043229 for ; Tue, 7 Aug 2007 23:10:30 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77NAUuG043226 for perforce@freebsd.org; Tue, 7 Aug 2007 23:10:30 GMT (envelope-from cnst@FreeBSD.org) Date: Tue, 7 Aug 2007 23:10:30 GMT Message-Id: <200708072310.l77NAUuG043226@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124852 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, 07 Aug 2007 23:10:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=124852 Change 124852 by cnst@dale on 2007/08/07 23:09:30 KNF Affected files ... .. //depot/projects/soc2007/cnst-sensors/sbin.sysctl/sysctl.c#3 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sbin.sysctl/sysctl.c#3 (text+ko) ==== @@ -143,7 +143,7 @@ if (Nflag && nflag) usage(); if (aflag && argc == 0) - exit(sysctl_all(0, 0)); + exit(sysctl_all(NULL, 0)); if (argc == 0) usage(); while (argc-- > 0) @@ -719,8 +719,8 @@ name1[0] = 0; name1[1] = 2; l1 = 2; - if (len) { - memcpy(name1+2, oid, len * sizeof(int)); + if (len > 0) { + memcpy(name1 + 2, oid, len * sizeof(int)); l1 += len; } else { name1[2] = 1; From owner-p4-projects@FreeBSD.ORG Tue Aug 7 23:13:35 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B7A6C16A421; Tue, 7 Aug 2007 23:13:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EA6116A419 for ; Tue, 7 Aug 2007 23:13:35 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5431713C46E for ; Tue, 7 Aug 2007 23:13:35 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77NDZb7043768 for ; Tue, 7 Aug 2007 23:13:35 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77NDZNp043759 for perforce@freebsd.org; Tue, 7 Aug 2007 23:13:35 GMT (envelope-from mharvan@FreeBSD.org) Date: Tue, 7 Aug 2007 23:13:35 GMT Message-Id: <200708072313.l77NDZNp043759@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124853 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, 07 Aug 2007 23:13:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=124853 Change 124853 by mharvan@mharvan_bike-planet on 2007/08/07 23:12:42 fragmentation now works with polling-style plugins as well Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#6 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#8 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#7 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#15 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#6 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#8 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#7 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#15 (text+ko) ==== @@ -36,6 +36,7 @@ */ static int process_data_from_tun(char *data, int len); +static int send_next_frag(); /* max transfered unit - encapsulated packet size */ #define MTU 1500 @@ -59,6 +60,9 @@ /* fragment id for the next packet to be fragmented */ frag_hdr_t frag_hdr; +char frag_data[MTU+sizeof(frag_hdr_t)]; +char *frag_datap = NULL; +int frag_data_len = 0; uint frag_id = 0; // TODO: randomize /* fragmentat reassembly info list */ @@ -171,6 +175,11 @@ if (current_pl == NULL) return; + if (frag_datap != NULL) { + send_next_frag(); + return; + } + do { //memset(packet, 0, sizeof(packet)); nread = tun_read(tun_fd, packet, PACKETLEN); @@ -480,9 +489,7 @@ static int process_data_from_tun(char *data, int len) { - int n = 0; char ldata[MTU+1]; - char *ldatap = ldata; if (current_pl == NULL) { fprintf(stderr, "no plugin connected yet, discarding tun data\n"); @@ -493,8 +500,7 @@ printf("process_data_from_tun: len: %d, current_pl->mtu: %d\n", len, current_pl->mtu); /* no need to add the fragmentation header */ - //TODO: fix fragmentation - if (len < current_pl->mtu || 1) { + if (len < current_pl->mtu) { *ldata = DISPATCH_DATA; memcpy(ldata+1, data, min(sizeof(ldata)-1, len)); return current_pl->send(current_pl, ldata, min(sizeof(ldata), len+1), @@ -509,38 +515,55 @@ frag_hdr.size = len; frag_hdr.offset = 0; + frag_datap = frag_data; + frag_data_len = 0; + /* copy the payload */ - memcpy(ldatap + sizeof(frag_hdr), data, + memcpy(frag_datap + sizeof(frag_hdr), data, min(sizeof(ldata) - sizeof(frag_hdr), len)); - len += sizeof(frag_hdr); - - while(len > sizeof(frag_hdr)) { - printf("process_data_from_tun: sending frag " - "offset %d, send_len %d, len %d\n", - frag_hdr.offset, min(current_pl->mtu, len), len); + frag_data_len = len + sizeof(frag_hdr); + + return send_next_frag(); + } +} + +static int +send_next_frag() +{ + int nwrite = SEND_PKT_SENT; + int n; + + while(frag_data_len > sizeof(frag_hdr) && nwrite == SEND_PKT_SENT) { + printf("send_next_frag: sending frag " + "offset %d, send_len %d, frag_data_len %d\n", + frag_hdr.offset, min(current_pl->mtu, frag_data_len), + frag_data_len); /* prepend the frag dispatch and header before the payload */ - memcpy(ldatap, &frag_hdr, sizeof(frag_hdr)); + memcpy(frag_datap, &frag_hdr, sizeof(frag_hdr)); /* send it */ - //TODO: change the logic here, we should not fragment based - // on the return value from send() - n = min(current_pl->mtu, len); - (void) current_pl->send(current_pl, ldatap, - min(current_pl->mtu, len), NORMAL_DATA); - n -= sizeof(frag_hdr); - if (n <= 0) { - fprintf(stderr, "process_data_from_tun: failed to send " - "data (%d)\n", n); - plugin_report(current_pl, REPORT_ERROR_SEND); - return SEND_ERROR; + //TODO: maybe we should check how much data was actually sent + n = min(current_pl->mtu, frag_data_len); + nwrite = current_pl->send(current_pl, frag_datap, n, NORMAL_DATA); + switch (nwrite) { + case SEND_PKT_SENT: + case SEND_PKT_QUEUED: + n -= sizeof(frag_hdr); + frag_datap += n; + frag_hdr.offset += n; + frag_data_len -= n; + break; + default: + //plugin_report(current_pl, REPORT_ERROR_SEND); + return nwrite; } - ldatap += n; - frag_hdr.offset += n; - len -= n; - } - return SEND_PKT_SENT; + } + if (frag_data_len <= sizeof(frag_hdr)) { + frag_datap = NULL; + frag_data_len = 0; } -} + return nwrite; + } void plugin_report(plugint *pl, int err) From owner-p4-projects@FreeBSD.ORG Tue Aug 7 23:42:11 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AEAEB16A418; Tue, 7 Aug 2007 23:42:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6992516A420 for ; Tue, 7 Aug 2007 23:42:11 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5D42913C46C for ; Tue, 7 Aug 2007 23:42:11 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77NgBTo049550 for ; Tue, 7 Aug 2007 23:42:11 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77NgBJT049547 for perforce@freebsd.org; Tue, 7 Aug 2007 23:42:11 GMT (envelope-from cnst@FreeBSD.org) Date: Tue, 7 Aug 2007 23:42:11 GMT Message-Id: <200708072342.l77NgBJT049547@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124855 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, 07 Aug 2007 23:42:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=124855 Change 124855 by cnst@dale on 2007/08/07 23:41:59 KNF sysctl(3) calls (no binary change) Affected files ... .. //depot/projects/soc2007/cnst-sensors/sbin.sysctl/sysctl.c#4 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sbin.sysctl/sysctl.c#4 (text+ko) ==== @@ -289,7 +289,7 @@ } i = show_var(mib, len); - if (sysctl(mib, len, 0, 0, newval, newsize) == -1) { + if (sysctl(mib, len, NULL, NULL, newval, newsize) == -1) { if (!i && !bflag) putchar('\n'); switch (errno) { @@ -515,7 +515,7 @@ memcpy(qoid + 2, oid, len * sizeof(int)); j = sizeof(buf); - i = sysctl(qoid, len + 2, buf, &j, 0, 0); + i = sysctl(qoid, len + 2, buf, &j, NULL, 0); if (i) err(1, "sysctl fmt %d %d %d", i, j, errno); @@ -557,7 +557,7 @@ qoid[1] = 1; j = sizeof(name); - i = sysctl(qoid, nlen + 2, name, &j, 0, 0); + i = sysctl(qoid, nlen + 2, name, &j, NULL, 0); if (i || !j) err(1, "sysctl name %d %d %d", i, j, errno); @@ -574,7 +574,7 @@ if (dflag) { /* just print description */ qoid[1] = 5; j = sizeof(buf); - i = sysctl(qoid, nlen + 2, buf, &j, 0, 0); + i = sysctl(qoid, nlen + 2, buf, &j, NULL, 0); if (!nflag) printf("%s%s", name, sep); printf("%s", buf); @@ -582,7 +582,7 @@ } /* find an estimate of how much we need for this var */ j = 0; - i = sysctl(oid, nlen, 0, &j, 0, 0); + i = sysctl(oid, nlen, 0, &j, NULL, 0); j += j; /* we want to be sure :-) */ val = oval = malloc(j + 1); @@ -591,7 +591,7 @@ return (1); } len = j; - i = sysctl(oid, nlen, val, &len, 0, 0); + i = sysctl(oid, nlen, val, &len, NULL, 0); if (i || !len) { free(oval); return (1); @@ -728,7 +728,7 @@ } for (;;) { l2 = sizeof(name2); - j = sysctl(name1, l1, name2, &l2, 0, 0); + j = sysctl(name1, l1, name2, &l2, NULL, 0); if (j < 0) { if (errno == ENOENT) return (0); From owner-p4-projects@FreeBSD.ORG Tue Aug 7 23:57:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BADFB16A469; Tue, 7 Aug 2007 23:57:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9466E16A41A for ; Tue, 7 Aug 2007 23:57:30 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 852B113C461 for ; Tue, 7 Aug 2007 23:57:30 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l77NvUxQ050398 for ; Tue, 7 Aug 2007 23:57:30 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l77NvUFe050395 for perforce@freebsd.org; Tue, 7 Aug 2007 23:57:30 GMT (envelope-from cnst@FreeBSD.org) Date: Tue, 7 Aug 2007 23:57:30 GMT Message-Id: <200708072357.l77NvUFe050395@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124856 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, 07 Aug 2007 23:57:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=124856 Change 124856 by cnst@dale on 2007/08/07 23:57:13 more KNF; I believe now there are no more 0's representing NULL in sysctl(8). :) Affected files ... .. //depot/projects/soc2007/cnst-sensors/sbin.sysctl/sysctl.c#5 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sbin.sysctl/sysctl.c#5 (text+ko) ==== @@ -160,7 +160,7 @@ parse(char *string) { int len, i, j; - void *newval = 0; + void *newval = NULL; int intval; unsigned int uintval; long longval; @@ -582,7 +582,7 @@ } /* find an estimate of how much we need for this var */ j = 0; - i = sysctl(oid, nlen, 0, &j, NULL, 0); + i = sysctl(oid, nlen, NULL, &j, NULL, 0); j += j; /* we want to be sure :-) */ val = oval = malloc(j + 1); From owner-p4-projects@FreeBSD.ORG Wed Aug 8 00:17:57 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C31EA16A41A; Wed, 8 Aug 2007 00:17:56 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8DC4F16A418 for ; Wed, 8 Aug 2007 00:17:56 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 65AAE13C474 for ; Wed, 8 Aug 2007 00:17:56 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l780HuNW053185 for ; Wed, 8 Aug 2007 00:17:56 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l780HuKa053182 for perforce@freebsd.org; Wed, 8 Aug 2007 00:17:56 GMT (envelope-from cnst@FreeBSD.org) Date: Wed, 8 Aug 2007 00:17:56 GMT Message-Id: <200708080017.l780HuKa053182@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124857 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, 08 Aug 2007 00:17:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=124857 Change 124857 by cnst@dale on 2007/08/08 00:17:21 KNF, no binary md5 change Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#7 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#7 (text+ko) ==== @@ -684,7 +684,7 @@ *oid++ = oidp->oid_number; (*len)++; - if (!i) { + if (i == '\0') { if (oidpp) *oidpp = oidp; return (0); From owner-p4-projects@FreeBSD.ORG Wed Aug 8 00:28:10 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E09C616A41B; Wed, 8 Aug 2007 00:28:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A83116A421 for ; Wed, 8 Aug 2007 00:28:09 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8747513C4DB for ; Wed, 8 Aug 2007 00:28:09 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l780S9Fp053823 for ; Wed, 8 Aug 2007 00:28:09 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l780S9I5053820 for perforce@freebsd.org; Wed, 8 Aug 2007 00:28:09 GMT (envelope-from cnst@FreeBSD.org) Date: Wed, 8 Aug 2007 00:28:09 GMT Message-Id: <200708080028.l780S9I5053820@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124858 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, 08 Aug 2007 00:28:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=124858 Change 124858 by cnst@dale on 2007/08/08 00:27:44 KNF, no binary md5 change Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#8 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#8 (text+ko) ==== @@ -659,7 +659,7 @@ char *p; char i; - if (!*name) + if (name[0] == '\0') return (ENOENT); p = name + strlen(name) - 1 ; @@ -668,7 +668,7 @@ *len = 0; - for (p = name; *p && *p != '.'; p++) + for (p = name; *p != '\0' && *p != '.'; p++) ; i = *p; if (i == '.') @@ -698,8 +698,8 @@ lsp = (struct sysctl_oid_list *)oidp->oid_arg1; oidp = SLIST_FIRST(lsp); - name = p+1; - for (p = name; *p && *p != '.'; p++) + name = p + 1; + for (p = name; *p != '\0' && *p != '.'; p++) ; i = *p; if (i == '.') From owner-p4-projects@FreeBSD.ORG Wed Aug 8 00:34:18 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D74FA16A468; Wed, 8 Aug 2007 00:34:17 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AD6A616A420 for ; Wed, 8 Aug 2007 00:34:17 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9C52213C469 for ; Wed, 8 Aug 2007 00:34:17 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l780YHWL054260 for ; Wed, 8 Aug 2007 00:34:17 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l780YHde054257 for perforce@freebsd.org; Wed, 8 Aug 2007 00:34:17 GMT (envelope-from cnst@FreeBSD.org) Date: Wed, 8 Aug 2007 00:34:17 GMT Message-Id: <200708080034.l780YHde054257@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124859 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, 08 Aug 2007 00:34:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=124859 Change 124859 by cnst@dale on 2007/08/08 00:33:23 since we have changed 'i' from 'int' to 'char' a while ago, a change in name from 'i' to 'c' makes it look a bit nicer Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#9 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.kern/kern_sysctl.c#9 (text+ko) ==== @@ -657,7 +657,7 @@ struct sysctl_oid *oidp; struct sysctl_oid_list *lsp = &sysctl__children; char *p; - char i; + char c; if (name[0] == '\0') return (ENOENT); @@ -670,8 +670,8 @@ for (p = name; *p != '\0' && *p != '.'; p++) ; - i = *p; - if (i == '.') + c = *p; + if (c == '.') *p = '\0'; oidp = SLIST_FIRST(lsp); @@ -684,7 +684,7 @@ *oid++ = oidp->oid_number; (*len)++; - if (i == '\0') { + if (c == '\0') { if (oidpp) *oidpp = oidp; return (0); @@ -701,8 +701,8 @@ name = p + 1; for (p = name; *p != '\0' && *p != '.'; p++) ; - i = *p; - if (i == '.') + c = *p; + if (c == '.') *p = '\0'; } return (ENOENT); From owner-p4-projects@FreeBSD.ORG Wed Aug 8 01:04:56 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ABF6F16A419; Wed, 8 Aug 2007 01:04:56 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6BC6E16A417 for ; Wed, 8 Aug 2007 01:04:56 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 572BF13C46E for ; Wed, 8 Aug 2007 01:04:56 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7814uK7065942 for ; Wed, 8 Aug 2007 01:04:56 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7814uF8065939 for perforce@freebsd.org; Wed, 8 Aug 2007 01:04:56 GMT (envelope-from zec@FreeBSD.org) Date: Wed, 8 Aug 2007 01:04:56 GMT Message-Id: <200708080104.l7814uF8065939@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124861 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, 08 Aug 2007 01:04:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=124861 Change 124861 by zec@zec_tpx32 on 2007/08/08 01:04:43 Do not attempt to build ng_wormhole as a module for nooptions VIMAGE kernel configs, since ng_wormhole is pointless on clean kernels, plus it won't even compile there (neither now nor ever in the future). Affected files ... .. //depot/projects/vimage/src/sys/modules/netgraph/Makefile#5 edit Differences ... ==== //depot/projects/vimage/src/sys/modules/netgraph/Makefile#5 (text+ko) ==== @@ -52,7 +52,7 @@ UI \ vjc \ vlan \ - wormhole + ${_wormhole} .if ${MACHINE_ARCH} == "i386" _sync_ar= sync_ar @@ -67,4 +67,9 @@ _mppc= mppc .endif +VIMAGE!= grep VIMAGE ${KERNBUILDDIR}/opt_vimage.h | cut -d" " -f3 || true +.if ${VIMAGE} == 1 +_wormhole= wormhole +.endif + .include From owner-p4-projects@FreeBSD.ORG Wed Aug 8 01:08:01 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0448E16A420; Wed, 8 Aug 2007 01:08:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CFAF916A418 for ; Wed, 8 Aug 2007 01:08:00 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BAA5313C45B for ; Wed, 8 Aug 2007 01:08:00 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78180Fq066106 for ; Wed, 8 Aug 2007 01:08:00 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78180d5066101 for perforce@freebsd.org; Wed, 8 Aug 2007 01:08:00 GMT (envelope-from zec@FreeBSD.org) Date: Wed, 8 Aug 2007 01:08:00 GMT Message-Id: <200708080108.l78180d5066101@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124862 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, 08 Aug 2007 01:08:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=124862 Change 124862 by zec@zec_tpx32 on 2007/08/08 01:07:20 options NETGRAPH_WORMHOLE will now statically compile ng_wormhole into a options VIMAGE kernel. On nooptions VIMAGE configs, options NETGRAPH_WORMHOLE is silently ignored. Affected files ... .. //depot/projects/vimage/src/sys/conf/files#16 edit .. //depot/projects/vimage/src/sys/conf/options#16 edit Differences ... ==== //depot/projects/vimage/src/sys/conf/files#16 (text+ko) ==== @@ -1833,6 +1833,7 @@ netgraph/ng_tee.c optional netgraph_tee netgraph/ng_tty.c optional netgraph_tty netgraph/ng_vjc.c optional netgraph_vjc +netgraph/ng_wormhole.c optional netgraph_wormhole vimage netinet/accf_data.c optional accept_filter_data netinet/accf_http.c optional accept_filter_http netinet/if_atm.c optional atm ==== //depot/projects/vimage/src/sys/conf/options#16 (text+ko) ==== @@ -467,6 +467,7 @@ NETGRAPH_TTY opt_netgraph.h NETGRAPH_UI opt_netgraph.h NETGRAPH_VJC opt_netgraph.h +NETGRAPH_WORMHOLE opt_netgraph.h # NgATM options NGATM_ATM opt_netgraph.h From owner-p4-projects@FreeBSD.ORG Wed Aug 8 01:30:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1FDC216A41A; Wed, 8 Aug 2007 01:30:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB11B16A418 for ; Wed, 8 Aug 2007 01:30:29 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9CEC513C428 for ; Wed, 8 Aug 2007 01:30:29 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l781UTbG068106 for ; Wed, 8 Aug 2007 01:30:29 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l781UTCc068103 for perforce@freebsd.org; Wed, 8 Aug 2007 01:30:29 GMT (envelope-from zec@FreeBSD.org) Date: Wed, 8 Aug 2007 01:30:29 GMT Message-Id: <200708080130.l781UTCc068103@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124864 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, 08 Aug 2007 01:30:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=124864 Change 124864 by zec@zec_tpx32 on 2007/08/08 01:30:16 ng_wormhole: add the missing Makefile for building a module. Affected files ... .. //depot/projects/vimage/src/sys/modules/netgraph/wormhole/Makefile#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Aug 8 05:11:15 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 19D0416A49A; Wed, 8 Aug 2007 05:11:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D341C16A421 for ; Wed, 8 Aug 2007 05:11:14 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C0AF013C46E for ; Wed, 8 Aug 2007 05:11:14 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l785BE7M094984 for ; Wed, 8 Aug 2007 05:11:14 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l785BEAc094980 for perforce@freebsd.org; Wed, 8 Aug 2007 05:11:14 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 8 Aug 2007 05:11:14 GMT Message-Id: <200708080511.l785BEAc094980@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124874 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, 08 Aug 2007 05:11:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=124874 Change 124874 by kmacy@kmacy_home:ethng on 2007/08/08 05:10:52 add intr_bind to i386 and amd64 to bind an interrupt to caller-specified cpu rather than the default round robin Submitted by: jhb Affected files ... .. //depot/projects/ethng/src/sys/amd64/amd64/intr_machdep.c#2 edit .. //depot/projects/ethng/src/sys/amd64/amd64/sys_machdep.c#2 edit .. //depot/projects/ethng/src/sys/amd64/include/intr_machdep.h#2 edit .. //depot/projects/ethng/src/sys/amd64/include/sysarch.h#2 edit .. //depot/projects/ethng/src/sys/conf/options#3 edit .. //depot/projects/ethng/src/sys/i386/i386/intr_machdep.c#2 edit .. //depot/projects/ethng/src/sys/i386/i386/sys_machdep.c#2 edit .. //depot/projects/ethng/src/sys/i386/include/intr_machdep.h#2 edit .. //depot/projects/ethng/src/sys/i386/include/sysarch.h#2 edit .. //depot/projects/ethng/src/sys/kern/kern_intr.c#2 edit .. //depot/projects/ethng/src/sys/sys/interrupt.h#2 edit Differences ... ==== //depot/projects/ethng/src/sys/amd64/amd64/intr_machdep.c#2 (text+ko) ==== @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -87,7 +88,7 @@ static void intr_assign_next_cpu(struct intsrc *isrc); #endif - +static int intr_assign_cpu(void *arg, u_char cpu); static void intr_init(void *__dummy); static int intr_pic_registered(struct pic *pic); static void intrcnt_setname(const char *name, int index); @@ -145,10 +146,10 @@ #ifdef INTR_FILTER error = intr_event_create(&isrc->is_event, isrc, 0, (mask_fn)isrc->is_pic->pic_enable_source, - intr_eoi_src, intr_disab_eoi_src, "irq%d:", vector); + intr_eoi_src, intr_disab_eoi_src, intr_assign_cpu, "irq%d:", vector); #else error = intr_event_create(&isrc->is_event, isrc, 0, - (mask_fn)isrc->is_pic->pic_enable_source, "irq%d:", vector); + (mask_fn)isrc->is_pic->pic_enable_source, intr_assign_cpu, "irq%d:", vector); #endif if (error) return (error); @@ -430,6 +431,33 @@ sx_xunlock(&intr_table_lock); } +static int +intr_assign_cpu(void *arg, u_char cpu) +{ +#ifdef SMP + struct intsrc *isrc; + + /* + * Don't do anything during early boot. We will pick up the + * assignment once the APs are started. + */ + if (assign_cpu) { + isrc = arg; + + if (bootverbose) + printf("assigning vector=%d to cpu=%d\n", isrc->is_pic->pic_vector(isrc), cpu); + + sx_xlock(&intr_table_lock); + isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[cpu]); + sx_xunlock(&intr_table_lock); + } + return (0); +#else + return (EOPNOTSUPP); +#endif +} + + static void intrcnt_setname(const char *name, int index) { @@ -477,12 +505,16 @@ static void intr_init(void *dummy __unused) { - + int flags = 0; + intrcnt_setname("???", 0); intrcnt_index = 1; STAILQ_INIT(&pics); - sx_init(&intr_table_lock, "intr sources"); - mtx_init(&intrcnt_lock, "intrcnt", NULL, MTX_SPIN); +#ifdef BIND_ALL + flags = SX_RECURSE; +#endif + sx_init_flags(&intr_table_lock, "intr sources", flags); + mtx_init(&intrcnt_lock, "intrcnt", NULL, MTX_SPIN); } SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL) @@ -541,15 +573,14 @@ static void intr_assign_next_cpu(struct intsrc *isrc) { - struct pic *pic; - u_int apic_id; - /* * Assign this source to a local APIC in a round-robin fashion. */ - pic = isrc->is_pic; - apic_id = cpu_apic_ids[current_cpu]; - pic->pic_assign_cpu(isrc, apic_id); +#ifdef BIND_ALL + intr_event_bind(isrc->is_event, current_cpu); +#else + isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[current_cpu]); +#endif do { current_cpu++; if (current_cpu >= num_cpus) @@ -557,6 +588,20 @@ } while (!(intr_cpus & (1 << current_cpu))); } +/* Attempt to bind the specified IRQ to the specified CPU. */ +int +intr_bind(u_int vector, u_char cpu) +{ + struct intsrc *isrc; + + isrc = intr_lookup_source(vector); + if (isrc == NULL) + return (EINVAL); + isrc->is_event->ie_source = isrc; + + return (intr_event_bind(isrc->is_event, cpu)); +} + /* * Add a CPU to our mask of valid CPUs that can be destinations of * interrupts. @@ -585,6 +630,10 @@ struct intsrc *isrc; int i; + /* + * XXX should be mp_ncpus but this causes a crash + */ + /* Don't bother on UP. */ if (num_cpus <= 1) return; @@ -594,8 +643,19 @@ assign_cpu = 1; for (i = 0; i < NUM_IO_INTS; i++) { isrc = interrupt_sources[i]; - if (isrc != NULL && isrc->is_handlers > 0) - intr_assign_next_cpu(isrc); + if (isrc != NULL && isrc->is_handlers > 0) { + /* + * If this event is already bound to a CPU, + * then assign the source to that CPU instead + * of picking one via round-robin. + */ + if (isrc->is_event->ie_cpu != NOCPU) + isrc->is_pic->pic_assign_cpu(isrc, + cpu_apic_ids[isrc->is_event->ie_cpu]); + else + intr_assign_next_cpu(isrc); + + } } sx_xunlock(&intr_table_lock); } ==== //depot/projects/ethng/src/sys/amd64/amd64/sys_machdep.c#2 (text+ko) ==== @@ -35,9 +35,11 @@ #include #include -#include +#include +#include #include #include +#include #include #include #include @@ -62,7 +64,10 @@ struct pcb *pcb = curthread->td_pcb; uint32_t i386base; uint64_t a64base; - +#ifdef SMP + struct amd64_intr_bind_args bargs; +#endif + switch(uap->op) { case I386_GET_FSBASE: i386base = pcb->pcb_fsbase; @@ -126,6 +131,15 @@ } break; +#ifdef SMP +/* ABI and API compatible with I386_INTR_BIND. */ + case AMD64_INTR_BIND: + error = copyin(uap->parms, &bargs, + sizeof(struct amd64_intr_bind_args)); + if (error == 0) + error = intr_bind(bargs.vector, bargs.cpu); + break; +#endif default: error = EINVAL; break; ==== //depot/projects/ethng/src/sys/amd64/include/intr_machdep.h#2 (text+ko) ==== @@ -133,6 +133,7 @@ void elcr_write_trigger(u_int irq, enum intr_trigger trigger); #ifdef SMP void intr_add_cpu(u_int cpu); +int intr_bind(u_int vector, u_char cpu); #endif int intr_add_handler(const char *name, int vector, driver_filter_t filter, driver_intr_t handler, void *arg, enum intr_type flags, ==== //depot/projects/ethng/src/sys/amd64/include/sysarch.h#2 (text+ko) ==== @@ -39,6 +39,7 @@ #define I386_SET_FSBASE 8 #define I386_GET_GSBASE 9 #define I386_SET_GSBASE 10 +#define AMD64_INTR_BIND 11 /* Leave space for 0-127 for to avoid translating syscalls */ #define AMD64_GET_FSBASE 128 @@ -46,6 +47,11 @@ #define AMD64_GET_GSBASE 130 #define AMD64_SET_GSBASE 131 +struct amd64_intr_bind_args { + unsigned int vector; + unsigned int cpu; +}; + #ifndef _KERNEL #include @@ -54,6 +60,7 @@ int amd64_get_gsbase(void **); int amd64_set_fsbase(void *); int amd64_set_gsbase(void *); +int amd64_intr_bind(unsigned int, unsigned int); int sysarch(int, void *); __END_DECLS #endif ==== //depot/projects/ethng/src/sys/conf/options#3 (text+ko) ==== @@ -547,6 +547,7 @@ SX_NOINLINE opt_global.h VFS_BIO_DEBUG opt_global.h IFNET_MULTIQUEUE opt_global.h +BIND_ALL opt_global.h # These are VM related options VM_KMEM_SIZE opt_vm.h ==== //depot/projects/ethng/src/sys/i386/i386/intr_machdep.c#2 (text+ko) ==== @@ -79,6 +79,7 @@ static void intr_assign_next_cpu(struct intsrc *isrc); #endif +static int intr_assign_cpu(void *arg, u_char cpu); static void intr_init(void *__dummy); static int intr_pic_registered(struct pic *pic); static void intrcnt_setname(const char *name, int index); @@ -136,10 +137,10 @@ #ifdef INTR_FILTER error = intr_event_create(&isrc->is_event, isrc, 0, (mask_fn)isrc->is_pic->pic_enable_source, - intr_eoi_src, intr_disab_eoi_src, "irq%d:", vector); + intr_eoi_src, intr_disab_eoi_src, intr_assign_cpu,, "irq%d:", vector); #else error = intr_event_create(&isrc->is_event, isrc, 0, - (mask_fn)isrc->is_pic->pic_enable_source, "irq%d:", vector); + (mask_fn)isrc->is_pic->pic_enable_source, intr_assign_cpu, "irq%d:", vector); #endif if (error) return (error); @@ -428,6 +429,28 @@ sx_xunlock(&intr_table_lock); } +static int +intr_assign_cpu(void *arg, u_char cpu) +{ +#ifdef SMP + struct intsrc *isrc; + + /* + * Don't do anything during early boot. We will pick up the + * assignment once the APs are started. + */ + if (assign_cpu) { + isrc = arg; + sx_xlock(&intr_table_lock); + isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[cpu]); + sx_xunlock(&intr_table_lock); + } + return (0); +#else + return (EOPNOTSUPP); +#endif +} + static void intrcnt_setname(const char *name, int index) { @@ -475,11 +498,15 @@ static void intr_init(void *dummy __unused) { - + int flags = 0; + intrcnt_setname("???", 0); intrcnt_index = 1; STAILQ_INIT(&pics); - sx_init(&intr_table_lock, "intr sources"); +#ifdef BIND_ALL + flags = SX_RECURSE; +#endif + sx_init_flags(&intr_table_lock, "intr sources", flags); mtx_init(&intrcnt_lock, "intrcnt", NULL, MTX_SPIN); } SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL) @@ -517,15 +544,15 @@ static void intr_assign_next_cpu(struct intsrc *isrc) { - struct pic *pic; - u_int apic_id; /* * Assign this source to a local APIC in a round-robin fashion. */ - pic = isrc->is_pic; - apic_id = cpu_apic_ids[current_cpu]; - pic->pic_assign_cpu(isrc, apic_id); +#ifdef BIND_ALL + intr_event_bind(isrc->is_event, current_cpu); +#else + isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[current_cpu]); +#endif do { current_cpu++; if (current_cpu >= num_cpus) @@ -533,6 +560,20 @@ } while (!(intr_cpus & (1 << current_cpu))); } ++/* Attempt to bind the specified IRQ to the specified CPU. */ +int +intr_bind(u_int vector, u_char cpu) +{ + struct intsrc *isrc; + + isrc = intr_lookup_source(vector); + if (isrc == NULL) + return (EINVAL); + isrc->is_event->ie_source = isrc; + + return (intr_event_bind(isrc->is_event, cpu)); +} + /* * Add a CPU to our mask of valid CPUs that can be destinations of * interrupts. @@ -562,7 +603,7 @@ int i; /* Don't bother on UP. */ - if (num_cpus <= 1) + if (mp_ncpus <= 1) return; /* Round-robin assign a CPU to each enabled source. */ @@ -570,8 +611,14 @@ assign_cpu = 1; for (i = 0; i < NUM_IO_INTS; i++) { isrc = interrupt_sources[i]; - if (isrc != NULL && isrc->is_handlers > 0) - intr_assign_next_cpu(isrc); + if (isrc != NULL && isrc->is_handlers > 0) { + if (isrc->is_event->ie_cpu != NOCPU) + isrc->is_pic->pic_assign_cpu(isrc, + cpu_apic_ids[isrc->is_event->ie_cpu]); + else + intr_assign_next_cpu(isrc); + + } } sx_xunlock(&intr_table_lock); } ==== //depot/projects/ethng/src/sys/i386/i386/sys_machdep.c#2 (text+ko) ==== @@ -37,6 +37,8 @@ #include #include +#include +#include #include #include #include @@ -44,6 +46,7 @@ #include #include #include +#include #include #include @@ -90,6 +93,9 @@ union { struct i386_ldt_args largs; struct i386_ioperm_args iargs; +#ifdef SMP + struct i386_intr_bind_args bargs; +#endif } kargs; uint32_t base; struct segment_descriptor sd, *sdp; @@ -209,6 +215,14 @@ load_gs(GSEL(GUGS_SEL, SEL_UPL)); } break; +#ifdef SMP + case I386_INTR_BIND: + error = copyin(uap->parms, &kargs.bargs, + sizeof(struct i386_intr_bind_args)); + if (error == 0) + error = intr_bind(kargs.bargs.vector, kargs.bargs.cpu); + break; +#endif default: error = EINVAL; break; ==== //depot/projects/ethng/src/sys/i386/include/intr_machdep.h#2 (text+ko) ==== @@ -130,6 +130,7 @@ void elcr_write_trigger(u_int irq, enum intr_trigger trigger); #ifdef SMP void intr_add_cpu(u_int cpu); +int intr_bind(int vector, u_int cpu); #endif int intr_add_handler(const char *name, int vector, driver_filter_t filter, driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep); ==== //depot/projects/ethng/src/sys/i386/include/sysarch.h#2 (text+ko) ==== @@ -47,6 +47,7 @@ #define I386_SET_FSBASE 8 #define I386_GET_GSBASE 9 #define I386_SET_GSBASE 10 +#define I386_INTR_BIND 11 /* These four only exist when running an i386 binary on amd64 */ #define _AMD64_GET_FSBASE 128 @@ -71,6 +72,11 @@ char *sub_args; /* args */ }; +struct i386_intr_bind_args { + unsigned int vector; + unsigned int cpu; +}; + #ifndef _KERNEL #include ==== //depot/projects/ethng/src/sys/kern/kern_intr.c#2 (text+ko) ==== @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -240,7 +241,7 @@ #ifndef INTR_FILTER int intr_event_create(struct intr_event **event, void *source, int flags, - void (*enable)(void *), const char *fmt, ...) + void (*enable)(void *), int (*assign_cpu)(void *, u_char), const char *fmt, ...) { struct intr_event *ie; va_list ap; @@ -251,6 +252,8 @@ ie = malloc(sizeof(struct intr_event), M_ITHREAD, M_WAITOK | M_ZERO); ie->ie_source = source; ie->ie_enable = enable; + ie->ie_assign_cpu = assign_cpu; + ie->ie_cpu = NOCPU; ie->ie_flags = flags; TAILQ_INIT(&ie->ie_handlers); mtx_init(&ie->ie_lock, "intr event", NULL, MTX_DEF); @@ -271,7 +274,7 @@ int intr_event_create(struct intr_event **event, void *source, int flags, void (*enable)(void *), void (*eoi)(void *), void (*disab)(void *), - const char *fmt, ...) + int (*assign_cpu)(void *, u_char), const char *fmt, ...) { struct intr_event *ie; va_list ap; @@ -302,6 +305,32 @@ } #endif +/* + * Bind an interrupt event to the specified CPU. + */ +int +intr_event_bind(struct intr_event *ie, u_char cpu) +{ + int error; + struct thread *td = curthread; + + /* Need a CPU to bind to. */ + if (cpu != NOCPU && CPU_ABSENT(cpu)) + return (EINVAL); + + if (ie->ie_assign_cpu == NULL) + return (EOPNOTSUPP); + + error = ie->ie_assign_cpu(ie->ie_source, cpu); + + thread_lock(td); + ie->ie_cpu = cpu; + thread_unlock(td); + + + return (0); +} + int intr_event_destroy(struct intr_event *ie) { @@ -895,10 +924,10 @@ } else { #ifdef INTR_FILTER error = intr_event_create(&ie, NULL, IE_SOFT, - NULL, NULL, NULL, "swi%d:", pri); + NULL, NULL, NULL, NULL, "swi%d:", pri); #else error = intr_event_create(&ie, NULL, IE_SOFT, - NULL, "swi%d:", pri); + NULL, NULL, "swi%d:", pri); #endif if (error) return (error); @@ -1081,6 +1110,7 @@ struct intr_event *ie; struct thread *td; struct proc *p; + u_char cpu; td = curthread; p = td->td_proc; @@ -1089,7 +1119,8 @@ ("%s: ithread and proc linkage out of sync", __func__)); ie = ithd->it_event; ie->ie_count = 0; - + cpu = NOCPU; + /* * As long as we have interrupts outstanding, go through the * list of handlers, giving each one a go at it. @@ -1134,6 +1165,21 @@ ie->ie_count = 0; mi_switch(SW_VOL, NULL); } + +#ifdef SMP + /* + * Ensure we are bound to the correct CPU. We can't + * move ithreads until SMP is running however, so just + * leave interrupts on the boor CPU during boot. + */ + if (ie->ie_cpu != cpu && smp_started) { + cpu = ie->ie_cpu; + if (cpu == NOCPU) + sched_unbind(td); + else + sched_bind(td, cpu); + } +#endif thread_unlock(td); } } @@ -1463,6 +1509,8 @@ db_printf("ADDING_THREAD"); comma = 1; } + if (ie->ie_cpu != NOCPU) + db_printf(" (CPU %d)", ie->ie_cpu); if (it != NULL && it->it_need) { if (comma) db_printf(", "); ==== //depot/projects/ethng/src/sys/sys/interrupt.h#2 (text+ko) ==== @@ -73,6 +73,7 @@ void *ie_source; /* Cookie used by MD code. */ struct intr_thread *ie_thread; /* Thread we are connected to. */ void (*ie_enable)(void *); + int (*ie_assign_cpu)(void *, u_char); #ifdef INTR_FILTER void (*ie_eoi)(void *); void (*ie_disab)(void *); @@ -81,6 +82,7 @@ int ie_count; /* Loop counter. */ int ie_warncnt; /* Rate-check interrupt storm warns. */ struct timeval ie_warntm; + u_char ie_cpu; }; /* Interrupt event flags kept in ie_flags. */ @@ -127,15 +129,16 @@ int intr_event_add_handler(struct intr_event *ie, const char *name, driver_filter_t filter, driver_intr_t handler, void *arg, u_char pri, enum intr_type flags, void **cookiep); +int intr_event_bind(struct intr_event *ie, u_char cpu); #ifndef INTR_FILTER int intr_event_create(struct intr_event **event, void *source, - int flags, void (*enable)(void *), const char *fmt, ...) - __printflike(5, 6); + int flags, void (*enable)(void *), int (*assign_cpu)(void *, u_char), const char *fmt, ...) + __printflike(6, 7); #else int intr_event_create(struct intr_event **event, void *source, int flags, void (*enable)(void *), void (*eoi)(void *), - void (*disab)(void *), const char *fmt, ...) - __printflike(7, 8); + void (*disab)(void *), int (*assign_cpu)(void *, u_char), const char *fmt, ...) + __printflike(8, 9); #endif int intr_event_destroy(struct intr_event *ie); int intr_event_remove_handler(void *cookie); From owner-p4-projects@FreeBSD.ORG Wed Aug 8 06:19:41 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 96E1316A41B; Wed, 8 Aug 2007 06:19:41 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6175316A419 for ; Wed, 8 Aug 2007 06:19:41 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4D6B013C48A for ; Wed, 8 Aug 2007 06:19:41 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l786Jf95000153 for ; Wed, 8 Aug 2007 06:19:41 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l786JfY0000150 for perforce@freebsd.org; Wed, 8 Aug 2007 06:19:41 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 8 Aug 2007 06:19:41 GMT Message-Id: <200708080619.l786JfY0000150@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124877 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, 08 Aug 2007 06:19:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=124877 Change 124877 by kmacy@kmacy_home:ethng on 2007/08/08 06:19:37 bind interrupts to the qsets corresponding CPU when using MSI-x and there is more than one qset in use remove sched_bind calls from IFNET_MULTIQUEUE case as intr_bind will now do that for us Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#5 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#4 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#5 (text+ko) ==== @@ -82,6 +82,8 @@ #include #endif +#include + static int cxgb_setup_msix(adapter_t *, int); static void cxgb_teardown_msix(adapter_t *); static void cxgb_init(void *); @@ -874,7 +876,7 @@ static int cxgb_setup_msix(adapter_t *sc, int msix_count) { - int i, j, k, nqsets, rid; + int i, j, k, nqsets, rid, vector; /* The first message indicates link changes and error conditions */ sc->irq_rid = 1; @@ -896,7 +898,7 @@ nqsets = sc->port[i].nqsets; for (j = 0; j < nqsets; j++, k++) { struct sge_qset *qs = &sc->sge.qs[k]; - + rid = k + 2; if (cxgb_debug) printf("rid=%d ", rid); @@ -909,19 +911,24 @@ } sc->msix_irq_rid[k] = rid; if (bus_setup_intr(sc->dev, sc->msix_irq_res[k], - INTR_MPSAFE|INTR_TYPE_NET, + INTR_MPSAFE|INTR_TYPE_NET, #ifdef INTR_FILTERS - NULL, + NULL, #endif t3_intr_msix, qs, &sc->msix_intr_tag[k])) { device_printf(sc->dev, "Cannot set up " "interrupt for message %d\n", rid); return (EINVAL); } + if (singleq) { + vector = rman_get_start(sc->msix_irq_res[k]); + if (bootverbose) + device_printf(sc->dev, "binding vector=%d to cpu=%d\n", vector, k % mp_ncpus); + intr_bind(vector, k % mp_ncpus); + } } } - return (0); } ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#4 (text+ko) ==== @@ -2607,19 +2607,6 @@ taskqueue_enqueue(adap->tq, &adap->slow_intr_task); } -#ifdef IFNET_MULTIQUEUE -static void -bind_qs_thread(struct sge_qset *qs) -{ - struct thread *td = curthread; - thread_lock(td); - sched_bind(td, qs->cpuid); - thread_unlock(td); - critical_enter(); - qs->flags |= QS_BOUND; - critical_exit(); -} - void t3_intr_msix(void *data) { @@ -2628,28 +2615,11 @@ struct sge_rspq *rspq = &qs->rspq; mtx_lock(&rspq->lock); - if ((qs->flags & QS_BOUND) == 0) - bind_qs_thread(qs); - if (process_responses_gts(adap, rspq) == 0) rspq->unhandled_irqs++; mtx_unlock(&rspq->lock); } -#else -void -t3_intr_msix(void *data) -{ - struct sge_qset *qs = data; - adapter_t *adap = qs->port->adapter; - struct sge_rspq *rspq = &qs->rspq; - - mtx_lock(&rspq->lock); - if (process_responses_gts(adap, rspq) == 0) - rspq->unhandled_irqs++; - mtx_unlock(&rspq->lock); -} -#endif /* * broken by recent mbuf changes */ From owner-p4-projects@FreeBSD.ORG Wed Aug 8 06:38:04 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B8F0B16A420; Wed, 8 Aug 2007 06:38:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6EF1416A418 for ; Wed, 8 Aug 2007 06:38:04 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5A8DB13C48D for ; Wed, 8 Aug 2007 06:38:04 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l786c4l1001488 for ; Wed, 8 Aug 2007 06:38:04 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l786c4R0001485 for perforce@freebsd.org; Wed, 8 Aug 2007 06:38:04 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 8 Aug 2007 06:38:04 GMT Message-Id: <200708080638.l786c4R0001485@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124878 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, 08 Aug 2007 06:38:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=124878 Change 124878 by kmacy@kmacy_home:ethng on 2007/08/08 06:37:35 once the service threads have started the qsets are owned by the corresponding thread - have the thread release per-qset resources on exit Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#6 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_multiq.c#2 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#5 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#6 (text+ko) ==== @@ -683,8 +683,11 @@ if (isset(&sc->open_device_map, OFFLOAD_DEVMAP_BIT)) offload_close(&sc->tdev); } +#endif + +#ifndef IFNET_MULTIQUEUE + t3_free_sge_resources(sc); #endif - t3_free_sge_resources(sc); free(sc->filters, M_DEVBUF); t3_sge_free(sc); ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_multiq.c#2 (text+ko) ==== @@ -101,7 +101,6 @@ int dropped = 0; if (qs->flags & QS_EXITING) { - printf("exiting freeing mbuf\n"); m_freem(m); return (0); } @@ -136,9 +135,6 @@ if (dropped) m_freem(m); } - - if (qs->fl[0].sdesc[0].map != NULL) - panic("at end bad map at 0 pidx=%d cidx=%d gen=%d", qs->fl[0].pidx, qs->fl[0].cidx, qs->fl[0].gen); return (0); } @@ -582,9 +578,11 @@ thread_lock(td); sched_unbind(td); thread_unlock(td); - - device_printf(qs->port->adapter->dev, "exiting thread for cpu%d\n", qs->cpuid); + + if (bootverbose) + device_printf(qs->port->adapter->dev, "exiting thread for cpu%d\n", qs->cpuid); + t3_free_qset(qs->port->adapter, qs); qs->flags &= ~QS_RUNNING; kthread_exit(0); } ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#5 (text+ko) ==== @@ -1595,10 +1595,13 @@ t3_free_sge_resources(adapter_t *sc) { int i, nqsets; - + +#ifdef IFNET_MULTIQUEUE + panic("%s should not be called when IFNET_MULTIQUEUE is defined", __FUNCTION__); +#endif for (nqsets = i = 0; i < (sc)->params.nports; i++) nqsets += sc->port[i].nqsets; - + for (i = 0; i < nqsets; ++i) t3_free_qset(sc, &sc->sge.qs[i]); } From owner-p4-projects@FreeBSD.ORG Wed Aug 8 06:42:10 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B001416A41B; Wed, 8 Aug 2007 06:42:10 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 252D216A418 for ; Wed, 8 Aug 2007 06:42:10 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 117D513C458 for ; Wed, 8 Aug 2007 06:42:10 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l786g9fI001849 for ; Wed, 8 Aug 2007 06:42:09 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l786g9EI001846 for perforce@freebsd.org; Wed, 8 Aug 2007 06:42:09 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Wed, 8 Aug 2007 06:42:09 GMT Message-Id: <200708080642.l786g9EI001846@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 124879 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, 08 Aug 2007 06:42:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=124879 Change 124879 by zhouzhouyi@zhouzhouyi_mactest on 2007/08/08 06:41:33 Test case for fifo, it is strange that there is no hooks for fifo io directly only checked via open Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/Makefile#4 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/fifo_io.c#1 add .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/macconf.c#1 add .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/fifo/00.t#1 add .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#14 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/Makefile#4 (text+ko) ==== @@ -6,16 +6,20 @@ #CFLAGS+=-DHAS_TRUNCATE64 #CFLAGS+=-DHAS_STAT64 -all: macproc mactest mdconfigopenrdonly +all: macproc mactest mdconfigopenrdonly fifo_io macproc: macproc.c gcc -Wall ${CFLAGS} macproc.c -o macproc -lutil mactest: mactest.c mactestparser.tab.c - gcc ${CFLAGS} mactest.c mactestparser.tab.c -o mactest + gcc ${CFLAGS} mactest.c mactestparser.tab.c macconf.c -o mactest mdconfigopenrdonly: mdconfig.c gcc ${CFLAGS} -o mdconfigopenrdonly mdconfig.c -lutil -lgeom -lbsdxml -lsbuf +fifo_io: fifo_io.c + gcc ${CFLAGS} -o fifo_io fifo_io.c mactestparser.tab.c macconf.c clean: rm -f macproc rm -f mactest + rm -f mdconfigopenrdonly + rm -f fifo_io ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#14 (text+ko) ==== @@ -18,6 +18,7 @@ macproc="${maindir}/macproc" mactest="${maindir}/mactest" mdconfigopenrdonly="${maindir}/mdconfigopenrdonly" +fifo_io="${maindir}/fifo_io" . ${maindir}/tests/conf @@ -111,6 +112,74 @@ } +fifotestexpect() +{ + + e="${1}" + shift + + e1="${1}" + shift + + if [ -f ${tmp_file} ]; then + rm ${tmp_file} + fi + touch ${tmp_file} + + if [ -f ${tmp_file1} ]; then + rm ${tmp_file1} + fi + touch ${tmp_file1} + + touch /var/log/mactest + +#set equal label to above files +# label=`getfmac "."| sed 's/\(\.:\ \)\([a-z\,\/]*\)/\2/` +# label1=`echo ${label}|sed 's/\/[a-z:0-9\+]*/\/equal/g` + label1="mls/equal,biba/equal" + setfmac ${label1} ${tmp_file} ${tmp_file1} /var/log/mactest + + ${fifo_io} $* 2>${tmp_file1} 1>>${tmp_file} + + c=1 + b=1 + + r=`cat ${tmp_file1}|tail -1` + echo "${r}" | egrep '^'${e}'$' >/dev/null 2>&1 + + if [ $? -eq 0 ]; then + c=0 + fi + + s=`cat ${tmp_file}|tail -1` + echo "${s}" | egrep '^'${e1}'$' >/dev/null 2>&1 + + if [ $? -eq 0 ]; then + b=0 + fi + + if [ ${c} -eq 0 ] && [ ${b} -eq 0 ]; then + echo "ok ${ntest}" + else + if [ ${c} != 0 ]; then + cat ${tmp_file1} + fi + + if [ ${b} != 0 ]; then + cat ${tmp_file} + fi + + echo "not ok ${ntest}" + fi + ntest=`expr $ntest + 1` + ret=`cat ${tmp_file}|tail -1` + + rm ${tmp_file} + rm ${tmp_file1} + +} + + maclabelexpect() { e="${1}" From owner-p4-projects@FreeBSD.ORG Wed Aug 8 06:43:12 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2B17C16A469; Wed, 8 Aug 2007 06:43:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 08AF216A421 for ; Wed, 8 Aug 2007 06:43:12 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E917813C459 for ; Wed, 8 Aug 2007 06:43:11 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l786hBjX001881 for ; Wed, 8 Aug 2007 06:43:11 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l786hBN4001878 for perforce@freebsd.org; Wed, 8 Aug 2007 06:43:11 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Wed, 8 Aug 2007 06:43:11 GMT Message-Id: <200708080643.l786hBN4001878@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 124880 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, 08 Aug 2007 06:43:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=124880 Change 124880 by zhouzhouyi@zhouzhouyi_mactest on 2007/08/08 06:42:47 move some common function of mac hook match into macconf.c Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.h#2 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.h#2 (text+ko) ==== @@ -54,5 +54,8 @@ FILE *inputfile; extern struct mactestlog_record *mactestlog_record_chain; +int modes_or_flags_compare(struct modes_or_flags * mf_conf, struct modes_or_flags *mf_log); +int label_compare(char *conf, char *log); +int labelstrings_compare(struct labelstrings *ls_conf, struct labelstrings *ls_log); #endif /* !_REGRESSION_MAC_TEST__H */ From owner-p4-projects@FreeBSD.ORG Wed Aug 8 08:02:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E38D16A41B; Wed, 8 Aug 2007 08:02:53 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C081D16A418 for ; Wed, 8 Aug 2007 08:02:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AA81413C46A for ; Wed, 8 Aug 2007 08:02:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7882qgI007749 for ; Wed, 8 Aug 2007 08:02:52 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7882qrH007746 for perforce@freebsd.org; Wed, 8 Aug 2007 08:02:52 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 8 Aug 2007 08:02:52 GMT Message-Id: <200708080802.l7882qrH007746@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124882 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, 08 Aug 2007 08:02:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=124882 Change 124882 by kmacy@kmacy_home:ethng on 2007/08/08 08:01:57 fix build errors for IFNET_MULTIQUEUE case Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#4 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#7 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_multiq.c#3 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#6 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#4 (text+ko) ==== @@ -31,7 +31,6 @@ ***************************************************************************/ - #ifndef _CXGB_ADAPTER_H_ #define _CXGB_ADAPTER_H_ @@ -577,7 +576,13 @@ int cxgb_pcpu_start(struct ifnet *ifp, int32_t cpuid, struct mbuf *m); int32_t cxgb_pcpu_get_cookie(struct ifnet *ifp, struct in6_addr *lip, uint16_t lport, struct in6_addr *rip, uint16_t rport, int ipv6); +void cxgb_pcpu_shutdown_threads(struct adapter *sc); +void cxgb_pcpu_startup_threads(struct adapter *sc); +void cxgb_start(struct ifnet *ifp); +struct mbuf *cxgb_dequeue_packet(struct ifnet *ifp, struct sge_txq *unused); +#endif +void t3_free_qset(adapter_t *sc, struct sge_qset *q); +int cxgb_tx_common(struct ifnet *ifp, struct sge_qset *qs, uint32_t txmax); #endif -#endif ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#7 (text+ko) ==== @@ -91,7 +91,6 @@ static void cxgb_stop_locked(struct port_info *); static void cxgb_set_rxmode(struct port_info *); static int cxgb_ioctl(struct ifnet *, unsigned long, caddr_t); -static void cxgb_start(struct ifnet *); static void cxgb_start_proc(void *, int ncount); static int cxgb_media_change(struct ifnet *); static void cxgb_media_status(struct ifnet *, struct ifmediareq *); @@ -219,22 +218,7 @@ SYSCTL_UINT(_hw_cxgb, OID_AUTO, singleq, CTLFLAG_RDTUN, &singleq, 0, "use a single queue-set per port"); -#ifdef IFNET_MULTIQUEUE -static int cxgb_pcpu_tx_coalesce = 0; -TUNABLE_INT("hw.cxgb.tx_coalesce", &cxgb_pcpu_tx_coalesce); -SYSCTL_UINT(_hw_cxgb, OID_AUTO, tx_coalesce, CTLFLAG_RDTUN, &cxgb_pcpu_tx_coalesce, 0, - "coalesce small packets into a single work request"); - -static int sleep_ticks = 1; -TUNABLE_INT("hw.cxgb.sleep_ticks", &sleep_ticks); -SYSCTL_UINT(_hw_cxgb, OID_AUTO, sleep_ticks, CTLFLAG_RDTUN, &sleep_ticks, 0, - "ticks to sleep between checking pcpu queues"); - -int cxgb_txq_mbuf_ring_size = 2048; -TUNABLE_INT("hw.cxgb.txq_mr_size", &cxgb_txq_mbuf_ring_size); -SYSCTL_UINT(_hw_cxgb, OID_AUTO, txq_mr_size, CTLFLAG_RDTUN, &cxgb_txq_mbuf_ring_size, 0, - "size of per-queue mbuf ring"); -#else +#ifndef IFNET_MULTIQUEUE int cxgb_txq_mbuf_ring_size = 0; #endif @@ -295,7 +279,6 @@ {0, 0, 0, NULL} }; - static int set_eeprom(struct port_info *pi, const uint8_t *data, int len, int offset); static inline char @@ -705,8 +688,6 @@ return; } - - static int alloc_filters(struct adapter *adap) { @@ -1935,34 +1916,18 @@ return (error); } -static int -cxgb_start_tx(struct ifnet *ifp, uint32_t txmax) +int +cxgb_tx_common(struct ifnet *ifp, struct sge_qset *qs, uint32_t txmax) { - struct sge_qset *qs; struct sge_txq *txq; - struct port_info *p = ifp->if_softc; struct mbuf *m0, *m = NULL; int err, in_use_init; - if (!p->link_config.link_ok) - return (ENXIO); - - if (IFQ_DRV_IS_EMPTY(&ifp->if_snd)) - return (ENOBUFS); - - qs = &p->adapter->sge.qs[p->first_qset]; txq = &qs->txq[TXQ_ETH]; - err = 0; - - if (txq->flags & TXQ_TRANSMITTING) - return (EINPROGRESS); - - mtx_lock(&txq->lock); - txq->flags |= TXQ_TRANSMITTING; in_use_init = txq->in_use; while ((txq->in_use - in_use_init < txmax) && (txq->size > txq->in_use + TX_MAX_DESC)) { - IFQ_DRV_DEQUEUE(&ifp->if_snd, m); + m = cxgb_dequeue_packet(ifp, txq); if (m == NULL) break; /* @@ -1996,9 +1961,7 @@ break; BPF_MTAP(ifp, m); } - txq->flags &= ~TXQ_TRANSMITTING; - mtx_unlock(&txq->lock); - +#ifdef IFNET_MULTIQUEUE if (__predict_false(err)) { if (err == ENOMEM) { ifp->if_drv_flags |= IFF_DRV_OACTIVE; @@ -2014,6 +1977,37 @@ ifp->if_drv_flags |= IFF_DRV_OACTIVE; err = ENOSPC; } +#endif + return (err); +} + +static int +cxgb_start_tx(struct ifnet *ifp, uint32_t txmax) +{ + struct sge_qset *qs; + struct sge_txq *txq; + struct port_info *p = ifp->if_softc; + int err; + + if (!p->link_config.link_ok) + return (ENXIO); + + if (IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + return (ENOBUFS); + + qs = &p->adapter->sge.qs[p->first_qset]; + txq = &qs->txq[TXQ_ETH]; + err = 0; + + if (txq->flags & TXQ_TRANSMITTING) + return (EINPROGRESS); + + mtx_lock(&txq->lock); + txq->flags |= TXQ_TRANSMITTING; + cxgb_tx_common(ifp, qs, txmax); + txq->flags &= ~TXQ_TRANSMITTING; + mtx_unlock(&txq->lock); + return (err); } ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_multiq.c#3 (text+ko) ==== @@ -88,6 +88,23 @@ #include #endif +extern struct sysctl_oid_list sysctl__hw_cxgb_children; +static int cxgb_pcpu_tx_coalesce = 0; +TUNABLE_INT("hw.cxgb.tx_coalesce", &cxgb_pcpu_tx_coalesce); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, tx_coalesce, CTLFLAG_RDTUN, &cxgb_pcpu_tx_coalesce, 0, + "coalesce small packets into a single work request"); + +static int sleep_ticks = 1; +TUNABLE_INT("hw.cxgb.sleep_ticks", &sleep_ticks); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, sleep_ticks, CTLFLAG_RDTUN, &sleep_ticks, 0, + "ticks to sleep between checking pcpu queues"); + +int cxgb_txq_mbuf_ring_size = 2048; +TUNABLE_INT("hw.cxgb.txq_mr_size", &cxgb_txq_mbuf_ring_size); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, txq_mr_size, CTLFLAG_RDTUN, &cxgb_txq_mbuf_ring_size, 0, + "size of per-queue mbuf ring"); + + static inline int32_t cxgb_pcpu_calc_cookie(struct ifnet *ifp, struct mbuf *immpkt); static void cxgb_pcpu_start_proc(void *arg); static int cxgb_pcpu_cookie_to_qidx(struct port_info *, int32_t cookie); @@ -100,17 +117,17 @@ struct mbuf_head *mbq; int dropped = 0; - if (qs->flags & QS_EXITING) { + if (qs->qs_flags & QS_EXITING) { m_freem(m); return (0); } txq = &qs->txq[TXQ_ETH]; - DPRINTF("enqueueing packet to cpuid=%d\n", qs->cpuid); + DPRINTF("enqueueing packet to cpuid=%d\n", qs->qs_cpuid); mbq = &txq->sendq; - if (curcpu == qs->cpuid) { + if (curcpu == qs->qs_cpuid) { critical_enter(); mbufq_tail(mbq, m); critical_exit(); @@ -139,7 +156,7 @@ return (0); } -static int +int cxgb_pcpu_enqueue_packet(struct ifnet *ifp, int32_t cookie, struct mbuf *m) { struct port_info *pi; @@ -159,7 +176,7 @@ return (err); } -static struct mbuf * +struct mbuf * cxgb_dequeue_packet(struct ifnet *unused, struct sge_txq *txq) { struct mbuf *m, *tail, *head; @@ -172,7 +189,7 @@ tail = NULL; qs = txq_to_qset(txq, TXQ_ETH); - if (qs->flags & QS_EXITING) + if (qs->qs_flags & QS_EXITING) return (NULL); critical_enter(); @@ -196,7 +213,7 @@ return (head); } -static int32_t +int32_t cxgb_pcpu_get_cookie(struct ifnet *ifp, struct in6_addr *lip, uint16_t lport, struct in6_addr *rip, uint16_t rport, int ipv6) { uint32_t base; @@ -408,7 +425,7 @@ immqs = &pi->adapter->sge.qs[qidx]; curqs = (curcpu < SGE_QSETS) ? &pi->adapter->sge.qs[curcpu] : NULL; - if (immqs->flags & QS_EXITING) { + if (immqs->qs_flags & QS_EXITING) { printf("exting\n"); if (immpkt) m_freem(immpkt); @@ -432,7 +449,7 @@ txq = &curqs->txq[TXQ_ETH]; - if (curqs->flags & QS_EXITING) + if (curqs->qs_flags & QS_EXITING) return (0); /* @@ -459,7 +476,7 @@ flush = (!mbufq_empty(&txq->sendq)) && ((cxgb_pcpu_tx_coalesce == 0) || complete || tx_flush); max_desc = tx_flush ? 0xffffff : TX_START_MAX_DESC; - err = flush ? cxgb_tx_common(curqs->port->ifp, txq, max_desc) : 0; + err = flush ? cxgb_tx_common(curqs->port->ifp, curqs, max_desc) : 0; if (desc_reclaimable(txq) > 0) { if (cxgb_debug) { @@ -484,7 +501,7 @@ return (err); } -static int +int cxgb_pcpu_start(struct ifnet *ifp, int32_t cookie, struct mbuf *immpkt) { int err; @@ -498,7 +515,7 @@ return (err); } -static void +void cxgb_start(struct ifnet *ifp) { struct port_info *pi = ifp->if_softc; @@ -525,7 +542,7 @@ qidx = cxgb_pcpu_cookie_to_qidx(pi, calc_cookie); qs = &pi->adapter->sge.qs[qidx]; critical_enter(); - if (qs->cpuid == curcpu) { + if (qs->qs_cpuid == curcpu) { if (lhead == NULL) lhead = m; else @@ -559,17 +576,16 @@ td = curthread; - qs->flags |= QS_RUNNING; - + qs->qs_flags |= QS_RUNNING; thread_lock(td); - sched_bind(td, qs->cpuid); + sched_bind(td, qs->qs_cpuid); thread_unlock(td); for (;;) { - if (qs->flags & QS_EXITING) + if (qs->qs_flags & QS_EXITING) break; - cxgb_pcpu_start_(qs->port, qs->cpuid, NULL, TRUE); + cxgb_pcpu_start_(qs->port, qs->qs_cpuid, NULL, TRUE); refill_fl_service(qs->port->adapter, &qs->fl[0]); refill_fl_service(qs->port->adapter, &qs->fl[1]); @@ -580,10 +596,10 @@ thread_unlock(td); if (bootverbose) - device_printf(qs->port->adapter->dev, "exiting thread for cpu%d\n", qs->cpuid); + device_printf(qs->port->adapter->dev, "exiting thread for cpu%d\n", qs->qs_cpuid); t3_free_qset(qs->port->adapter, qs); - qs->flags &= ~QS_RUNNING; + qs->qs_flags &= ~QS_RUNNING; kthread_exit(0); } @@ -616,8 +632,8 @@ qs = &sc->sge.qs[pi->first_qset + j]; qs->port = pi; - qs->cpuid = ((pi->first_qset + j) % mp_ncpus); - device_printf(sc->dev, "starting thread for %d\n", qs->cpuid); + qs->qs_cpuid = ((pi->first_qset + j) % mp_ncpus); + device_printf(sc->dev, "starting thread for %d\n", qs->qs_cpuid); kthread_create(cxgb_pcpu_start_proc, qs, &p, RFNOWAIT, 0, "cxgbsp"); @@ -637,11 +653,11 @@ for (j = 0; j < pi->nqsets; j++) { struct sge_qset *qs = &sc->sge.qs[first + j]; - qs->flags |= QS_EXITING; + qs->qs_flags |= QS_EXITING; wakeup(qs); tsleep(&sc, 0, "cxgb unload 0", hz>>2); - while (qs->flags & QS_RUNNING) { - qs->flags |= QS_EXITING; + while (qs->qs_flags & QS_RUNNING) { + qs->qs_flags |= QS_EXITING; device_printf(sc->dev, "qset thread %d still running - sleeping\n", first + j); tsleep(&sc, 0, "cxgb unload 1", 2*hz); } ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#6 (text+ko) ==== @@ -185,7 +185,6 @@ static int lro_default = 0; int cxgb_debug = 0; -static void t3_free_qset(adapter_t *sc, struct sge_qset *q); static void sge_timer_cb(void *arg); static void sge_timer_reclaim(void *arg, int ncount); static void sge_txq_reclaim_handler(void *arg, int ncount); @@ -1526,7 +1525,7 @@ * as HW contexts, packet buffers, and descriptor rings. Traffic to the * queue set must be quiesced prior to calling this. */ -static void +void t3_free_qset(adapter_t *sc, struct sge_qset *q) { int i; From owner-p4-projects@FreeBSD.ORG Wed Aug 8 08:15:08 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9F52916A420; Wed, 8 Aug 2007 08:15:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 78A9B16A418 for ; Wed, 8 Aug 2007 08:15:08 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6374813C465 for ; Wed, 8 Aug 2007 08:15:08 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l788F8j0009984 for ; Wed, 8 Aug 2007 08:15:08 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l788F8OT009981 for perforce@freebsd.org; Wed, 8 Aug 2007 08:15:08 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 8 Aug 2007 08:15:08 GMT Message-Id: <200708080815.l788F8OT009981@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124883 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, 08 Aug 2007 08:15:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=124883 Change 124883 by kmacy@kmacy_home:ethng on 2007/08/08 08:15:05 fix fallout from last change for singleq case Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#5 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#8 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#5 (text+ko) ==== @@ -578,11 +578,11 @@ struct in6_addr *rip, uint16_t rport, int ipv6); void cxgb_pcpu_shutdown_threads(struct adapter *sc); void cxgb_pcpu_startup_threads(struct adapter *sc); -void cxgb_start(struct ifnet *ifp); -struct mbuf *cxgb_dequeue_packet(struct ifnet *ifp, struct sge_txq *unused); #endif void t3_free_qset(adapter_t *sc, struct sge_qset *q); int cxgb_tx_common(struct ifnet *ifp, struct sge_qset *qs, uint32_t txmax); +struct mbuf *cxgb_dequeue_packet(struct ifnet *ifp, struct sge_txq *unused); +void cxgb_start(struct ifnet *ifp); #endif ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#8 (text+ko) ==== @@ -2032,7 +2032,7 @@ } #ifndef IFNET_MULTIQUEUE -static inline struct mbuf * +struct mbuf * cxgb_dequeue_packet(struct ifnet *ifp, struct sge_txq *unused) { struct mbuf *m; @@ -2041,7 +2041,7 @@ return (m); } -static void +void cxgb_start(struct ifnet *ifp) { struct port_info *pi = ifp->if_softc; From owner-p4-projects@FreeBSD.ORG Wed Aug 8 09:38:22 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4EE6116A41B; Wed, 8 Aug 2007 09:38:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 088C016A41A for ; Wed, 8 Aug 2007 09:38:22 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E81FF13C45E for ; Wed, 8 Aug 2007 09:38:21 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l789cLd6025807 for ; Wed, 8 Aug 2007 09:38:21 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l789cLlx025804 for perforce@freebsd.org; Wed, 8 Aug 2007 09:38:21 GMT (envelope-from lulf@FreeBSD.org) Date: Wed, 8 Aug 2007 09:38:21 GMT Message-Id: <200708080938.l789cLlx025804@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 124886 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, 08 Aug 2007 09:38:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=124886 Change 124886 by lulf@lulf_carrot on 2007/08/08 09:38:13 - Always update state of an object to the state given by the newest drive configuration. This prevents a situation where a mirror will falsely stay in the up state because a drive with an older configuration didn't have the correct state. - Do not try to remove a subdisk from a drive in the GV_DRIVE_REFERENCED state, since it was never added to the list if that is the case. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rm.c#13 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#27 edit Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rm.c#13 (text+ko) ==== @@ -279,7 +279,7 @@ gv_update_vol_size(v, gv_vol_size(v)); } } - if (s->drive_sc) + if (s->drive_sc && !(s->drive_sc->flags & GV_DRIVE_REFERENCED)) LIST_REMOVE(s, from_drive); LIST_REMOVE(s, sd); gv_free_sd(s); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#27 (text+ko) ==== @@ -92,8 +92,10 @@ v2 = gv_find_vol(sc, v->name); if (v2 != NULL) { /* XXX */ - if (is_newer) + if (is_newer) { + v2->state = v->state; printf("VINUM: newer volume found!\n"); + } g_free(v); continue; } @@ -110,8 +112,10 @@ p2 = gv_find_plex(sc, p->name); if (p2 != NULL) { /* XXX */ - if (is_newer) + if (is_newer) { + p2->state = p->state; printf("VINUM: newer plex found!\n"); + } g_free(p); continue; } @@ -137,8 +141,10 @@ s2 = gv_find_sd(sc, s->name); if (s2 != NULL) { /* XXX */ - if (is_newer) + if (is_newer) { + s2->state = s->state; printf("VINUM: newer subdisk found!\n"); + } g_free(s); continue; } From owner-p4-projects@FreeBSD.ORG Wed Aug 8 09:41:26 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9CD8716A41A; Wed, 8 Aug 2007 09:41:26 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 51BCE16A418 for ; Wed, 8 Aug 2007 09:41:26 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3D78F13C4D0 for ; Wed, 8 Aug 2007 09:41:26 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l789fQxJ026178 for ; Wed, 8 Aug 2007 09:41:26 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l789fPoL026174 for perforce@freebsd.org; Wed, 8 Aug 2007 09:41:25 GMT (envelope-from lulf@FreeBSD.org) Date: Wed, 8 Aug 2007 09:41:25 GMT Message-Id: <200708080941.l789fPoL026174@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 124887 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, 08 Aug 2007 09:41:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=124887 Change 124887 by lulf@lulf_carrot on 2007/08/08 09:41:18 - Remember to remove subdisk from a drives subdisk list when a drive is lost. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_events.c#11 edit Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_events.c#11 (text+ko) ==== @@ -157,7 +157,7 @@ { struct g_consumer *cp; struct gv_drive *d2; - struct gv_sd *s; + struct gv_sd *s, *s2; struct gv_freelist *fl, *fl2; gv_set_drive_state(d, GV_DRIVE_DOWN, @@ -195,8 +195,11 @@ d->freelist_entries = 0; d->sdcount = 0; - LIST_FOREACH(s, &d->subdisks, from_drive) + /* Put the subdisk in tasted mode, and remove from drive list. */ + LIST_FOREACH_SAFE(s, &d->subdisks, from_drive, s2) { + LIST_REMOVE(s, from_drive); s->flags |= GV_SD_TASTED; + } /* * Don't forget that gv_is_newer wants a "real" drive at the beginning From owner-p4-projects@FreeBSD.ORG Wed Aug 8 10:33:33 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2876816A41A; Wed, 8 Aug 2007 10:33:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B9E3516A418 for ; Wed, 8 Aug 2007 10:33:32 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A3D5D13C4A8 for ; Wed, 8 Aug 2007 10:33:32 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78AXWLt030807 for ; Wed, 8 Aug 2007 10:33:32 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78AXWFj030804 for perforce@freebsd.org; Wed, 8 Aug 2007 10:33:32 GMT (envelope-from lulf@FreeBSD.org) Date: Wed, 8 Aug 2007 10:33:32 GMT Message-Id: <200708081033.l78AXWFj030804@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 124889 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, 08 Aug 2007 10:33:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=124889 Change 124889 by lulf@lulf_carrot on 2007/08/08 10:32:43 - Add possibility to wait for events to be completed. This means that certain functions like mirror, concat or raid5 can make sure that all object-creating events are processed. Since they sends more than one request down to the kernel, they are dependent on this. And, we don't have to have ugly sleep-hacks. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.c#18 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#33 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#26 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_create.c#8 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_events.c#12 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#21 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_move.c#6 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rename.c#5 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rm.c#14 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_state.c#21 edit .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_events.c#4 edit Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.c#18 (text+ko) ==== @@ -432,14 +432,8 @@ gctl_ro_param(req, "plexes", sizeof(int), &plexes); gctl_ro_param(req, "subdisks", sizeof(int), &subdisks); errstr = gctl_issue(req); - if (errstr != NULL) { + if (errstr != NULL) warnx("error creating drive: %s", errstr); - gctl_free(req); - free(drivename); - usleep(100000); /* sleep for 0.1s. */ - printf("retrying...\n"); - return (create_drive(device)); - } gctl_free(req); return (drivename); } ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#33 (text+ko) ==== @@ -75,7 +75,7 @@ g_trace(G_T_TOPOLOGY, "gv_orphan(%s)", gp->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0, 0); } void @@ -188,7 +188,7 @@ sc = gp->softc; if (sc != NULL) { - gv_post_event(sc, GV_EVENT_THREAD_EXIT, NULL, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_THREAD_EXIT, NULL, NULL, 0, 0, 0); gp->softc = NULL; g_wither_geom(gp, ENXIO); return (EAGAIN); @@ -240,7 +240,8 @@ } v = gv_find_vol(sc, parent); p = gv_find_plex(sc, child); - gv_post_event(sc, GV_EVENT_ATTACH_PLEX, p, v, *offset, *rename); + gv_post_event(sc, GV_EVENT_ATTACH_PLEX, p, v, *offset, *rename, + 0); break; case GV_TYPE_SD: if (type_parent != GV_TYPE_PLEX) { @@ -253,7 +254,7 @@ break; } s = gv_find_sd(sc, child); - gv_post_event(sc, GV_EVENT_ATTACH_SD, s, p, *offset, *rename); + gv_post_event(sc, GV_EVENT_ATTACH_SD, s, p, *offset, *rename, 0); break; default: gctl_error(req, "invalid child type"); @@ -281,11 +282,11 @@ switch (type) { case GV_TYPE_PLEX: p = gv_find_plex(sc, object); - gv_post_event(sc, GV_EVENT_DETACH_PLEX, p, NULL, *flags, 0); + gv_post_event(sc, GV_EVENT_DETACH_PLEX, p, NULL, *flags, 0, 0); break; case GV_TYPE_SD: s = gv_find_sd(sc, object); - gv_post_event(sc, GV_EVENT_DETACH_SD, s, NULL, *flags, 0); + gv_post_event(sc, GV_EVENT_DETACH_SD, s, NULL, *flags, 0, 0); break; default: gctl_error(req, "invalid object type"); @@ -338,7 +339,7 @@ d = g_malloc(sizeof(*d), M_WAITOK | M_ZERO); bcopy(d2, d, sizeof(*d)); - gv_post_event(sc, GV_EVENT_CREATE_DRIVE, d, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_DRIVE, d, NULL, 0, 0, 0); } /* ... then volume definitions ... */ @@ -355,7 +356,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); bcopy(v2, v, sizeof(*v)); - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); } /* ... then plex definitions ... */ @@ -372,7 +373,7 @@ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); bcopy(p2, p, sizeof(*p)); - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); } /* ... and, finally, subdisk definitions. */ @@ -389,12 +390,12 @@ s = g_malloc(sizeof(*s), M_WAITOK | M_ZERO); bcopy(s2, s, sizeof(*s)); - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); } error: - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); return (0); } @@ -426,7 +427,7 @@ /* Save our configuration back to disk. */ } else if (!strcmp(verb, "saveconfig")) { - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 0); /* Return configuration in string form. */ } else if (!strcmp(verb, "getconfig")) { @@ -461,7 +462,7 @@ gv_rename(gp, req); } else if (!strcmp(verb, "resetconfig")) { - gv_post_event(sc, GV_EVENT_RESET_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_RESET_CONFIG, sc, NULL, 0, 0, 0); } else if (!strcmp(verb, "start")) { gv_start_obj(gp, req); @@ -522,9 +523,9 @@ /* XXX: The state of the plex might have changed when this event is * picked up ... We should perhaps check this afterwards. */ if (*rebuild) - gv_post_event(sc, GV_EVENT_PARITY_REBUILD, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_PARITY_REBUILD, p, NULL, 0, 0, 0); else - gv_post_event(sc, GV_EVENT_PARITY_CHECK, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_PARITY_CHECK, p, NULL, 0, 0, 0); } @@ -571,7 +572,7 @@ if (vhdr != NULL) { if (vhdr->magic == GV_MAGIC) gv_post_event(sc, GV_EVENT_DRIVE_TASTED, pp, NULL, 0, - 0); + 0, 0); g_free(vhdr); } @@ -898,6 +899,7 @@ printf("VINUM: unknown event %d\n", ev->type); } + wakeup(ev); g_free(ev); mtx_lock(&sc->queue_mtx); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#26 (text+ko) ==== @@ -108,7 +108,7 @@ void gv_worker(void *); void gv_post_event(struct gv_softc *, int, void *, void *, intmax_t, - intmax_t); + intmax_t, int); void gv_drive_tasted(struct gv_softc *, struct g_provider *); void gv_drive_lost(struct gv_softc *, struct gv_drive *); void gv_setup_objects(struct gv_softc *); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_create.c#8 (text+ko) ==== @@ -324,7 +324,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); /* Then we create the plex. */ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); @@ -332,7 +332,7 @@ strlcpy(p->volume, v->name, GV_MAXVOLNAME); p->org = GV_PLEX_CONCAT; p->stripesize = 0; - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); /* Drives are first (right now) priority */ for (dcount = 0; dcount < *drives; dcount++) { @@ -350,10 +350,10 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); } /* @@ -402,7 +402,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); /* Then we create the plexes. */ for (pcount = 0; pcount < 2; pcount++) { @@ -417,7 +417,7 @@ p->org = GV_PLEX_CONCAT; p->stripesize = -1; } - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); /* We just gives each even drive to plex one, and each odd to * plex two. */ @@ -440,12 +440,12 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); scount++; } } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); } void @@ -492,7 +492,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); /* Then we create the plex. */ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); @@ -500,7 +500,7 @@ strlcpy(p->volume, v->name, GV_MAXVOLNAME); p->org = GV_PLEX_RAID5; p->stripesize = *stripesize; - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); /* Create subdisks on drives. */ for (dcount = 0; dcount < *drives; dcount++) { @@ -518,10 +518,10 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); } /* @@ -564,7 +564,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); /* Then we create the plex. */ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); @@ -572,7 +572,7 @@ strlcpy(p->volume, v->name, GV_MAXVOLNAME); p->org = GV_PLEX_STRIPED; p->stripesize = 262144; - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); /* Create subdisks on drives. */ for (dcount = 0; dcount < *drives; dcount++) { @@ -590,8 +590,8 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); } ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_events.c#12 (text+ko) ==== @@ -29,8 +29,10 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include +#include #include #include @@ -39,7 +41,7 @@ void gv_post_event(struct gv_softc *sc, int event, void *arg1, void *arg2, - intmax_t arg3, intmax_t arg4) + intmax_t arg3, intmax_t arg4, int wait) { struct gv_event *ev; @@ -53,6 +55,8 @@ mtx_lock(&sc->queue_mtx); TAILQ_INSERT_TAIL(&sc->equeue, ev, events); wakeup(sc); + if (wait) + msleep(ev, &sc->queue_mtx, 0, "gv_post_event", hz / 4); mtx_unlock(&sc->queue_mtx); } @@ -169,7 +173,7 @@ if (cp->nstart != cp->nend) { printf("VINUM: dead drive '%s' has still active " "requests, can't detach consumer\n", d->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0, 0); return; } g_topology_lock(); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#21 (text+ko) ==== @@ -72,14 +72,14 @@ v = gv_find_vol(sc, argv); if (v != NULL) gv_post_event(sc, GV_EVENT_START_VOLUME, v, - NULL, *initsize, 0); + NULL, *initsize, 0, 0); break; case GV_TYPE_PLEX: p = gv_find_plex(sc, argv); if (p != NULL) gv_post_event(sc, GV_EVENT_START_PLEX, p, NULL, - *initsize, 0); + *initsize, 0, 0); break; case GV_TYPE_SD: ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_move.c#6 (text+ko) ==== @@ -85,7 +85,7 @@ gctl_error(req, "unknown subdisk '%s'", object); return; } - gv_post_event(sc, GV_EVENT_MOVE_SD, s, d, *flags, 0); + gv_post_event(sc, GV_EVENT_MOVE_SD, s, d, *flags, 0, 0); } } ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rename.c#5 (text+ko) ==== @@ -77,7 +77,7 @@ } name = g_malloc(GV_MAXVOLNAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXVOLNAME); - gv_post_event(sc, GV_EVENT_RENAME_VOL, v, name, *flags, 0); + gv_post_event(sc, GV_EVENT_RENAME_VOL, v, name, *flags, 0, 0); break; case GV_TYPE_PLEX: p = gv_find_plex(sc, object); @@ -87,7 +87,7 @@ } name = g_malloc(GV_MAXPLEXNAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXPLEXNAME); - gv_post_event(sc, GV_EVENT_RENAME_PLEX, p, name, *flags, 0); + gv_post_event(sc, GV_EVENT_RENAME_PLEX, p, name, *flags, 0, 0); break; case GV_TYPE_SD: s = gv_find_sd(sc, object); @@ -97,7 +97,7 @@ } name = g_malloc(GV_MAXSDNAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXSDNAME); - gv_post_event(sc, GV_EVENT_RENAME_SD, s, name, *flags, 0); + gv_post_event(sc, GV_EVENT_RENAME_SD, s, name, *flags, 0, 0); break; case GV_TYPE_DRIVE: d = gv_find_drive(sc, object); @@ -107,7 +107,7 @@ } name = g_malloc(GV_MAXDRIVENAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXDRIVENAME); - gv_post_event(sc, GV_EVENT_RENAME_DRIVE, d, name, *flags, 0); + gv_post_event(sc, GV_EVENT_RENAME_DRIVE, d, name, *flags, 0, 0); break; default: gctl_error(req, "unknown object '%s'", object); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rm.c#14 (text+ko) ==== @@ -81,7 +81,7 @@ return; } - gv_post_event(sc, GV_EVENT_RM_VOLUME, v, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_RM_VOLUME, v, NULL, 0, 0, 0); break; case GV_TYPE_PLEX: @@ -106,7 +106,7 @@ return; } - gv_post_event(sc, GV_EVENT_RM_PLEX, p, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_RM_PLEX, p, NULL, 0, 0, 0); break; case GV_TYPE_SD: @@ -119,7 +119,7 @@ return; } - gv_post_event(sc, GV_EVENT_RM_SD, s, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_RM_SD, s, NULL, 0, 0, 0); break; case GV_TYPE_DRIVE: @@ -138,7 +138,8 @@ return; }*/ - gv_post_event(sc, GV_EVENT_RM_DRIVE, d, NULL, *flags, 0); + gv_post_event(sc, GV_EVENT_RM_DRIVE, d, NULL, *flags, 0, + 0); break; default: @@ -147,7 +148,7 @@ } } - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 0); } /* Resets configuration */ @@ -175,7 +176,7 @@ LIST_FOREACH_SAFE(v, &sc->volumes, volume, v2) gv_rm_vol(sc, v); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 0); return (0); } ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_state.c#21 (text+ko) ==== @@ -78,7 +78,7 @@ } v = gv_find_vol(sc, obj); gv_post_event(sc, GV_EVENT_SET_VOL_STATE, v, NULL, - gv_volstatei(state), f); + gv_volstatei(state), f, 0); break; case GV_TYPE_PLEX: @@ -88,7 +88,7 @@ } p = gv_find_plex(sc, obj); gv_post_event(sc, GV_EVENT_SET_PLEX_STATE, p, NULL, - gv_plexstatei(state), f); + gv_plexstatei(state), f, 0); break; case GV_TYPE_SD: @@ -98,7 +98,7 @@ } s = gv_find_sd(sc, obj); gv_post_event(sc, GV_EVENT_SET_SD_STATE, s, NULL, - gv_sdstatei(state), f); + gv_sdstatei(state), f, 0); break; case GV_TYPE_DRIVE: @@ -108,7 +108,7 @@ } d = gv_find_drive(sc, obj); gv_post_event(sc, GV_EVENT_SET_DRIVE_STATE, d, NULL, - gv_drivestatei(state), f); + gv_drivestatei(state), f, 0); break; default: ==== //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_events.c#4 (text+ko) ==== @@ -64,9 +64,11 @@ struct gv_hdr *hdr; struct gv_drive *d; char *buf; + int updatesd; hdr = NULL; buf = NULL; + updatesd = 0; printf("DEBUG: tasted drive on '%s'\n", pp->name); @@ -107,6 +109,7 @@ } else if (d->flags & GV_DRIVE_REFERENCED) { strncpy(d->device, pp->name, GV_MAXDRIVENAME); d->flags &= ~GV_DRIVE_REFERENCED; + updatesd = 1; } else { printf("DEBUG: drive '%s' is already known\n", d->name); g_free(hdr); From owner-p4-projects@FreeBSD.ORG Wed Aug 8 10:48:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E88E516A420; Wed, 8 Aug 2007 10:48:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AFE3516A418 for ; Wed, 8 Aug 2007 10:48:52 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B28D13C459 for ; Wed, 8 Aug 2007 10:48:52 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78Amqvr031550 for ; Wed, 8 Aug 2007 10:48:52 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78Amq8W031547 for perforce@freebsd.org; Wed, 8 Aug 2007 10:48:52 GMT (envelope-from mharvan@FreeBSD.org) Date: Wed, 8 Aug 2007 10:48:52 GMT Message-Id: <200708081048.l78Amq8W031547@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124890 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, 08 Aug 2007 10:48:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=124890 Change 124890 by mharvan@mharvan_bike-planet on 2007/08/08 10:48:32 TCP plugin should send the packet length and the packet itself in one go Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#9 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#9 (text+ko) ==== @@ -328,21 +328,30 @@ int plugin_send(plugint *pl, char *data, int len, int data_type) { plugin_tcp_datat *datapl = (plugin_tcp_datat*) pl->data; int n = 0; + char *ldata; if (datapl->state != PLUGIN_STATE_CONNECTED) { fprintf(stderr, "no client connected yet, discarding data\n"); return 0; } else { + ldata = malloc(len+sizeof(len)); + if (ldata == NULL) + return (SEND_ERROR_MALLOC); + memcpy(ldata, &len, sizeof(len)); + memcpy(ldata + sizeof(len), data, len); + n = write(datapl->fd, ldata, sizeof(len) + len); + free(ldata); + //n = write(datapl->fd, data, len); - // TODO: we should use on buffer only as the current + // TODO: we should use one buffer only as the current // approach generates two packets - n = send(datapl->fd, &len, sizeof(len), 0); - n = send(datapl->fd, data, len, 0); + //n = send(datapl->fd, &len, sizeof(len), 0); + //n = send(datapl->fd, data, len, 0); //fprintf(stderr, "plugin_send: fd: %d\n", datapl->fd); //fprintf(stderr, "plugin_send: write returned %d\n", n); } if (n < 0 || (len != 0 && n == 0) ) { - plugin_report(pl, REPORT_ERROR_RECEIVE); + plugin_report(pl, REPORT_ERROR_SEND); } //return n; return SEND_PKT_SENT; From owner-p4-projects@FreeBSD.ORG Wed Aug 8 12:45:19 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7855F16A420; Wed, 8 Aug 2007 12:45:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D54116A417 for ; Wed, 8 Aug 2007 12:45:19 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 095D113C465 for ; Wed, 8 Aug 2007 12:45:19 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78CjIoM046121 for ; Wed, 8 Aug 2007 12:45:18 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78CjIAJ046118 for perforce@freebsd.org; Wed, 8 Aug 2007 12:45:18 GMT (envelope-from gabor@freebsd.org) Date: Wed, 8 Aug 2007 12:45:18 GMT Message-Id: <200708081245.l78CjIAJ046118@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124895 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, 08 Aug 2007 12:45:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=124895 Change 124895 by gabor@gabor_server on 2007/08/08 12:45:01 - Bleh, fix the relation signs :) Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#9 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#9 (text+ko) ==== @@ -49,7 +49,7 @@ __suffix=${USE_PERL5:C/^[0-9.]+//} .if ${__suffix} == "+" -.if ${__prefix} < ${PERL_LEVEL} +.if ${__prefix} > ${PERL_LEVEL} IGNORE= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 .endif .elif ${__suffix} == "" @@ -57,7 +57,7 @@ IGNORE= You need Perl ${__prefix} exectly .endif .elif ${__suffix} == "-" -.if ${__prefix} > ${PERL_LEVEL} +.if ${__prefix} < ${PERL_LEVEL} IGNORE= You need Perl ${__prefix} or earlier .endif .else From owner-p4-projects@FreeBSD.ORG Wed Aug 8 12:46:21 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F09516A41A; Wed, 8 Aug 2007 12:46:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 04F9716A417 for ; Wed, 8 Aug 2007 12:46:21 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CCD6C13C46E for ; Wed, 8 Aug 2007 12:46:20 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78CkKUD046157 for ; Wed, 8 Aug 2007 12:46:20 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78CkKum046154 for perforce@freebsd.org; Wed, 8 Aug 2007 12:46:20 GMT (envelope-from gabor@freebsd.org) Date: Wed, 8 Aug 2007 12:46:20 GMT Message-Id: <200708081246.l78CkKum046154@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124896 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, 08 Aug 2007 12:46:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=124896 Change 124896 by gabor@gabor_server on 2007/08/08 12:45:41 - Typo Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#10 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#10 (text+ko) ==== @@ -54,7 +54,7 @@ .endif .elif ${__suffix} == "" .if ${__prefix} != ${PERL_LEVEL} -IGNORE= You need Perl ${__prefix} exectly +IGNORE= You need Perl ${__prefix} exactly .endif .elif ${__suffix} == "-" .if ${__prefix} < ${PERL_LEVEL} From owner-p4-projects@FreeBSD.ORG Wed Aug 8 12:57:46 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32CF216A468; Wed, 8 Aug 2007 12:57:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB7AD16A420 for ; Wed, 8 Aug 2007 12:57:45 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C7B2813C4A8 for ; Wed, 8 Aug 2007 12:57:45 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78CvjMa055414 for ; Wed, 8 Aug 2007 12:57:45 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78CvjAt055407 for perforce@freebsd.org; Wed, 8 Aug 2007 12:57:45 GMT (envelope-from gabor@freebsd.org) Date: Wed, 8 Aug 2007 12:57:45 GMT Message-Id: <200708081257.l78CvjAt055407@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124897 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, 08 Aug 2007 12:57:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=124897 Change 124897 by gabor@gabor_server on 2007/08/08 12:56:44 - Let the user specify an own reason for the required PERL_LEVEL via USE_PERL5_REASON Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#11 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#11 (text+ko) ==== @@ -50,15 +50,18 @@ .if ${__suffix} == "+" .if ${__prefix} > ${PERL_LEVEL} -IGNORE= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 +USE_PERL5_REASON?= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 +IGNORE= ${USE_PERL5_REASON) .endif .elif ${__suffix} == "" .if ${__prefix} != ${PERL_LEVEL} -IGNORE= You need Perl ${__prefix} exactly +USE_PERL5_REASON?= You need Perl ${__prefix} exactly +IGNORE= ${USE_PERL5_REASON) .endif .elif ${__suffix} == "-" .if ${__prefix} < ${PERL_LEVEL} -IGNORE= You need Perl ${__prefix} or earlier +USE_PERL5_REASON?= You need Perl ${__prefix} or earlier +IGNORE= ${USE_PERL5_REASON) .endif .else .BEGIN: From owner-p4-projects@FreeBSD.ORG Wed Aug 8 13:21:20 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9883E16A41A; Wed, 8 Aug 2007 13:21:20 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5BAC116A418 for ; Wed, 8 Aug 2007 13:21:20 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4599013C46A for ; Wed, 8 Aug 2007 13:21:20 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78DLKhV060275 for ; Wed, 8 Aug 2007 13:21:20 GMT (envelope-from jbr@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78DLFb4060268 for perforce@freebsd.org; Wed, 8 Aug 2007 13:21:15 GMT (envelope-from jbr@FreeBSD.org) Date: Wed, 8 Aug 2007 13:21:15 GMT Message-Id: <200708081321.l78DLFb4060268@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jbr@FreeBSD.org using -f From: Jesper Brix Rosenkilde To: Perforce Change Reviews Cc: Subject: PERFORCE change 124898 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, 08 Aug 2007 13:21:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=124898 Change 124898 by jbr@jbr_bob on 2007/08/08 13:20:20 sync with current Affected files ... .. //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/cpu_switch.S#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/local_apic.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/mp_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/trap.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/amd64/isa/clock.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/busdma_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/cpufunc.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/cpufunc_asm_xscale_c3.S#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/elf_trampoline.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/genassym.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/identcpu.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/intr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/pmap.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/trap.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/vm_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/at91/at91rm92reg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/at91/kb920x_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/at91/ohci_atmelarm.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/conf/CRB#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/conf/KB920X#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/include/armreg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/include/cpufunc.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/include/pmap.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/include/pte.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i80321/i80321_pci.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i80321/i80321_timer.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i80321/i80321_wdog.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i80321/i80321var.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i80321/obio.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/crb_machdep.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/files.crb#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/files.i81342#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/i81342.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/i81342_mcu.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/i81342_pci.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/i81342_space.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/i81342reg.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/i81342var.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/obio.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/obio_space.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/obiovar.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/std.crb#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/std.i81342#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/uart_bus_i81342.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/arm/xscale/i8134x/uart_cpu_i81342.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/bsm/audit.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/bsm/audit_internal.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/bsm/audit_record.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/cam/scsi/scsi_cd.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/compat/linux/linux_socket.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/compat/ndis/subr_ntoskrnl.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/Makefile.arm#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/NOTES#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/files#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/options#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/options.ia64#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/contrib/pf/net/if_pfsync.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/acpica/acpi_hpet.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/adlink/adlink.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/an/if_an.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/arcmsr/arcmsr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ath/ath_rate/amrr/amrr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ath/ath_rate/onoe/onoe.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ath/if_ath.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/bce/if_bce.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/bce/if_bcefw.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/bce/if_bcereg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ce/if_ce.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cp/if_cp.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ctau/if_ct.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cx/if_cx.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/common/cxgb_common.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/common/cxgb_ctl_defs.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/common/cxgb_mc5.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/common/cxgb_t3_cpl.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/common/cxgb_t3_hw.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/common/cxgb_vsc7323.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/common/cxgb_xgmac.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/cxgb_adapter.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/cxgb_ioctl.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/cxgb_main.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/cxgb_offload.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/cxgb_offload.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/cxgb_osdep.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/sys/mvec.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/t3b_protocol_sram-1.1.0.bin.gz.uu#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/t3b_tp_eeprom-1.1.0.bin.gz.uu#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/t3fw-4.1.0.bin.gz.uu#2 delete .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/cxgb/t3fw-4.5.0.bin.gz.uu#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/dc/if_dcreg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/em/if_em.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/firewire/firewire.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/firewire/firewirereg.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ipmi/ipmi_isa.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/isc_cam.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/isc_sm.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/isc_soc.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/isc_subr.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/iscsi.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/iscsi.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/iscsi_subr.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/iscsi/initiator/iscsivar.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/msk/if_msk.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/mxge/eth_z8e.dat.gz.uu#3 delete .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/mxge/eth_z8e.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/mxge/ethp_z8e.dat.gz.uu#3 delete .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/mxge/ethp_z8e.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/mxge/if_mxge.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/mxge/mxge_eth_z8e.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/mxge/mxge_ethp_z8e.c#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/nfe/if_nfe.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/nfe/if_nfevar.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/nmdm/nmdm.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/pci/pci.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ral/rt2560.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/ral/rt2661.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/re/if_re.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/streams/streams.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/sym/sym_hipd.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/if_udav.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/if_ural.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/ufoma.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/ukbd.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/umodem.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/ums.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/usb_quirks.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/usbdevs#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/coda/coda_vfsops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/coda/coda_vnops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/devfs/devfs_vnops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/fifofs/fifo_vnops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/denode.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_conv.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_fat.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_vfsops.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/tmpfs/tmpfs.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/tmpfs/tmpfs_subr.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/tmpfs/tmpfs_vfsops.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/fs/tmpfs/tmpfs_vnops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/i386/i386/genassym.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/i386/i386/local_apic.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/i386/i386/mp_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/i386/i386/swtch.s#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/i386/i386/trap.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/i386/isa/clock.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/i386/linux/linux_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/clock.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/db_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/exception.S#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/mp_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/nexus.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/pmap.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/sapic.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/ia64/syscall.S#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/include/atomic.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/include/ia64_cpu.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/include/intr.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/include/md_var.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/ia64/include/sapicvar.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_descrip.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_kse.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_lockf.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_mutex.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_poll.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_resource.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_rwlock.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_sig.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_switch.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_thread.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/sched_4bsd.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/sched_ule.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/subr_bus.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/subr_clock.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/sys_socket.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/tty.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/uipc_domain.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/uipc_syscalls.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/uipc_usrreq.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/vfs_mount.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/vfs_vnops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/modules/Makefile#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/modules/cxgb/Makefile#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/modules/iscsi/Makefile#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/modules/iscsi/initiator/Makefile#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/modules/mxge/mxge_eth_z8e/Makefile#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/modules/mxge/mxge_ethp_z8e/Makefile#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/bpf.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/bpfdesc.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/bridgestp.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/bridgestp.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/if.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/if_bridge.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/if_bridgevar.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/if_ethersubr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/if_lagg.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/if_lagg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net/netisr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/net80211/ieee80211_scan_sta.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netgraph/netflow/netflow.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netgraph/netgraph.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netgraph/ng_bpf.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netgraph/ng_eiface.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netgraph/ng_ppp.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netgraph/ng_ppp.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/icmp_var.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/in_mcast.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/in_pcb.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_carp.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_divert.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_dummynet.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_fw2.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_icmp.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_input.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_ipsec.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/ip_mroute.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_asconf.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_asconf.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_cc_functions.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_constants.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_indata.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_input.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_os_bsd.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_output.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_pcb.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_pcb.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_peeloff.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_structs.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_timer.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_uio.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_usrreq.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctp_var.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctputil.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/sctputil.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_fsm.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_input.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_subr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_syncache.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_syncache.h#1 branch .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_timer.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_usrreq.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet/tcp_var.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet6/in6.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet6/ip6_ipsec.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet6/sctp6_usrreq.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet6/udp6_output.c#3 delete .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet6/udp6_usrreq.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netinet6/udp6_var.h#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipsec/ipsec_input.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipsec/ipsec_output.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipsec/xform_ah.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipsec/xform_esp.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipsec/xform_ipcomp.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipsec/xform_ipip.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipx/spx_debug.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/netipx/spx_debug.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/nfsclient/bootp_subr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/nfsclient/nfs_socket.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/nfsclient/nfs_vfsops.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/nfsserver/nfs_srvsock.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/nfsserver/nfs_srvsubs.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/nfsserver/nfs_syscalls.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/pc98/cbus/clock.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/pci/if_rl.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/pci/if_rlreg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/pci/if_xl.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/pci/viapm.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/soc2007/jbr-syscall/src/sys/powerpc/include/intr_machdep.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/powerpc/powerpc/interrupt.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/powerpc/powerpc/intr_machdep.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/powerpc/powerpc/trap.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/rpc/rpcclnt.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/security/mac/mac_syscalls.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/security/mac_mls/mac_mls.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/include/iommureg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/pci/psycho.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/pci/psychoreg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/sbus/sbus.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/sparc64/eeprom.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/sparc64/iommu.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/sparc64/pmap.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sparc64/sparc64/rtc.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/kernel.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/mutex.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/proc.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/rwlock.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/vmmeter.h#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/device_pager.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/phys_pager.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/swap_pager.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_fault.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_meter.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_page.c#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_pager.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vnode_pager.c#2 integrate Differences ... ==== //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/cpu_switch.S#2 (text+ko) ==== @@ -30,13 +30,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.158 2007/06/06 07:35:07 davidxu Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.159 2007/07/17 22:36:56 jeff Exp $ */ #include #include #include "assym.s" +#include "opt_sched.h" /*****************************************************************************/ /* Scheduling */ @@ -50,6 +51,12 @@ #define LK #endif +#if defined(SCHED_ULE) && defined(SMP) +#define SETLK xchgq +#else +#define SETLK movq +#endif + /* * cpu_throw() * @@ -148,13 +155,7 @@ movq %cr3,%rax cmpq %rcx,%rax /* Same address space? */ jne swinact - movq %rdx, TD_LOCK(%rdi) /* Release the old thread */ - /* Wait for the new thread to become unblocked */ - movq $blocked_lock, %rdx -1: - movq TD_LOCK(%rsi),%rcx - cmpq %rcx, %rdx - je 1b + SETLK %rdx, TD_LOCK(%rdi) /* Release the old thread */ jmp sw1 swinact: movq %rcx,%cr3 /* new address space */ @@ -163,21 +164,24 @@ movq TD_PROC(%rdi), %rcx /* oldproc */ movq P_VMSPACE(%rcx), %rcx LK btrl %eax, VM_PMAP+PM_ACTIVE(%rcx) /* clear old */ - movq %rdx, TD_LOCK(%rdi) /* Release the old thread */ + SETLK %rdx, TD_LOCK(%rdi) /* Release the old thread */ swact: + /* Set bit in new pmap->pm_active */ + movq TD_PROC(%rsi),%rdx /* newproc */ + movq P_VMSPACE(%rdx), %rdx + LK btsl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* set new */ + +sw1: +#if defined(SCHED_ULE) && defined(SMP) /* Wait for the new thread to become unblocked */ movq $blocked_lock, %rdx 1: movq TD_LOCK(%rsi),%rcx cmpq %rcx, %rdx + pause je 1b - - /* Set bit in new pmap->pm_active */ - movq TD_PROC(%rsi),%rdx /* newproc */ - movq P_VMSPACE(%rdx), %rdx - LK btsl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* set new */ - -sw1: + lfence +#endif /* * At this point, we've switched address spaces and are ready * to load up the rest of the next context. ==== //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/local_apic.c#2 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.40 2007/05/08 22:01:02 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.41 2007/08/02 21:17:58 peter Exp $"); #include "opt_hwpmc_hooks.h" @@ -1060,10 +1060,6 @@ if (retval != 0) printf("%s: Failed to setup the local APIC: returned %d\n", best_enum->apic_name, retval); -#ifdef SMP - /* Last, setup the cpu topology now that we have probed CPUs */ - mp_topology(); -#endif } SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_FIRST, apic_setup_local, NULL) ==== //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/mp_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.286 2007/06/04 23:56:07 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.287 2007/08/02 21:17:58 peter Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -186,26 +186,14 @@ mp_topology(void) { struct cpu_group *group; - u_int regs[4]; - int logical_cpus; int apic_id; int groups; int cpu; /* Build the smp_topology map. */ /* Nothing to do if there is no HTT support. */ - if ((cpu_feature & CPUID_HTT) == 0) + if (hyperthreading_cpus <= 1) return; - logical_cpus = (cpu_procinfo & CPUID_HTT_CORES) >> 16; - if (logical_cpus <= 1) - return; - /* Nothing to do if reported cores are physical cores. */ - if (strcmp(cpu_vendor, "GenuineIntel") == 0 && cpu_high >= 4) { - cpuid_count(4, 0, regs); - if ((regs[0] & 0x1f) != 0 && - logical_cpus <= ((regs[0] >> 26) & 0x3f) + 1) - return; - } group = &mp_groups[0]; groups = 1; for (cpu = 0, apic_id = 0; apic_id <= MAX_APIC_ID; apic_id++) { @@ -215,7 +203,8 @@ * If the current group has members and we're not a logical * cpu, create a new group. */ - if (group->cg_count != 0 && (apic_id % logical_cpus) == 0) { + if (group->cg_count != 0 && + (apic_id % hyperthreading_cpus) == 0) { group++; groups++; } @@ -420,6 +409,9 @@ } set_interrupt_apic_ids(); + + /* Last, setup the cpu topology now that we have probed CPUs */ + mp_topology(); } ==== //depot/projects/soc2007/jbr-syscall/src/sys/amd64/amd64/trap.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.318 2007/06/10 21:59:12 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.319 2007/07/26 15:32:54 jhb Exp $"); /* * AMD64 Trap and System call handling @@ -159,7 +159,8 @@ { struct thread *td = curthread; struct proc *p = td->td_proc; - int i = 0, ucode = 0, type, code; + int i = 0, ucode = 0, code; + u_int type; register_t addr = 0; ksiginfo_t ksi; @@ -622,7 +623,8 @@ struct trapframe *frame; vm_offset_t eva; { - int code, type, ss; + int code, ss; + u_int type; long esp; struct soft_segment_descriptor softseg; char *msg; ==== //depot/projects/soc2007/jbr-syscall/src/sys/amd64/isa/clock.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.232 2007/06/15 22:58:14 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.233 2007/07/23 09:42:30 dwmalone Exp $"); /* * Routines to handle clock hardware. @@ -686,8 +686,7 @@ return; wrong_time: - printf("Invalid time in real time clock.\n"); - printf("Check and reset the date immediately!\n"); + printf("Invalid time in clock: check and reset the date!\n"); } /* ==== //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/busdma_machdep.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.33 2007/06/10 12:33:01 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.34 2007/07/27 14:46:43 cognet Exp $"); /* * ARM bus dma support routines @@ -763,8 +763,12 @@ if (__predict_true(pmap == pmap_kernel())) { (void) pmap_get_pde_pte(pmap, vaddr, &pde, &ptep); if (__predict_false(pmap_pde_section(pde))) { - curaddr = (*pde & L1_S_FRAME) | - (vaddr & L1_S_OFFSET); + if (*pde & L1_S_SUPERSEC) + curaddr = (*pde & L1_SUP_FRAME) | + (vaddr & L1_SUP_OFFSET); + else + curaddr = (*pde & L1_S_FRAME) | + (vaddr & L1_S_OFFSET); if (*pde & L1_S_CACHE_MASK) { map->flags &= ~DMAMAP_COHERENT; @@ -1087,36 +1091,36 @@ { char _tmp_cl[arm_dcache_align], _tmp_clend[arm_dcache_align]; - if (op & BUS_DMASYNC_PREWRITE) + if (op & BUS_DMASYNC_PREWRITE) { cpu_dcache_wb_range((vm_offset_t)buf, len); + cpu_l2cache_wb_range((vm_offset_t)buf, len); + } + if (op & BUS_DMASYNC_PREREAD) { + cpu_idcache_wbinv_range((vm_offset_t)buf, len); + cpu_l2cache_wbinv_range((vm_offset_t)buf, len); + } if (op & BUS_DMASYNC_POSTREAD) { - if ((vm_offset_t)buf & arm_dcache_align_mask) + if ((vm_offset_t)buf & arm_dcache_align_mask) { memcpy(_tmp_cl, (void *)((vm_offset_t)buf & ~ arm_dcache_align_mask), - (vm_offset_t)buf - ((vm_offset_t)buf &~ - arm_dcache_align_mask)); - if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy(_tmp_cl, (void *)((vm_offset_t)buf & ~ - arm_dcache_align_mask), - (vm_offset_t)buf - ((vm_offset_t)buf &~ - arm_dcache_align_mask)); - if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy(_tmp_clend, (void *)(((vm_offset_t)buf + len) & ~ - arm_dcache_align_mask), - (vm_offset_t)buf +len - (((vm_offset_t)buf + len) &~ - arm_dcache_align_mask)); + (vm_offset_t)buf & arm_dcache_align_mask); + } + if (((vm_offset_t)buf + len) & arm_dcache_align_mask) { + memcpy(_tmp_clend, (void *)((vm_offset_t)buf + len), + arm_dcache_align - (((vm_offset_t)(buf) + len) & + arm_dcache_align_mask)); + } cpu_dcache_inv_range((vm_offset_t)buf, len); + cpu_l2cache_inv_range((vm_offset_t)buf, len); + if ((vm_offset_t)buf & arm_dcache_align_mask) memcpy((void *)((vm_offset_t)buf & - ~arm_dcache_align_mask), - _tmp_cl, - (vm_offset_t)buf - ((vm_offset_t)buf &~ - arm_dcache_align_mask)); + ~arm_dcache_align_mask), _tmp_cl, + (vm_offset_t)buf & arm_dcache_align_mask); if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy((void *)(((vm_offset_t)buf + len) & ~ - arm_dcache_align_mask), _tmp_clend, - (vm_offset_t)buf +len - (((vm_offset_t)buf + len) &~ - arm_dcache_align_mask)); + memcpy((void *)((vm_offset_t)buf + len), _tmp_clend, + arm_dcache_align - (((vm_offset_t)(buf) + len) & + arm_dcache_align_mask)); } } @@ -1131,14 +1135,20 @@ (void *)(bpage->vaddr_nocache != 0 ? bpage->vaddr_nocache : bpage->vaddr), bpage->datacount); - if (bpage->vaddr_nocache == 0) + if (bpage->vaddr_nocache == 0) { cpu_dcache_wb_range(bpage->vaddr, bpage->datacount); + cpu_l2cache_wb_range(bpage->vaddr, + bpage->datacount); + } } if (op & BUS_DMASYNC_POSTREAD) { - if (bpage->vaddr_nocache == 0) + if (bpage->vaddr_nocache == 0) { cpu_dcache_inv_range(bpage->vaddr, bpage->datacount); + cpu_l2cache_inv_range(bpage->vaddr, + bpage->datacount); + } bcopy((void *)(bpage->vaddr_nocache != 0 ? bpage->vaddr_nocache : bpage->vaddr), (void *)bpage->datavaddr, bpage->datacount); @@ -1175,10 +1185,6 @@ _bus_dmamap_sync_bp(dmat, map, op); if (map->flags & DMAMAP_COHERENT) return; - if ((op && BUS_DMASYNC_POSTREAD) && (map->len >= 2 * PAGE_SIZE)) { - cpu_dcache_wbinv_all(); - return; - } CTR3(KTR_BUSDMA, "%s: op %x flags %x", __func__, op, map->flags); switch(map->flags & DMAMAP_TYPE_MASK) { case DMAMAP_LINEAR: ==== //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/cpufunc.c#2 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.16 2007/02/11 22:24:54 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $"); #include #include @@ -147,6 +147,10 @@ arm7tdmi_cache_flushID, /* idcache_wbinv_all */ (void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -205,6 +209,10 @@ arm8_cache_purgeID, /* idcache_wbinv_all */ (void *)arm8_cache_purgeID, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -262,6 +270,10 @@ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ arm9_idcache_wbinv_range, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -320,6 +332,10 @@ arm10_idcache_wbinv_all, /* idcache_wbinv_all */ arm10_idcache_wbinv_range, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -378,6 +394,10 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -435,6 +455,10 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -492,6 +516,10 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -552,6 +580,10 @@ xscale_cache_purgeID, /* idcache_wbinv_all */ xscale_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -602,15 +634,19 @@ /* Cache operations */ xscalec3_cache_syncI, /* icache_sync_all */ - xscale_cache_syncI_rng, /* icache_sync_range */ + xscalec3_cache_syncI_rng, /* icache_sync_range */ xscalec3_cache_purgeD, /* dcache_wbinv_all */ xscalec3_cache_purgeD_rng, /* dcache_wbinv_range */ xscale_cache_flushD_rng, /* dcache_inv_range */ xscalec3_cache_cleanD_rng, /* dcache_wb_range */ - xscalec3_cache_purgeID, /* idcache_wbinv_all */ + xscalec3_cache_purgeID, /* idcache_wbinv_all */ xscalec3_cache_purgeID_rng, /* idcache_wbinv_range */ + xscalec3_l2cache_purge, /* l2cache_wbinv_all */ + xscalec3_l2cache_purge_rng, /* l2cache_wbinv_range */ + xscalec3_l2cache_flush_rng, /* l2cache_inv_range */ + xscalec3_l2cache_clean_rng, /* l2cache_wb_range */ /* Other functions */ @@ -1889,9 +1925,7 @@ xscale_setup(args) char *args; { -#ifndef CPU_XSCALE_CORE3 uint32_t auxctl; -#endif int cpuctrl, cpuctrlmask; /* @@ -1911,7 +1945,8 @@ | CPU_CONTROL_WBUF_ENABLE | CPU_CONTROL_ROM_ENABLE | CPU_CONTROL_BEND_ENABLE | CPU_CONTROL_AFLT_ENABLE | CPU_CONTROL_LABT_ENABLE | CPU_CONTROL_BPRD_ENABLE - | CPU_CONTROL_CPCLK | CPU_CONTROL_VECRELOC; + | CPU_CONTROL_CPCLK | CPU_CONTROL_VECRELOC | \ + CPU_CONTROL_L2_ENABLE; #ifndef ARM32_DISABLE_ALIGNMENT_FAULTS cpuctrl |= CPU_CONTROL_AFLT_ENABLE; @@ -1925,6 +1960,9 @@ if (vector_page == ARM_VECTORS_HIGH) cpuctrl |= CPU_CONTROL_VECRELOC; +#ifdef CPU_XSCALE_CORE3 + cpuctrl |= CPU_CONTROL_L2_ENABLE; +#endif /* Clear out the cache */ cpu_idcache_wbinv_all(); @@ -1937,7 +1975,6 @@ /* cpu_control(cpuctrlmask, cpuctrl);*/ cpu_control(0xffffffff, cpuctrl); -#ifndef CPU_XSCALE_CORE3 /* Make sure write coalescing is turned on */ __asm __volatile("mrc p15, 0, %0, c1, c0, 1" : "=r" (auxctl)); @@ -1946,9 +1983,12 @@ #else auxctl &= ~XSCALE_AUXCTL_K; #endif +#ifdef CPU_XSCALE_CORE3 + auxctl |= XSCALE_AUXCTL_LLR; + auxctl |= XSCALE_AUXCTL_MD_MASK; +#endif __asm __volatile("mcr p15, 0, %0, c1, c0, 1" : : "r" (auxctl)); -#endif } #endif /* CPU_XSCALE_80200 || CPU_XSCALE_80321 || CPU_XSCALE_PXA2X0 || CPU_XSCALE_IXP425 CPU_XSCALE_80219 */ ==== //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/elf_trampoline.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.17 2007/02/19 00:57:27 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.18 2007/07/27 14:42:25 cognet Exp $"); #include #include #include @@ -48,6 +48,7 @@ extern void *_end; void __start(void); +void __startC(void); #define GZ_HEAD 0xa @@ -66,7 +67,14 @@ defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425) || \ defined(CPU_XSCALE_80219) #define cpu_idcache_wbinv_all xscale_cache_purgeID +#elif defined(CPU_XSCALE_81342) +#define cpu_idcache_wbinv_all xscalec3_cache_purgeID #endif +#ifdef CPU_XSCALE_81342 +#define cpu_l2cache_wbinv_all xscalec3_l2cache_purge +#else +#define cpu_l2cache_wbinv_all() +#endif int arm_picache_size; @@ -138,7 +146,7 @@ static void arm9_setup(void); void -_start(void) +_startC(void) { int physaddr = KERNPHYSADDR; int tmp1; @@ -207,6 +215,7 @@ arm9_setup(); #endif cpu_idcache_wbinv_all(); + cpu_l2cache_wbinv_all(); #endif __start(); } @@ -520,7 +529,7 @@ extern char func_end[]; -#define PMAP_DOMAIN_KERNEL 15 /* +#define PMAP_DOMAIN_KERNEL 0 /* * Just define it instead of including the * whole VM headers set. */ @@ -595,10 +604,11 @@ kernel = (char *)&_end; altdst = 4 + load_kernel((unsigned int)kernel, (unsigned int)curaddr, - (unsigned int)&func_end , 0); + (unsigned int)&func_end + 800 , 0); if (altdst > dst) dst = altdst; cpu_idcache_wbinv_all(); + cpu_l2cache_wbinv_all(); __asm __volatile("mrc p15, 0, %0, c1, c0, 0\n" "bic %0, %0, #1\n" /* MMU_ENABLE */ "mcr p15, 0, %0, c1, c0, 0\n" @@ -616,7 +626,7 @@ sp = sp &~3; dst = (void *)(sp + 4); memcpy((void *)dst, (void *)&load_kernel, (unsigned int)&func_end - - (unsigned int)&load_kernel); + (unsigned int)&load_kernel + 800); do_call(dst, kernel, dst + (unsigned int)(&func_end) - - (unsigned int)(&load_kernel), sp); + (unsigned int)(&load_kernel) + 800, sp); } ==== //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/genassym.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $"); #include #include #include @@ -92,6 +92,7 @@ ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TD_MD, offsetof(struct thread, td_md)); +ASSYM(TD_LOCK, offsetof(struct thread, td_lock)); ASSYM(MD_TP, offsetof(struct mdthread, md_tp)); ASSYM(TF_R0, offsetof(struct trapframe, tf_r0)); ==== //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/identcpu.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.10 2006/11/19 23:45:33 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.11 2007/07/27 14:49:11 cognet Exp $"); #include #include #include @@ -374,6 +374,12 @@ printf(" IC disabled"); else printf(" IC enabled"); +#ifdef CPU_XSCALE_81342 + if ((ctrl & CPU_CONTROL_L2_ENABLE) == 0) + printf(" L2 disabled"); + else + printf(" L2 enabled"); +#endif break; default: break; ==== //depot/projects/soc2007/jbr-syscall/src/sys/arm/arm/intr.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.16 2007/06/04 21:38:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.17 2007/07/27 14:26:42 cognet Exp $"); #include #include #include @@ -57,6 +57,27 @@ void arm_handler_execute(struct trapframe *, int); +#ifdef INTR_FILTER +static void +intr_disab_eoi_src(void *arg) +{ + uintptr_t nb; + + nb = (uintptr_t)arg; + arm_mask_irq(nb); +} + +static void +intr_eoi_src(void *arg) +{ + uintptr_t nb; + + nb = (uintptr_t)arg; + arm_unmask_irq(nb); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 8 13:59:08 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B9ABD16A473; Wed, 8 Aug 2007 13:59:07 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 60C1F16A4D7 for ; Wed, 8 Aug 2007 13:59:07 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3498D13C45D for ; Wed, 8 Aug 2007 13:59:07 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78Dx7lU068183 for ; Wed, 8 Aug 2007 13:59:07 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78Dx6tL068180 for perforce@freebsd.org; Wed, 8 Aug 2007 13:59:06 GMT (envelope-from fli@FreeBSD.org) Date: Wed, 8 Aug 2007 13:59:06 GMT Message-Id: <200708081359.l78Dx6tL068180@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124899 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, 08 Aug 2007 13:59:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=124899 Change 124899 by fli@fli_nexus on 2007/08/08 13:58:39 Fix faulty logic. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_util.c#4 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_util.c#4 (text+ko) ==== @@ -343,7 +343,7 @@ p = addr; if (stroc(p, '.') == 3) { while (*p != '\0') { - if (*p != '.' && *p < 48 && *p > 57) + if ((*p < 48 && *p != '.') || *p > 57) break; p++; } From owner-p4-projects@FreeBSD.ORG Wed Aug 8 14:19:33 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AB60016A41B; Wed, 8 Aug 2007 14:19:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AB1F16A419 for ; Wed, 8 Aug 2007 14:19:33 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6652813C461 for ; Wed, 8 Aug 2007 14:19:33 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78EJXJQ070712 for ; Wed, 8 Aug 2007 14:19:33 GMT (envelope-from jbr@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78EJWQM070706 for perforce@freebsd.org; Wed, 8 Aug 2007 14:19:32 GMT (envelope-from jbr@FreeBSD.org) Date: Wed, 8 Aug 2007 14:19:32 GMT Message-Id: <200708081419.l78EJWQM070706@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jbr@FreeBSD.org using -f From: Jesper Brix Rosenkilde To: Perforce Change Reviews Cc: Subject: PERFORCE change 124900 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, 08 Aug 2007 14:19:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=124900 Change 124900 by jbr@jbr_bob on 2007/08/08 14:19:22 readded sysctl Affected files ... .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#7 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/sysctl.h#2 edit Differences ... ==== //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#7 (text+ko) ==== @@ -86,6 +86,7 @@ static int sysctl_kern_ps_strings(SYSCTL_HANDLER_ARGS); static int sysctl_kern_usrstack(SYSCTL_HANDLER_ARGS); +static int sysctl_kern_usrsysshm(SYSCTL_HANDLER_ARGS); static int sysctl_kern_stackprot(SYSCTL_HANDLER_ARGS); static int do_execve(struct thread *td, struct image_args *args, struct mac *mac_p); @@ -99,6 +100,9 @@ SYSCTL_PROC(_kern, KERN_USRSTACK, usrstack, CTLTYPE_ULONG|CTLFLAG_RD, NULL, 0, sysctl_kern_usrstack, "LU", ""); +SYSCTL_PROC(_kern, KERN_USRSYSSHM, usrsysshm, CTLTYPE_ULONG|CTLFLAG_RD, + NULL, 0, sysctl_kern_usrsysshm, "LU", ""); + SYSCTL_PROC(_kern, OID_AUTO, stackprot, CTLTYPE_INT|CTLFLAG_RD, NULL, 0, sysctl_kern_stackprot, "I", ""); @@ -145,6 +149,25 @@ } static int +sysctl_kern_usrsysshm(SYSCTL_HANDLER_ARGS) +{ + struct proc *p; + int error; + + p = curproc; +#ifdef SCTL_MASK32 + if (req->flags & SCTL_MASK32) { + unsigned int val; + val = (unsigned int)p->p_sysent->sv_sysshm; + error = SYSCTL_OUT(req, &val, sizeof(val)); + } else +#endif + error = SYSCTL_OUT(req, &p->p_sysent->sv_sysshm, + sizeof(p->p_sysent->sv_sysshm)); + return error; +} + +static int sysctl_kern_stackprot(SYSCTL_HANDLER_ARGS) { struct proc *p; ==== //depot/projects/soc2007/jbr-syscall/src/sys/sys/sysctl.h#2 (text+ko) ==== @@ -393,6 +393,7 @@ #define KERN_HOSTUUID 36 /* string: host UUID identifier */ #define KERN_ARND 37 /* int: from arc4rand() */ #define KERN_MAXID 38 /* number of valid kern ids */ +#define KERN_USRSYSSHM 39 /* int: address of sysshm page */ #define CTL_KERN_NAMES { \ { 0, 0 }, \ @@ -431,6 +432,7 @@ { "logsigexit", CTLTYPE_INT }, \ { "iov_max", CTLTYPE_INT }, \ { "hostuuid", CTLTYPE_STRING }, \ + { "usrsysshm", CTLTYPE_INT }, \ } /* From owner-p4-projects@FreeBSD.ORG Wed Aug 8 16:30:14 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B6E4316A46C; Wed, 8 Aug 2007 16:30:13 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8471D16A418 for ; Wed, 8 Aug 2007 16:30:13 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6FB0A13C461 for ; Wed, 8 Aug 2007 16:30:13 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78GUDLO081679 for ; Wed, 8 Aug 2007 16:30:13 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78GUDhE081676 for perforce@freebsd.org; Wed, 8 Aug 2007 16:30:13 GMT (envelope-from lulf@FreeBSD.org) Date: Wed, 8 Aug 2007 16:30:13 GMT Message-Id: <200708081630.l78GUDhE081676@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 124901 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, 08 Aug 2007 16:30:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=124901 Change 124901 by lulf@lulf_carrot on 2007/08/08 16:29:20 - Remove the sleep functionality, as it semt to be a little unstable. So, instead of waiting until we get an like I did last time, I wait until find_name returns a different name than what was sent for creation. This means the drive will definately be created before we continue, as opposed to the previous solution where one could not be sure that the drive was actually created. - Remember to free bioq memory when we unload kernel module. This was a bit ugly. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.c#19 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#34 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#27 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_create.c#9 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_events.c#13 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#22 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_move.c#7 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_plex.c#24 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rename.c#6 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rm.c#15 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_state.c#22 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#28 edit Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.c#19 (text+ko) ==== @@ -402,11 +402,12 @@ struct gv_drive *d; struct gctl_req *req; const char *errstr; - char *drivename; - int drives, volumes, subdisks, plexes; + char *drivename, *dname; + int drives, i, volumes, subdisks, plexes; plexes = subdisks = volumes = 0; drives = 1; + dname = NULL; /* Strip away eventual /dev/ in front. */ if (strncmp(device, "/dev/", 5) == 0) @@ -432,8 +433,28 @@ gctl_ro_param(req, "plexes", sizeof(int), &plexes); gctl_ro_param(req, "subdisks", sizeof(int), &subdisks); errstr = gctl_issue(req); - if (errstr != NULL) + if (errstr != NULL) warnx("error creating drive: %s", errstr); + else { + gctl_free(req); + /* XXX: This is needed because we have to make sure the drives + * are created before we return. */ + /* Loop until it's in the config. */ + for (i = 0; i < 100000; i++) { + dname = find_name("gvinumdrive", GV_TYPE_DRIVE, + GV_MAXDRIVENAME); + /* If we got a different name, quit. */ + if (dname == NULL) + continue; + if (strcmp(dname, drivename)) { + free(dname); + return (drivename); + } + free(dname); + dname = NULL; + usleep(100000); /* Sleep for 0.1s */ + } + } gctl_free(req); return (drivename); } @@ -546,7 +567,6 @@ } gctl_free(req); - printf(buf); begin = 0; len = strlen(buf); i = 0; ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#34 (text+ko) ==== @@ -75,7 +75,7 @@ g_trace(G_T_TOPOLOGY, "gv_orphan(%s)", gp->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); } void @@ -188,7 +188,7 @@ sc = gp->softc; if (sc != NULL) { - gv_post_event(sc, GV_EVENT_THREAD_EXIT, NULL, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_THREAD_EXIT, NULL, NULL, 0, 0); gp->softc = NULL; g_wither_geom(gp, ENXIO); return (EAGAIN); @@ -240,8 +240,7 @@ } v = gv_find_vol(sc, parent); p = gv_find_plex(sc, child); - gv_post_event(sc, GV_EVENT_ATTACH_PLEX, p, v, *offset, *rename, - 0); + gv_post_event(sc, GV_EVENT_ATTACH_PLEX, p, v, *offset, *rename); break; case GV_TYPE_SD: if (type_parent != GV_TYPE_PLEX) { @@ -254,7 +253,7 @@ break; } s = gv_find_sd(sc, child); - gv_post_event(sc, GV_EVENT_ATTACH_SD, s, p, *offset, *rename, 0); + gv_post_event(sc, GV_EVENT_ATTACH_SD, s, p, *offset, *rename); break; default: gctl_error(req, "invalid child type"); @@ -282,11 +281,11 @@ switch (type) { case GV_TYPE_PLEX: p = gv_find_plex(sc, object); - gv_post_event(sc, GV_EVENT_DETACH_PLEX, p, NULL, *flags, 0, 0); + gv_post_event(sc, GV_EVENT_DETACH_PLEX, p, NULL, *flags, 0); break; case GV_TYPE_SD: s = gv_find_sd(sc, object); - gv_post_event(sc, GV_EVENT_DETACH_SD, s, NULL, *flags, 0, 0); + gv_post_event(sc, GV_EVENT_DETACH_SD, s, NULL, *flags, 0); break; default: gctl_error(req, "invalid object type"); @@ -339,7 +338,7 @@ d = g_malloc(sizeof(*d), M_WAITOK | M_ZERO); bcopy(d2, d, sizeof(*d)); - gv_post_event(sc, GV_EVENT_CREATE_DRIVE, d, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_DRIVE, d, NULL, 0, 0); } /* ... then volume definitions ... */ @@ -356,7 +355,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); bcopy(v2, v, sizeof(*v)); - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); } /* ... then plex definitions ... */ @@ -373,7 +372,7 @@ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); bcopy(p2, p, sizeof(*p)); - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); } /* ... and, finally, subdisk definitions. */ @@ -390,12 +389,12 @@ s = g_malloc(sizeof(*s), M_WAITOK | M_ZERO); bcopy(s2, s, sizeof(*s)); - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); } error: - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); return (0); } @@ -427,7 +426,7 @@ /* Save our configuration back to disk. */ } else if (!strcmp(verb, "saveconfig")) { - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); /* Return configuration in string form. */ } else if (!strcmp(verb, "getconfig")) { @@ -462,7 +461,7 @@ gv_rename(gp, req); } else if (!strcmp(verb, "resetconfig")) { - gv_post_event(sc, GV_EVENT_RESET_CONFIG, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_RESET_CONFIG, sc, NULL, 0, 0); } else if (!strcmp(verb, "start")) { gv_start_obj(gp, req); @@ -523,9 +522,9 @@ /* XXX: The state of the plex might have changed when this event is * picked up ... We should perhaps check this afterwards. */ if (*rebuild) - gv_post_event(sc, GV_EVENT_PARITY_REBUILD, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_PARITY_REBUILD, p, NULL, 0, 0); else - gv_post_event(sc, GV_EVENT_PARITY_CHECK, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_PARITY_CHECK, p, NULL, 0, 0); } @@ -572,7 +571,7 @@ if (vhdr != NULL) { if (vhdr->magic == GV_MAGIC) gv_post_event(sc, GV_EVENT_DRIVE_TASTED, pp, NULL, 0, - 0, 0); + 0); g_free(vhdr); } @@ -899,7 +898,6 @@ printf("VINUM: unknown event %d\n", ev->type); } - wakeup(ev); g_free(ev); mtx_lock(&sc->queue_mtx); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#27 (text+ko) ==== @@ -108,7 +108,7 @@ void gv_worker(void *); void gv_post_event(struct gv_softc *, int, void *, void *, intmax_t, - intmax_t, int); + intmax_t); void gv_drive_tasted(struct gv_softc *, struct g_provider *); void gv_drive_lost(struct gv_softc *, struct gv_drive *); void gv_setup_objects(struct gv_softc *); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_create.c#9 (text+ko) ==== @@ -269,7 +269,7 @@ if (gv_sd_to_plex(s, p) != 0) { printf("VINUM: couldn't give sd '%s' to plex '%s'\n", s->name, p->name); - if (s->drive_sc) + if (s->drive_sc && !(s->drive_sc->flags & GV_DRIVE_REFERENCED)) LIST_REMOVE(s, from_drive); gv_free_sd(s); g_free(s); @@ -324,7 +324,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); /* Then we create the plex. */ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); @@ -332,7 +332,7 @@ strlcpy(p->volume, v->name, GV_MAXVOLNAME); p->org = GV_PLEX_CONCAT; p->stripesize = 0; - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); /* Drives are first (right now) priority */ for (dcount = 0; dcount < *drives; dcount++) { @@ -350,10 +350,10 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); } /* @@ -402,7 +402,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); /* Then we create the plexes. */ for (pcount = 0; pcount < 2; pcount++) { @@ -417,7 +417,7 @@ p->org = GV_PLEX_CONCAT; p->stripesize = -1; } - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); /* We just gives each even drive to plex one, and each odd to * plex two. */ @@ -440,12 +440,12 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); scount++; } } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); } void @@ -492,7 +492,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); /* Then we create the plex. */ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); @@ -500,7 +500,7 @@ strlcpy(p->volume, v->name, GV_MAXVOLNAME); p->org = GV_PLEX_RAID5; p->stripesize = *stripesize; - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); /* Create subdisks on drives. */ for (dcount = 0; dcount < *drives; dcount++) { @@ -518,10 +518,10 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); } /* @@ -564,7 +564,7 @@ v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); strlcpy(v->name, vol, GV_MAXVOLNAME); v->state = GV_VOL_UP; - gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_VOLUME, v, NULL, 0, 0); /* Then we create the plex. */ p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); @@ -572,7 +572,7 @@ strlcpy(p->volume, v->name, GV_MAXVOLNAME); p->org = GV_PLEX_STRIPED; p->stripesize = 262144; - gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_PLEX, p, NULL, 0, 0); /* Create subdisks on drives. */ for (dcount = 0; dcount < *drives; dcount++) { @@ -590,8 +590,8 @@ s->plex_offset = -1; s->drive_offset = -1; s->size = -1; - gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); } - gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0, 0); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 1); + gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); } ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_events.c#13 (text+ko) ==== @@ -41,7 +41,7 @@ void gv_post_event(struct gv_softc *sc, int event, void *arg1, void *arg2, - intmax_t arg3, intmax_t arg4, int wait) + intmax_t arg3, intmax_t arg4) { struct gv_event *ev; @@ -55,8 +55,6 @@ mtx_lock(&sc->queue_mtx); TAILQ_INSERT_TAIL(&sc->equeue, ev, events); wakeup(sc); - if (wait) - msleep(ev, &sc->queue_mtx, 0, "gv_post_event", hz / 4); mtx_unlock(&sc->queue_mtx); } @@ -173,7 +171,7 @@ if (cp->nstart != cp->nend) { printf("VINUM: dead drive '%s' has still active " "requests, can't detach consumer\n", d->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); return; } g_topology_lock(); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#22 (text+ko) ==== @@ -72,14 +72,14 @@ v = gv_find_vol(sc, argv); if (v != NULL) gv_post_event(sc, GV_EVENT_START_VOLUME, v, - NULL, *initsize, 0, 0); + NULL, *initsize, 0); break; case GV_TYPE_PLEX: p = gv_find_plex(sc, argv); if (p != NULL) gv_post_event(sc, GV_EVENT_START_PLEX, p, NULL, - *initsize, 0, 0); + *initsize, 0); break; case GV_TYPE_SD: ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_move.c#7 (text+ko) ==== @@ -85,7 +85,7 @@ gctl_error(req, "unknown subdisk '%s'", object); return; } - gv_post_event(sc, GV_EVENT_MOVE_SD, s, d, *flags, 0, 0); + gv_post_event(sc, GV_EVENT_MOVE_SD, s, d, *flags, 0); } } ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_plex.c#24 (text+ko) ==== ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rename.c#6 (text+ko) ==== @@ -77,7 +77,7 @@ } name = g_malloc(GV_MAXVOLNAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXVOLNAME); - gv_post_event(sc, GV_EVENT_RENAME_VOL, v, name, *flags, 0, 0); + gv_post_event(sc, GV_EVENT_RENAME_VOL, v, name, *flags, 0); break; case GV_TYPE_PLEX: p = gv_find_plex(sc, object); @@ -87,7 +87,7 @@ } name = g_malloc(GV_MAXPLEXNAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXPLEXNAME); - gv_post_event(sc, GV_EVENT_RENAME_PLEX, p, name, *flags, 0, 0); + gv_post_event(sc, GV_EVENT_RENAME_PLEX, p, name, *flags, 0); break; case GV_TYPE_SD: s = gv_find_sd(sc, object); @@ -97,7 +97,7 @@ } name = g_malloc(GV_MAXSDNAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXSDNAME); - gv_post_event(sc, GV_EVENT_RENAME_SD, s, name, *flags, 0, 0); + gv_post_event(sc, GV_EVENT_RENAME_SD, s, name, *flags, 0); break; case GV_TYPE_DRIVE: d = gv_find_drive(sc, object); @@ -107,7 +107,7 @@ } name = g_malloc(GV_MAXDRIVENAME, M_WAITOK | M_ZERO); strlcpy(name, newname, GV_MAXDRIVENAME); - gv_post_event(sc, GV_EVENT_RENAME_DRIVE, d, name, *flags, 0, 0); + gv_post_event(sc, GV_EVENT_RENAME_DRIVE, d, name, *flags, 0); break; default: gctl_error(req, "unknown object '%s'", object); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_rm.c#15 (text+ko) ==== @@ -81,7 +81,7 @@ return; } - gv_post_event(sc, GV_EVENT_RM_VOLUME, v, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_RM_VOLUME, v, NULL, 0, 0); break; case GV_TYPE_PLEX: @@ -106,7 +106,7 @@ return; } - gv_post_event(sc, GV_EVENT_RM_PLEX, p, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_RM_PLEX, p, NULL, 0, 0); break; case GV_TYPE_SD: @@ -119,7 +119,7 @@ return; } - gv_post_event(sc, GV_EVENT_RM_SD, s, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_RM_SD, s, NULL, 0, 0); break; case GV_TYPE_DRIVE: @@ -138,7 +138,7 @@ return; }*/ - gv_post_event(sc, GV_EVENT_RM_DRIVE, d, NULL, *flags, 0, + gv_post_event(sc, GV_EVENT_RM_DRIVE, d, NULL, *flags, 0); break; @@ -148,7 +148,7 @@ } } - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); } /* Resets configuration */ @@ -176,7 +176,7 @@ LIST_FOREACH_SAFE(v, &sc->volumes, volume, v2) gv_rm_vol(sc, v); - gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0, 0); + gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0); return (0); } ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_state.c#22 (text+ko) ==== @@ -78,7 +78,7 @@ } v = gv_find_vol(sc, obj); gv_post_event(sc, GV_EVENT_SET_VOL_STATE, v, NULL, - gv_volstatei(state), f, 0); + gv_volstatei(state), f); break; case GV_TYPE_PLEX: @@ -88,7 +88,7 @@ } p = gv_find_plex(sc, obj); gv_post_event(sc, GV_EVENT_SET_PLEX_STATE, p, NULL, - gv_plexstatei(state), f, 0); + gv_plexstatei(state), f); break; case GV_TYPE_SD: @@ -98,7 +98,7 @@ } s = gv_find_sd(sc, obj); gv_post_event(sc, GV_EVENT_SET_SD_STATE, s, NULL, - gv_sdstatei(state), f, 0); + gv_sdstatei(state), f); break; case GV_TYPE_DRIVE: @@ -108,7 +108,7 @@ } d = gv_find_drive(sc, obj); gv_post_event(sc, GV_EVENT_SET_DRIVE_STATE, d, NULL, - gv_drivestatei(state), f, 0); + gv_drivestatei(state), f); break; default: ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#28 (text+ko) ==== @@ -1059,11 +1059,13 @@ mtx_lock(&sc->config_mtx); LIST_FOREACH_SAFE(v, &sc->volumes, volume, v2) { LIST_REMOVE(v, volume); + g_free(v->wqueue); g_free(v); } LIST_FOREACH_SAFE(p, &sc->plexes, plex, p2) { LIST_REMOVE(p, plex); g_free(p->bqueue); + g_free(p->rqueue); g_free(p->wqueue); g_free(p); } From owner-p4-projects@FreeBSD.ORG Wed Aug 8 16:38:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 96E0D16A419; Wed, 8 Aug 2007 16:38:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5C86E16A479 for ; Wed, 8 Aug 2007 16:38:25 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 49F1013C461 for ; Wed, 8 Aug 2007 16:38:25 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78GcPJH082226 for ; Wed, 8 Aug 2007 16:38:25 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78GcONb082223 for perforce@freebsd.org; Wed, 8 Aug 2007 16:38:24 GMT (envelope-from lulf@FreeBSD.org) Date: Wed, 8 Aug 2007 16:38:24 GMT Message-Id: <200708081638.l78GcONb082223@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 124903 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, 08 Aug 2007 16:38:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=124903 Change 124903 by lulf@lulf_carrot on 2007/08/08 16:38:13 - Add status indicator on plex that is growing. This will show how much precentage of the plex is finished growing. - Remove debugging comments when growing. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#23 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_list.c#4 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_plex.c#25 edit Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#23 (text+ko) ==== @@ -267,7 +267,6 @@ v = p->vol_sc; KASSERT(v != NULL, ("gv_grow_plex: NULL v")); - printf ("Start growing\n"); if (p->flags & GV_PLEX_GROWING || p->flags & GV_PLEX_SYNCING || p->flags & GV_PLEX_REBUILDING) @@ -295,8 +294,8 @@ p->flags |= GV_PLEX_GROWING; origsize = (sdcount - 1) * s->size; origlength = (sdcount - 1) * p->stripesize; - printf("Starting growing at 0 reading %jd bytes\n", origlength); p->synced = 0; + printf("VINUM: starting growing of plex %s\n", p->name); gv_grow_request(p, 0, MIN(origlength, origsize), BIO_READ, NULL); return (0); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_list.c#4 (text+ko) ==== @@ -294,7 +294,7 @@ p->name, (intmax_t)p->size, (intmax_t)p->size / MEGABYTE); sbuf_printf(sb, "\t\tSubdisks: %8d\n", p->sdcount); sbuf_printf(sb, "\t\tState: %s\n", gv_plexstate(p->state)); - if (p->flags & GV_PLEX_SYNCING) { + if ((p->flags & GV_PLEX_SYNCING) || (p->flags & GV_PLEX_GROWING)) { sbuf_printf(sb, "\t\tSynced: "); sbuf_printf(sb, "%16jd bytes (%d%%)\n", (intmax_t)p->synced, @@ -312,7 +312,7 @@ } else { sbuf_printf(sb, "P %-18s %2s State: ", p->name, gv_plexorg_short(p->org)); - if (p->flags & GV_PLEX_SYNCING) { + if ((p->flags & GV_PLEX_SYNCING) || (p->flags & GV_PLEX_GROWING)) { sbuf_printf(sb, "S %d%%\t", (int)((p->synced * 100) / p->size)); } else { ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_plex.c#25 (text+ko) ==== @@ -703,7 +703,6 @@ /* If it was a read, write it. */ if (bp->bio_cmd == BIO_READ) { - printf("Finished read, do a write\n"); p->synced += bp->bio_length; err = gv_grow_request(p, bp->bio_offset, bp->bio_length, BIO_WRITE, bp->bio_data); @@ -728,7 +727,6 @@ if (bp->bio_offset + bp->bio_length >= origsize) { printf("VINUM: growing of %s completed\n", p->name); p->flags &= ~GV_PLEX_GROWING; - printf("Updating state\n"); LIST_FOREACH(s, &p->subdisks, in_plex) { s->flags &= ~GV_SD_GROW; gv_set_sd_state(s, GV_SD_UP, 0); @@ -742,7 +740,6 @@ gv_plex_flush(p); } else { offset = bp->bio_offset + bp->bio_length; - printf("Issuing next bio read at 0x%jx\n", offset); err = gv_grow_request(p, offset, MIN(bp->bio_length, origsize - offset), BIO_READ, NULL); From owner-p4-projects@FreeBSD.ORG Wed Aug 8 16:38:52 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4639016A41B; Wed, 8 Aug 2007 16:38:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1E26816A417; Wed, 8 Aug 2007 16:38:52 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from mojo.ru (mojo.ru [84.252.152.63]) by mx1.freebsd.org (Postfix) with ESMTP id 9646813C428; Wed, 8 Aug 2007 16:38:51 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from [192.168.0.16] (nc-76-4-28-21.dhcp.embarqhsd.net [76.4.28.21]) (authenticated bits=0) by mojo.ru (8.12.11.20060308/8.12.10) with ESMTP id l78Gcl5P032336 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 8 Aug 2007 20:38:55 +0400 Message-ID: <46B9F18D.8080801@FreeBSD.org> Date: Wed, 08 Aug 2007 12:38:37 -0400 From: "Constantine A. Murenin" Organization: Google Summer of Code 2007 Student @ The FreeBSD Project User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.7.5) Gecko/20041217 X-Accept-Language: en-gb, en-gb-oed, en, en-us, ru, ru-ru, ru-su MIME-Version: 1.0 To: Jesper Brix Rosenkilde References: <200708081419.l78EJWQM070706@repoman.freebsd.org> In-Reply-To: <200708081419.l78EJWQM070706@repoman.freebsd.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Perforce Change Reviews , "Constantine A. Murenin" Subject: Re: PERFORCE change 124900 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, 08 Aug 2007 16:38:52 -0000 On 08/08/2007 10:19, Jesper Brix Rosenkilde wrote: > http://perforce.freebsd.org/chv.cgi?CH=124900 > > Change 124900 by jbr@jbr_bob on 2007/08/08 14:19:22 > > readded sysctl > > Affected files ... > > .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#7 edit > .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/sysctl.h#2 edit > > Differences ... > > ==== //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#7 (text+ko) ==== > > @@ -86,6 +86,7 @@ > > static int sysctl_kern_ps_strings(SYSCTL_HANDLER_ARGS); > static int sysctl_kern_usrstack(SYSCTL_HANDLER_ARGS); > +static int sysctl_kern_usrsysshm(SYSCTL_HANDLER_ARGS); > static int sysctl_kern_stackprot(SYSCTL_HANDLER_ARGS); > static int do_execve(struct thread *td, struct image_args *args, > struct mac *mac_p); > @@ -99,6 +100,9 @@ > SYSCTL_PROC(_kern, KERN_USRSTACK, usrstack, CTLTYPE_ULONG|CTLFLAG_RD, > NULL, 0, sysctl_kern_usrstack, "LU", ""); > > +SYSCTL_PROC(_kern, KERN_USRSYSSHM, usrsysshm, CTLTYPE_ULONG|CTLFLAG_RD, > + NULL, 0, sysctl_kern_usrsysshm, "LU", ""); > + > SYSCTL_PROC(_kern, OID_AUTO, stackprot, CTLTYPE_INT|CTLFLAG_RD, > NULL, 0, sysctl_kern_stackprot, "I", ""); > > @@ -145,6 +149,25 @@ > } > > static int > +sysctl_kern_usrsysshm(SYSCTL_HANDLER_ARGS) > +{ > + struct proc *p; > + int error; > + > + p = curproc; > +#ifdef SCTL_MASK32 > + if (req->flags & SCTL_MASK32) { > + unsigned int val; > + val = (unsigned int)p->p_sysent->sv_sysshm; > + error = SYSCTL_OUT(req, &val, sizeof(val)); > + } else > +#endif > + error = SYSCTL_OUT(req, &p->p_sysent->sv_sysshm, > + sizeof(p->p_sysent->sv_sysshm)); > + return error; > +} > + > +static int > sysctl_kern_stackprot(SYSCTL_HANDLER_ARGS) > { > struct proc *p; > > ==== //depot/projects/soc2007/jbr-syscall/src/sys/sys/sysctl.h#2 (text+ko) ==== > > @@ -393,6 +393,7 @@ > #define KERN_HOSTUUID 36 /* string: host UUID identifier */ > #define KERN_ARND 37 /* int: from arc4rand() */ > #define KERN_MAXID 38 /* number of valid kern ids */ > +#define KERN_USRSYSSHM 39 /* int: address of sysshm page */ This looks wrong. First, you use whitespaces instead of tabs. Second, KERN_USRSYSSHM should be put before KERN_MAXID, and KERN_MAXID value increased by one. Or, alternatively, a good choice might be to use OID_AUTO. :) > #define CTL_KERN_NAMES { \ > { 0, 0 }, \ > @@ -431,6 +432,7 @@ > { "logsigexit", CTLTYPE_INT }, \ > { "iov_max", CTLTYPE_INT }, \ > { "hostuuid", CTLTYPE_STRING }, \ > + { "usrsysshm", CTLTYPE_INT }, \ > } This is adding more stuff to the things that seem to be no longer supported in FreeBSD and are in fact already broken -- the index in this array is supposed to correspond to the above KERN_ defines, and the whole array is supposed to be of size KERN_MAXID. Although this array in no longer used by any programmes in FreeBSD's src tree, if you actually try to compile and run older sysctl(8) with it, you're screwed. Looking more at sysctl.h, it looks like CTL_KERN_NAMES is not the only place where these problems are present. Sigh. C. From owner-p4-projects@FreeBSD.ORG Wed Aug 8 16:44:34 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CBA8E16A41B; Wed, 8 Aug 2007 16:44:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E11A16A419 for ; Wed, 8 Aug 2007 16:44:33 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7BB7413C4CB for ; Wed, 8 Aug 2007 16:44:33 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78GiXVs082675 for ; Wed, 8 Aug 2007 16:44:33 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78GiXYN082670 for perforce@freebsd.org; Wed, 8 Aug 2007 16:44:33 GMT (envelope-from gonzo@FreeBSD.org) Date: Wed, 8 Aug 2007 16:44:33 GMT Message-Id: <200708081644.l78GiXYN082670@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124904 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, 08 Aug 2007 16:44:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=124904 Change 124904 by gonzo@gonzo_wooster on 2007/08/08 16:43:40 o Use TARGET_BIG_ENDIAN to set either big or little endianess to userland. o Use explicit gcc option for both big and little endian, do not rely on default endianess. o pass only -march stuff to _CPUCFLAGS Affected files ... .. //depot/projects/mips2/src/share/mk/bsd.cpu.mk#10 edit Differences ... ==== //depot/projects/mips2/src/share/mk/bsd.cpu.mk#10 (text+ko) ==== @@ -110,13 +110,10 @@ _CPUCFLAGS = -mcpu=${CPUTYPE} . endif . elif ${MACHINE_ARCH} == "mips" -_CPUCFLAGS = -G0 -mabicalls -mno-dsp -. if ${CPUTYPE} == "mips32" -_CPUCFLAGS += -march=mips32 -. elif ${CPUTYPE} == "mips64" -_CPUCFLAGS += -march=mips64 +. if ${CPUTYPE} == "mips64" +_CPUCFLAGS = -march=mips64 . elif ${CPUTYPE} == "mipsr4kc" -_CPUCFLAGS += -march=r4kc +_CPUCFLAGS = -march=4kc . endif . endif @@ -182,12 +179,16 @@ .endif .if ${MACHINE_ARCH} == "mips" -. if defined(MIPS_LITTLE_ENDIAN) -_CPUCFLAGS += -EL +. if defined(TARGET_BIG_ENDIAN) +CFLAGS += -EB +LDFLAGS += -Wl,-EB +LD += -EB +. else +CFLAGS += -EL LDFLAGS += -Wl,-EL LD += -EL . endif -_CPUCFLAGS += -msoft-float +CFLAGS += -msoft-float -G0 -mno-dsp -mabicalls .endif # NB: COPTFLAGS is handled in /usr/src/sys/conf/kern.pre.mk From owner-p4-projects@FreeBSD.ORG Wed Aug 8 16:45:35 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A555F16A417; Wed, 8 Aug 2007 16:45:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8314F16A419 for ; Wed, 8 Aug 2007 16:45:35 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 57B4B13C48D for ; Wed, 8 Aug 2007 16:45:35 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78GjZ4C082734 for ; Wed, 8 Aug 2007 16:45:35 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78GjZor082731 for perforce@freebsd.org; Wed, 8 Aug 2007 16:45:35 GMT (envelope-from gonzo@FreeBSD.org) Date: Wed, 8 Aug 2007 16:45:35 GMT Message-Id: <200708081645.l78GjZor082731@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124905 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, 08 Aug 2007 16:45:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=124905 Change 124905 by gonzo@gonzo_wooster on 2007/08/08 16:45:33 o Explicit gcc/ld options for big endian kernel Affected files ... .. //depot/projects/mips2/src/sys/conf/Makefile.mips#11 edit Differences ... ==== //depot/projects/mips2/src/sys/conf/Makefile.mips#11 (text+ko) ==== @@ -43,6 +43,11 @@ CFLAGS+=-EL SYSTEM_LD+=-EL HACK_EXTRA_FLAGS+=-EL -Wl,-EL +.else +CFLAGS+=-EB +SYSTEM_LD+=-EB +HACK_EXTRA_FLAGS+=-EB -Wl,-EB +.endif .endif # We add the -fno-pic flag to kernels because otherwise performance From owner-p4-projects@FreeBSD.ORG Wed Aug 8 16:57:54 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 099EB16A46C; Wed, 8 Aug 2007 16:57:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA3C116A41B for ; Wed, 8 Aug 2007 16:57:53 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 929A413C483 for ; Wed, 8 Aug 2007 16:57:52 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78GvqkP092023 for ; Wed, 8 Aug 2007 16:57:52 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78GvpkZ092009 for perforce@freebsd.org; Wed, 8 Aug 2007 16:57:51 GMT (envelope-from gonzo@FreeBSD.org) Date: Wed, 8 Aug 2007 16:57:51 GMT Message-Id: <200708081657.l78GvpkZ092009@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124907 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, 08 Aug 2007 16:57:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=124907 Change 124907 by gonzo@gonzo_jeeves on 2007/08/08 16:57:09 o Make gcc happy by casting arguments for atomic_XXX_long ops. Affected files ... .. //depot/projects/mips2/src/sys/mips/include/atomic.h#5 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/include/atomic.h#5 (text+ko) ==== @@ -214,24 +214,35 @@ #define atomic_fetchadd_32 atomic_fetchadd_int /* Operations on longs. */ -#define atomic_set_long atomic_set_int -#define atomic_set_acq_long atomic_set_acq_int -#define atomic_set_rel_long atomic_set_rel_int -#define atomic_clear_long atomic_clear_int -#define atomic_clear_acq_long atomic_clear_acq_int -#define atomic_clear_rel_long atomic_clear_rel_int -#define atomic_add_long atomic_add_int -#define atomic_add_acq_long atomic_add_acq_int -#define atomic_add_rel_long atomic_add_rel_int -#define atomic_subtract_long atomic_subtract_int -#define atomic_subtract_acq_long atomic_subtract_acq_int -#define atomic_subtract_rel_long atomic_subtract_rel_int -#define atomic_load_acq_long atomic_load_acq_int -#define atomic_store_rel_long atomic_store_rel_int -#define atomic_cmpset_long atomic_cmpset_int -#define atomic_cmpset_acq_long atomic_cmpset_acq_int -#define atomic_cmpset_rel_long atomic_cmpset_rel_int -#define atomic_readandclear_long atomic_readandclear_int +#define atomic_add_long(p, v) \ + atomic_add_32((volatile u_int *)(p), (u_int)(v)) +#define atomic_add_acq_long atomic_add_long +#define atomic_add_rel_long atomic_add_long +#define atomic_subtract_long(p, v) \ + atomic_subtract_32((volatile u_int *)(p), (u_int)(v)) +#define atomic_subtract_acq_long atomic_subtract_long +#define atomic_subtract_rel_long atomic_subtract_long +#define atomic_clear_long(p, v) \ + atomic_clear_32((volatile u_int *)(p), (u_int)(v)) +#define atomic_clear_acq_long atomic_clear_long +#define atomic_clear_rel_long atomic_clear_long +#define atomic_set_long(p, v) \ + atomic_set_32((volatile u_int *)(p), (u_int)(v)) +#define atomic_set_acq_long atomic_set_long +#define atomic_set_rel_long atomic_set_long +#define atomic_cmpset_long(dst, old, new) \ + atomic_cmpset_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_cmpset_acq_long atomic_cmpset_long +#define atomic_cmpset_rel_long atomic_cmpset_long +#define atomic_fetchadd_long(p, v) \ + atomic_fetchadd_32((volatile u_int *)(p), (u_int)(v)) +#define atomic_readandclear_long(p) \ + atomic_readandclear_long((volatile u_int *)(p)) +#define atomic_load_long(p) \ + atomic_load_32((volatile u_int *)(p)) +#define atomic_load_acq_long atomic_load_long +#define atomic_store_rel_long(p, v) \ + atomic_store_rel_32((volatile u_int *)(p), (u_int)(v)) /* Operations on pointers. */ #define atomic_set_ptr atomic_set_long From owner-p4-projects@FreeBSD.ORG Wed Aug 8 17:01:58 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6196616A468; Wed, 8 Aug 2007 17:01:58 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B12816A418 for ; Wed, 8 Aug 2007 17:01:58 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0686613C478 for ; Wed, 8 Aug 2007 17:01:58 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78H1vKV092376 for ; Wed, 8 Aug 2007 17:01:57 GMT (envelope-from cnst@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78H1vFm092373 for perforce@freebsd.org; Wed, 8 Aug 2007 17:01:57 GMT (envelope-from cnst@FreeBSD.org) Date: Wed, 8 Aug 2007 17:01:57 GMT Message-Id: <200708081701.l78H1vFm092373@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to cnst@FreeBSD.org using -f From: "Constantine A. Murenin" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124908 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, 08 Aug 2007 17:01:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=124908 Change 124908 by cnst@dale on 2007/08/08 17:01:37 fix buffer overruns in (now non-existent?) software Affected files ... .. //depot/projects/soc2007/cnst-sensors/sys.sys/sysctl.h#3 edit Differences ... ==== //depot/projects/soc2007/cnst-sensors/sys.sys/sysctl.h#3 (text+ko) ==== @@ -424,6 +424,7 @@ { "bootfile", CTLTYPE_STRING }, \ { "maxfilesperproc", CTLTYPE_INT }, \ { "maxprocperuid", CTLTYPE_INT }, \ + { "gap", 0 }, \ { "ipc", CTLTYPE_NODE }, \ { "dummy", CTLTYPE_INT }, \ { "ps_strings", CTLTYPE_INT }, \ @@ -431,6 +432,7 @@ { "logsigexit", CTLTYPE_INT }, \ { "iov_max", CTLTYPE_INT }, \ { "hostuuid", CTLTYPE_STRING }, \ + { "arandom", CTLTYPE_INT }, \ } /* @@ -502,6 +504,7 @@ { "disknames", CTLTYPE_STRUCT }, \ { "diskstats", CTLTYPE_STRUCT }, \ { "floatingpoint", CTLTYPE_INT }, \ + { "machine_arch", CTLTYPE_STRING }, \ { "realmem", CTLTYPE_ULONG }, \ { "sensors", CTLTYPE_NODE}, \ } From owner-p4-projects@FreeBSD.ORG Wed Aug 8 17:25:27 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 38FFB16A418; Wed, 8 Aug 2007 17:25:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B97816A419 for ; Wed, 8 Aug 2007 17:25:27 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EEBC413C46B for ; Wed, 8 Aug 2007 17:25:26 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78HPQmp098376 for ; Wed, 8 Aug 2007 17:25:26 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78HPQqI098373 for perforce@freebsd.org; Wed, 8 Aug 2007 17:25:26 GMT (envelope-from gonzo@FreeBSD.org) Date: Wed, 8 Aug 2007 17:25:26 GMT Message-Id: <200708081725.l78HPQqI098373@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124909 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, 08 Aug 2007 17:25:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=124909 Change 124909 by gonzo@gonzo_wooster on 2007/08/08 17:25:00 o Default gcc/mips arch to mips32. Default ABI is already set to 32 but default CPU type for this ABI is mips1. It causes some inconveniences so far: - ll/sc (used for atomic ops) are unsupport by mips1. - TARGET_CPU_TYPE should be set explicitly for our primary target platform - mips32. Approved by: cognet, imp Affected files ... .. //depot/projects/mips2/src/contrib/gcc/config/mips/freebsd.h#7 edit Differences ... ==== //depot/projects/mips2/src/contrib/gcc/config/mips/freebsd.h#7 (text+ko) ==== @@ -19,6 +19,10 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* Default to the mips32 ISA */ +#undef DRIVER_SELF_SPECS +#define DRIVER_SELF_SPECS \ + "%{!march=*: -march=mips32}" /* Define default target values. */ From owner-p4-projects@FreeBSD.ORG Wed Aug 8 18:16:31 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B4E116A419; Wed, 8 Aug 2007 18:16:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 583A916A417 for ; Wed, 8 Aug 2007 18:16:31 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 47F1A13C428 for ; Wed, 8 Aug 2007 18:16:31 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78IGVfF004386 for ; Wed, 8 Aug 2007 18:16:31 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78IGVHi004383 for perforce@freebsd.org; Wed, 8 Aug 2007 18:16:31 GMT (envelope-from mharvan@FreeBSD.org) Date: Wed, 8 Aug 2007 18:16:31 GMT Message-Id: <200708081816.l78IGVHi004383@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124911 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, 08 Aug 2007 18:16:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=124911 Change 124911 by mharvan@mharvan_home on 2007/08/08 18:15:52 ICMP plugin: keep-alive is timed by the last request sent rather than response received (relevant only for the client) Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#7 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#16 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#7 (text+ko) ==== @@ -36,12 +36,13 @@ * how often should an empty request be sent to the server - This is * useful when the server has data to send but the client doesn't. */ -#define PLUGIN_ICMP_KEEP_ALIVE 1 +#define PLUGIN_ICMP_KEEP_ALIVE 2 typedef struct { int fd; /* udp socket to the other endpoint */ int state; /* is a client connected? */ int server; + struct event timer_ev; } plugin_icmp_datat; struct my_icmp_hdr { @@ -67,10 +68,10 @@ int old_sysctl; size_t old_sysctl_size = sizeof(old_sysctl); struct event ev; /* used by libevent to monitor our fd */ -int data_sent_after_last_receive = 0; /* has the client sent data - * after the last reply from the - * server was received? - */ +static int data_sent_after_last_receive = 0; /* has the client sent data + * after the last reply from the + * server was received? + */ u_int16_t in_cksum(u_int16_t *addr, int len) { @@ -176,6 +177,33 @@ } } +/* register a timer event */ +void +register_timer_ev(struct event *ev) +{ + struct timeval tv; + + tv.tv_sec=PLUGIN_ICMP_KEEP_ALIVE; + tv.tv_usec=0; + evtimer_del(ev); + evtimer_add(ev, &tv); +} + +/* handler function for the libevent timer event */ +void +plugin_icmp_timer_ev_handler(int fd, short ev_type, void *arg) +{ + plugin_icmp_datat *data = ((plugint*)arg)->data; + + /* send a request to the server */ + if (data->server == 0) { + plugin_receive(data->fd, EV_TIMEOUT, arg); + } + + /* register a timer event again */ + register_timer_ev(&data->timer_ev); +} + /* * server: 0 - client, 1 - server * @@ -223,41 +251,41 @@ freeaddrinfo(ai); } + /* open the socket */ data->fd = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP); - if (data->fd != -1) { - /* non-blocking i/o */ - fd_flags = fcntl(data->fd, F_GETFL, 0); - if (fd_flags == -1) - errx(EX_OSFILE, "Failed to get flags from the icmp socket fd\n"); - fcntl(data->fd, F_SETFL, fd_flags|O_NONBLOCK); + if (data->fd < 0) + return -1; + + /* non-blocking i/o */ + fd_flags = fcntl(data->fd, F_GETFL, 0); + if (fd_flags == -1) + errx(EX_OSFILE, "Failed to get flags from the icmp socket fd\n"); + fcntl(data->fd, F_SETFL, fd_flags|O_NONBLOCK); + + register_select_fd(data->fd, plugin_receive, pl, -1); - if (server) { - register_select_fd(data->fd, plugin_receive, pl, -1); - data->state = PLUGIN_STATE_INITIALIZED; - } else { - /* the client should send keep-alive request to the server */ - register_select_fd(data->fd, plugin_receive, pl, - PLUGIN_ICMP_KEEP_ALIVE); - data->state = PLUGIN_STATE_CONNECTED; - } - - if (server) { + if (server) { #ifdef __FreeBSD__ - if (0 != sysctlbyname("net.inet.icmp.echo_user", - &old_sysctl, &old_sysctl_size, - &new_sysctl, sizeof(new_sysctl))) - errx(EX_UNAVAILABLE, "Cannot set net.inet.icmp.echo_user " - "sysctl. Maybe you need to patch your kernel?"); - //system("sysctl net.inet.icmp.echo_user=1"); + if (0 != sysctlbyname("net.inet.icmp.echo_user", + &old_sysctl, &old_sysctl_size, + &new_sysctl, sizeof(new_sysctl))) + errx(EX_UNAVAILABLE, "Cannot set net.inet.icmp.echo_user " + "sysctl. Maybe you need to patch your kernel?"); + //system("sysctl net.inet.icmp.echo_user=1"); #endif #ifdef __linux__ - system("sysctl net.ipv4.icmp_echo_ignore_all=0"); + system("sysctl net.ipv4.icmp_echo_ignore_all=0"); #endif - } - return 0; - } else { - return -1; + + data->state = PLUGIN_STATE_INITIALIZED; + } else { /* client */ + data->state = PLUGIN_STATE_CONNECTED; + /* the client should send keep-alive request to the server */ + evtimer_set(&data->timer_ev, plugin_icmp_timer_ev_handler, pl); + register_timer_ev(&data->timer_ev); } + + return 0; } void @@ -311,6 +339,11 @@ (struct sockaddr*)&dst_addr, dst_addr_len); //(struct sockaddr*)dst, sizeof (struct sockaddr_in)); fprintf(stderr, "plugin_send: send returned %d\n", n); + + /* the client has to reset the timer for keep-alive requests */ + if (! datapl->server) /* client */ + register_timer_ev(&datapl->timer_ev); + return n; } @@ -329,6 +362,8 @@ char serv[NI_MAXSERV]; struct my_icmp_hdr *icmp = NULL; + data_sent_after_last_receive = 0; + printf("plugin_receive(ev_type: 0x%x)\n", ev_type); if (! (data->state == PLUGIN_STATE_CONNECTED @@ -337,11 +372,8 @@ } /* upon timeout send another request to the server */ - if (ev_type == EV_TIMEOUT) { - register_select_fd(data->fd, plugin_receive, arg, - PLUGIN_ICMP_KEEP_ALIVE); - //goto send_request; - } +/* if (ev_type == EV_TIMEOUT) */ +/* goto send_request; */ n = recvfrom(data->fd, packet, sizeof(packet), 0, (struct sockaddr *) &from, &fromlen); @@ -399,11 +431,10 @@ // goto pkt_not_for_us; } } - data_sent_after_last_receive = 0; if (n > 0) process_data_from_plugin(pl, packetp, n); - // send_request: + send_request: /* if no data was queued then ask the daemon for more data */ if (queued_urgent_data == NULL && queued_normal_data == NULL) plugin_report(pl, REPORT_READY_TO_SEND); ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#16 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Wed Aug 8 18:40:02 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4E9F816A41B; Wed, 8 Aug 2007 18:40:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D34B916A418 for ; Wed, 8 Aug 2007 18:40:01 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6D2F013C45B for ; Wed, 8 Aug 2007 18:40:00 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78Ie0hh007342 for ; Wed, 8 Aug 2007 18:40:00 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78Ie07d007327 for perforce@freebsd.org; Wed, 8 Aug 2007 18:40:00 GMT (envelope-from peter@freebsd.org) Date: Wed, 8 Aug 2007 18:40:00 GMT Message-Id: <200708081840.l78Ie07d007327@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 124913 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, 08 Aug 2007 18:40:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=124913 Change 124913 by peter@peter_daintree on 2007/08/08 18:39:54 Initial branch of valgrind 3.2 - preparing for patch code drop. Affected files ... .. //depot/projects/valgrind/ACKNOWLEDGEMENTS#1 branch .. //depot/projects/valgrind/AUTHORS#1 branch .. //depot/projects/valgrind/COPYING#1 branch .. //depot/projects/valgrind/COPYING.DOCS#1 branch .. //depot/projects/valgrind/INSTALL#1 branch .. //depot/projects/valgrind/Makefile.all.am#1 branch .. //depot/projects/valgrind/Makefile.am#1 branch .. //depot/projects/valgrind/Makefile.core.am#1 branch .. //depot/projects/valgrind/Makefile.flags.am#1 branch .. //depot/projects/valgrind/Makefile.install.am#1 branch .. //depot/projects/valgrind/Makefile.tool-flags.am#1 branch .. //depot/projects/valgrind/Makefile.tool-inplace.am#1 branch .. //depot/projects/valgrind/Makefile.tool.am#1 branch .. //depot/projects/valgrind/NEWS#1 branch .. //depot/projects/valgrind/README#1 branch .. //depot/projects/valgrind/README_DEVELOPERS#1 branch .. //depot/projects/valgrind/README_MISSING_SYSCALL_OR_IOCTL#1 branch .. //depot/projects/valgrind/README_PACKAGERS#1 branch .. //depot/projects/valgrind/VEX/HACKING.README#1 branch .. //depot/projects/valgrind/VEX/LICENSE.GPL#1 branch .. //depot/projects/valgrind/VEX/LICENSE.README#1 branch .. //depot/projects/valgrind/VEX/Makefile#1 branch .. //depot/projects/valgrind/VEX/Makefile-icc#1 branch .. //depot/projects/valgrind/VEX/TODO.txt#1 branch .. //depot/projects/valgrind/VEX/auxprogs/genoffsets.c#1 branch .. //depot/projects/valgrind/VEX/nanoarm.orig#1 branch .. //depot/projects/valgrind/VEX/orig_amd64/Compare.hs#1 branch .. //depot/projects/valgrind/VEX/orig_amd64/SortedToOrig.hs#1 branch .. //depot/projects/valgrind/VEX/orig_amd64/test1.orig#1 branch .. //depot/projects/valgrind/VEX/orig_amd64/test1.sorted#1 branch .. //depot/projects/valgrind/VEX/orig_amd64/test2.orig#1 branch .. //depot/projects/valgrind/VEX/orig_amd64/test2.sorted#1 branch .. //depot/projects/valgrind/VEX/orig_arm/nanoarm#1 branch .. //depot/projects/valgrind/VEX/orig_arm/nanoarm.orig#1 branch .. //depot/projects/valgrind/VEX/orig_ppc32/date.orig#1 branch .. //depot/projects/valgrind/VEX/orig_ppc32/loadsafp.orig#1 branch .. //depot/projects/valgrind/VEX/orig_ppc32/morefp.orig#1 branch .. //depot/projects/valgrind/VEX/orig_ppc32/return0.orig#1 branch .. //depot/projects/valgrind/VEX/orig_x86/exit42.orig#1 branch .. //depot/projects/valgrind/VEX/orig_x86/fpu_mmx_sse.orig#1 branch .. //depot/projects/valgrind/VEX/orig_x86/manyfp.orig#1 branch .. //depot/projects/valgrind/VEX/priv/guest-amd64/gdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/guest-amd64/ghelpers.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-amd64/toIR.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-arm/gdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/guest-arm/ghelpers.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-arm/toIR.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-generic/bb_to_IR.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-generic/bb_to_IR.h#1 branch .. //depot/projects/valgrind/VEX/priv/guest-generic/g_generic_x87.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-generic/g_generic_x87.h#1 branch .. //depot/projects/valgrind/VEX/priv/guest-ppc/gdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/guest-ppc/ghelpers.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-ppc/toIR.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-x86/gdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/guest-x86/ghelpers.c#1 branch .. //depot/projects/valgrind/VEX/priv/guest-x86/toIR.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-amd64/hdefs.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-amd64/hdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/host-amd64/isel.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-arm/hdefs.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-arm/hdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/host-arm/isel.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_regs.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_regs.h#1 branch .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_simd64.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_simd64.h#1 branch .. //depot/projects/valgrind/VEX/priv/host-generic/reg_alloc2.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-ppc/hdefs.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-ppc/hdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/host-ppc/isel.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-x86/hdefs.c#1 branch .. //depot/projects/valgrind/VEX/priv/host-x86/hdefs.h#1 branch .. //depot/projects/valgrind/VEX/priv/host-x86/isel.c#1 branch .. //depot/projects/valgrind/VEX/priv/ir/irdefs.c#1 branch .. //depot/projects/valgrind/VEX/priv/ir/irmatch.c#1 branch .. //depot/projects/valgrind/VEX/priv/ir/irmatch.h#1 branch .. //depot/projects/valgrind/VEX/priv/ir/iropt.c#1 branch .. //depot/projects/valgrind/VEX/priv/ir/iropt.h#1 branch .. //depot/projects/valgrind/VEX/priv/main/vex_globals.c#1 branch .. //depot/projects/valgrind/VEX/priv/main/vex_globals.h#1 branch .. //depot/projects/valgrind/VEX/priv/main/vex_main.c#1 branch .. //depot/projects/valgrind/VEX/priv/main/vex_util.c#1 branch .. //depot/projects/valgrind/VEX/priv/main/vex_util.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_basictypes.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_emwarn.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_guest_amd64.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_guest_arm.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_guest_ppc32.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_guest_ppc64.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_guest_x86.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_ir.h#1 branch .. //depot/projects/valgrind/VEX/pub/libvex_trc_values.h#1 branch .. //depot/projects/valgrind/VEX/switchback/Makefile#1 branch .. //depot/projects/valgrind/VEX/switchback/binary_switchback.pl#1 branch .. //depot/projects/valgrind/VEX/switchback/linker.c#1 branch .. //depot/projects/valgrind/VEX/switchback/linker.h#1 branch .. //depot/projects/valgrind/VEX/switchback/switchback.c#1 branch .. //depot/projects/valgrind/VEX/switchback/test_bzip2.c#1 branch .. //depot/projects/valgrind/VEX/switchback/test_emfloat.c#1 branch .. //depot/projects/valgrind/VEX/switchback/test_hello.c#1 branch .. //depot/projects/valgrind/VEX/switchback/test_ppc_jm1.c#1 branch .. //depot/projects/valgrind/VEX/switchback/test_simple.c#1 branch .. //depot/projects/valgrind/VEX/test/fldenv.c#1 branch .. //depot/projects/valgrind/VEX/test/fp1.c#1 branch .. //depot/projects/valgrind/VEX/test/fp1.s#1 branch .. //depot/projects/valgrind/VEX/test/fpconst.c#1 branch .. //depot/projects/valgrind/VEX/test/fpgames.s#1 branch .. //depot/projects/valgrind/VEX/test/fpspeed.c#1 branch .. //depot/projects/valgrind/VEX/test/fpucw.c#1 branch .. //depot/projects/valgrind/VEX/test/frstor.c#1 branch .. //depot/projects/valgrind/VEX/test/fsave.c#1 branch .. //depot/projects/valgrind/VEX/test/fstenv.c#1 branch .. //depot/projects/valgrind/VEX/test/fxsave.c#1 branch .. //depot/projects/valgrind/VEX/test/mmxtest.c#1 branch .. //depot/projects/valgrind/VEX/test/mxcsr.c#1 branch .. //depot/projects/valgrind/VEX/test/rounderr.c#1 branch .. //depot/projects/valgrind/VEX/test/test-amd64-muldiv.h#1 branch .. //depot/projects/valgrind/VEX/test/test-amd64-shift.h#1 branch .. //depot/projects/valgrind/VEX/test/test-amd64.c#1 branch .. //depot/projects/valgrind/VEX/test/test-amd64.h#1 branch .. //depot/projects/valgrind/VEX/test/test-i386-muldiv.h#1 branch .. //depot/projects/valgrind/VEX/test/test-i386-shift.h#1 branch .. //depot/projects/valgrind/VEX/test/test-i386.c#1 branch .. //depot/projects/valgrind/VEX/test/test-i386.h#1 branch .. //depot/projects/valgrind/VEX/test/x87fxam.c#1 branch .. //depot/projects/valgrind/VEX/test/x87tst.c#1 branch .. //depot/projects/valgrind/VEX/test_main.c#1 branch .. //depot/projects/valgrind/VEX/test_main.h#1 branch .. //depot/projects/valgrind/VEX/test_main.h.base#1 branch .. //depot/projects/valgrind/VEX/unused/arena.h#1 branch .. //depot/projects/valgrind/VEX/unused/dispatch.c#1 branch .. //depot/projects/valgrind/VEX/unused/linker.c#1 branch .. //depot/projects/valgrind/VEX/useful/fp_80_64.c#1 branch .. //depot/projects/valgrind/VEX/useful/fpround.c#1 branch .. //depot/projects/valgrind/VEX/useful/fspill.c#1 branch .. //depot/projects/valgrind/VEX/useful/gradual_underflow.c#1 branch .. //depot/projects/valgrind/VEX/useful/hd_fpu.c#1 branch .. //depot/projects/valgrind/VEX/useful/show_fp_state.c#1 branch .. //depot/projects/valgrind/VEX/useful/x87_to_vex_and_back.c#1 branch .. //depot/projects/valgrind/autogen.sh#1 branch .. //depot/projects/valgrind/auxprogs/DotToScc.hs#1 branch .. //depot/projects/valgrind/auxprogs/Makefile.am#1 branch .. //depot/projects/valgrind/auxprogs/change-copyright-year#1 branch .. //depot/projects/valgrind/auxprogs/gen-mdg#1 branch .. //depot/projects/valgrind/auxprogs/gsl16-badfree.patch#1 branch .. //depot/projects/valgrind/auxprogs/gsl16-wavelet.patch#1 branch .. //depot/projects/valgrind/auxprogs/gsl16test#1 branch .. //depot/projects/valgrind/auxprogs/libmpiwrap.c#1 branch .. //depot/projects/valgrind/auxprogs/mpiwrap_type_test.c#1 branch .. //depot/projects/valgrind/auxprogs/ppc64shifts.c#1 branch .. //depot/projects/valgrind/auxprogs/ppcfround.c#1 branch .. //depot/projects/valgrind/auxprogs/primes.c#1 branch .. //depot/projects/valgrind/auxprogs/valgrind-listener.c#1 branch .. //depot/projects/valgrind/cachegrind/Makefile.am#1 branch .. //depot/projects/valgrind/cachegrind/cg-amd64.c#1 branch .. //depot/projects/valgrind/cachegrind/cg-ppc32.c#1 branch .. //depot/projects/valgrind/cachegrind/cg-ppc64.c#1 branch .. //depot/projects/valgrind/cachegrind/cg-x86.c#1 branch .. //depot/projects/valgrind/cachegrind/cg_annotate.in#1 branch .. //depot/projects/valgrind/cachegrind/cg_arch.h#1 branch .. //depot/projects/valgrind/cachegrind/cg_main.c#1 branch .. //depot/projects/valgrind/cachegrind/cg_sim.c#1 branch .. //depot/projects/valgrind/cachegrind/docs/Makefile.am#1 branch .. //depot/projects/valgrind/cachegrind/docs/cg-manual.xml#1 branch .. //depot/projects/valgrind/cachegrind/tests/Makefile.am#1 branch .. //depot/projects/valgrind/cachegrind/tests/amd64/Makefile.am#1 branch .. //depot/projects/valgrind/cachegrind/tests/chdir.c#1 branch .. //depot/projects/valgrind/cachegrind/tests/chdir.stderr.exp#1 branch .. //depot/projects/valgrind/cachegrind/tests/chdir.vgtest#1 branch .. //depot/projects/valgrind/cachegrind/tests/clreq.c#1 branch .. //depot/projects/valgrind/cachegrind/tests/clreq.stderr.exp#1 branch .. //depot/projects/valgrind/cachegrind/tests/clreq.vgtest#1 branch .. //depot/projects/valgrind/cachegrind/tests/dlclose.c#1 branch .. //depot/projects/valgrind/cachegrind/tests/dlclose.stderr.exp#1 branch .. //depot/projects/valgrind/cachegrind/tests/dlclose.stdout.exp#1 branch .. //depot/projects/valgrind/cachegrind/tests/dlclose.vgtest#1 branch .. //depot/projects/valgrind/cachegrind/tests/filter_cachesim_discards#1 branch .. //depot/projects/valgrind/cachegrind/tests/filter_stderr#1 branch .. //depot/projects/valgrind/cachegrind/tests/myprint.c#1 branch .. //depot/projects/valgrind/cachegrind/tests/ppc32/Makefile.am#1 branch .. //depot/projects/valgrind/cachegrind/tests/ppc64/Makefile.am#1 branch .. //depot/projects/valgrind/cachegrind/tests/wrap5.stderr.exp#1 branch .. //depot/projects/valgrind/cachegrind/tests/wrap5.stdout.exp#1 branch .. //depot/projects/valgrind/cachegrind/tests/wrap5.vgtest#1 branch .. //depot/projects/valgrind/cachegrind/tests/x86/Makefile.am#1 branch .. //depot/projects/valgrind/cachegrind/tests/x86/filter_stderr#1 branch .. //depot/projects/valgrind/cachegrind/tests/x86/fpu-28-108.S#1 branch .. //depot/projects/valgrind/cachegrind/tests/x86/fpu-28-108.stderr.exp#1 branch .. //depot/projects/valgrind/cachegrind/tests/x86/fpu-28-108.vgtest#1 branch .. //depot/projects/valgrind/cachegrind/tests/x86/insn_sse2.stdout.exp#1 branch .. //depot/projects/valgrind/callgrind/Makefile.am#1 branch .. //depot/projects/valgrind/callgrind/bb.c#1 branch .. //depot/projects/valgrind/callgrind/bbcc.c#1 branch .. //depot/projects/valgrind/callgrind/callgrind.h#1 branch .. //depot/projects/valgrind/callgrind/callgrind_annotate.in#1 branch .. //depot/projects/valgrind/callgrind/callgrind_control.in#1 branch .. //depot/projects/valgrind/callgrind/callstack.c#1 branch .. //depot/projects/valgrind/callgrind/clo.c#1 branch .. //depot/projects/valgrind/callgrind/command.c#1 branch .. //depot/projects/valgrind/callgrind/context.c#1 branch .. //depot/projects/valgrind/callgrind/costs.c#1 branch .. //depot/projects/valgrind/callgrind/costs.h#1 branch .. //depot/projects/valgrind/callgrind/debug.c#1 branch .. //depot/projects/valgrind/callgrind/docs/Makefile.am#1 branch .. //depot/projects/valgrind/callgrind/docs/cl-entities.xml#1 branch .. //depot/projects/valgrind/callgrind/docs/cl-format.xml#1 branch .. //depot/projects/valgrind/callgrind/docs/cl-manual.xml#1 branch .. //depot/projects/valgrind/callgrind/docs/index.xml#1 branch .. //depot/projects/valgrind/callgrind/docs/man-annotate.xml#1 branch .. //depot/projects/valgrind/callgrind/docs/man-callgrind.xml#1 branch .. //depot/projects/valgrind/callgrind/docs/man-control.xml#1 branch .. //depot/projects/valgrind/callgrind/dump.c#1 branch .. //depot/projects/valgrind/callgrind/events.c#1 branch .. //depot/projects/valgrind/callgrind/events.h#1 branch .. //depot/projects/valgrind/callgrind/fn.c#1 branch .. //depot/projects/valgrind/callgrind/global.h#1 branch .. //depot/projects/valgrind/callgrind/jumps.c#1 branch .. //depot/projects/valgrind/callgrind/main.c#1 branch .. //depot/projects/valgrind/callgrind/sim.c#1 branch .. //depot/projects/valgrind/callgrind/tests/Makefile.am#1 branch .. //depot/projects/valgrind/callgrind/tests/clreq.c#1 branch .. //depot/projects/valgrind/callgrind/tests/clreq.stderr.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/clreq.vgtest#1 branch .. //depot/projects/valgrind/callgrind/tests/filter_stderr#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork.c#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork1.stderr.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork1.stdout.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork1.vgtest#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork2.stderr.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork2.stdout.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork2.vgtest#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork3.stderr.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork3.stdout.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/simwork3.vgtest#1 branch .. //depot/projects/valgrind/callgrind/tests/threads.c#1 branch .. //depot/projects/valgrind/callgrind/tests/threads.stderr.exp#1 branch .. //depot/projects/valgrind/callgrind/tests/threads.vgtest#1 branch .. //depot/projects/valgrind/callgrind/threads.c#1 branch .. //depot/projects/valgrind/configure.in#1 branch .. //depot/projects/valgrind/coregrind/Makefile.am#1 branch .. //depot/projects/valgrind/coregrind/launcher.c#1 branch .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr.c#1 branch .. //depot/projects/valgrind/coregrind/m_clientstate.c#1 branch .. //depot/projects/valgrind/coregrind/m_commandline.c#1 branch .. //depot/projects/valgrind/coregrind/m_coredump/coredump-amd64-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_coredump/coredump-elf.c#1 branch .. //depot/projects/valgrind/coregrind/m_coredump/coredump-ppc32-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_coredump/coredump-ppc64-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_coredump/coredump-x86-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_coredump/priv_elf.h#1 branch .. //depot/projects/valgrind/coregrind/m_cpuid.S#1 branch .. //depot/projects/valgrind/coregrind/m_debugger.c#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/README.txt#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/UNUSED_STABS.txt#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/debuginfo.c#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readdwarf.h#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readelf.h#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readstabs.h#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_storage.h#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/readdwarf.c#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/readelf.c#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/readstabs.c#1 branch .. //depot/projects/valgrind/coregrind/m_debuginfo/storage.c#1 branch .. //depot/projects/valgrind/coregrind/m_debuglog.c#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/ansidecl.h#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/cp-demangle.c#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/cplus-dem.c#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/demangle.c#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/demangle.h#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/dyn-string.c#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/dyn-string.h#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/safe-ctype.c#1 branch .. //depot/projects/valgrind/coregrind/m_demangle/safe-ctype.h#1 branch .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-amd64-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-ppc32-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-ppc64-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-x86-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_errormgr.c#1 branch .. //depot/projects/valgrind/coregrind/m_execontext.c#1 branch .. //depot/projects/valgrind/coregrind/m_hashtable.c#1 branch .. //depot/projects/valgrind/coregrind/m_libcassert.c#1 branch .. //depot/projects/valgrind/coregrind/m_libcbase.c#1 branch .. //depot/projects/valgrind/coregrind/m_libcfile.c#1 branch .. //depot/projects/valgrind/coregrind/m_libcprint.c#1 branch .. //depot/projects/valgrind/coregrind/m_libcproc.c#1 branch .. //depot/projects/valgrind/coregrind/m_libcsignal.c#1 branch .. //depot/projects/valgrind/coregrind/m_machine.c#1 branch .. //depot/projects/valgrind/coregrind/m_main.c#1 branch .. //depot/projects/valgrind/coregrind/m_mallocfree.c#1 branch .. //depot/projects/valgrind/coregrind/m_options.c#1 branch .. //depot/projects/valgrind/coregrind/m_oset.c#1 branch .. //depot/projects/valgrind/coregrind/m_pthreadmodel.c#1 branch .. //depot/projects/valgrind/coregrind/m_redir.c#1 branch .. //depot/projects/valgrind/coregrind/m_replacemalloc/replacemalloc_core.c#1 branch .. //depot/projects/valgrind/coregrind/m_replacemalloc/vg_replace_malloc.c#1 branch .. //depot/projects/valgrind/coregrind/m_scheduler/priv_sema.h#1 branch .. //depot/projects/valgrind/coregrind/m_scheduler/scheduler.c#1 branch .. //depot/projects/valgrind/coregrind/m_scheduler/sema.c#1 branch .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-amd64-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-ppc32-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-ppc64-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-x86-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_signals.c#1 branch .. //depot/projects/valgrind/coregrind/m_stacks.c#1 branch .. //depot/projects/valgrind/coregrind/m_stacktrace.c#1 branch .. //depot/projects/valgrind/coregrind/m_syscall.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-generic.h#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-linux-variants.h#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-linux.h#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-main.h#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/priv_types_n_macros.h#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-ppc32-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-ppc64-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-x86-linux.S#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-generic.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-linux-variants.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-ppc32-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-ppc64-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-x86-linux.c#1 branch .. //depot/projects/valgrind/coregrind/m_threadmodel.c#1 branch .. //depot/projects/valgrind/coregrind/m_threadstate.c#1 branch .. //depot/projects/valgrind/coregrind/m_tooliface.c#1 branch .. //depot/projects/valgrind/coregrind/m_trampoline.S#1 branch .. //depot/projects/valgrind/coregrind/m_translate.c#1 branch .. //depot/projects/valgrind/coregrind/m_transtab.c#1 branch .. //depot/projects/valgrind/coregrind/m_ume.c#1 branch .. //depot/projects/valgrind/coregrind/pub_core_aspacemgr.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_basics.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_basics_asm.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_clientstate.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_clreq.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_commandline.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_coredump.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_cpuid.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_debugger.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_debuginfo.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_debuglog.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_demangle.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_dispatch.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_dispatch_asm.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_errormgr.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_execontext.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_hashtable.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_libcassert.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_libcbase.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_libcfile.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_libcprint.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_libcproc.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_libcsignal.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_machine.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_mallocfree.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_options.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_oset.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_pthreadmodel.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_redir.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_replacemalloc.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_scheduler.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_sigframe.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_signals.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_stacks.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_stacktrace.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_syscall.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_syswrap.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_threadmodel.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_threadstate.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_tooliface.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_trampoline.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_translate.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_transtab.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_transtab_asm.h#1 branch .. //depot/projects/valgrind/coregrind/pub_core_ume.h#1 branch .. //depot/projects/valgrind/coregrind/vg_preloaded.c#1 branch .. //depot/projects/valgrind/coregrind/vki_unistd-amd64-linux.h#1 branch .. //depot/projects/valgrind/coregrind/vki_unistd-ppc32-linux.h#1 branch .. //depot/projects/valgrind/coregrind/vki_unistd-ppc64-linux.h#1 branch .. //depot/projects/valgrind/coregrind/vki_unistd-x86-linux.h#1 branch .. //depot/projects/valgrind/coregrind/vki_unistd.h#1 branch .. //depot/projects/valgrind/docs/Makefile.am#1 branch .. //depot/projects/valgrind/docs/README#1 branch .. //depot/projects/valgrind/docs/images/Makefile.am#1 branch .. //depot/projects/valgrind/docs/images/home.png#1 branch .. //depot/projects/valgrind/docs/images/massif-graph-sm.png#1 branch .. //depot/projects/valgrind/docs/images/massif-graph.png#1 branch .. //depot/projects/valgrind/docs/images/next.png#1 branch .. //depot/projects/valgrind/docs/images/prev.png#1 branch .. //depot/projects/valgrind/docs/images/up.png#1 branch .. //depot/projects/valgrind/docs/internals/3_0_BUGSTATUS.txt#1 branch .. //depot/projects/valgrind/docs/internals/3_1_BUGSTATUS.txt#1 branch .. //depot/projects/valgrind/docs/internals/Makefile.am#1 branch .. //depot/projects/valgrind/docs/internals/darwin-notes.txt#1 branch .. //depot/projects/valgrind/docs/internals/darwin-syscalls.txt#1 branch .. //depot/projects/valgrind/docs/internals/directory-structure.txt#1 branch .. //depot/projects/valgrind/docs/internals/m_replacemalloc.txt#1 branch .. //depot/projects/valgrind/docs/internals/m_syswrap.txt#1 branch .. //depot/projects/valgrind/docs/internals/module-structure.txt#1 branch .. //depot/projects/valgrind/docs/internals/mpi2entries.txt#1 branch .. //depot/projects/valgrind/docs/internals/multiple-architectures.txt#1 branch .. //depot/projects/valgrind/docs/internals/notes.txt#1 branch .. //depot/projects/valgrind/docs/internals/performance.txt#1 branch .. //depot/projects/valgrind/docs/internals/porting-HOWTO.txt#1 branch .. //depot/projects/valgrind/docs/internals/porting-to-ARM.txt#1 branch .. //depot/projects/valgrind/docs/internals/register-uses.txt#1 branch .. //depot/projects/valgrind/docs/internals/release-HOWTO.txt#1 branch .. //depot/projects/valgrind/docs/internals/roadmap.txt#1 branch .. //depot/projects/valgrind/docs/internals/segments-seginfos.txt#1 branch .. //depot/projects/valgrind/docs/internals/threads-syscalls-signals.txt#1 branch .. //depot/projects/valgrind/docs/internals/tm-mutexstates.dot#1 branch .. //depot/projects/valgrind/docs/internals/tm-threadstates.dot#1 branch .. //depot/projects/valgrind/docs/internals/tracking-fn-entry-exit.txt#1 branch .. //depot/projects/valgrind/docs/internals/xml-output.txt#1 branch .. //depot/projects/valgrind/docs/lib/Makefile.am#1 branch .. //depot/projects/valgrind/docs/lib/line-wrap.xsl#1 branch .. //depot/projects/valgrind/docs/lib/vg-faq2txt.xsl#1 branch .. //depot/projects/valgrind/docs/lib/vg-fo.xsl#1 branch .. //depot/projects/valgrind/docs/lib/vg-html-chunk.xsl#1 branch .. //depot/projects/valgrind/docs/lib/vg-html-common.xsl#1 branch .. //depot/projects/valgrind/docs/lib/vg-html-website.xsl#1 branch .. //depot/projects/valgrind/docs/lib/vg_basic.css#1 branch .. //depot/projects/valgrind/docs/xml/FAQ.xml#1 branch .. //depot/projects/valgrind/docs/xml/Makefile.am#1 branch .. //depot/projects/valgrind/docs/xml/dist-docs.xml#1 branch .. //depot/projects/valgrind/docs/xml/index.xml#1 branch .. //depot/projects/valgrind/docs/xml/licenses.xml#1 branch .. //depot/projects/valgrind/docs/xml/manual-core.xml#1 branch .. //depot/projects/valgrind/docs/xml/manual-intro.xml#1 branch .. //depot/projects/valgrind/docs/xml/manual-writing-tools.xml#1 branch .. //depot/projects/valgrind/docs/xml/manual.xml#1 branch .. //depot/projects/valgrind/docs/xml/quick-start-guide.xml#1 branch .. //depot/projects/valgrind/docs/xml/tech-docs.xml#1 branch .. //depot/projects/valgrind/docs/xml/valgrind-manpage.xml#1 branch .. //depot/projects/valgrind/docs/xml/vg-entities.xml#1 branch .. //depot/projects/valgrind/docs/xml/xml_help.txt#1 branch .. //depot/projects/valgrind/glibc-2.2.supp#1 branch .. //depot/projects/valgrind/glibc-2.3.supp#1 branch .. //depot/projects/valgrind/glibc-2.4.supp#1 branch .. //depot/projects/valgrind/glibc-2.5.supp#1 branch .. //depot/projects/valgrind/helgrind/Makefile.am#1 branch .. //depot/projects/valgrind/helgrind/docs/Makefile.am#1 branch .. //depot/projects/valgrind/helgrind/docs/hg-manual.xml#1 branch .. //depot/projects/valgrind/helgrind/helgrind.h#1 branch .. //depot/projects/valgrind/helgrind/hg_main.c#1 branch .. //depot/projects/valgrind/helgrind/tests/Makefile.am#1 branch .. //depot/projects/valgrind/helgrind/tests/allok.c#1 branch .. //depot/projects/valgrind/helgrind/tests/allok.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/allok.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/deadlock.c#1 branch .. //depot/projects/valgrind/helgrind/tests/deadlock.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/deadlock.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/filter_stderr#1 branch .. //depot/projects/valgrind/helgrind/tests/inherit.c#1 branch .. //depot/projects/valgrind/helgrind/tests/inherit.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/inherit.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/race.c#1 branch .. //depot/projects/valgrind/helgrind/tests/race.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/race.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/race2.c#1 branch .. //depot/projects/valgrind/helgrind/tests/race2.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/race2.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/readshared.c#1 branch .. //depot/projects/valgrind/helgrind/tests/readshared.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/readshared.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/toobig-allocs.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/toobig-allocs.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/Makefile.am#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/filter_stderr#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_basic.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_basic.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_basic.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_cmov.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_cmov.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_cmov.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_fpu.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_fpu.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_fpu.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_mmx.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_mmx.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_mmx.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_mmxext.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_mmxext.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_mmxext.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_sse.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_sse.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_sse.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_sse2.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_sse2.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/x86/insn_sse2.vgtest#1 branch .. //depot/projects/valgrind/include/Makefile.am#1 branch .. //depot/projects/valgrind/include/pub_tool_aspacemgr.h#1 branch .. //depot/projects/valgrind/include/pub_tool_basics.h#1 branch .. //depot/projects/valgrind/include/pub_tool_basics_asm.h#1 branch .. //depot/projects/valgrind/include/pub_tool_clientstate.h#1 branch .. //depot/projects/valgrind/include/pub_tool_clreq.h#1 branch .. //depot/projects/valgrind/include/pub_tool_cpuid.h#1 branch .. //depot/projects/valgrind/include/pub_tool_debuginfo.h#1 branch .. //depot/projects/valgrind/include/pub_tool_errormgr.h#1 branch .. //depot/projects/valgrind/include/pub_tool_execontext.h#1 branch .. //depot/projects/valgrind/include/pub_tool_hashtable.h#1 branch .. //depot/projects/valgrind/include/pub_tool_libcassert.h#1 branch .. //depot/projects/valgrind/include/pub_tool_libcbase.h#1 branch .. //depot/projects/valgrind/include/pub_tool_libcfile.h#1 branch .. //depot/projects/valgrind/include/pub_tool_libcprint.h#1 branch .. //depot/projects/valgrind/include/pub_tool_libcproc.h#1 branch .. //depot/projects/valgrind/include/pub_tool_libcsignal.h#1 branch .. //depot/projects/valgrind/include/pub_tool_machine.h#1 branch .. //depot/projects/valgrind/include/pub_tool_mallocfree.h#1 branch .. //depot/projects/valgrind/include/pub_tool_options.h#1 branch .. //depot/projects/valgrind/include/pub_tool_oset.h#1 branch .. //depot/projects/valgrind/include/pub_tool_redir.h#1 branch .. //depot/projects/valgrind/include/pub_tool_replacemalloc.h#1 branch .. //depot/projects/valgrind/include/pub_tool_signals.h#1 branch .. //depot/projects/valgrind/include/pub_tool_stacktrace.h#1 branch .. //depot/projects/valgrind/include/pub_tool_threadstate.h#1 branch .. //depot/projects/valgrind/include/pub_tool_tooliface.h#1 branch .. //depot/projects/valgrind/include/valgrind.h#1 branch .. //depot/projects/valgrind/include/vki-amd64-linux.h#1 branch .. //depot/projects/valgrind/include/vki-linux.h#1 branch .. //depot/projects/valgrind/include/vki-ppc32-linux.h#1 branch .. //depot/projects/valgrind/include/vki-ppc64-linux.h#1 branch .. //depot/projects/valgrind/include/vki-x86-linux.h#1 branch .. //depot/projects/valgrind/include/vki_posixtypes-amd64-linux.h#1 branch .. //depot/projects/valgrind/include/vki_posixtypes-ppc32-linux.h#1 branch .. //depot/projects/valgrind/include/vki_posixtypes-ppc64-linux.h#1 branch .. //depot/projects/valgrind/include/vki_posixtypes-x86-linux.h#1 branch .. //depot/projects/valgrind/lackey/Makefile.am#1 branch .. //depot/projects/valgrind/lackey/docs/Makefile.am#1 branch .. //depot/projects/valgrind/lackey/docs/lk-manual.xml#1 branch .. //depot/projects/valgrind/lackey/lk_main.c#1 branch .. //depot/projects/valgrind/lackey/tests/Makefile.am#1 branch .. //depot/projects/valgrind/lackey/tests/filter_stderr#1 branch .. //depot/projects/valgrind/lackey/tests/true.stderr.exp#1 branch .. //depot/projects/valgrind/lackey/tests/true.vgtest#1 branch .. //depot/projects/valgrind/massif/Makefile.am#1 branch .. //depot/projects/valgrind/massif/docs/Makefile.am#1 branch .. //depot/projects/valgrind/massif/docs/ms-manual.xml#1 branch .. //depot/projects/valgrind/massif/hp2ps/AreaBelow.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/AreaBelow.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/AuxFile.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/AuxFile.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Axes.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Axes.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/CHANGES#1 branch .. //depot/projects/valgrind/massif/hp2ps/Curves.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Curves.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Defines.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Deviation.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Deviation.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Dimensions.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Dimensions.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Error.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Error.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/HpFile.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/HpFile.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/INSTALL#1 branch .. //depot/projects/valgrind/massif/hp2ps/Key.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Key.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/LICENSE#1 branch .. //depot/projects/valgrind/massif/hp2ps/Main.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Main.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Makefile.am#1 branch .. //depot/projects/valgrind/massif/hp2ps/Makefile.old#1 branch .. //depot/projects/valgrind/massif/hp2ps/Marks.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Marks.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/PsFile.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/PsFile.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/README#1 branch .. //depot/projects/valgrind/massif/hp2ps/Reorder.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Reorder.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Scale.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Scale.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Shade.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Shade.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/TopTwenty.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/TopTwenty.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/TraceElement.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/TraceElement.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/Utilities.c#1 branch .. //depot/projects/valgrind/massif/hp2ps/Utilities.h#1 branch .. //depot/projects/valgrind/massif/hp2ps/hp2ps.1#1 branch .. //depot/projects/valgrind/massif/ms_main.c#1 branch .. //depot/projects/valgrind/massif/tests/Makefile.am#1 branch .. //depot/projects/valgrind/massif/tests/basic_malloc.c#1 branch .. //depot/projects/valgrind/massif/tests/basic_malloc.stderr.exp#1 branch .. //depot/projects/valgrind/massif/tests/basic_malloc.vgtest#1 branch .. //depot/projects/valgrind/massif/tests/filter_stderr#1 branch .. //depot/projects/valgrind/massif/tests/toobig-allocs.stderr.exp#1 branch .. //depot/projects/valgrind/massif/tests/toobig-allocs.vgtest#1 branch .. //depot/projects/valgrind/massif/tests/true_html.stderr.exp#1 branch .. //depot/projects/valgrind/massif/tests/true_html.vgtest#1 branch .. //depot/projects/valgrind/massif/tests/true_text.stderr.exp#1 branch .. //depot/projects/valgrind/massif/tests/true_text.vgtest#1 branch .. //depot/projects/valgrind/memcheck/Makefile.am#1 branch .. //depot/projects/valgrind/memcheck/docs/Makefile.am#1 branch .. //depot/projects/valgrind/memcheck/docs/mc-manual.xml#1 branch .. //depot/projects/valgrind/memcheck/docs/mc-tech-docs.xml#1 branch .. //depot/projects/valgrind/memcheck/mc_include.h#1 branch .. //depot/projects/valgrind/memcheck/mc_leakcheck.c#1 branch .. //depot/projects/valgrind/memcheck/mc_main.c#1 branch .. //depot/projects/valgrind/memcheck/mc_malloc_wrappers.c#1 branch .. //depot/projects/valgrind/memcheck/mc_replace_strmem.c#1 branch .. //depot/projects/valgrind/memcheck/mc_translate.c#1 branch .. //depot/projects/valgrind/memcheck/memcheck.h#1 branch .. //depot/projects/valgrind/memcheck/tests/Makefile.am#1 branch .. //depot/projects/valgrind/memcheck/tests/addressable.c#1 branch .. //depot/projects/valgrind/memcheck/tests/addressable.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/addressable.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/addressable.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/addressable.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/Makefile.am#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/bt_everything.c#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/bt_everything.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/bt_everything.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/bt_everything.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/filter_stderr#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/more_x87_fp.c#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/more_x87_fp.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/more_x87_fp.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/more_x87_fp.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/sse_memory.c#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/sse_memory.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/sse_memory.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/sse_memory.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badaddrvalue.c#1 branch .. //depot/projects/valgrind/memcheck/tests/badaddrvalue.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badaddrvalue.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badaddrvalue.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badfree-2trace.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badfree-2trace.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badfree.c#1 branch .. //depot/projects/valgrind/memcheck/tests/badfree.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badfree.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badjump.c#1 branch .. //depot/projects/valgrind/memcheck/tests/badjump.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badjump.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/badjump.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badjump2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/badjump2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badjump2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badloop.c#1 branch .. //depot/projects/valgrind/memcheck/tests/badloop.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badloop.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badpoll.c#1 branch .. //depot/projects/valgrind/memcheck/tests/badpoll.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badpoll.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/badrw.c#1 branch .. //depot/projects/valgrind/memcheck/tests/badrw.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/badrw.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/brk.c#1 branch .. //depot/projects/valgrind/memcheck/tests/brk.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/brk.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/brk.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/brk2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/brk2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/brk2.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/brk2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/buflen_check.c#1 branch .. //depot/projects/valgrind/memcheck/tests/buflen_check.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/buflen_check.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/buflen_check.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/clientperm.c#1 branch .. //depot/projects/valgrind/memcheck/tests/clientperm.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/clientperm.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/clientperm.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/custom_alloc.c#1 branch .. //depot/projects/valgrind/memcheck/tests/custom_alloc.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/custom_alloc.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/deep_templates.cpp#1 branch .. //depot/projects/valgrind/memcheck/tests/deep_templates.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/deep_templates.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/deep_templates.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/describe-block.c#1 branch .. //depot/projects/valgrind/memcheck/tests/describe-block.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/describe-block.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/doublefree.c#1 branch .. //depot/projects/valgrind/memcheck/tests/doublefree.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/doublefree.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/erringfds.c#1 branch .. //depot/projects/valgrind/memcheck/tests/erringfds.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/erringfds.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/erringfds.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/error_counts.c#1 branch .. //depot/projects/valgrind/memcheck/tests/error_counts.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/error_counts.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/error_counts.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/errs1.c#1 branch .. //depot/projects/valgrind/memcheck/tests/errs1.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/errs1.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/execve.c#1 branch .. //depot/projects/valgrind/memcheck/tests/execve.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/execve.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/execve.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/execve2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/execve2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/execve2.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/execve2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/exitprog.c#1 branch .. //depot/projects/valgrind/memcheck/tests/exitprog.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/exitprog.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/filter_allocs#1 branch .. //depot/projects/valgrind/memcheck/tests/filter_leak_check_size#1 branch .. //depot/projects/valgrind/memcheck/tests/filter_stderr#1 branch .. //depot/projects/valgrind/memcheck/tests/filter_stderr_backtrace#1 branch .. //depot/projects/valgrind/memcheck/tests/filter_xml#1 branch .. //depot/projects/valgrind/memcheck/tests/fprw.c#1 branch .. //depot/projects/valgrind/memcheck/tests/fprw.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/fprw.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/fwrite.c#1 branch .. //depot/projects/valgrind/memcheck/tests/fwrite.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/fwrite.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/fwrite.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/hello.c#1 branch .. //depot/projects/valgrind/memcheck/tests/inits.c#1 branch .. //depot/projects/valgrind/memcheck/tests/inits.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/inits.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/inline.c#1 branch .. //depot/projects/valgrind/memcheck/tests/inline.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/inline.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/inline.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-0.c#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-0.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-0.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-0.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-cycle.c#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-cycle.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-cycle.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-cycle.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-cycle.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-regroot.c#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-regroot.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-regroot.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-regroot.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-tree.c#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-tree.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-tree.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-tree.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/leak-tree.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/leakotron.c#1 branch .. //depot/projects/valgrind/memcheck/tests/leakotron.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/leakotron.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/leakotron.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc1.c#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc1.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc1.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc3.c#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc3.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc3.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc3.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc_usable.c#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc_usable.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/malloc_usable.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel1.c#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel1.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel1.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel1.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel2.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel2.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel3.c#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel3.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/manuel3.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/match-overrun.c#1 branch .. //depot/projects/valgrind/memcheck/tests/match-overrun.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/match-overrun.supp#1 branch .. //depot/projects/valgrind/memcheck/tests/match-overrun.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/memalign2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/memalign2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/memalign2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/memalign_test.c#1 branch .. //depot/projects/valgrind/memcheck/tests/memalign_test.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/memalign_test.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/memcmptest.c#1 branch .. //depot/projects/valgrind/memcheck/tests/memcmptest.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/memcmptest.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/memcmptest.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/memcmptest.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/mempool.c#1 branch .. //depot/projects/valgrind/memcheck/tests/mempool.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/mempool.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/mempool.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/metadata.c#1 branch .. //depot/projects/valgrind/memcheck/tests/metadata.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/metadata.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/metadata.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/mismatches.cpp#1 branch .. //depot/projects/valgrind/memcheck/tests/mismatches.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/mismatches.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/mismatches.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/mismatches.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/mmaptest.c#1 branch .. //depot/projects/valgrind/memcheck/tests/mmaptest.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/mmaptest.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak.c#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak.supp#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak_supp.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/nanoleak_supp.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/new_nothrow.cpp#1 branch .. //depot/projects/valgrind/memcheck/tests/new_nothrow.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/new_nothrow.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/new_override.cpp#1 branch .. //depot/projects/valgrind/memcheck/tests/new_override.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/new_override.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/new_override.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/null_socket.c#1 branch .. //depot/projects/valgrind/memcheck/tests/null_socket.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/null_socket.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/oset_test.c#1 branch .. //depot/projects/valgrind/memcheck/tests/oset_test.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/oset_test.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/oset_test.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/overlap.c#1 branch .. //depot/projects/valgrind/memcheck/tests/overlap.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/overlap.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/overlap.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/partial_load.c#1 branch .. //depot/projects/valgrind/memcheck/tests/partial_load_dflt.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/partial_load_dflt.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/partial_load_dflt.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/partial_load_ok.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/partial_load_ok.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/partial_load_ok.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/partiallydefinedeq.c#1 branch .. //depot/projects/valgrind/memcheck/tests/partiallydefinedeq.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/partiallydefinedeq.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/partiallydefinedeq.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/partiallydefinedeq.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/pdb-realloc.c#1 branch .. //depot/projects/valgrind/memcheck/tests/pdb-realloc.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/pdb-realloc.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/pdb-realloc2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/pdb-realloc2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/pdb-realloc2.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/pdb-realloc2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/pipe.c#1 branch .. //depot/projects/valgrind/memcheck/tests/pipe.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/pipe.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/pointer-trace.c#1 branch .. //depot/projects/valgrind/memcheck/tests/pointer-trace.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/pointer-trace.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/pointer-trace.stderr.exp3#1 branch .. //depot/projects/valgrind/memcheck/tests/pointer-trace.stderr.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/pointer-trace.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/post-syscall.c#1 branch .. //depot/projects/valgrind/memcheck/tests/post-syscall.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/post-syscall.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/post-syscall.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/post-syscall.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/ppc32/Makefile.am#1 branch .. //depot/projects/valgrind/memcheck/tests/ppc64/Makefile.am#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc1.c#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc1.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc1.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc3.c#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc3.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/realloc3.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem-random.c#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem-random.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem-random.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem-random.stdout.exp64#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem-random.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem.c#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/sh-mem.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/sigaltstack.c#1 branch .. //depot/projects/valgrind/memcheck/tests/sigaltstack.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/sigaltstack.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/sigkill.c#1 branch .. //depot/projects/valgrind/memcheck/tests/sigkill.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/sigkill.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/sigkill.stderr.exp3#1 branch .. //depot/projects/valgrind/memcheck/tests/sigkill.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/signal2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/signal2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/signal2.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/signal2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/sigprocmask.c#1 branch .. //depot/projects/valgrind/memcheck/tests/sigprocmask.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/sigprocmask.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/sigprocmask.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_changes.c#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_changes.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_changes.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_changes.stdout.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_changes.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_switch.c#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_switch.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/stack_switch.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/str_tester.c#1 branch .. //depot/projects/valgrind/memcheck/tests/str_tester.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/str_tester.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/strchr.c#1 branch .. //depot/projects/valgrind/memcheck/tests/strchr.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/strchr.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/strchr.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/supp.c#1 branch .. //depot/projects/valgrind/memcheck/tests/supp.supp#1 branch .. //depot/projects/valgrind/memcheck/tests/supp1.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/supp1.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/supp2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/supp2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/supp_unknown.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/supp_unknown.supp#1 branch .. //depot/projects/valgrind/memcheck/tests/supp_unknown.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/suppfree.c#1 branch .. //depot/projects/valgrind/memcheck/tests/suppfree.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/suppfree.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/toobig-allocs.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/toobig-allocs.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/trivialleak.c#1 branch .. //depot/projects/valgrind/memcheck/tests/trivialleak.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/trivialleak.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/trivialleak.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_bz2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_bz2.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_bz2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fbench.c#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fbench.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fbench.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fbench.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fnfns.c#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fnfns.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fnfns.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/vcpu_fnfns.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/vgtest_ume.c#1 branch .. //depot/projects/valgrind/memcheck/tests/vgtest_ume.disabled#1 branch .. //depot/projects/valgrind/memcheck/tests/vgtest_ume.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/with-space.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/with-space.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/with-space.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap1.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap1.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap1.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap1.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap2.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap2.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap3.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap3.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap3.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap3.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap4.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap4.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap4.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap4.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap5.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap5.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap5.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap5.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap6.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap6.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap6.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap6.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap7.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap7.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap7.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap7.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap7so.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap8.c#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap8.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap8.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap8.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap8.stdout.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/wrap8.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/writev.c#1 branch .. //depot/projects/valgrind/memcheck/tests/writev.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/writev.stderr.exp2#1 branch .. //depot/projects/valgrind/memcheck/tests/writev.stderr.exp3#1 branch .. //depot/projects/valgrind/memcheck/tests/writev.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/Makefile.am#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/filter_pushfpopf#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/filter_stderr#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/filter_tronical#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/fpeflags.c#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/fpeflags.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/fpeflags.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/fprem.c#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 8 19:06:38 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56FA116A421; Wed, 8 Aug 2007 19:06:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DCD3716A419 for ; Wed, 8 Aug 2007 19:06:37 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CC78513C49D for ; Wed, 8 Aug 2007 19:06:37 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78J6b3p010223 for ; Wed, 8 Aug 2007 19:06:37 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78J6YPl010220 for perforce@freebsd.org; Wed, 8 Aug 2007 19:06:34 GMT (envelope-from peter@freebsd.org) Date: Wed, 8 Aug 2007 19:06:34 GMT Message-Id: <200708081906.l78J6YPl010220@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 124914 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, 08 Aug 2007 19:06:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=124914 Change 124914 by peter@peter_daintree on 2007/08/08 19:06:13 Initial checkin of buildable/runnable valgrind3. Run autogen.sh to build autoconf stuff. depends on various autoconf/automake etc ports. Affected files ... .. //depot/projects/valgrind/Makefile.am#2 edit .. //depot/projects/valgrind/Makefile.core.am#2 edit .. //depot/projects/valgrind/Makefile.flags.am#2 edit .. //depot/projects/valgrind/Makefile.tool-flags.am#2 edit .. //depot/projects/valgrind/Makefile.tool.am#2 edit .. //depot/projects/valgrind/VEX/Makefile#2 edit .. //depot/projects/valgrind/VEX/priv/guest-amd64/ghelpers.c#2 edit .. //depot/projects/valgrind/VEX/priv/main/vex_svnversion.h#1 add .. //depot/projects/valgrind/VEX/pub/libvex_guest_amd64.h#2 edit .. //depot/projects/valgrind/autogen.sh#2 edit .. //depot/projects/valgrind/cachegrind/Makefile.am#2 edit .. //depot/projects/valgrind/cachegrind/tests/Makefile.am#2 edit .. //depot/projects/valgrind/callgrind/Makefile.am#2 edit .. //depot/projects/valgrind/callgrind/tests/Makefile.am#2 edit .. //depot/projects/valgrind/configure.in#2 edit .. //depot/projects/valgrind/coregrind/Makefile.am#2 edit .. //depot/projects/valgrind/coregrind/launcher.c#2 edit .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr.c#2 edit .. //depot/projects/valgrind/coregrind/m_coredump/coredump-amd64-freebsd.c#1 add .. //depot/projects/valgrind/coregrind/m_coredump/coredump-elf.c#2 edit .. //depot/projects/valgrind/coregrind/m_coredump/coredump-x86-freebsd.c#1 add .. //depot/projects/valgrind/coregrind/m_debuginfo/debuginfo.c#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/readdwarf.c#2 edit .. //depot/projects/valgrind/coregrind/m_debuglog.c#2 edit .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-amd64-freebsd.S#1 add .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-x86-freebsd.S#1 add .. //depot/projects/valgrind/coregrind/m_libcassert.c#2 edit .. //depot/projects/valgrind/coregrind/m_libcfile.c#2 edit .. //depot/projects/valgrind/coregrind/m_libcproc.c#2 edit .. //depot/projects/valgrind/coregrind/m_libcsignal.c#2 edit .. //depot/projects/valgrind/coregrind/m_machine.c#2 edit .. //depot/projects/valgrind/coregrind/m_main.c#2 edit .. //depot/projects/valgrind/coregrind/m_redir.c#2 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-amd64-freebsd.c#1 add .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-x86-freebsd.c#1 add .. //depot/projects/valgrind/coregrind/m_signals.c#2 edit .. //depot/projects/valgrind/coregrind/m_stacktrace.c#2 edit .. //depot/projects/valgrind/coregrind/m_syscall.c#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/makeargsize.sh#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/makeargsize6.sh#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-generic.h#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_types_n_macros.h#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/sysargcount.c#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-freebsd.S#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-x86-freebsd.S#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd-variants.c#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-generic.c#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-x86-freebsd.c#1 add .. //depot/projects/valgrind/coregrind/m_trampoline.S#2 edit .. //depot/projects/valgrind/coregrind/m_ume.c#2 edit .. //depot/projects/valgrind/coregrind/pub_core_libcproc.h#2 edit .. //depot/projects/valgrind/coregrind/pub_core_sigframe.h#2 edit .. //depot/projects/valgrind/coregrind/pub_core_syscall.h#2 edit .. //depot/projects/valgrind/coregrind/pub_core_trampoline.h#2 edit .. //depot/projects/valgrind/coregrind/vg_preloaded.c#2 edit .. //depot/projects/valgrind/coregrind/vki_syscall-freebsd.h#1 add .. //depot/projects/valgrind/coregrind/vki_unistd.h#2 edit .. //depot/projects/valgrind/getpath/Makefile#1 add .. //depot/projects/valgrind/getpath/getpath_fromaddr.c#1 add .. //depot/projects/valgrind/getpath/getpath_fromfd.c#1 add .. //depot/projects/valgrind/getpath/gp_README#1 add .. //depot/projects/valgrind/helgrind/Makefile.am#2 edit .. //depot/projects/valgrind/helgrind/tests/Makefile.am#2 edit .. //depot/projects/valgrind/include/Makefile.am#2 edit .. //depot/projects/valgrind/include/pub_tool_basics.h#2 edit .. //depot/projects/valgrind/include/vki-amd64-freebsd.h#1 add .. //depot/projects/valgrind/include/vki-freebsd.h#1 add .. //depot/projects/valgrind/include/vki-x86-freebsd.h#1 add .. //depot/projects/valgrind/include/vki_machine_types-amd64-freebsd.h#1 add .. //depot/projects/valgrind/include/vki_machine_types-x86-freebsd.h#1 add .. //depot/projects/valgrind/lackey/Makefile.am#2 edit .. //depot/projects/valgrind/libc-4x.supp#1 add .. //depot/projects/valgrind/massif/Makefile.am#2 edit .. //depot/projects/valgrind/memcheck/Makefile.am#2 edit .. //depot/projects/valgrind/memcheck/tests/Makefile.am#2 edit .. //depot/projects/valgrind/memcheck/tests/addressable.c#2 edit .. //depot/projects/valgrind/memcheck/tests/badjump2.c#2 edit .. //depot/projects/valgrind/memcheck/tests/brk.c#2 edit .. //depot/projects/valgrind/memcheck/tests/buflen_check.c#2 edit .. //depot/projects/valgrind/memcheck/tests/malloc_usable.c#2 edit .. //depot/projects/valgrind/memcheck/tests/memalign2.c#2 edit .. //depot/projects/valgrind/memcheck/tests/mempool.c#2 edit .. //depot/projects/valgrind/memcheck/tests/pointer-trace.c#2 edit .. //depot/projects/valgrind/memcheck/tests/sh-mem-random.c#2 edit .. //depot/projects/valgrind/memcheck/tests/stack_changes.c#2 edit .. //depot/projects/valgrind/memcheck/tests/stack_switch.c#2 edit .. //depot/projects/valgrind/memcheck/tests/str_tester.c#2 edit .. //depot/projects/valgrind/memcheck/tests/writev.c#2 edit .. //depot/projects/valgrind/memcheck/tests/x86/Makefile.am#2 edit .. //depot/projects/valgrind/memcheck/tests/zeropage.c#2 edit .. //depot/projects/valgrind/none/Makefile.am#2 edit .. //depot/projects/valgrind/none/tests/Makefile.am#2 edit .. //depot/projects/valgrind/none/tests/closeall.c#2 edit .. //depot/projects/valgrind/none/tests/faultstatus.c#2 edit .. //depot/projects/valgrind/none/tests/fdleak_cmsg.c#2 edit .. //depot/projects/valgrind/none/tests/fdleak_socketpair.c#2 edit .. //depot/projects/valgrind/none/tests/map_unaligned.c#2 edit .. //depot/projects/valgrind/none/tests/map_unmap.c#2 edit .. //depot/projects/valgrind/none/tests/mq.c#2 edit .. //depot/projects/valgrind/none/tests/pending.c#2 edit .. //depot/projects/valgrind/none/tests/resolv.c#2 edit .. //depot/projects/valgrind/none/tests/rlimit_nofile.c#2 edit .. //depot/projects/valgrind/none/tests/sem.c#2 edit .. //depot/projects/valgrind/none/tests/sigstackgrowth.c#2 edit .. //depot/projects/valgrind/none/tests/x86/Makefile.am#2 edit .. //depot/projects/valgrind/none/tests/x86/faultstatus.c#2 edit .. //depot/projects/valgrind/perf/bigcode.c#2 edit .. //depot/projects/valgrind/perf/tinycc.c#2 edit .. //depot/projects/valgrind/tests/filter_addresses#2 edit .. //depot/projects/valgrind/tests/filter_discards#2 edit .. //depot/projects/valgrind/tests/filter_numbers#2 edit .. //depot/projects/valgrind/tests/filter_stderr_basic#2 edit .. //depot/projects/valgrind/tests/toobig-allocs.c#2 edit Differences ... ==== //depot/projects/valgrind/Makefile.am#2 (text+ko) ==== @@ -32,6 +32,14 @@ CLEANFILES = DISTCLEANFILES = default.supp +if VG_X86_FREEBSD +BUILT_SOURCES += valt_load_address_x86_freebsd.lds +CLEANFILES += valt_load_address_x86_freebsd.lds +endif +if VG_AMD64_FREEBSD +BUILT_SOURCES += valt_load_address_amd64_freebsd.lds +CLEANFILES += valt_load_address_amd64_freebsd.lds +endif if VG_X86_LINUX BUILT_SOURCES += valt_load_address_x86_linux.lds CLEANFILES += valt_load_address_x86_linux.lds @@ -181,6 +189,20 @@ # # So we search for the line with a hex value "+ SIZEOF_HEADERS", and replace # all the hex values in that line with "valt_load_address". +valt_load_address_x86_freebsd.lds: Makefile + $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ + || rm -f $@ + +valt_load_address_amd64_freebsd.lds: Makefile + $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed -E \ + -e '1,/^=====+$$/d' \ + -e '/^=====+$$/d' \ + -e '/\. = 0x[0-9A-Fa-f]+ \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ + || rm -f $@ + valt_load_address_x86_linux.lds: Makefile $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \ -e '1,/^=====\+$$/d' \ ==== //depot/projects/valgrind/Makefile.core.am#2 (text+ko) ==== @@ -1,3 +1,27 @@ +add_includes_x86_freebsd = -I$(top_srcdir)/coregrind \ + -I$(top_srcdir) \ + -I$(top_srcdir)/coregrind/x86 \ + -I$(top_srcdir)/coregrind/freebsd \ + -I$(top_srcdir)/coregrind/x86-freebsd \ + -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVG_PLATFORM="\"x86-freebsd\"" \ + -DVGA_x86=1 \ + -DVGO_freebsd=1 \ + -DVGP_x86_freebsd=1 + +add_includes_amd64_freebsd = -I$(top_srcdir)/coregrind \ + -I$(top_srcdir) \ + -I$(top_srcdir)/coregrind/x86 \ + -I$(top_srcdir)/coregrind/freebsd \ + -I$(top_srcdir)/coregrind/x86-freebsd \ + -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVG_PLATFORM="\"amd64-freebsd\"" \ + -DVGA_amd64=1 \ + -DVGO_freebsd=1 \ + -DVGP_amd64_freebsd=1 + add_includes_x86_linux = -I$(top_srcdir)/coregrind \ -I$(top_srcdir) \ -I$(top_srcdir)/coregrind/x86 \ @@ -49,6 +73,8 @@ include $(top_srcdir)/Makefile.flags.am PRELOAD_LDFLAGS_COMMON = -nostdlib -shared -Wl,-z,interpose,-z,initfirst +PRELOAD_LDFLAGS_X86_FREEBSD = $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@ +PRELOAD_LDFLAGS_AMD64_FREEBSD = $(PRELOAD_LDFLAGS_COMMON) -m64 PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@ PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON) -m64 PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@ ==== //depot/projects/valgrind/Makefile.flags.am#2 (text+ko) ==== @@ -6,6 +6,18 @@ AM_CFLAGS_PIC = -fpic -fno-omit-frame-pointer # Flags for specific targets +AM_FLAG_M3264_X86_FREEBSD = @FLAG_M32@ +AM_CPPFLAGS_X86_FREEBSD = $(add_includes_x86_freebsd) +AM_CFLAGS_X86_FREEBSD = $(WERROR) @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \ + $(AM_CFLAGS_BASE) +AM_CCASFLAGS_X86_FREEBSD = $(add_includes_x86_freebsd) @FLAG_M32@ -g + +AM_FLAG_M3264_AMD64_FREEBSD = @FLAG_M64@ +AM_CPPFLAGS_AMD64_FREEBSD = $(add_includes_amd64_freebsd) +AM_CFLAGS_AMD64_FREEBSD = $(WERROR) @FLAG_M64@ -fomit-frame-pointer \ + @PREFERRED_STACK_BOUNDARY@ $(AM_CFLAGS_BASE) +AM_CCASFLAGS_AMD64_FREEBSD = $(add_includes_amd64_freebsd) -m64 -g + AM_FLAG_M3264_X86_LINUX = @FLAG_M32@ AM_CPPFLAGS_X86_LINUX = $(add_includes_x86_linux) AM_CFLAGS_X86_LINUX = $(WERROR) @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \ ==== //depot/projects/valgrind/Makefile.tool-flags.am#2 (text+ko) ==== @@ -1,3 +1,15 @@ +add_includes_x86_freebsd = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_x86=1 \ + -DVGO_freebsd=1 \ + -DVGP_x86_freebsd=1 + +add_includes_amd64_freebsd = -I$(top_srcdir)/include \ + -I@VEX_DIR@/pub \ + -DVGA_amd64=1 \ + -DVGO_freebsd=1 \ + -DVGP_amd64_freebsd=1 + add_includes_x86_linux = -I$(top_srcdir)/include \ -I@VEX_DIR@/pub \ -DVGA_x86=1 \ ==== //depot/projects/valgrind/Makefile.tool.am#2 (text+ko) ==== @@ -6,6 +6,12 @@ include $(top_srcdir)/Makefile.tool-flags.am include $(top_srcdir)/Makefile.tool-inplace.am +LIBREPLACEMALLOC_X86_FREEBSD = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_x86_freebsd.a + +LIBREPLACEMALLOC_AMD64_FREEBSD = \ + $(top_builddir)/coregrind/libreplacemalloc_toolpreload_amd64_freebsd.a + LIBREPLACEMALLOC_X86_LINUX = \ $(top_builddir)/coregrind/libreplacemalloc_toolpreload_x86_linux.a @@ -18,6 +24,14 @@ LIBREPLACEMALLOC_PPC64_LINUX = \ $(top_builddir)/coregrind/libreplacemalloc_toolpreload_ppc64_linux.a +COREGRIND_LIBS_X86_FREEBSD = \ + $(top_builddir)/coregrind/libcoregrind_x86_freebsd.a \ + @VEX_DIR@/libvex_x86_freebsd.a + +COREGRIND_LIBS_AMD64_FREEBSD = \ + $(top_builddir)/coregrind/libcoregrind_amd64_freebsd.a \ + @VEX_DIR@/libvex_amd64_freebsd.a + COREGRIND_LIBS_X86_LINUX = \ $(top_builddir)/coregrind/libcoregrind_x86_linux.a \ @VEX_DIR@/libvex_x86_linux.a @@ -36,6 +50,16 @@ ##.PHONY: @VEX_DIR@/libvex.a +@VEX_DIR@/libvex_x86_freebsd.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" libvex_x86_freebsd.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_X86_FREEBSD) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + +@VEX_DIR@/libvex_amd64_freebsd.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ CC="$(CC)" libvex_amd64_freebsd.a \ + EXTRA_CFLAGS="$(AM_CFLAGS_AMD64_FREEBSD) @FLAG_WDECL_AFTER_STMT@ \ + @FLAG_FNO_STACK_PROTECTOR@" + @VEX_DIR@/libvex_x86_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h $(MAKE) -C @VEX_DIR@ CC="$(CC)" libvex_x86_linux.a \ EXTRA_CFLAGS="$(AM_CFLAGS_X86_LINUX) @FLAG_WDECL_AFTER_STMT@ \ @@ -64,6 +88,16 @@ -Wl,-defsym,valt_load_address=@VALT_LOAD_ADDRESS@ \ -nodefaultlibs -nostartfiles -u _start +TOOL_LDADD_X86_FREEBSD = $(COREGRIND_LIBS_X86_FREEBSD) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_X86_FREEBSD = \ + $(TOOL_LDFLAGS_COMMON) @FLAG_M32@ \ + -Wl,-T,$(top_builddir)/valt_load_address_x86_freebsd.lds + +TOOL_LDADD_AMD64_FREEBSD = $(COREGRIND_LIBS_AMD64_FREEBSD) $(TOOL_LDADD_COMMON) +TOOL_LDFLAGS_AMD64_FREEBSD = \ + $(TOOL_LDFLAGS_COMMON) -m64 \ + -Wl,-T,$(top_builddir)/valt_load_address_amd64_freebsd.lds + TOOL_LDADD_X86_LINUX = $(COREGRIND_LIBS_X86_LINUX) $(TOOL_LDADD_COMMON) TOOL_LDFLAGS_X86_LINUX = \ $(TOOL_LDFLAGS_COMMON) @FLAG_M32@ \ @@ -85,11 +119,21 @@ -Wl,-T,$(top_builddir)/valt_load_address_ppc64_linux.lds PRELOAD_LDFLAGS_COMMON = -nostdlib -shared -Wl,-z,interpose,-z,initfirst +PRELOAD_LDFLAGS_X86_FREEBSD = $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@ +PRELOAD_LDFLAGS_AMD64_FREEBSD = $(PRELOAD_LDFLAGS_COMMON) -m64 PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@ PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON) -m64 PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@ PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON) -m64 +LIBREPLACEMALLOC_LDFLAGS_X86_FREEBSD = \ + -Wl,--whole-archive \ + $(LIBREPLACEMALLOC_X86_FREEBSD) \ + -Wl,--no-whole-archive +LIBREPLACEMALLOC_LDFLAGS_AMD64_FREEBSD = \ + -Wl,--whole-archive \ + $(LIBREPLACEMALLOC_AMD64_FREEBSD) \ + -Wl,--no-whole-archive LIBREPLACEMALLOC_LDFLAGS_X86_LINUX = \ -Wl,--whole-archive \ $(LIBREPLACEMALLOC_X86_LINUX) \ ==== //depot/projects/valgrind/VEX/Makefile#2 (text+ko) ==== @@ -137,6 +137,17 @@ if [ ! -f TAG_ppc64_linux ] ; then rm -f $(LIB_OBJS) TAG_* libvex.a ; fi touch TAG_ppc64_linux +libvex_x86_freebsd.a: TAG_x86_freebsd libvex.a + mv -f libvex.a libvex_x86_freebsd.a +TAG_x86_freebsd: + if [ ! -f TAG_x86_freebsd ] ; then rm -f $(LIB_OBJS) TAG_* libvex.a ; fi + touch TAG_x86_freebsd + +libvex_amd64_freebsd.a: TAG_amd64_freebsd libvex.a + mv -f libvex.a libvex_amd64_freebsd.a +TAG_amd64_freebsd: + if [ ! -f TAG_amd64_freebsd ] ; then rm -f $(LIB_OBJS) TAG_* libvex.a ; fi + touch TAG_amd64_freebsd # This doesn't get rid of priv/main/vex_svnversion.h, because # that can't be regenerated in the final Valgrind tarball, and ==== //depot/projects/valgrind/VEX/priv/guest-amd64/ghelpers.c#2 (text+ko) ==== @@ -839,6 +839,29 @@ } +/* VISIBLE TO LIBVEX CLIENT */ +void +LibVEX_GuestAMD64_put_rflag_c ( UInt new_carry_flag, + /*MOD*/VexGuestAMD64State* vex_state ) +{ + ULong oszacp = amd64g_calculate_rflags_all_WRK( + vex_state->guest_CC_OP, + vex_state->guest_CC_DEP1, + vex_state->guest_CC_DEP2, + vex_state->guest_CC_NDEP + ); + if (new_carry_flag & 1) { + oszacp |= AMD64G_CC_MASK_C; + } else { + oszacp &= ~AMD64G_CC_MASK_C; + } + vex_state->guest_CC_OP = AMD64G_CC_OP_COPY; + vex_state->guest_CC_DEP1 = oszacp; + vex_state->guest_CC_DEP2 = 0; + vex_state->guest_CC_NDEP = 0; +} + + /*---------------------------------------------------------------*/ /*--- %rflags translation-time function specialisers. ---*/ /*--- These help iropt specialise calls the above run-time ---*/ ==== //depot/projects/valgrind/VEX/pub/libvex_guest_amd64.h#2 (text+ko) ==== @@ -178,6 +178,13 @@ ULong LibVEX_GuestAMD64_get_rflags ( /*IN*/VexGuestAMD64State* vex_state ); +/* Set the carry flag in the given state to 'new_carry_flag', which + should be zero or one. */ +extern +void +LibVEX_GuestAMD64_put_rflag_c ( UInt new_carry_flag, + /*MOD*/VexGuestAMD64State* vex_state ); + #if 0 /* Convert a saved x87 FPU image (as created by fsave) and write it into the supplied VexGuestX86State structure. The non-FP parts of @@ -193,15 +200,6 @@ void LibVEX_GuestX86_get_x87 ( /*IN*/VexGuestX86State* vex_state, /*OUT*/UChar* x87_state ); - -/* Given a 32-bit word containing native x86 %eflags values, set the - eflag-related fields in the supplied VexGuestX86State accordingly. - All other fields are left unchanged. */ - -extern -void LibVEX_GuestX86_put_eflags ( UInt eflags_native, - /*OUT*/VexGuestX86State* vex_state ); - #endif /* 0 */ #endif /* ndef __LIBVEX_PUB_GUEST_AMD64_H */ ==== //depot/projects/valgrind/autogen.sh#2 (text+kox) ==== @@ -11,7 +11,8 @@ fi } -run aclocal -run autoheader -run automake -a -run autoconf +run aclocal19 +run autoheader259 +run automake19 -a +run autoconf259 +echo '"export"' > VEX/priv/main/vex_svnversion.h ==== //depot/projects/valgrind/cachegrind/Makefile.am#2 (text+ko) ==== @@ -5,6 +5,12 @@ noinst_HEADERS = cg_arch.h cg_sim.c noinst_PROGRAMS = +if VG_X86_FREEBSD +noinst_PROGRAMS += cachegrind-x86-freebsd +endif +if VG_AMD64_FREEBSD +noinst_PROGRAMS += cachegrind-amd64-freebsd +endif if VG_X86_LINUX noinst_PROGRAMS += cachegrind-x86-linux endif @@ -24,6 +30,20 @@ CACHEGRIND_SOURCES_PPC32 = cg-ppc32.c CACHEGRIND_SOURCES_PPC64 = cg-ppc64.c +cachegrind_x86_freebsd_SOURCES = $(CACHEGRIND_SOURCES_COMMON) $(CACHEGRIND_SOURCES_X86) +cachegrind_x86_freebsd_CPPFLAGS = $(AM_CPPFLAGS_X86_FREEBSD) +cachegrind_x86_freebsd_CFLAGS = $(AM_CFLAGS_X86_FREEBSD) +cachegrind_x86_freebsd_DEPENDENCIES = $(COREGRIND_LIBS_X86_FREEBSD) +cachegrind_x86_freebsd_LDADD = $(TOOL_LDADD_X86_FREEBSD) +cachegrind_x86_freebsd_LDFLAGS = $(TOOL_LDFLAGS_X86_FREEBSD) + +cachegrind_amd64_freebsd_SOURCES = $(CACHEGRIND_SOURCES_COMMON) $(CACHEGRIND_SOURCES_AMD64) +cachegrind_amd64_freebsd_CPPFLAGS = $(AM_CPPFLAGS_AMD64_FREEBSD) +cachegrind_amd64_freebsd_CFLAGS = $(AM_CFLAGS_AMD64_FREEBSD) +cachegrind_amd64_freebsd_DEPENDENCIES = $(COREGRIND_LIBS_AMD64_FREEBSD) +cachegrind_amd64_freebsd_LDADD = $(TOOL_LDADD_AMD64_FREEBSD) +cachegrind_amd64_freebsd_LDFLAGS = $(TOOL_LDFLAGS_AMD64_FREEBSD) + cachegrind_x86_linux_SOURCES = $(CACHEGRIND_SOURCES_COMMON) $(CACHEGRIND_SOURCES_X86) cachegrind_x86_linux_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) cachegrind_x86_linux_CFLAGS = $(AM_CFLAGS_X86_LINUX) ==== //depot/projects/valgrind/cachegrind/tests/Makefile.am#2 (text+ko) ==== @@ -3,6 +3,12 @@ include $(top_srcdir)/Makefile.flags.am SUBDIRS = . +if VG_X86_FREEBSD +SUBDIRS += x86 +endif +if VG_AMD64_FREEBSD +SUBDIRS += amd64 +endif if VG_X86_LINUX SUBDIRS += x86 endif @@ -33,7 +39,9 @@ AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI) # C ones +if !VG_X86_FREEBSD dlclose_LDADD = -ldl +endif myprint_so_SOURCES = myprint.c myprint_so_LDFLAGS = $(AM_FLAG_M3264_PRI) -shared -fPIC myprint_so_CFLAGS = $(AM_FLAG_M3264_PRI) -fPIC ==== //depot/projects/valgrind/callgrind/Makefile.am#2 (text+ko) ==== @@ -5,6 +5,12 @@ noinst_HEADERS = global.h costs.h events.h noinst_PROGRAMS = +if VG_X86_FREEBSD +noinst_PROGRAMS += callgrind-x86-freebsd +endif +if VG_AMD64_FREEBSD +noinst_PROGRAMS += callgrind-amd64-freebsd +endif if VG_X86_LINUX noinst_PROGRAMS += callgrind-x86-linux endif @@ -30,6 +36,20 @@ CALLGRIND_CFLAGS_COMMON = -I../cachegrind +callgrind_x86_freebsd_SOURCES = $(CALLGRIND_SOURCES_COMMON) $(CALLGRIND_SOURCES_X86) +callgrind_x86_freebsd_CPPFLAGS = $(AM_CPPFLAGS_X86_FREEBSD) +callgrind_x86_freebsd_CFLAGS = $(CALLGRIND_CFLAGS_COMMON) $(AM_CFLAGS_X86_FREEBSD) +callgrind_x86_freebsd_DEPENDENCIES = $(COREGRIND_LIBS_X86_FREEBSD) +callgrind_x86_freebsd_LDADD = $(TOOL_LDADD_X86_FREEBSD) +callgrind_x86_freebsd_LDFLAGS = $(TOOL_LDFLAGS_X86_FREEBSD) + +callgrind_amd64_freebsd_SOURCES = $(CALLGRIND_SOURCES_COMMON) $(CALLGRIND_SOURCES_AMD64) +callgrind_amd64_freebsd_CPPFLAGS = $(AM_CPPFLAGS_AMD64_FREEBSD) +callgrind_amd64_freebsd_CFLAGS = $(CALLGRIND_CFLAGS_COMMON) $(AM_CFLAGS_AMD64_FREEBSD) +callgrind_amd64_freebsd_DEPENDENCIES = $(COREGRIND_LIBS_AMD64_FREEBSD) +callgrind_amd64_freebsd_LDADD = $(TOOL_LDADD_AMD64_FREEBSD) +callgrind_amd64_freebsd_LDFLAGS = $(TOOL_LDFLAGS_AMD64_FREEBSD) + callgrind_x86_linux_SOURCES = $(CALLGRIND_SOURCES_COMMON) $(CALLGRIND_SOURCES_X86) callgrind_x86_linux_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) callgrind_x86_linux_CFLAGS = $(CALLGRIND_CFLAGS_COMMON) $(AM_CFLAGS_X86_LINUX) ==== //depot/projects/valgrind/callgrind/tests/Makefile.am#2 (text+ko) ==== @@ -13,7 +13,11 @@ simwork3.vgtest simwork3.stdout.exp simwork3.stderr.exp \ threads.vgtest threads.stderr.exp -check_PROGRAMS = clreq simwork threads +check_PROGRAMS = clreq simwork + +if !VG_X86_FREEBSD +check_PROGRAMS += threads +endif AM_CPPFLAGS = -I$(top_srcdir)/include AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI) ==== //depot/projects/valgrind/configure.in#2 (text+ko) ==== @@ -127,7 +127,7 @@ valt_load_address_inner="0x28000000" ;; - x86_64) + x86_64|amd64) AC_MSG_RESULT([ok (${host_cpu})]) VG_ARCH="amd64" valt_load_address_normal="0x38000000" @@ -289,6 +289,24 @@ fi AC_MSG_RESULT([ok (${host_cpu}-${host_os})]) ;; + x86-freebsd) + VG_PLATFORM_PRI="X86_FREEBSD" + VG_PLATFORM_SEC="" + AC_MSG_RESULT([ok (${host_cpu}-${host_os})]) + ;; + amd64-freebsd) + if test x$vg_cv_only64bit = xyes; then + VG_PLATFORM_PRI="AMD64_FREEBSD" + VG_PLATFORM_SEC="" + elif test x$vg_cv_only32bit = xyes; then + VG_PLATFORM_PRI="X86_FREEBSD" + VG_PLATFORM_SEC="" + else + VG_PLATFORM_PRI="AMD64_FREEBSD" + VG_PLATFORM_SEC="X86_FREEBSD" + fi + AC_MSG_RESULT([ok (${host_cpu}-${host_os})]) + ;; *) VG_PLATFORM_PRI="unknown" VG_PLATFORM_SEC="unknown" @@ -309,6 +327,11 @@ -o x$VG_PLATFORM_SEC = xPPC32_LINUX) AM_CONDITIONAL(VG_PPC64_LINUX, test x$VG_PLATFORM_PRI = xPPC64_LINUX) +AM_CONDITIONAL(VG_X86_FREEBSD, + test x$VG_PLATFORM_PRI = xX86_FREEBSD \ + -o x$VG_PLATFORM_SEC = xX86_FREEBSD) +AM_CONDITIONAL(VG_AMD64_FREEBSD, + test x$VG_PLATFORM_PRI = xAMD64_FREEBSD) # This variable will collect the individual suppression files @@ -317,6 +340,8 @@ AC_SUBST(DEFAULT_SUPP) +case "$VG_OS" in + linux) glibc="" AC_EGREP_CPP([GLIBC_22], [ @@ -391,6 +416,18 @@ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.5]) ;; esac + ;; + freebsd) +AC_MSG_CHECKING([the libc version]) +libc="4x" +case "${libc}" in + 4x) + AC_MSG_RESULT(freebsd-4.x family) + AC_DEFINE([LIBC_4X], 1, [Define to 1 if you're using FreeBSD-4.x libc]) + DEFAULT_SUPP="libc-4x.supp ${DEFAULT_SUPP}" + ;; +esac +esac # We don't know how to detect the X client library version ==== //depot/projects/valgrind/coregrind/Makefile.am#2 (text+ko) ==== @@ -8,6 +8,8 @@ include $(top_srcdir)/Makefile.core.am include $(top_srcdir)/Makefile.install.am +AM_CPPFLAGS_X86_FREEBSD += -DVG_LIBDIR="\"$(valdir)"\" +AM_CPPFLAGS_AMD64_FREEBSD += -DVG_LIBDIR="\"$(valdir)"\" AM_CPPFLAGS_X86_LINUX += -DVG_LIBDIR="\"$(valdir)"\" AM_CPPFLAGS_AMD64_LINUX += -DVG_LIBDIR="\"$(valdir)"\" AM_CPPFLAGS_PPC32_LINUX += -DVG_LIBDIR="\"$(valdir)"\" @@ -17,6 +19,12 @@ default.supp: $(SUPP_FILES) noinst_LIBRARIES = +if VG_X86_FREEBSD +noinst_LIBRARIES += libcoregrind_x86_freebsd.a libreplacemalloc_toolpreload_x86_freebsd.a +endif +if VG_AMD64_FREEBSD +noinst_LIBRARIES += libcoregrind_amd64_freebsd.a libreplacemalloc_toolpreload_amd64_freebsd.a +endif if VG_X86_LINUX noinst_LIBRARIES += libcoregrind_x86_linux.a libreplacemalloc_toolpreload_x86_linux.a endif @@ -49,6 +57,12 @@ noinst_PROGRAMS = +if VG_X86_FREEBSD +noinst_PROGRAMS += vgpreload_core-x86-freebsd.so +endif +if VG_AMD64_FREEBSD +noinst_PROGRAMS += vgpreload_core-amd64-freebsd.so +endif if VG_X86_LINUX noinst_PROGRAMS += vgpreload_core-x86-linux.so endif @@ -183,6 +197,38 @@ m_syswrap/syswrap-generic.c \ m_syswrap/syswrap-main.c +COREGRIND_FREEBSD_SOURCE = \ + m_coredump/coredump-elf.c \ + m_syswrap/syswrap-freebsd.c \ + m_syswrap/syswrap-freebsd-variants.c + +libcoregrind_x86_freebsd_a_SOURCES = \ + $(COREGRIND_SOURCES_COMMON) \ + $(COREGRIND_FREEBSD_SOURCE) \ + m_coredump/coredump-x86-freebsd.c \ + m_dispatch/dispatch-x86-freebsd.S \ + m_sigframe/sigframe-x86-freebsd.c \ + m_syswrap/syscall-x86-freebsd.S \ + m_syswrap/syswrap-x86-freebsd.c \ + m_syswrap/sysargcount.c + +libcoregrind_x86_freebsd_a_CPPFLAGS = $(AM_CPPFLAGS_X86_FREEBSD) +libcoregrind_x86_freebsd_a_CFLAGS = $(AM_CFLAGS_X86_FREEBSD) +libcoregrind_x86_freebsd_a_CCASFLAGS = $(AM_CCASFLAGS_X86_FREEBSD) + +libcoregrind_amd64_freebsd_a_SOURCES = \ + $(COREGRIND_SOURCES_COMMON) \ + $(COREGRIND_FREEBSD_SOURCE) \ + m_coredump/coredump-amd64-freebsd.c \ + m_dispatch/dispatch-amd64-freebsd.S \ + m_sigframe/sigframe-amd64-freebsd.c \ + m_syswrap/syscall-amd64-freebsd.S \ + m_syswrap/syswrap-amd64-freebsd.c + +libcoregrind_amd64_freebsd_a_CPPFLAGS = $(AM_CPPFLAGS_AMD64_FREEBSD) +libcoregrind_amd64_freebsd_a_CFLAGS = $(AM_CFLAGS_AMD64_FREEBSD) +libcoregrind_amd64_freebsd_a_CCASFLAGS = $(AM_CCASFLAGS_AMD64_FREEBSD) + COREGRIND_LINUX_SOURCE = \ m_coredump/coredump-elf.c \ m_syswrap/syswrap-linux.c \ @@ -240,6 +286,14 @@ libcoregrind_ppc64_linux_a_CFLAGS = $(AM_CFLAGS_PPC64_LINUX) libcoregrind_ppc64_linux_a_CCASFLAGS = $(AM_CCASFLAGS_PPC64_LINUX) +libreplacemalloc_toolpreload_x86_freebsd_a_SOURCES = m_replacemalloc/vg_replace_malloc.c +libreplacemalloc_toolpreload_x86_freebsd_a_CPPFLAGS = $(AM_CPPFLAGS_X86_FREEBSD) +libreplacemalloc_toolpreload_x86_freebsd_a_CFLAGS = $(AM_CFLAGS_X86_FREEBSD) -fpic -fno-omit-frame-pointer + +libreplacemalloc_toolpreload_amd64_freebsd_a_SOURCES = m_replacemalloc/vg_replace_malloc.c +libreplacemalloc_toolpreload_amd64_freebsd_a_CPPFLAGS = $(AM_CPPFLAGS_AMD64_FREEBSD) +libreplacemalloc_toolpreload_amd64_freebsd_a_CFLAGS = $(AM_CFLAGS_AMD64_FREEBSD) -fpic -fno-omit-frame-pointer + libreplacemalloc_toolpreload_x86_linux_a_SOURCES = m_replacemalloc/vg_replace_malloc.c libreplacemalloc_toolpreload_x86_linux_a_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) libreplacemalloc_toolpreload_x86_linux_a_CFLAGS = $(AM_CFLAGS_X86_LINUX) -fpic -fno-omit-frame-pointer @@ -256,6 +310,11 @@ libreplacemalloc_toolpreload_ppc64_linux_a_CPPFLAGS = $(AM_CPPFLAGS_PPC64_LINUX) libreplacemalloc_toolpreload_ppc64_linux_a_CFLAGS = $(AM_CFLAGS_PPC64_LINUX) -fpic -fno-omit-frame-pointer +m_dispatch/dispatch-x86-freebsd.S: libvex_guest_offsets.h +m_dispatch/dispatch-amd64-freebsd.S: libvex_guest_offsets.h +m_syswrap/syscall-x86-freebsd.S: libvex_guest_offsets.h +m_syswrap/syscall-amd64-freebsd.S: libvex_guest_offsets.h + m_dispatch/dispatch-x86-linux.S: libvex_guest_offsets.h m_dispatch/dispatch-amd64-linux.S: libvex_guest_offsets.h m_dispatch/dispatch-ppc32-linux.S: libvex_guest_offsets.h @@ -271,6 +330,16 @@ VGPRELOAD_CORE_SOURCES_COMMON = vg_preloaded.c +vgpreload_core_x86_freebsd_so_SOURCES = $(VGPRELOAD_CORE_SOURCES_COMMON) +vgpreload_core_x86_freebsd_so_CPPFLAGS = $(AM_CPPFLAGS_X86_FREEBSD) +vgpreload_core_x86_freebsd_so_CFLAGS = $(AM_CFLAGS_X86_FREEBSD) $(AM_CFLAGS_PIC) +vgpreload_core_x86_freebsd_so_LDFLAGS = $(PRELOAD_LDFLAGS_X86_FREEBSD) + +vgpreload_core_amd64_freebsd_so_SOURCES = $(VGPRELOAD_CORE_SOURCES_COMMON) +vgpreload_core_amd64_freebsd_so_CPPFLAGS = $(AM_CPPFLAGS_AMD64_FREEBSD) +vgpreload_core_amd64_freebsd_so_CFLAGS = $(AM_CFLAGS_AMD64_FREEBSD) $(AM_CFLAGS_PIC) +vgpreload_core_amd64_freebsd_so_LDFLAGS = $(PRELOAD_LDFLAGS_AMD64_FREEBSD) + vgpreload_core_x86_linux_so_SOURCES = $(VGPRELOAD_CORE_SOURCES_COMMON) vgpreload_core_x86_linux_so_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) vgpreload_core_x86_linux_so_CFLAGS = $(AM_CFLAGS_X86_LINUX) $(AM_CFLAGS_PIC) ==== //depot/projects/valgrind/coregrind/launcher.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ #include #include #include -#include +/* #include */ #include #include "pub_core_debuglog.h" @@ -239,6 +239,10 @@ mode. */ if (0==strcmp(VG_PLATFORM,"x86-linux")) default_platform = "x86-linux"; + else if (0==strcmp(VG_PLATFORM,"x86-freebsd")) + default_platform = "x86-freebsd"; + else if (0==strcmp(VG_PLATFORM,"amd64-freebsd")) + default_platform = "amd64-freebsd"; else if (0==strcmp(VG_PLATFORM,"amd64-linux")) default_platform = "amd64-linux"; else if (0==strcmp(VG_PLATFORM,"ppc32-linux")) @@ -268,14 +272,27 @@ we can tell stage2. stage2 will use the name for recursive invokations of valgrind on child processes. */ memset(launcher_name, 0, PATH_MAX+1); +#if defined(VGO_linux) r = readlink("/proc/self/exe", launcher_name, PATH_MAX); +#elif defined(VGO_freebsd) + r = readlink("/proc/curproc/file", launcher_name, PATH_MAX); +#else +#error "unknown OS" +#endif if (r == -1) { /* If /proc/self/exe can't be followed, don't give up. Instead continue with an empty string for VALGRIND_LAUNCHER. In the sys_execve wrapper, this is tested, and if found to be empty, fail the execve. */ +#if defined(VGO_linux) fprintf(stderr, "valgrind: warning (non-fatal): " "readlink(\"/proc/self/exe\") failed.\n"); +#elif defined(VGO_freebsd) + fprintf(stderr, "valgrind: warning (non-fatal): " + "readlink(\"/proc/curproc/file\") failed.\n"); +#else +#error "unknown OS" +#endif fprintf(stderr, "valgrind: continuing, however --trace-children=yes " "will not work.\n"); } ==== //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr.c#2 (text+ko) ==== @@ -449,6 +449,13 @@ # elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) res = VG_(do_syscall6)(__NR_mmap, (UWord)start, length, prot, flags, fd, offset); +# elif defined(VGP_x86_freebsd) || defined(VGP_amd64_freebsd) + if (flags & VKI_MAP_ANONYMOUS && fd == 0) + fd = -1; + // AAA: fix 64 bit start + // QQQ: truncates to 32 bit offset!! + res = VG_(do_syscall7)(__NR_mmap, (UWord)start, length, + prot, flags, fd, 0, offset); # else # error Unknown platform # endif @@ -468,6 +475,7 @@ static SysRes do_extend_mapping_NO_NOTIFY( Addr old_addr, SizeT old_len, SizeT new_len ) { +#ifdef VGO_linux /* Extend the mapping old_addr .. old_addr+old_len-1 to have length new_len, WITHOUT moving it. If it can't be extended in place, fail. */ @@ -477,6 +485,12 @@ 0/*flags, meaning: must be at old_addr, else FAIL */, 0/*new_addr, is ignored*/ ); +#else + SysRes res; + res.isError = 1; + res.val = 1; + return res; +#endif } static SysRes do_relocate_nooverlap_mapping_NO_NOTIFY( @@ -484,6 +498,7 @@ Addr new_addr, Addr new_len ) { +#ifdef VGO_linux /* Move the mapping old_addr .. old_addr+old_len-1 to the new location and with the new length. Only needs to handle the case where the two areas do not overlap, neither length is zero, and @@ -494,6 +509,12 @@ VKI_MREMAP_MAYMOVE|VKI_MREMAP_FIXED/*move-or-fail*/, new_addr ); +#else + SysRes res; + res.isError = 1; + res.val = 1; + return res; +#endif } static Int aspacem_readlink(HChar* path, HChar* buf, UInt bufsiz) @@ -519,7 +540,9 @@ static void aspacem_exit( Int status ) { +#ifdef VGO_linux (void)VG_(do_syscall1)(__NR_exit_group, status ); +#endif (void)VG_(do_syscall1)(__NR_exit, status ); /* Why are we still alive here? */ /*NOTREACHED*/ @@ -581,6 +604,7 @@ /* Given a file descriptor, attempt to deduce its filename. To do this, we use /proc/self/fd/. If this doesn't point to a file, or if it doesn't exist, we return False. */ +#if defined(VGO_linux) static Bool get_name_for_fd ( Int fd, /*OUT*/HChar* buf, Int nbuf ) { @@ -595,6 +619,49 @@ else return False; } +#elif defined(VGO_freebsd) +static +Bool get_name_for_fd ( Int fd, HChar* buf, Int nbuf ) +{ + static int nr_fromfd = -1; + SysRes res; + Int i; + + for (i = 0; i < nbuf; i++) buf[i] = 0; + if (nr_fromfd == -1) { + int oid[2]; + int real_oid[10]; + vki_size_t oidlen; + char *name = "machdep.getpath_fromfd_num"; + vki_size_t len; + int sc; + + oid[0] = 0; /* magic */ + oid[1] = 3; /* undocumented */ + oidlen = sizeof(real_oid); + res = VG_(do_syscall6)(__NR___sysctl, (UWord)oid, 2, (UWord)real_oid, (UWord)&oidlen, (UWord)name, strlen(name)); + oidlen /= sizeof(int); + if (!res.isError && oidlen > 0) { + len = sizeof(sc); + res = VG_(do_syscall6)(__NR___sysctl, (UWord)real_oid, oidlen, (UWord)&sc, (UWord)&len, 0, 0); + if (!res.isError && sc > 0) + nr_fromfd = sc; + } + if (nr_fromfd == -1) + nr_fromfd = -2; + } + if (nr_fromfd < 0) + return False; + + res = VG_(do_syscall3)(nr_fromfd, fd, (UWord)buf, nbuf); + if (!res.isError && buf[0] == '/') + return True; + else + return False; +} +#else +#error undefined os +#endif /*-----------------------------------------------------------------*/ @@ -1191,12 +1258,15 @@ same = same && seg_prot == prot +#ifndef VGO_freebsd && (cmp_devino ? (nsegments[i].dev == dev && nsegments[i].ino == ino) : True) && (cmp_offsets ? nsegments[i].start-nsegments[i].offset == addr-offset - : True); + : True) +#endif + ; if (!same) { sync_check_ok = False; VG_(debugLog)( @@ -1712,8 +1782,12 @@ seg.kind = SkAnonV; if (dev != 0 && ino != 0) seg.kind = SkFileV; - if (filename) + if (filename) { +#if defined(VGO_freebsd) + seg.kind = SkFileV; +#endif seg.fnIdx = allocate_segname( filename ); + } if (0) show_nsegment( 2,0, &seg ); add_segment( &seg ); @@ -1761,7 +1835,11 @@ " sp_at_startup = 0x%010llx (supplied)\n", (ULong)sp_at_startup ); +#ifdef VGP_x86_freebsd + aspacem_minAddr = (Addr) 0x00010000; // 64K +#else aspacem_minAddr = (Addr) 0x04000000; // 64M +#endif # if VG_WORDSIZE == 8 aspacem_maxAddr = (Addr)0x800000000 - 1; // 32G @@ -1822,10 +1900,18 @@ VG_(am_show_nsegments)(2, "Initial layout"); +#ifdef VGO_freebsd + VG_(debugLog)(2, "aspacem", "Reading /proc/curproc/map\n"); +#else VG_(debugLog)(2, "aspacem", "Reading /proc/self/maps\n"); +#endif parse_procselfmaps( read_maps_callback, NULL ); +#ifdef VGO_freebsd + VG_(am_show_nsegments)(2, "With contents of /proc/curproc/map"); +#else VG_(am_show_nsegments)(2, "With contents of /proc/self/maps"); +#endif AM_SANITY_CHECK; return suggested_clstack_top; @@ -2378,7 +2464,7 @@ sres = VG_(am_do_mmap_NO_NOTIFY)( start, length, prot, VKI_MAP_FIXED|VKI_MAP_PRIVATE|VKI_MAP_ANONYMOUS, - 0, 0 + 0, 0 ); if (sres.isError) return sres; @@ -2743,6 +2829,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 8 20:46:47 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B3AC16A421; Wed, 8 Aug 2007 20:46:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26D5116A419 for ; Wed, 8 Aug 2007 20:46:47 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1A04713C47E for ; Wed, 8 Aug 2007 20:46:47 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78KkkgH018662 for ; Wed, 8 Aug 2007 20:46:46 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78KkknR018651 for perforce@freebsd.org; Wed, 8 Aug 2007 20:46:46 GMT (envelope-from mharvan@FreeBSD.org) Date: Wed, 8 Aug 2007 20:46:46 GMT Message-Id: <200708082046.l78KkknR018651@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124923 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, 08 Aug 2007 20:46:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=124923 Change 124923 by mharvan@mharvan_home on 2007/08/08 20:45:45 s/tunneld/mtund/ Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.src/Makefile#8 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/mtund.c#1 add .. //depot/projects/soc2007/mharvan-mtund/mtund.src/mtund.h#1 branch .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin.h#5 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#8 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#10 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#8 edit .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.c#17 delete .. //depot/projects/soc2007/mharvan-mtund/mtund.src/tunneld.h#9 delete Differences ... ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/Makefile#8 (text+ko) ==== @@ -8,22 +8,22 @@ CFLAGS+=-g CFLAGS+=-I/usr/local/include -all: tunneld plugin_tcp.so plugin_udp.so plugin_icmp.so +all: mtund plugin_tcp.so plugin_udp.so plugin_icmp.so -tunneld: tunneld.h tunneld.c tun_dev.c - gcc $(CFLAGS) $(LIBS) -o tunneld tunneld.c tun_dev.c +mtund: mtund.h mtund.c tun_dev.c + gcc $(CFLAGS) $(LIBS) -o mtund mtund.c tun_dev.c -plugin_tcp.so: tunneld.h plugin.h plugin_tcp.c +plugin_tcp.so: mtund.h plugin.h plugin_tcp.c gcc $(CFLAGS) -shared -o plugin_tcp.so plugin_tcp.c -plugin_udp.so: tunneld.h plugin.h plugin_udp.c +plugin_udp.so: mtund.h plugin.h plugin_udp.c gcc $(CFLAGS) -shared -o plugin_udp.so plugin_udp.c -plugin_icmp.so: tunneld.h plugin.h plugin_icmp.c +plugin_icmp.so: mtund.h plugin.h plugin_icmp.c gcc $(CFLAGS) -shared -o plugin_icmp.so plugin_icmp.c clean: - rm -f tunneld plugin_tcp.so plugin_udp.so plugin_icmp.so *.core + rm -f mtund plugin_tcp.so plugin_udp.so plugin_icmp.so *.core backup: rsync -a `pwd` meat:backup/ ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin.h#5 (text+ko) ==== @@ -1,7 +1,7 @@ #ifndef _PLUGIN_H #define _PLUGIN_H -#include "tunneld.h" +#include "mtund.h" /* --- plugin --- */ enum { ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_icmp.c#8 (text+ko) ==== @@ -29,7 +29,7 @@ #include #include -#include "tunneld.h" +#include "mtund.h" #include "plugin.h" /* ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_tcp.c#10 (text+ko) ==== @@ -11,7 +11,7 @@ #include //#include -#include "tunneld.h" +#include "mtund.h" #include "plugin.h" #define min(a,b) ( (a>b) ? b : a ) ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/plugin_udp.c#8 (text+ko) ==== @@ -12,7 +12,7 @@ #include //#include -#include "tunneld.h" +#include "mtund.h" #include "plugin.h" /* From owner-p4-projects@FreeBSD.ORG Wed Aug 8 20:59:08 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1C27916A41A; Wed, 8 Aug 2007 20:59:08 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C582116A417 for ; Wed, 8 Aug 2007 20:59:07 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B8B7713C483 for ; Wed, 8 Aug 2007 20:59:07 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l78Kx7bs027824 for ; Wed, 8 Aug 2007 20:59:07 GMT (envelope-from jbr@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l78Kx7jQ027821 for perforce@freebsd.org; Wed, 8 Aug 2007 20:59:07 GMT (envelope-from jbr@FreeBSD.org) Date: Wed, 8 Aug 2007 20:59:07 GMT Message-Id: <200708082059.l78Kx7jQ027821@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jbr@FreeBSD.org using -f From: Jesper Brix Rosenkilde To: Perforce Change Reviews Cc: Subject: PERFORCE change 124925 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, 08 Aug 2007 20:59:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=124925 Change 124925 by jbr@jbr_bob on 2007/08/08 20:58:34 fixed sysclt Affected files ... .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#8 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/sysctl.h#3 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.c#5 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.h#4 edit Differences ... ==== //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#8 (text+ko) ==== @@ -100,7 +100,7 @@ SYSCTL_PROC(_kern, KERN_USRSTACK, usrstack, CTLTYPE_ULONG|CTLFLAG_RD, NULL, 0, sysctl_kern_usrstack, "LU", ""); -SYSCTL_PROC(_kern, KERN_USRSYSSHM, usrsysshm, CTLTYPE_ULONG|CTLFLAG_RD, +SYSCTL_PROC(_kern, OID_AUTO, usrsysshm, CTLTYPE_ULONG|CTLFLAG_RD, NULL, 0, sysctl_kern_usrsysshm, "LU", ""); SYSCTL_PROC(_kern, OID_AUTO, stackprot, CTLTYPE_INT|CTLFLAG_RD, @@ -902,11 +902,6 @@ } } -struct test { - unsigned int pid; - char proctitle[256]; -}; - /* * Destroy old address space, and allocate a new stack * The new stack is only SGROWSIZ large because it is grown @@ -924,8 +919,6 @@ vm_map_t map; u_long ssiz; - struct test test_data = {42, "Humppa!"}; - imgp->vmspace_destroyed = 1; imgp->sysent = sv; @@ -949,15 +942,6 @@ map = &vmspace->vm_map; } - sv->sv_sysshm = sv->sv_minuser; - - /* Allocate memory shared between process and kernel */ - error = vm_map_sysshm(map, sv->sv_sysshm, sizeof(struct test)); - if (error) - return (error); - - copyout(&test_data, (void *) sv->sv_sysshm, sizeof(struct test)); - /* Allocate a new stack */ if (sv->sv_maxssiz != NULL) ssiz = *sv->sv_maxssiz; @@ -985,6 +969,11 @@ vmspace->vm_ssize = sgrowsiz >> PAGE_SHIFT; vmspace->vm_maxsaddr = (char *)sv->sv_usrstack - ssiz; + /* Allocate memory shared between process and kernel */ + error = vm_map_sysshm(map, &(sv->sv_sysshm), 42); + if (error) + return (error); + return (0); } ==== //depot/projects/soc2007/jbr-syscall/src/sys/sys/sysctl.h#3 (text+ko) ==== @@ -393,7 +393,6 @@ #define KERN_HOSTUUID 36 /* string: host UUID identifier */ #define KERN_ARND 37 /* int: from arc4rand() */ #define KERN_MAXID 38 /* number of valid kern ids */ -#define KERN_USRSYSSHM 39 /* int: address of sysshm page */ #define CTL_KERN_NAMES { \ { 0, 0 }, \ @@ -432,7 +431,6 @@ { "logsigexit", CTLTYPE_INT }, \ { "iov_max", CTLTYPE_INT }, \ { "hostuuid", CTLTYPE_STRING }, \ - { "usrsysshm", CTLTYPE_INT }, \ } /* ==== //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.c#5 (text+ko) ==== @@ -2987,49 +2987,18 @@ * process. */ int -vm_map_sysshm(vm_map_t map, vm_offset_t addr, vm_size_t size) +vm_map_sysshm(vm_map_t map, vm_offset_t *addr, vm_size_t size) { int error = 0; - vm_offset_t osize; - vm_map_entry_t new_entry, prev_entry; - rlim_t vmemlim; - PROC_LOCK(curthread->td_proc); - vmemlim = lim_cur(curthread->td_proc, RLIMIT_VMEM); - PROC_UNLOCK(curthread->td_proc); + size = round_page(size); - vm_map_lock(map); - - /* if address is already mapped unlock and return with error */ - if (vm_map_lookup_entry(map, addr, &prev_entry)) { - vm_map_unlock(map); - return (KERN_NO_SPACE); - } + *addr = round_page((vm_offset_t) + curthread->td_proc->p_vmspace->vm_daddr); - osize = addr + round_page(size); +/* error = vm_map_find(map, NULL, 0, addr, size, TRUE, VM_PROT_NONE, */ +/* VM_PROT_ALL, 0); */ - /* check that we are within vmlimit */ - if (map->size + osize > vmemlim) { - vm_map_unlock(map); - return (KERN_NO_SPACE); - } - - error = vm_map_insert(map, NULL, 0, addr, osize, - VM_PROT_EXECUTE, VM_PROT_ALL, MAP_NOFAULT); - - if (error) { - if (prev_entry != &map->header) - vm_map_clip_end(map, prev_entry, addr); - - new_entry = prev_entry->next; - - if (new_entry->end != osize || new_entry->start != addr) - panic("Bad entry start/end for new sysshm"); - - new_entry->avail_ssize = round_page(size) - round_page(size); - } - - vm_map_unlock(map); return (error); } ==== //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.h#4 (text+ko) ==== @@ -354,7 +354,7 @@ void vm_map_simplify_entry (vm_map_t, vm_map_entry_t); void vm_init2 (void); int vm_map_stack (vm_map_t, vm_offset_t, vm_size_t, vm_prot_t, vm_prot_t, int); -int vm_map_sysshm(vm_map_t, vm_offset_t, vm_size_t); +int vm_map_sysshm(vm_map_t, vm_offset_t *, vm_size_t); int vm_map_growstack (struct proc *p, vm_offset_t addr); int vm_map_unwire(vm_map_t map, vm_offset_t start, vm_offset_t end, int flags); From owner-p4-projects@FreeBSD.ORG Thu Aug 9 00:36:36 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 68AC416A468; Thu, 9 Aug 2007 00:36:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0498516A417 for ; Thu, 9 Aug 2007 00:36:36 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EB0DA13C47E for ; Thu, 9 Aug 2007 00:36:35 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l790aZWI048459 for ; Thu, 9 Aug 2007 00:36:35 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l790aZIT048456 for perforce@freebsd.org; Thu, 9 Aug 2007 00:36:35 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 9 Aug 2007 00:36:35 GMT Message-Id: <200708090036.l790aZIT048456@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124927 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, 09 Aug 2007 00:36:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=124927 Change 124927 by kmacy@kmacy_home:ethng on 2007/08/09 00:35:40 move added functions to the end of ifnet to simplify diagnosis of build issues Affected files ... .. //depot/projects/ethng/src/sys/net/if_var.h#3 edit Differences ... ==== //depot/projects/ethng/src/sys/net/if_var.h#3 (text+ko) ==== @@ -155,14 +155,6 @@ (struct ifnet *, struct mbuf *); void (*if_start) /* initiate output routine */ (struct ifnet *); -#ifdef IFNET_MULTIQUEUE - int (*if_mq_start) /* initiate output routine with immediate */ - (struct ifnet *, int32_t, struct mbuf *); - int (*if_mq_enqueue_packet) /* enqueue packet to the appropriate queue */ - (struct ifnet *, int32_t, struct mbuf *); - int32_t (*if_mq_get_cookie) /* calculate the txq cookie for this connection */ - (struct ifnet *, struct in6_addr *, uint16_t, struct in6_addr *, uint16_t, int); -#endif int (*if_ioctl) /* ioctl routine */ (struct ifnet *, u_long, caddr_t); void (*if_watchdog) /* timer routine */ @@ -198,6 +190,14 @@ /* protected by if_addr_mtx */ void *if_pf_kif; void *if_lagg; /* lagg glue */ +#ifdef IFNET_MULTIQUEUE + int (*if_mq_start) /* initiate output routine with immediate */ + (struct ifnet *, int32_t, struct mbuf *); + int (*if_mq_enqueue_packet) /* enqueue packet to the appropriate queue */ + (struct ifnet *, int32_t, struct mbuf *); + int32_t (*if_mq_get_cookie) /* calculate the txq cookie for this connection */ + (struct ifnet *, struct in6_addr *, uint16_t, struct in6_addr *, uint16_t, int); +#endif }; typedef void if_init_f_t(void *); From owner-p4-projects@FreeBSD.ORG Thu Aug 9 00:54:59 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8FB8C16A420; Thu, 9 Aug 2007 00:54:59 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3AD0A16A41A for ; Thu, 9 Aug 2007 00:54:59 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2C95313C457 for ; Thu, 9 Aug 2007 00:54:59 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l790sxVq057921 for ; Thu, 9 Aug 2007 00:54:59 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l790swYO057918 for perforce@freebsd.org; Thu, 9 Aug 2007 00:54:58 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 9 Aug 2007 00:54:58 GMT Message-Id: <200708090054.l790swYO057918@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 124928 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, 09 Aug 2007 00:54:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=124928 Change 124928 by kmacy@kmacy_home:ethng on 2007/08/09 00:54:45 get cxgb support for IFNET_MULTIQUEUE performance within 10% of default case Affected files ... .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#6 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#9 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_multiq.c#4 edit .. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#7 edit Differences ... ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#6 (text+ko) ==== @@ -51,6 +51,7 @@ #include #include + #include #include #include @@ -584,5 +585,6 @@ int cxgb_tx_common(struct ifnet *ifp, struct sge_qset *qs, uint32_t txmax); struct mbuf *cxgb_dequeue_packet(struct ifnet *ifp, struct sge_txq *unused); void cxgb_start(struct ifnet *ifp); +void refill_fl_service(adapter_t *adap, struct sge_fl *fl); #endif ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#9 (text+ko) ==== @@ -1961,7 +1961,7 @@ break; BPF_MTAP(ifp, m); } -#ifdef IFNET_MULTIQUEUE +#ifndef IFNET_MULTIQUEUE if (__predict_false(err)) { if (err == ENOMEM) { ifp->if_drv_flags |= IFF_DRV_OACTIVE; @@ -1970,8 +1970,9 @@ IFQ_UNLOCK(&ifp->if_snd); } } - if (err == 0 && m == NULL) + if (err == 0 && m == NULL) { err = ENOBUFS; + } else if ((err == 0) && (txq->size <= txq->in_use + TX_MAX_DESC) && (ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) { ifp->if_drv_flags |= IFF_DRV_OACTIVE; @@ -1992,9 +1993,9 @@ if (!p->link_config.link_ok) return (ENXIO); - if (IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + if (IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { return (ENOBUFS); - + } qs = &p->adapter->sge.qs[p->first_qset]; txq = &qs->txq[TXQ_ETH]; err = 0; ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_multiq.c#4 (text+ko) ==== @@ -1,5 +1,3 @@ - - /************************************************************************** Copyright (c) 2007, Chelsio Inc. @@ -149,6 +147,9 @@ } mtx_unlock(&txq->lock); + if ((qs->txq[TXQ_ETH].flags & TXQ_TRANSMITTING) == 0) + wakeup(qs); + if (dropped) m_freem(m); } @@ -566,8 +567,6 @@ sched_unpin(); } -void refill_fl_service(adapter_t *adap, struct sge_fl *fl); - static void cxgb_pcpu_start_proc(void *arg) { @@ -589,7 +588,7 @@ refill_fl_service(qs->port->adapter, &qs->fl[0]); refill_fl_service(qs->port->adapter, &qs->fl[1]); - tsleep(qs, 0, "cxgbidle", sleep_ticks); + tsleep(qs, 1, "cxgbidle", sleep_ticks); } thread_lock(td); sched_unbind(td); ==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_sge.c#7 (text+ko) ==== @@ -188,7 +188,6 @@ static void sge_timer_cb(void *arg); static void sge_timer_reclaim(void *arg, int ncount); static void sge_txq_reclaim_handler(void *arg, int ncount); -static int free_tx_desc(struct sge_txq *q, int n, struct mbuf **m_vec); /** * reclaim_completed_tx - reclaims completed Tx descriptors @@ -207,7 +206,7 @@ mtx_assert(&q->lock, MA_OWNED); if (reclaim > 0) { - n = free_tx_desc(q, min(reclaim, nbufs), mvec); + n = t3_free_tx_desc(q, min(reclaim, nbufs), mvec); reclaimed = min(reclaim, nbufs); q->cleaned += reclaimed; q->in_use -= reclaimed; @@ -580,6 +579,13 @@ refill_fl(adap, fl, min(16U, fl->size - fl->credits)); } +void +refill_fl_service(adapter_t *adap, struct sge_fl *fl) +{ + return; /* XXX no-op for now */ + __refill_fl(adap, fl); +} + /** * recycle_rx_buf - recycle a receive buffer * @adapter: the adapter @@ -1654,7 +1660,7 @@ /** - * free_tx_desc - reclaims Tx descriptors and their buffers + * t3_free_tx_desc - reclaims Tx descriptors and their buffers * @adapter: the adapter * @q: the Tx queue to reclaim descriptors from * @n: the number of descriptors to reclaim @@ -1663,7 +1669,7 @@ * Tx buffers. Called with the Tx queue lock held. */ int -free_tx_desc(struct sge_txq *q, int n, struct mbuf **m_vec) +t3_free_tx_desc(struct sge_txq *q, int n, struct mbuf **m_vec) { struct tx_sw_desc *d; unsigned int cidx = q->cidx; @@ -2226,9 +2232,12 @@ struct ifnet *ifp = pi->ifp; DPRINTF("rx_eth m=%p m->m_data=%p p->iff=%d\n", m, mtod(m, uint8_t *), cpl->iff); - if (&pi->adapter->port[cpl->iff] != pi) - panic("bad port index %d m->m_data=%p\n", cpl->iff, mtod(m, uint8_t *)); - + if (&pi->adapter->port[cpl->iff] != pi) { + struct sge_qset *qs = rspq_to_qset(rq); + + panic("bad port index %d m->m_data=%p cidx=%d pidx=%d\n", cpl->iff, mtod(m, uint8_t *), + qs->fl[0].cidx, qs->fl[0].pidx); + } if ((ifp->if_capenable & IFCAP_RXCSUM) && !cpl->fragment && cpl->csum_valid && cpl->csum == 0xffff) { m->m_pkthdr.csum_flags = (CSUM_IP_CHECKED|CSUM_IP_VALID); From owner-p4-projects@FreeBSD.ORG Thu Aug 9 01:42:00 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 86AB216A420; Thu, 9 Aug 2007 01:42:00 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 22C8716A418 for ; Thu, 9 Aug 2007 01:42:00 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F0DFD13C457 for ; Thu, 9 Aug 2007 01:41:59 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l791fxmL061757 for ; Thu, 9 Aug 2007 01:41:59 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l791fxbH061754 for perforce@freebsd.org; Thu, 9 Aug 2007 01:41:59 GMT (envelope-from peter@freebsd.org) Date: Thu, 9 Aug 2007 01:41:59 GMT Message-Id: <200708090141.l791fxbH061754@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 124930 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, 09 Aug 2007 01:42:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=124930 Change 124930 by peter@peter_work on 2007/08/09 01:41:21 Bah. I forgot that I made this a generated file. Affected files ... .. //depot/projects/valgrind/VEX/priv/main/vex_svnversion.h#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 9 02:16:43 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B889816A46E; Thu, 9 Aug 2007 02:16:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E5CB16A417 for ; Thu, 9 Aug 2007 02:16:43 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2EB2913C4B0 for ; Thu, 9 Aug 2007 02:16:43 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l792GgJ0065030 for ; Thu, 9 Aug 2007 02:16:42 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l792GgPp065027 for perforce@freebsd.org; Thu, 9 Aug 2007 02:16:42 GMT (envelope-from peter@freebsd.org) Date: Thu, 9 Aug 2007 02:16:42 GMT Message-Id: <200708090216.l792GgPp065027@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 124932 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, 09 Aug 2007 02:16:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=124932 Change 124932 by peter@peter_work on 2007/08/09 02:15:46 Fix a stupid valgrind vs autoconf bug Affected files ... .. //depot/projects/valgrind/configure.in#3 edit Differences ... ==== //depot/projects/valgrind/configure.in#3 (text+ko) ==== @@ -59,6 +59,7 @@ AC_PROG_CPP AC_PROG_CXX AC_PROG_RANLIB +AC_PROG_EGREP # Check for the compiler support if test "${GCC}" != "yes" ; then From owner-p4-projects@FreeBSD.ORG Thu Aug 9 02:22:51 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 85A6316A41B; Thu, 9 Aug 2007 02:22:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 496F116A419 for ; Thu, 9 Aug 2007 02:22:51 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3ADB013C457 for ; Thu, 9 Aug 2007 02:22:51 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l792Mpxp065705 for ; Thu, 9 Aug 2007 02:22:51 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l792MoVg065702 for perforce@freebsd.org; Thu, 9 Aug 2007 02:22:50 GMT (envelope-from peter@freebsd.org) Date: Thu, 9 Aug 2007 02:22:50 GMT Message-Id: <200708090222.l792MoVg065702@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 124933 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, 09 Aug 2007 02:22:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=124933 Change 124933 by peter@peter_work on 2007/08/09 02:22:47 autoconf-wrapper comes in handy here, and breaks the old hack I had. Affected files ... .. //depot/projects/valgrind/autogen.sh#3 edit Differences ... ==== //depot/projects/valgrind/autogen.sh#3 (text+kox) ==== @@ -11,8 +11,12 @@ fi } -run aclocal19 -run autoheader259 -run automake19 -a -run autoconf259 +# tested with automake 1.9 and autoconf 2.59 and 2.61, *with* +# autoconf-wrapper installed. Otherwise use explicit filenames. +run aclocal +run autoheader +run automake -a +run autoconf + +# hack for not running from svn. echo '"export"' > VEX/priv/main/vex_svnversion.h From owner-p4-projects@FreeBSD.ORG Thu Aug 9 06:01:24 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6B6F316A468; Thu, 9 Aug 2007 06:01:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F0EBF16A418 for ; Thu, 9 Aug 2007 06:01:23 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DF9D613C48D for ; Thu, 9 Aug 2007 06:01:23 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7961NrD091095 for ; Thu, 9 Aug 2007 06:01:23 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7961Ns4091092 for perforce@freebsd.org; Thu, 9 Aug 2007 06:01:23 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Thu, 9 Aug 2007 06:01:23 GMT Message-Id: <200708090601.l7961Ns4091092@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 124937 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, 09 Aug 2007 06:01:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=124937 Change 124937 by zhouzhouyi@zhouzhouyi_mactest on 2007/08/09 06:01:19 Merging the handling of mac hooks match into macconf.c Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/fifo_io.c#2 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/macconf.c#2 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.c#11 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.h#3 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/fifo_io.c#2 (text+ko) ==== @@ -71,7 +71,7 @@ u_char buffer[10]; int error; int i, len; - int notgood = 0; + while ((ch = getopt(argc, argv, "r:w:f:p:")) != -1) { switch(ch) { @@ -190,102 +190,8 @@ close(logfd); - /* compare the configuration file and parse result */ - { - - struct mactestlog_record *record_from_log, *record_from_conf; - if ((inputfile = fopen("/var/log/mactest", "r")) < 0){ - fprintf(stderr,"/var/log/mactest do not exists!\n"); - exit(1); - } - - yyparse(); - fclose(inputfile); - record_from_log = mactestlog_record_chain; - if ((inputfile = fopen(macconf_file, "r")) == NULL){ - fprintf(stderr, "mactest.conf do not exists!\n"); - exit(1); - } - - mactestlog_record_chain = 0; - yyparse(); - fclose(inputfile); - record_from_conf = mactestlog_record_chain; - - /* See if record_from_conf is contained in record_from_log */ - /* pid == -1 means matching the running pid */ - pid = getpid(); - - while (record_from_conf) { - struct mactestlog_record * iterator = record_from_log; - while (iterator) { - if (!((record_from_conf->pid == -1&& iterator->pid == pid)|| - record_from_conf->pid == iterator->pid|| - record_from_conf->pid == -2/*matching any pid*/)){ - iterator = iterator->next; - continue; - } - - if (strcmp(record_from_conf->machookname, iterator->machookname)) - { - iterator = iterator->next; - continue; - } - if (modes_or_flags_compare(record_from_conf->modes_or_flags, - iterator->modes_or_flags)){ - iterator = iterator->next; - continue; - } - if (labelstrings_compare(record_from_conf->labelstrings, - iterator->labelstrings)){ - iterator = iterator->next; - continue; - } - break; - } - if (iterator) - record_from_conf = record_from_conf->next; - else{ - notgood = 1; - fprintf(stderr, "missing ...\n"); - struct modes_or_flags *iterator1, *tmp1; - struct labelstrings *iterator2, *tmp2; - fprintf(stderr, "pid = %d ", record_from_conf->pid); - fprintf(stderr, "hookname: %s\n", record_from_conf->machookname); - - iterator1 = record_from_conf->modes_or_flags; - if (iterator1) { - while (iterator1) { - tmp1 = iterator1; - iterator1 = iterator1->next; - } - fprintf(stderr, " with modes or flags#"); - while (tmp1) { - fprintf(stderr, " %s", tmp1->modflagname); - tmp1 = tmp1->prev; - } - fprintf(stderr, "\n"); - } + machookmatch(macconf_file, pid1); - iterator2 = record_from_conf->labelstrings; - if (iterator2) { - while (iterator2) { - tmp2 = iterator2; - iterator2 = iterator2->next; - } - fprintf(stderr, " with labels:"); - while (tmp2) { - if (!strcmp("*",tmp2->labelstring)) - fprintf(stderr, " any"); - else - fprintf(stderr, " %s", tmp2->labelstring); - tmp2 = tmp2->prev; - } - fprintf(stderr, "\n"); - } - record_from_conf = record_from_conf->next; - } - } - } return (0); } + ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/macconf.c#2 (text+ko) ==== @@ -18,19 +18,22 @@ #include #include "mactest.h" -/* compare modes_or_flags from mactest.conf and from /var/log/mactest, should be exact match - * and order appears in the sequence is irrelevance */ -int modes_or_flags_compare(struct modes_or_flags * mf_conf, struct modes_or_flags *mf_log) +/* + * compare modes_or_flags from mactest.conf and from /var/log/mactest, should + * be exact match and order appears in the sequence is irrelevance + */ +int +modes_or_flags_compare(struct modes_or_flags *mf_conf, struct modes_or_flags *mf_log) { - struct modes_or_flags * tmp, *tmp1; + struct modes_or_flags *tmp, *tmp1; tmp = mf_conf; while (tmp) { - tmp1 = mf_log; + tmp1 = mf_log; if (!tmp1) return 1; - while(tmp1) { + while (tmp1) { if (!strcmp(tmp->modflagname, tmp1->modflagname)) break; tmp1 = tmp1->next; @@ -42,10 +45,10 @@ tmp = mf_log; while (tmp) { - tmp1 = mf_conf; + tmp1 = mf_conf; if (!tmp1) return 1; - while(tmp1) { + while (tmp1) { if (!strcmp(tmp->modflagname, tmp1->modflagname)) break; tmp1 = tmp1->next; @@ -58,33 +61,38 @@ return 0; } -/* compare labelstrings from mactest.conf and from /var/log/mactest, should be exact match - * and order of the modules appears in a label is irrelevance */ -int label_compare(char *conf, char *log) +/* + * compare labelstrings from mactest.conf and from /var/log/mactest, should + * be exact match and order of the modules appears in a label is irrelevance + */ +int +label_compare(char *conf, char *log) { - char *element_data, *element_data1, *element_data2, *tmp, *conf1, *tmp2; + char *element_data, *element_data1, *element_data2, *tmp, + *conf1, *tmp2; if (!strcmp(conf, "*")) return 0; tmp2 = conf1 = strdup(conf); while ((element_data = strsep(&conf1, ",")) != NULL) { tmp = element_data1 = strdup(log); - while ((element_data2 = strsep(&element_data1, ",")) != NULL){ + while ((element_data2 = strsep(&element_data1, ",")) != NULL) { if (!strcmp(element_data2, element_data)) break; } - if (element_data2 == NULL){ + if (element_data2 == NULL) { free(tmp); free(tmp2); return 1; - }else + } else free(tmp); } free(tmp2); return 0; } -int labelstrings_compare(struct labelstrings *ls_conf, struct labelstrings *ls_log) +int +labelstrings_compare(struct labelstrings *ls_conf, struct labelstrings *ls_log) { while (ls_conf) { @@ -98,4 +106,101 @@ if (ls_log) return 1; return 0; -} +} + +/* compare the configuration file and parse result */ +void +machookmatch(const char *macconf_file, pid_t pid) +{ + + + + struct mactestlog_record *record_from_log, *record_from_conf; + if ((inputfile = fopen("/var/log/mactest", "r")) < 0) { + fprintf(stderr, "/var/log/mactest do not exists!\n"); + exit(1); + } + yyparse(); + fclose(inputfile); + record_from_log = mactestlog_record_chain; + if ((inputfile = fopen(macconf_file, "r")) == NULL) { + fprintf(stderr, "mactest.conf do not exists!\n"); + exit(1); + } + mactestlog_record_chain = 0; + yyparse(); + fclose(inputfile); + record_from_conf = mactestlog_record_chain; + + /* See if record_from_conf is contained in record_from_log */ + /* pid == -1 means matching the running pid */ + pid = getpid(); + + while (record_from_conf) { + struct mactestlog_record *iterator = record_from_log; + while (iterator) { + if (!((record_from_conf->pid == -1 && iterator->pid == pid) || + record_from_conf->pid == iterator->pid || + record_from_conf->pid == -2 /* matching any pid */ )) { + iterator = iterator->next; + continue; + } + if (strcmp(record_from_conf->machookname, iterator->machookname)) { + iterator = iterator->next; + continue; + } + if (modes_or_flags_compare(record_from_conf->modes_or_flags, + iterator->modes_or_flags)) { + iterator = iterator->next; + continue; + } + if (labelstrings_compare(record_from_conf->labelstrings, + iterator->labelstrings)) { + iterator = iterator->next; + continue; + } + break; + } + if (iterator) + record_from_conf = record_from_conf->next; + else { + + fprintf(stderr, "missing ...\n"); + struct modes_or_flags *iterator1, *tmp1; + struct labelstrings *iterator2, *tmp2; + fprintf(stderr, "pid = %d ", record_from_conf->pid); + fprintf(stderr, "hookname: %s\n", record_from_conf->machookname); + + iterator1 = record_from_conf->modes_or_flags; + if (iterator1) { + while (iterator1) { + tmp1 = iterator1; + iterator1 = iterator1->next; + } + fprintf(stderr, " with modes or flags#"); + while (tmp1) { + fprintf(stderr, " %s", tmp1->modflagname); + tmp1 = tmp1->prev; + } + fprintf(stderr, "\n"); + } + iterator2 = record_from_conf->labelstrings; + if (iterator2) { + while (iterator2) { + tmp2 = iterator2; + iterator2 = iterator2->next; + } + fprintf(stderr, " with labels:"); + while (tmp2) { + if (!strcmp("*", tmp2->labelstring)) + fprintf(stderr, " any"); + else + fprintf(stderr, " %s", tmp2->labelstring); + tmp2 = tmp2->prev; + } + fprintf(stderr, "\n"); + } + record_from_conf = record_from_conf->next; + } + } +} ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.c#11 (text+ko) ==== @@ -46,6 +46,7 @@ #include #include "mactest.h" + #ifndef HAS_TRUNCATE64 #define truncate64 truncate #endif @@ -541,90 +542,6 @@ return (i); } - - - -/* compare modes_or_flags from mactest.conf and from /var/log/mactest, should be exact match - * and order appears in the sequence is irrelevance */ -static int modes_or_flags_compare(struct modes_or_flags * mf_conf, struct modes_or_flags *mf_log) -{ - - struct modes_or_flags * tmp, *tmp1; - - tmp = mf_conf; - while (tmp) { - tmp1 = mf_log; - if (!tmp1) - return 1; - while(tmp1) { - if (!strcmp(tmp->modflagname, tmp1->modflagname)) - break; - tmp1 = tmp1->next; - } - if (!tmp1) - return 1; - tmp = tmp->next; - } - - tmp = mf_log; - while (tmp) { - tmp1 = mf_conf; - if (!tmp1) - return 1; - while(tmp1) { - if (!strcmp(tmp->modflagname, tmp1->modflagname)) - break; - tmp1 = tmp1->next; - } - if (!tmp1) - return 1; - tmp = tmp->next; - } - - return 0; -} - -/* compare labelstrings from mactest.conf and from /var/log/mactest, should be exact match - * and order of the modules appears in a label is irrelevance */ -static label_compare(char *conf, char *log) -{ - - char *element_data, *element_data1, *element_data2, *tmp, *conf1, *tmp2; - if (!strcmp(conf, "*")) - return 0; - tmp2 = conf1 = strdup(conf); - while ((element_data = strsep(&conf1, ",")) != NULL) { - tmp = element_data1 = strdup(log); - while ((element_data2 = strsep(&element_data1, ",")) != NULL){ - if (!strcmp(element_data2, element_data)) - break; - } - if (element_data2 == NULL){ - free(tmp); - free(tmp2); - return 1; - }else - free(tmp); - } - free(tmp2); - return 0; -} -static int labelstrings_compare(struct labelstrings *ls_conf, struct labelstrings *ls_log) -{ - - while (ls_conf) { - if (!ls_log) - return 1; - if (label_compare(ls_conf->labelstring, ls_log->labelstring)) - return 1; - ls_conf = ls_conf->next; - ls_log = ls_log->next; - } - if (ls_log) - return 1; - return 0; -} - int main(int argc, char *argv[]) { @@ -637,7 +554,6 @@ int mactestpipefd, logfd; char buf[2048]; int ch; - int notgood = 0; while ((ch = getopt(argc, argv, "m:f:")) != -1) { @@ -707,108 +623,10 @@ } close(logfd); - - /* compare the configuration file and parse result */ - { - struct mactestlog_record *record_from_log, *record_from_conf; - if ((inputfile = fopen("/var/log/mactest", "r")) < 0){ - fprintf(stderr,"/var/log/mactest do not exists!\n"); - exit(1); - } + machookmatch(macconf_file, pid); - yyparse(); - fclose(inputfile); - record_from_log = mactestlog_record_chain; - if ((inputfile = fopen(macconf_file, "r")) == NULL){ - fprintf(stderr, "mactest.conf do not exists!\n"); - exit(1); - } - - mactestlog_record_chain = 0; - yyparse(); - fclose(inputfile); - record_from_conf = mactestlog_record_chain; - - /* See if record_from_conf is contained in record_from_log */ - /* pid == -1 means matching the running pid */ - pid = getpid(); - - while (record_from_conf) { - struct mactestlog_record * iterator = record_from_log; - while (iterator) { - if (!((record_from_conf->pid == -1&& iterator->pid == pid)|| - record_from_conf->pid == iterator->pid|| - record_from_conf->pid == -2/*matching any pid*/)){ - iterator = iterator->next; - continue; - } - - if (strcmp(record_from_conf->machookname, iterator->machookname)) - { - iterator = iterator->next; - continue; - } - if (modes_or_flags_compare(record_from_conf->modes_or_flags, - iterator->modes_or_flags)){ - iterator = iterator->next; - continue; - } - if (labelstrings_compare(record_from_conf->labelstrings, - iterator->labelstrings)){ - iterator = iterator->next; - continue; - } - break; - } - if (iterator) - record_from_conf = record_from_conf->next; - else{ - notgood = 1; - fprintf(stderr, "missing ...\n"); - struct modes_or_flags *iterator1, *tmp1; - struct labelstrings *iterator2, *tmp2; - fprintf(stderr, "pid = %d ", record_from_conf->pid); - fprintf(stderr, "hookname: %s\n", record_from_conf->machookname); - - iterator1 = record_from_conf->modes_or_flags; - if (iterator1) { - while (iterator1) { - tmp1 = iterator1; - iterator1 = iterator1->next; - } - fprintf(stderr, " with modes or flags#"); - while (tmp1) { - fprintf(stderr, " %s", tmp1->modflagname); - tmp1 = tmp1->prev; - } - fprintf(stderr, "\n"); - } - - iterator2 = record_from_conf->labelstrings; - if (iterator2) { - while (iterator2) { - tmp2 = iterator2; - iterator2 = iterator2->next; - } - fprintf(stderr, " with labels:"); - while (tmp2) { - if (!strcmp("*",tmp2->labelstring)) - fprintf(stderr, " any"); - else - fprintf(stderr, " %s", tmp2->labelstring); - tmp2 = tmp2->prev; - } - fprintf(stderr, "\n"); - } - record_from_conf = record_from_conf->next; - } - } - } - if (notgood) - exit(1); - else - exit(0); + exit(0); } static const char * ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/mactest.h#3 (text+ko) ==== @@ -57,5 +57,6 @@ int modes_or_flags_compare(struct modes_or_flags * mf_conf, struct modes_or_flags *mf_log); int label_compare(char *conf, char *log); int labelstrings_compare(struct labelstrings *ls_conf, struct labelstrings *ls_log); +void machookmatch(const char *macconf_file, pid_t pid); #endif /* !_REGRESSION_MAC_TEST__H */ From owner-p4-projects@FreeBSD.ORG Thu Aug 9 06:19:48 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E66016A41B; Thu, 9 Aug 2007 06:19:48 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D511F16A419 for ; Thu, 9 Aug 2007 06:19:47 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AC5C413C4B6 for ; Thu, 9 Aug 2007 06:19:47 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l796Jl5K093274 for ; Thu, 9 Aug 2007 06:19:47 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l796JlMv093271 for perforce@freebsd.org; Thu, 9 Aug 2007 06:19:47 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Thu, 9 Aug 2007 06:19:47 GMT Message-Id: <200708090619.l796JlMv093271@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 124939 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, 09 Aug 2007 06:19:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=124939 Change 124939 by zhouzhouyi@zhouzhouyi_mactest on 2007/08/09 06:18:46 Adding test case for rmdir Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/rmdir/00.t#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 9 06:31:03 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E86D16A420; Thu, 9 Aug 2007 06:31:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C354616A419 for ; Thu, 9 Aug 2007 06:31:02 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B095A13C458 for ; Thu, 9 Aug 2007 06:31:02 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l796V2JR094058 for ; Thu, 9 Aug 2007 06:31:02 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l796V1Q9094046 for perforce@freebsd.org; Thu, 9 Aug 2007 06:31:01 GMT (envelope-from delphij@freebsd.org) Date: Thu, 9 Aug 2007 06:31:01 GMT Message-Id: <200708090631.l796V1Q9094046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 124940 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, 09 Aug 2007 06:31:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=124940 Change 124940 by delphij@delphij_odin on 2007/08/09 06:30:24 IFC Affected files ... .. //depot/projects/delphij_fork/ObsoleteFiles.inc#8 integrate .. //depot/projects/delphij_fork/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/delphij_fork/lib/libthr/thread/thr_private.h#2 integrate .. //depot/projects/delphij_fork/share/misc/bsd-family-tree#2 integrate .. //depot/projects/delphij_fork/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/delphij_fork/sys/arm/arm/genassym.c#2 integrate .. //depot/projects/delphij_fork/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/delphij_fork/sys/boot/arm/at91/libat91/Makefile#3 integrate .. //depot/projects/delphij_fork/sys/conf/files#7 integrate .. //depot/projects/delphij_fork/sys/conf/kern.pre.mk#5 integrate .. //depot/projects/delphij_fork/sys/dev/an/if_an.c#3 integrate .. //depot/projects/delphij_fork/sys/dev/usb/if_axe.c#2 integrate .. //depot/projects/delphij_fork/sys/dev/usb/if_axereg.h#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/denode.h#2 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_denode.c#3 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_fat.c#6 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vfsops.c#5 integrate .. //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vnops.c#4 integrate .. //depot/projects/delphij_fork/sys/kern/kern_lockf.c#2 integrate .. //depot/projects/delphij_fork/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/delphij_fork/sys/powerpc/include/intr_machdep.h#2 integrate .. //depot/projects/delphij_fork/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/delphij_fork/sys/powerpc/powerpc/interrupt.c#2 integrate .. //depot/projects/delphij_fork/sys/powerpc/powerpc/intr_machdep.c#2 integrate .. //depot/projects/delphij_fork/sys/powerpc/powerpc/trap.c#3 integrate .. //depot/projects/delphij_fork/sys/vm/device_pager.c#3 integrate .. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt#2 integrate .. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_snmp.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#2 integrate .. //depot/projects/delphij_fork/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#2 integrate .. //depot/projects/delphij_fork/usr.sbin/freebsd-update/freebsd-update.sh#2 integrate Differences ... ==== //depot/projects/delphij_fork/ObsoleteFiles.inc#8 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.108 2007/08/02 08:04:47 bz Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.109 2007/08/07 23:48:30 marcel Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,10 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070807: removal of PowerPC specific header file. +.if ${TARGET_ARCH} == "powerpc" +OLD_FILES+=usr/include/machine/interruptvar.h +.endif # 20070801: fast_ipsec.4 gone OLD_FILES+=usr/share/man/man4/fast_ipsec.4.gz # 20070715: netatm temporarily disconnected ==== //depot/projects/delphij_fork/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ==== @@ -1136,7 +1136,15 @@ exit(1); } - psize = statbuf.st_size; + if (S_ISCHR(statbuf.st_mode)) { + if (ioctl(fd, DIOCGMEDIASIZE, &psize) != 0) { + (void) printf("failed to get size '%s': %s\n", dev, + strerror(errno)); + exit(1); + } + } else + psize = statbuf.st_size; + psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t)); for (l = 0; l < VDEV_LABELS; l++) { ==== //depot/projects/delphij_fork/lib/libthr/thread/thr_private.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE 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/libthr/thread/thr_private.h,v 1.77 2006/12/20 04:43:34 davidxu Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.78 2007/08/07 04:50:14 davidxu Exp $ */ #ifndef _THR_PRIVATE_H @@ -72,7 +72,7 @@ /* Output debug messages like this: */ #define stdout_debug(args...) _thread_printf(STDOUT_FILENO, ##args) -#define stderr_debug(args...) _thread_printf(STDOUT_FILENO, ##args) +#define stderr_debug(args...) _thread_printf(STDERR_FILENO, ##args) #ifdef _PTHREADS_INVARIANTS #define THR_ASSERT(cond, msg) do { \ ==== //depot/projects/delphij_fork/share/misc/bsd-family-tree#2 (text+ko) ==== @@ -174,7 +174,7 @@ | | | | \ FreeBSD 5.0 | | | | | | | | | -FreeBSD 5.1 | | | DragonFly 1.0 +FreeBSD 5.1 | | | DragonFly 1.0 | \ | | | | | ----- Mac OS X | | | | 10.3 | | | @@ -185,7 +185,7 @@ *-------FreeBSD 5.3 | | | | | | | | OpenBSD 3.6 | | | | NetBSD 2.0 | | - | | | | | | | DragonFly 1.2.0 + | | | | | | | DragonFly 1.2.0 | | Mac OS X | | NetBSD 2.0.2 | | | | 10.4 | | | | | | FreeBSD 5.4 | | | | | | @@ -198,19 +198,20 @@ | | | | | NetBSD 2.1 | | | | | | | | | | | | | NetBSD 3.0 | | - | | | | | | | | DragonFly 1.4.0 + | | | | | | | | DragonFly 1.4.0 | | | | | | | OpenBSD 3.9 | | FreeBSD | | | | | | | | 6.1 | | | | | | | | | FreeBSD 5.5 | | | | | | - | | | | | NetBSD 3.0.1 | DragonFly 1.6.0 + | | | | | NetBSD 3.0.1 | DragonFly 1.6.0 | | | | | | | | | | | | | | OpenBSD 4.0 | | | | | | NetBSD 3.0.2 | | | | | | NetBSD 3.1 | | | FreeBSD 6.2 | | | | - | | | | | DragonFly 1.8.0 + | | | | | DragonFly 1.8.0 | | | | OpenBSD 4.1 | + | | | | | DragonFly 1.10.0 | V | | | | FreeBSD 7 -current | NetBSD -current OpenBSD -current | | | | | | @@ -466,6 +467,7 @@ FreeBSD 6.2 2007-01-15 [FBD] DragonFly 1.8.0 2007-01-30 [DFB] OpenBSD 4.1 2007-05-01 [OBD] +DragonFly 1.10.0 2007-08-06 [DFB] Bibliography ------------------------ @@ -526,4 +528,4 @@ Copyright (c) 1997-2007 Wolfram Schneider URL: http://cvsweb.freebsd.org/src/share/misc/bsd-family-tree -$FreeBSD: src/share/misc/bsd-family-tree,v 1.113 2007/05/31 03:40:29 imp Exp $ +$FreeBSD: src/share/misc/bsd-family-tree,v 1.115 2007/08/07 15:35:24 maxim Exp $ ==== //depot/projects/delphij_fork/sys/arm/arm/cpufunc.c#3 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $"); #include #include @@ -148,9 +148,9 @@ arm7tdmi_cache_flushID, /* idcache_wbinv_all */ (void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -210,9 +210,9 @@ arm8_cache_purgeID, /* idcache_wbinv_all */ (void *)arm8_cache_purgeID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -271,9 +271,9 @@ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ arm9_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -333,9 +333,9 @@ arm10_idcache_wbinv_all, /* idcache_wbinv_all */ arm10_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -395,9 +395,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -456,9 +456,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -517,9 +517,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -581,9 +581,9 @@ xscale_cache_purgeID, /* idcache_wbinv_all */ xscale_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ ==== //depot/projects/delphij_fork/sys/arm/arm/genassym.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $"); #include #include #include @@ -92,6 +92,7 @@ ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TD_MD, offsetof(struct thread, td_md)); +ASSYM(TD_LOCK, offsetof(struct thread, td_lock)); ASSYM(MD_TP, offsetof(struct mdthread, md_tp)); ASSYM(TF_R0, offsetof(struct trapframe, tf_r0)); ==== //depot/projects/delphij_fork/sys/arm/arm/swtch.S#2 (text+ko) ==== @@ -83,7 +83,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.19 2006/04/09 20:16:47 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.20 2007/08/07 18:20:55 cognet Exp $"); /* @@ -127,6 +127,8 @@ .word _C_LABEL(block_userspace_access) .Lcpu_do_powersave: .word _C_LABEL(cpu_do_powersave) +.Lblocked_lock: + .word _C_LABEL(blocked_lock) ENTRY(cpu_throw) mov r5, r1 @@ -214,6 +216,7 @@ ENTRY(cpu_switch) stmfd sp!, {r4-r7, lr} + mov r6, r2 /* Save the mutex */ .Lswitch_resume: /* rem: r0 = old lwp */ @@ -241,10 +244,11 @@ /* Stage two : Save old context */ - /* Get the user structure for the old lwp. */ + /* Get the user structure for the old thread. */ ldr r2, [r0, #(TD_PCB)] + mov r4, r0 /* Save the old thread. */ - /* Save all the registers in the old lwp's pcb */ + /* Save all the registers in the old thread's pcb */ #ifndef __XSCALE__ add r7, r2, #(PCB_R8) stmia r7, {r8-r13} @@ -324,8 +328,7 @@ mov lr, pc ldr pc, [r1, #CF_IDCACHE_WBINV_ALL] .Lcs_cache_purge_skipped: - /* rem: r4 = &block_userspace_access */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r9 = new PCB */ /* rem: r10 = old L1 */ /* rem: r11 = new L1 */ @@ -389,6 +392,17 @@ .Lcs_context_switched: + /* Release the old thread */ + str r6, [r4, #TD_LOCK] + ldr r6, .Lblocked_lock + ldr r3, .Lcurthread + ldr r3, [r3] + +1: + ldr r4, [r3, #TD_LOCK] + cmp r4, r6 + beq 1b + /* XXXSCW: Safe to re-enable FIQs here */ /* rem: r9 = new PCB */ @@ -419,7 +433,7 @@ ldr r13, [r7, #(PCB_SP)] #endif - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new pcb */ #ifdef ARMFPE @@ -429,7 +443,7 @@ #endif /* rem: r5 = new lwp's proc */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new PCB */ .Lswitch_return: ==== //depot/projects/delphij_fork/sys/boot/arm/at91/libat91/Makefile#3 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.9 2007/07/13 14:27:04 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.10 2007/08/09 05:16:55 imp Exp $ .include "${.CURDIR}/../Makefile.inc" @@ -8,7 +8,7 @@ putchar.c printf.c reset.c spi_flash.c xmodem.c \ sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ memset.c memcmp.c -SRCS+=ashldi3.c divsi3.c +SRCS+=ashldi3.c divsi3.S NO_MAN= .if ${MK_TAG_LIST} != "no" ==== //depot/projects/delphij_fork/sys/conf/files#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1241 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1242 2007/08/09 01:11:21 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -259,7 +259,7 @@ contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ - compile-with "${NORMAL_C} -I$S/contrib/ipfilter" + compile-with "${NORMAL_C} -Wno-error -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ ==== //depot/projects/delphij_fork/sys/conf/kern.pre.mk#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.91 2007/07/31 03:15:32 marcel Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.92 2007/08/08 19:12:06 marcel Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -88,7 +88,8 @@ CFLAGS+= --param inline-unit-growth=100 CFLAGS+= --param large-function-growth=1000 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \ - ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64" + ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc64" WERROR?= -Werror .endif .endif ==== //depot/projects/delphij_fork/sys/dev/an/if_an.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.82 2007/08/02 02:20:19 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.83 2007/08/07 12:26:19 avatar Exp $"); /* * The Aironet 4500/4800 series cards come in PCMCIA, ISA and PCI form. @@ -1065,8 +1065,10 @@ rx_frame.an_rsvd0); #endif #endif + AN_UNLOCK(sc); (*ifp->if_input)(ifp, m); - + AN_LOCK(sc); + an_rx_desc.an_valid = 1; an_rx_desc.an_len = AN_RX_BUFFER_SIZE; an_rx_desc.an_done = 0; ==== //depot/projects/delphij_fork/sys/dev/usb/if_axe.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.52 2007/06/30 20:08:08 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.53 2007/08/09 04:40:07 imp Exp $"); /* * ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the @@ -468,7 +468,7 @@ /* * Get station address. */ - axe_cmd(sc, AXE_CMD_READ_NODEID, 0, 0, &eaddr); + axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, &eaddr); /* * Load IPG values and PHY indexes. @@ -894,12 +894,12 @@ } /* Set transmitter IPG values */ - axe_cmd(sc, AXE_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); /* Enable receiver, set RX mode */ - rxmode = AXE_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; + rxmode = AXE_172_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; /* If we want promiscuous mode, set the allframes bit. */ if (ifp->if_flags & IFF_PROMISC) ==== //depot/projects/delphij_fork/sys/dev/usb/if_axereg.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.13 2007/06/30 20:08:08 imp Exp $ + * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.14 2007/08/09 04:40:07 imp Exp $ */ /* @@ -53,9 +53,11 @@ #define AXE_CMD_LEN(x) (((x) & 0xF000) >> 12) #define AXE_CMD_CMD(x) ((x) & 0x00FF) -#define AXE_CMD_READ_RXTX_SRAM 0x2002 -#define AXE_CMD_WRITE_RX_SRAM 0x0103 -#define AXE_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_172_CMD_READ_RXTX_SRAM 0x2002 +#define AXE_182_CMD_READ_RXTX_SRAM 0x8002 +#define AXE_172_CMD_WRITE_RX_SRAM 0x0103 +#define AXE_172_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_182_CMD_WRITE_RXTX_SRAM 0x8103 #define AXE_CMD_MII_OPMODE_SW 0x0106 #define AXE_CMD_MII_READ_REG 0x2007 #define AXE_CMD_MII_WRITE_REG 0x2108 @@ -68,35 +70,79 @@ #define AXE_CMD_RXCTL_READ 0x200F #define AXE_CMD_RXCTL_WRITE 0x0110 #define AXE_CMD_READ_IPG012 0x3011 -#define AXE_CMD_WRITE_IPG0 0x0112 -#define AXE_CMD_WRITE_IPG1 0x0113 -#define AXE_CMD_WRITE_IPG2 0x0114 +#define AXE_172_CMD_WRITE_IPG0 0x0112 +#define AXE_172_CMD_WRITE_IPG1 0x0113 +#define AXE_172_CMD_WRITE_IPG2 0x0114 +#define AXE_178_CMD_WRITE_IPG012 0x0112 #define AXE_CMD_READ_MCAST 0x8015 #define AXE_CMD_WRITE_MCAST 0x8116 -#define AXE_CMD_READ_NODEID 0x6017 -#define AXE_CMD_WRITE_NODEID 0x6118 +#define AXE_172_CMD_READ_NODEID 0x6017 +#define AXE_172_CMD_WRITE_NODEID 0x6118 +#define AXE_178_CMD_READ_NODEID 0x6013 +#define AXE_178_CMD_WRITE_NODEID 0x6114 #define AXE_CMD_READ_PHYID 0x2019 -#define AXE_CMD_READ_MEDIA 0x101A +#define AXE_172_CMD_READ_MEDIA 0x101A +#define AXE_178_CMD_READ_MEDIA 0x201A #define AXE_CMD_WRITE_MEDIA 0x011B #define AXE_CMD_READ_MONITOR_MODE 0x101C #define AXE_CMD_WRITE_MONITOR_MODE 0x011D #define AXE_CMD_READ_GPIO 0x101E #define AXE_CMD_WRITE_GPIO 0x011F +#define AXE_CMD_SW_RESET_REG 0x0120 +#define AXE_CMD_SW_PHY_STATUS 0x0021 +#define AXE_CMD_SW_PHY_SELECT 0x0122 + +#define AXE_SW_RESET_CLEAR 0x00 +#define AXE_SW_RESET_RR 0x01 +#define AXE_SW_RESET_RT 0x02 +#define AXE_SW_RESET_PRTE 0x04 +#define AXE_SW_RESET_PRL 0x08 +#define AXE_SW_RESET_BZ 0x10 +#define AXE_SW_RESET_IPRL 0x20 +#define AXE_SW_RESET_IPPD 0x40 + +/* AX88178 documentation says to always write this bit... */ +#define AXE_178_RESET_MAGIC 0x40 + +#define AXE_178_MEDIA_GMII 0x0001 +#define AXE_MEDIA_FULL_DUPLEX 0x0002 +#define AXE_172_MEDIA_TX_ABORT_ALLOW 0x0004 +/* AX88178 documentation says to always write 1 to reserved bit... */ +#define AXE_178_MEDIA_MAGIC 0x0004 +#define AXE_178_MEDIA_ENCK 0x0008 +#define AXE_172_MEDIA_FLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_RXFLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_TXFLOW_CONTROL_EN 0x0020 +#define AXE_178_MEDIA_JUMBO_EN 0x0040 +#define AXE_178_MEDIA_LTPF_ONLY 0x0080 +#define AXE_178_MEDIA_RX_EN 0x0100 +#define AXE_178_MEDIA_100TX 0x0200 +#define AXE_178_MEDIA_SBP 0x0800 +#define AXE_178_MEDIA_SUPERMAC 0x1000 #define AXE_RXCMD_PROMISC 0x0001 #define AXE_RXCMD_ALLMULTI 0x0002 -#define AXE_RXCMD_UNICAST 0x0004 +#define AXE_172_RXCMD_UNICAST 0x0004 +#define AXE_178_RXCMD_KEEP_INVALID_CRC 0x0004 #define AXE_RXCMD_BROADCAST 0x0008 #define AXE_RXCMD_MULTICAST 0x0010 #define AXE_RXCMD_ENABLE 0x0080 +#define AXE_178_RXCMD_MFB 0x0300 #define AXE_NOPHY 0xE0 +#define AXE_INTPHY 0x10 #define AXE_TIMEOUT 1000 +#define AXE_172_BUFSZ 1536 +#define AXE_178_MIN_BUFSZ 2048 +#define AXE_178_MAX_BUFSZ 16384 #define AXE_MIN_FRAMELEN 60 #define AXE_RX_FRAMES 1 #define AXE_TX_FRAMES 1 +#define AXE_RX_LIST_CNT 1 +#define AXE_TX_LIST_CNT 1 + #define AXE_CTL_READ 0x01 #define AXE_CTL_WRITE 0x02 @@ -134,6 +180,9 @@ device_t axe_dev; usbd_device_handle axe_udev; usbd_interface_handle axe_iface; + u_int16_t axe_vendor; + u_int16_t axe_product; + u_int16_t axe_flags; int axe_ed[AXE_ENDPT_MAX]; usbd_pipe_handle axe_ep[AXE_ENDPT_MAX]; int axe_if_flags; @@ -148,6 +197,7 @@ struct timeval axe_rx_notice; struct usb_qdat axe_qdat; struct usb_task axe_tick_task; + u_int axe_bufsz; }; #if 0 ==== //depot/projects/delphij_fork/sys/fs/msdosfs/denode.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/denode.h,v 1.36 2007/01/16 23:43:14 trhodes Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/denode.h,v 1.37 2007/08/07 03:22:10 bde Exp $ */ /* $NetBSD: denode.h,v 1.25 1997/11/17 15:36:28 ws Exp $ */ /*- @@ -225,18 +225,18 @@ #define DETOV(de) ((de)->de_vnode) #define DETIMES(dep, acc, mod, cre) do { \ - if ((dep)->de_flag & DE_UPDATE) { \ + if ((dep)->de_flag & DE_UPDATE) { \ (dep)->de_flag |= DE_MODIFIED; \ timespec2fattime((mod), 0, &(dep)->de_MDate, \ &(dep)->de_MTime, NULL); \ - (dep)->de_Attributes |= ATTR_ARCHIVE; \ + (dep)->de_Attributes |= ATTR_ARCHIVE; \ } \ if ((dep)->de_pmp->pm_flags & MSDOSFSMNT_NOWIN95) { \ (dep)->de_flag &= ~(DE_UPDATE | DE_CREATE | DE_ACCESS); \ break; \ } \ if ((dep)->de_flag & DE_ACCESS) { \ - u_int16_t adate; \ + u_int16_t adate; \ \ timespec2fattime((acc), 0, &adate, NULL, NULL); \ if (adate != (dep)->de_ADate) { \ @@ -247,7 +247,7 @@ if ((dep)->de_flag & DE_CREATE) { \ timespec2fattime((cre), 0, &(dep)->de_CDate, \ &(dep)->de_CTime, &(dep)->de_CHun); \ - (dep)->de_flag |= DE_MODIFIED; \ + (dep)->de_flag |= DE_MODIFIED; \ } \ (dep)->de_flag &= ~(DE_UPDATE | DE_CREATE | DE_ACCESS); \ } while (0) ==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_denode.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_denode.c,v 1.96 2007/08/07 02:25:55 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_denode.c,v 1.97 2007/08/07 03:59:49 bde Exp $ */ /* $NetBSD: msdosfs_denode.c,v 1.28 1998/02/10 14:10:00 mrg Exp $ */ /*- @@ -136,7 +136,7 @@ error = vfs_hash_get(mntp, inode, LK_EXCLUSIVE, curthread, &nvp, de_vncmpf, &inode); if (error) - return(error); + return (error); if (nvp != NULL) { *depp = VTODE(nvp); KASSERT((*depp)->de_dirclust == dirclust, ("wrong dirclust")); @@ -263,13 +263,13 @@ u_long size; /* - * XXX Sometimes, these arrives that . entry have cluster - * number 0, when it shouldn't. Use real cluster number + * XXX it sometimes happens that the "." entry has cluster + * number 0 when it shouldn't. Use the actual cluster number * instead of what is written in directory entry. */ - if ((diroffset == 0) && (ldep->de_StartCluster != dirclust)) { - printf("deget(): . entry at clust %ld != %ld\n", - dirclust, ldep->de_StartCluster); + if (diroffset == 0 && ldep->de_StartCluster != dirclust) { + printf("deget(): \".\" entry at clust %lu != %lu\n", + dirclust, ldep->de_StartCluster); ldep->de_StartCluster = dirclust; } @@ -361,7 +361,6 @@ return (EINVAL); } - if (dep->de_FileSize < length) { vnode_pager_setsize(DETOV(dep), length); return deextend(dep, length, cred); @@ -424,14 +423,14 @@ */ dep->de_FileSize = length; if (!isadir) - dep->de_flag |= DE_UPDATE|DE_MODIFIED; + dep->de_flag |= DE_UPDATE | DE_MODIFIED; allerror = vtruncbuf(DETOV(dep), cred, td, length, pmp->pm_bpcluster); #ifdef MSDOSFS_DEBUG if (allerror) printf("detrunc(): vtruncbuf error %d\n", allerror); #endif error = deupdat(dep, 1); - if (error && (allerror == 0)) + if (error != 0 && allerror == 0) allerror = error; #ifdef MSDOSFS_DEBUG printf("detrunc(): allerror %d, eofentry %lu\n", @@ -508,7 +507,7 @@ } } dep->de_FileSize = length; - dep->de_flag |= DE_UPDATE|DE_MODIFIED; + dep->de_flag |= DE_UPDATE | DE_MODIFIED; return (deupdat(dep, 1)); } @@ -536,7 +535,7 @@ #endif vp = DETOV(dep); dep->de_inode = (uint64_t)dep->de_pmp->pm_bpcluster * dep->de_dirclust + - dep->de_diroffset; + dep->de_diroffset; vfs_hash_rehash(vp, dep->de_inode); } ==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_fat.c#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.46 2007/08/07 02:25:55 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_fat.c,v 1.47 2007/08/07 03:22:10 bde Exp $ */ /* $NetBSD: msdosfs_fat.c,v 1.28 1997/11/17 15:36:49 ws Exp $ */ /*- @@ -114,7 +114,7 @@ *sizep = size; if (bop) *bop = ofs % pmp->pm_fatblocksize; - pm_fatblocksize = pmp->pm_fatblocksize; + pm_fatblocksize = pmp->pm_fatblocksize; } /* @@ -522,7 +522,7 @@ #ifdef MSDOSFS_DEBUG printf("fatentry(func %d, pmp %p, clust %lu, oldcon %p, newcon %lx)\n", - function, pmp, cn, oldcontents, newcontents); + function, pmp, cn, oldcontents, newcontents); #endif #ifdef DIAGNOSTIC @@ -717,7 +717,7 @@ break; map = pmp->pm_inusemap[idx]; if (map) { - len += ffs(map) - 1; + len += ffs(map) - 1; break; } len += N_INUSEBITS; @@ -794,12 +794,12 @@ u_int map; #ifdef MSDOSFS_DEBUG - printf("clusteralloc(): find %lu clusters\n",count); + printf("clusteralloc(): find %lu clusters\n", count); #endif if (start) { if ((len = chainlength(pmp, start, count)) >= count) return (chainalloc(pmp, start, count, fillwith, retcluster, got)); - } else + } else len = 0; newst = pmp->pm_nxtfree; @@ -1080,8 +1080,8 @@ */ if (dep->de_Attributes & ATTR_DIRECTORY) bp = getblk(pmp->pm_devvp, - cntobn(pmp, cn++), - pmp->pm_bpcluster, 0, 0, 0); + cntobn(pmp, cn++), + pmp->pm_bpcluster, 0, 0, 0); else { bp = getblk(DETOV(dep), de_cn2bn(pmp, frcn++), ==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vfsops.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.172 2007/08/07 02:27:35 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.173 2007/08/07 03:38:36 bde Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -98,7 +98,7 @@ MALLOC_DEFINE(M_MSDOSFSMNT, "msdosfs_mount", "MSDOSFS mount structure"); static MALLOC_DEFINE(M_MSDOSFSFAT, "msdosfs_fat", "MSDOSFS file allocation table"); -struct iconv_functions *msdosfs_iconv = NULL; +struct iconv_functions *msdosfs_iconv; static int update_mp(struct mount *mp, struct thread *td); static int mountmsdosfs(struct vnode *devvp, struct mount *mp, @@ -185,9 +185,8 @@ if ((error = msdosfs_root(mp, LK_EXCLUSIVE, &rootvp, td)) != 0) return error; - pmp->pm_flags |= findwin95(VTODE(rootvp)) - ? MSDOSFSMNT_LONGNAME - : MSDOSFSMNT_SHORTNAME; + pmp->pm_flags |= findwin95(VTODE(rootvp)) ? + MSDOSFSMNT_LONGNAME : MSDOSFSMNT_SHORTNAME; vput(rootvp); } } @@ -213,14 +212,14 @@ ma = mount_argf(ma, "mask", "%d", args.mask); ma = mount_argf(ma, "dirmask", "%d", args.dirmask); - ma = mount_argb(ma, args.flags & MSDOSFSMNT_SHORTNAME, "noshortname"); - ma = mount_argb(ma, args.flags & MSDOSFSMNT_LONGNAME, "nolongname"); - ma = mount_argb(ma, !(args.flags & MSDOSFSMNT_NOWIN95), "nowin95"); - ma = mount_argb(ma, args.flags & MSDOSFSMNT_KICONV, "nokiconv"); + ma = mount_argb(ma, args.flags & MSDOSFSMNT_SHORTNAME, "noshortname"); + ma = mount_argb(ma, args.flags & MSDOSFSMNT_LONGNAME, "nolongname"); + ma = mount_argb(ma, !(args.flags & MSDOSFSMNT_NOWIN95), "nowin95"); + ma = mount_argb(ma, args.flags & MSDOSFSMNT_KICONV, "nokiconv"); - ma = mount_argsu(ma, "cs_win", args.cs_win, MAXCSLEN); - ma = mount_argsu(ma, "cs_dos", args.cs_dos, MAXCSLEN); - ma = mount_argsu(ma, "cs_local", args.cs_local, MAXCSLEN); + ma = mount_argsu(ma, "cs_win", args.cs_win, MAXCSLEN); + ma = mount_argsu(ma, "cs_dos", args.cs_dos, MAXCSLEN); + ma = mount_argsu(ma, "cs_local", args.cs_local, MAXCSLEN); error = kernel_mount(ma, flags); @@ -252,8 +251,8 @@ */ if (mp->mnt_flag & MNT_UPDATE) { int ro_to_rw = 0; + pmp = VFSTOMSDOSFS(mp); - if (vfs_flagopt(mp->mnt_optnew, "export", NULL, 0)) { /* * Forbid export requests if filesystem has @@ -297,7 +296,7 @@ devvp = pmp->pm_devvp; vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); error = VOP_ACCESS(devvp, VREAD | VWRITE, - td->td_ucred, td); + td->td_ucred, td); if (error) error = priv_check(td, PRIV_VFS_MOUNT_PERM); if (error) { @@ -380,7 +379,7 @@ msdosfs_unmount(mp, MNT_FORCE, td); return error; } - + vfs_mountedfrom(mp, from); #ifdef MSDOSFS_DEBUG printf("msdosfs_mount(): mp %p, pmp %p, inusemap %p\n", mp, pmp, pmp->pm_inusemap); @@ -400,7 +399,7 @@ struct byte_bpb710 *b710; u_int8_t SecPerClust; u_long clusters; - int ronly, error; + int ronly, error; struct g_consumer *cp; struct bufobj *bo; @@ -416,7 +415,7 @@ return (error); bo = &devvp->v_bufobj; - bp = NULL; /* both used in error_exit */ + bp = NULL; /* This and pmp both used in error_exit. */ pmp = NULL; /* @@ -468,8 +467,7 @@ * filesystems are not suitable for exporting through NFS, or any other * application that requires fixed inode numbers. */ - vfs_flagopt(mp->mnt_optnew, "large", &pmp->pm_flags, - MSDOSFS_LARGEFS); + vfs_flagopt(mp->mnt_optnew, "large", &pmp->pm_flags, MSDOSFS_LARGEFS); /* * Compute several useful quantities from the bpb in the @@ -514,7 +512,7 @@ pmp->pm_HugeSectors = pmp->pm_Sectors; } if (!(pmp->pm_flags & MSDOSFS_LARGEFS)) { - if (pmp->pm_HugeSectors > 0xffffffff / + if (pmp->pm_HugeSectors > 0xffffffff / (pmp->pm_BytesPerSec / sizeof(struct direntry)) + 1) { /* * We cannot deal currently with this size of disk @@ -566,7 +564,7 @@ } pmp->pm_HugeSectors *= pmp->pm_BlkPerSec; - pmp->pm_HiddenSects *= pmp->pm_BlkPerSec; /* XXX not used? */ + pmp->pm_HiddenSects *= pmp->pm_BlkPerSec; /* XXX not used? */ pmp->pm_FATsecs *= pmp->pm_BlkPerSec; SecPerClust *= pmp->pm_BlkPerSec; @@ -588,7 +586,7 @@ pmp->pm_maxcluster = (pmp->pm_HugeSectors - pmp->pm_firstcluster) / SecPerClust + 1; - pmp->pm_fatsize = pmp->pm_FATsecs * DEV_BSIZE; /* XXX not used? */ + pmp->pm_fatsize = pmp->pm_FATsecs * DEV_BSIZE; /* XXX not used? */ if (pmp->pm_fatmask == 0) { if (pmp->pm_maxcluster @@ -848,7 +846,7 @@ sbp->f_blocks = pmp->pm_maxcluster + 1; sbp->f_bfree = pmp->pm_freeclustercount; sbp->f_bavail = pmp->pm_freeclustercount; - sbp->f_files = pmp->pm_RootDirEnts; /* XXX */ + sbp->f_files = pmp->pm_RootDirEnts; /* XXX */ sbp->f_ffree = 0; /* what to put in here? */ return (0); } ==== //depot/projects/delphij_fork/sys/fs/msdosfs/msdosfs_vnops.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vnops.c,v 1.175 2007/08/07 02:28:33 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vnops.c,v 1.178 2007/08/07 10:35:27 bde Exp $ */ /* $NetBSD: msdosfs_vnops.c,v 1.68 1998/02/10 14:10:04 mrg Exp $ */ /*- @@ -205,6 +205,7 @@ struct vattr *a_vap; } */ *ap; { + return (EINVAL); } @@ -264,14 +265,12 @@ file_mode &= (vp->v_type == VDIR ? pmp->pm_dirmask : pmp->pm_mask); /* - * Disallow write attempts on read-only filesystems; - * unless the file is a socket, fifo, or a block or - * character device resident on the filesystem. + * Disallow writing to directories and regular files if the + * filesystem is read-only. */ if (mode & VWRITE) { switch (vp->v_type) { case VDIR: - case VLNK: case VREG: if (vp->v_mount->mnt_flag & MNT_RDONLY) return (EROFS); @@ -320,7 +319,7 @@ dirsperblk; if (dep->de_dirclust == MSDOSFSROOT) fileid = (uint64_t)roottobn(pmp, 0) * dirsperblk; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 9 13:31:56 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 71CC916A469; Thu, 9 Aug 2007 13:31:56 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1043016A41A for ; Thu, 9 Aug 2007 13:31:56 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F28E713C481 for ; Thu, 9 Aug 2007 13:31:55 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79DVtdi050424 for ; Thu, 9 Aug 2007 13:31:55 GMT (envelope-from jbr@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79DVtTd050421 for perforce@freebsd.org; Thu, 9 Aug 2007 13:31:55 GMT (envelope-from jbr@FreeBSD.org) Date: Thu, 9 Aug 2007 13:31:55 GMT Message-Id: <200708091331.l79DVtTd050421@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jbr@FreeBSD.org using -f From: Jesper Brix Rosenkilde To: Perforce Change Reviews Cc: Subject: PERFORCE change 124945 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, 09 Aug 2007 13:31:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=124945 Change 124945 by jbr@jbr_bob on 2007/08/09 13:31:46 sync with current Affected files ... .. //depot/projects/soc2007/jbr-syscall/src/sys/boot/arm/at91/libat91/Makefile#3 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/files#4 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/conf/kern.pre.mk#4 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/if_axe.c#2 integrate .. //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/if_axereg.h#2 integrate Differences ... ==== //depot/projects/soc2007/jbr-syscall/src/sys/boot/arm/at91/libat91/Makefile#3 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.9 2007/07/13 14:27:04 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.10 2007/08/09 05:16:55 imp Exp $ .include "${.CURDIR}/../Makefile.inc" @@ -8,7 +8,7 @@ putchar.c printf.c reset.c spi_flash.c xmodem.c \ sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ memset.c memcmp.c -SRCS+=ashldi3.c divsi3.c +SRCS+=ashldi3.c divsi3.S NO_MAN= .if ${MK_TAG_LIST} != "no" ==== //depot/projects/soc2007/jbr-syscall/src/sys/conf/files#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1241 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1242 2007/08/09 01:11:21 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -259,7 +259,7 @@ contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ - compile-with "${NORMAL_C} -I$S/contrib/ipfilter" + compile-with "${NORMAL_C} -Wno-error -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ ==== //depot/projects/soc2007/jbr-syscall/src/sys/conf/kern.pre.mk#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.91 2007/07/31 03:15:32 marcel Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.92 2007/08/08 19:12:06 marcel Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -88,7 +88,8 @@ CFLAGS+= --param inline-unit-growth=100 CFLAGS+= --param large-function-growth=1000 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \ - ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64" + ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc64" WERROR?= -Werror .endif .endif ==== //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/if_axe.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.52 2007/06/30 20:08:08 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.53 2007/08/09 04:40:07 imp Exp $"); /* * ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the @@ -468,7 +468,7 @@ /* * Get station address. */ - axe_cmd(sc, AXE_CMD_READ_NODEID, 0, 0, &eaddr); + axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, &eaddr); /* * Load IPG values and PHY indexes. @@ -894,12 +894,12 @@ } /* Set transmitter IPG values */ - axe_cmd(sc, AXE_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); /* Enable receiver, set RX mode */ - rxmode = AXE_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; + rxmode = AXE_172_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; /* If we want promiscuous mode, set the allframes bit. */ if (ifp->if_flags & IFF_PROMISC) ==== //depot/projects/soc2007/jbr-syscall/src/sys/dev/usb/if_axereg.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.13 2007/06/30 20:08:08 imp Exp $ + * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.14 2007/08/09 04:40:07 imp Exp $ */ /* @@ -53,9 +53,11 @@ #define AXE_CMD_LEN(x) (((x) & 0xF000) >> 12) #define AXE_CMD_CMD(x) ((x) & 0x00FF) -#define AXE_CMD_READ_RXTX_SRAM 0x2002 -#define AXE_CMD_WRITE_RX_SRAM 0x0103 -#define AXE_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_172_CMD_READ_RXTX_SRAM 0x2002 +#define AXE_182_CMD_READ_RXTX_SRAM 0x8002 +#define AXE_172_CMD_WRITE_RX_SRAM 0x0103 +#define AXE_172_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_182_CMD_WRITE_RXTX_SRAM 0x8103 #define AXE_CMD_MII_OPMODE_SW 0x0106 #define AXE_CMD_MII_READ_REG 0x2007 #define AXE_CMD_MII_WRITE_REG 0x2108 @@ -68,35 +70,79 @@ #define AXE_CMD_RXCTL_READ 0x200F #define AXE_CMD_RXCTL_WRITE 0x0110 #define AXE_CMD_READ_IPG012 0x3011 -#define AXE_CMD_WRITE_IPG0 0x0112 -#define AXE_CMD_WRITE_IPG1 0x0113 -#define AXE_CMD_WRITE_IPG2 0x0114 +#define AXE_172_CMD_WRITE_IPG0 0x0112 +#define AXE_172_CMD_WRITE_IPG1 0x0113 +#define AXE_172_CMD_WRITE_IPG2 0x0114 +#define AXE_178_CMD_WRITE_IPG012 0x0112 #define AXE_CMD_READ_MCAST 0x8015 #define AXE_CMD_WRITE_MCAST 0x8116 -#define AXE_CMD_READ_NODEID 0x6017 -#define AXE_CMD_WRITE_NODEID 0x6118 +#define AXE_172_CMD_READ_NODEID 0x6017 +#define AXE_172_CMD_WRITE_NODEID 0x6118 +#define AXE_178_CMD_READ_NODEID 0x6013 +#define AXE_178_CMD_WRITE_NODEID 0x6114 #define AXE_CMD_READ_PHYID 0x2019 -#define AXE_CMD_READ_MEDIA 0x101A +#define AXE_172_CMD_READ_MEDIA 0x101A +#define AXE_178_CMD_READ_MEDIA 0x201A #define AXE_CMD_WRITE_MEDIA 0x011B #define AXE_CMD_READ_MONITOR_MODE 0x101C #define AXE_CMD_WRITE_MONITOR_MODE 0x011D #define AXE_CMD_READ_GPIO 0x101E #define AXE_CMD_WRITE_GPIO 0x011F +#define AXE_CMD_SW_RESET_REG 0x0120 +#define AXE_CMD_SW_PHY_STATUS 0x0021 +#define AXE_CMD_SW_PHY_SELECT 0x0122 + +#define AXE_SW_RESET_CLEAR 0x00 +#define AXE_SW_RESET_RR 0x01 +#define AXE_SW_RESET_RT 0x02 +#define AXE_SW_RESET_PRTE 0x04 +#define AXE_SW_RESET_PRL 0x08 +#define AXE_SW_RESET_BZ 0x10 +#define AXE_SW_RESET_IPRL 0x20 +#define AXE_SW_RESET_IPPD 0x40 + +/* AX88178 documentation says to always write this bit... */ +#define AXE_178_RESET_MAGIC 0x40 + +#define AXE_178_MEDIA_GMII 0x0001 +#define AXE_MEDIA_FULL_DUPLEX 0x0002 +#define AXE_172_MEDIA_TX_ABORT_ALLOW 0x0004 +/* AX88178 documentation says to always write 1 to reserved bit... */ +#define AXE_178_MEDIA_MAGIC 0x0004 +#define AXE_178_MEDIA_ENCK 0x0008 +#define AXE_172_MEDIA_FLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_RXFLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_TXFLOW_CONTROL_EN 0x0020 +#define AXE_178_MEDIA_JUMBO_EN 0x0040 +#define AXE_178_MEDIA_LTPF_ONLY 0x0080 +#define AXE_178_MEDIA_RX_EN 0x0100 +#define AXE_178_MEDIA_100TX 0x0200 +#define AXE_178_MEDIA_SBP 0x0800 +#define AXE_178_MEDIA_SUPERMAC 0x1000 #define AXE_RXCMD_PROMISC 0x0001 #define AXE_RXCMD_ALLMULTI 0x0002 -#define AXE_RXCMD_UNICAST 0x0004 +#define AXE_172_RXCMD_UNICAST 0x0004 +#define AXE_178_RXCMD_KEEP_INVALID_CRC 0x0004 #define AXE_RXCMD_BROADCAST 0x0008 #define AXE_RXCMD_MULTICAST 0x0010 #define AXE_RXCMD_ENABLE 0x0080 +#define AXE_178_RXCMD_MFB 0x0300 #define AXE_NOPHY 0xE0 +#define AXE_INTPHY 0x10 #define AXE_TIMEOUT 1000 +#define AXE_172_BUFSZ 1536 +#define AXE_178_MIN_BUFSZ 2048 +#define AXE_178_MAX_BUFSZ 16384 #define AXE_MIN_FRAMELEN 60 #define AXE_RX_FRAMES 1 #define AXE_TX_FRAMES 1 +#define AXE_RX_LIST_CNT 1 +#define AXE_TX_LIST_CNT 1 + #define AXE_CTL_READ 0x01 #define AXE_CTL_WRITE 0x02 @@ -134,6 +180,9 @@ device_t axe_dev; usbd_device_handle axe_udev; usbd_interface_handle axe_iface; + u_int16_t axe_vendor; + u_int16_t axe_product; + u_int16_t axe_flags; int axe_ed[AXE_ENDPT_MAX]; usbd_pipe_handle axe_ep[AXE_ENDPT_MAX]; int axe_if_flags; @@ -148,6 +197,7 @@ struct timeval axe_rx_notice; struct usb_qdat axe_qdat; struct usb_task axe_tick_task; + u_int axe_bufsz; }; #if 0 From owner-p4-projects@FreeBSD.ORG Thu Aug 9 13:42:10 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7E87616A46D; Thu, 9 Aug 2007 13:42:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43BF216A46B for ; Thu, 9 Aug 2007 13:42:10 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 262C013C45A for ; Thu, 9 Aug 2007 13:42:10 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79DgARJ051096 for ; Thu, 9 Aug 2007 13:42:10 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79Dg9eb051092 for perforce@freebsd.org; Thu, 9 Aug 2007 13:42:09 GMT (envelope-from gabor@freebsd.org) Date: Thu, 9 Aug 2007 13:42:09 GMT Message-Id: <200708091342.l79Dg9eb051092@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124948 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, 09 Aug 2007 13:42:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=124948 Change 124948 by gabor@gabor_server on 2007/08/09 13:41:47 - Change to a more convenient form of USE_PERL5. Now the following can be used: 5.8.8 - Exactly Perl 5.8.8. is required 5.8.8+ - At least Perl 5.8.8 is required 5.8.8- - Only usable with Perl 5.8.8 or earlier Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#12 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#12 (text+ko) ==== @@ -48,18 +48,30 @@ __prefix=${USE_PERL5:C/[^[:digit:].]+$//} __suffix=${USE_PERL5:C/^[0-9.]+//} +_u_perl_major= ${__prefix:C|^([1-9]+).*|\1|} +_u__perl_minor= 00${__prefix:C|^([1-9]+)\.([0-9]+).*|\2|} +_u_perl_minor= ${_u__perl_minor:C|^.*(...)|\1|} +.if ${_u_perl_minor} >= 100 +_u_perl_minor= ${__prefix:C|^([1-9]+)\.([0-9][0-9][0-9]).*|\2|} +_u_perl_patch= ${__prefix:C|^.*(..)|\1|} +.else # ${_u_perl_minor} < 100 +_u__perl_patch= 0${__prefix:C|^([1-9]+)\.([0-9]+)\.*|0|} +_u_perl_patch= ${_u__perl_patch:C|^.*(..)|\1|} +.endif # ${_u_perl_minor} < 100 +USE_PERL5_LEVEL= ${_u_perl_major}${_u_perl_minor}${_u_perl_patch} + .if ${__suffix} == "+" -.if ${__prefix} > ${PERL_LEVEL} +.if ${USE_PERL5_LEVEL} > ${PERL_LEVEL} USE_PERL5_REASON?= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 IGNORE= ${USE_PERL5_REASON) .endif .elif ${__suffix} == "" -.if ${__prefix} != ${PERL_LEVEL} +.if ${USE_PERL5_LEVEL} != ${PERL_LEVEL} USE_PERL5_REASON?= You need Perl ${__prefix} exactly IGNORE= ${USE_PERL5_REASON) .endif .elif ${__suffix} == "-" -.if ${__prefix} < ${PERL_LEVEL} +.if ${USE_PERL5_LEVEL} < ${PERL_LEVEL} USE_PERL5_REASON?= You need Perl ${__prefix} or earlier IGNORE= ${USE_PERL5_REASON) .endif From owner-p4-projects@FreeBSD.ORG Thu Aug 9 14:07:29 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0695A16A46C; Thu, 9 Aug 2007 14:07:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A80E316A41A for ; Thu, 9 Aug 2007 14:07:28 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 88FE213C4A7 for ; Thu, 9 Aug 2007 14:07:28 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79E7SmC053987 for ; Thu, 9 Aug 2007 14:07:28 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79E7SZr053984 for perforce@freebsd.org; Thu, 9 Aug 2007 14:07:28 GMT (envelope-from gabor@freebsd.org) Date: Thu, 9 Aug 2007 14:07:28 GMT Message-Id: <200708091407.l79E7SZr053984@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124950 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, 09 Aug 2007 14:07:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=124950 Change 124950 by gabor@gabor_server on 2007/08/09 14:06:28 - Rework header documentation. Only leave the "interface knobs" in bsd.port.mk, which imply the inclusion of bsd.perl.mk, move the other ones into bsd.perl.mk. - Add some examples about the use of USE_PERL5 and USE_PERL5_REASON Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#13 edit .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.mk#7 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#13 (text+ko) ==== @@ -8,6 +8,53 @@ # Please send all suggested changes to the maintainer instead of committing # them to CVS yourself. # +# +# PERL5 - Set to full path of perl5, either in the system or +# installed from a port. +# PERL - Set to full path of perl5, either in the system or +# installed from a port, but without the version number. +# Use this if you need to replace "#!" lines in scripts. +# PERL_VERSION - Full version of perl5 (see below for current value). +# PERL_VER - Short version of perl5 (see below for current value). +# PERL_LEVEL - Perl version as an integer of the form MNNNPP, where +# M is major version, N is minor version, and P is +# the patch level. E.g., PERL_VERSION=5.6.1 would give +# a PERL_LEVEL of 500601. This can be used in comparisons +# to determine if the version of perl is high enough, +# whether a particular dependency is needed, etc. +# PERL_ARCH - Directory name of architecture dependent libraries +# (value: ${ARCH}-freebsd). +# PERL_PORT - Name of the perl port that is installed +# (value: perl5) +# SITE_PERL - Directory name where site specific perl packages go. +# This value is added to PLIST_SUB. +# USE_PERL5 - If your port needs a specific version of Perl, you +# can easily specify that with this knob. If +# you need a certain minimal version, but don't +# care if about the upperversion, just put the +# + sign behind the version. If you want to +# specify a latest version your port can be used +# with, suffix the version number with a - sign. +# Exact version can also be specified if you just +# set USE_PERL5 to the desired version. If you +# just set USE_PERL5 to "yes", Perl will be +# pulled in as a dependency but no version check +# is done. +# +# USE_PERL5_REASON - Along with USE_PERL5, you can set a specific reason, +# why a given version is required. +# +# Examples: +# USE_PERL5= yes # port requires any version of Perl5 to build. +# USE_PERL5= 5.6.0+ # port requires at least Perl 5.6.0 to build. +# USE_PERL5= 5.8.2 # port is only usable with Perl 5.8.2. +# USE_PERL5= 5.8.6- # port is only usbale with Perl 5.8.6 or prior. +# +# This line along with a properly set USE_PERL5 will give the user a reason, +# why the specific ports cannot be installed into the given environment. +# +# USE_PERL5_REASON= this module is already part of your Perl version +# # $FreeBSD$ # ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.mk#7 (text+ko) ==== @@ -324,25 +324,6 @@ # - If set, this port uses perl5 in one or more of the extract, # patch, build or install phases. # USE_PERL5_RUN - If set, this port uses perl5 for running. -# PERL5 - Set to full path of perl5, either in the system or -# installed from a port. -# PERL - Set to full path of perl5, either in the system or -# installed from a port, but without the version number. -# Use this if you need to replace "#!" lines in scripts. -# PERL_VERSION - Full version of perl5 (see below for current value). -# PERL_VER - Short version of perl5 (see below for current value). -# PERL_LEVEL - Perl version as an integer of the form MNNNPP, where -# M is major version, N is minor version, and P is -# the patch level. E.g., PERL_VERSION=5.6.1 would give -# a PERL_LEVEL of 500601. This can be used in comparisons -# to determine if the version of perl is high enough, -# whether a particular dependency is needed, etc. -# PERL_ARCH - Directory name of architecture dependent libraries -# (value: ${ARCH}-freebsd). -# PERL_PORT - Name of the perl port that is installed -# (value: perl5) -# SITE_PERL - Directory name where site specific perl packages go. -# This value is added to PLIST_SUB. # PERL_MODBUILD - Use Module::Build to configure, build and install port. ## # USE_GHOSTSCRIPT From owner-p4-projects@FreeBSD.ORG Thu Aug 9 14:22:56 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E68416A46C; Thu, 9 Aug 2007 14:22:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A38816A469 for ; Thu, 9 Aug 2007 14:22:56 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 48A2813C459 for ; Thu, 9 Aug 2007 14:22:56 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79EMui4054950 for ; Thu, 9 Aug 2007 14:22:56 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79EMt2x054947 for perforce@freebsd.org; Thu, 9 Aug 2007 14:22:55 GMT (envelope-from gabor@freebsd.org) Date: Thu, 9 Aug 2007 14:22:55 GMT Message-Id: <200708091422.l79EMt2x054947@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124952 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, 09 Aug 2007 14:22:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=124952 Change 124952 by gabor@gabor_server on 2007/08/09 14:22:49 IFC Affected files ... .. //depot/projects/soc2006/gabor_destdir/MOVED#17 integrate .. //depot/projects/soc2006/gabor_destdir/Mk/bsd.database.mk#5 integrate .. //depot/projects/soc2006/gabor_destdir/Mk/bsd.java.mk#5 integrate .. //depot/projects/soc2006/gabor_destdir/Mk/bsd.openssl.mk#4 integrate .. //depot/projects/soc2006/gabor_destdir/Mk/bsd.port.mk#40 integrate .. //depot/projects/soc2006/gabor_destdir/Mk/bsd.port.subdir.mk#12 integrate .. //depot/projects/soc2006/gabor_ports/MOVED#18 integrate .. //depot/projects/soc2006/gabor_ports/Mk/bsd.database.mk#7 integrate .. //depot/projects/soc2006/gabor_ports/Mk/bsd.java.mk#6 integrate .. //depot/projects/soc2006/gabor_ports/Mk/bsd.openssl.mk#8 integrate .. //depot/projects/soc2006/gabor_ports/Mk/bsd.port.mk#88 integrate .. //depot/projects/soc2006/gabor_ports/Mk/bsd.port.subdir.mk#6 integrate Differences ... ==== //depot/projects/soc2006/gabor_destdir/MOVED#17 (text+ko) ==== @@ -1,7 +1,7 @@ # # MOVED - a list of (recently) moved or removed ports # -# $FreeBSD: ports/MOVED,v 1.1442 2007/08/03 07:24:48 clsung Exp $ +# $FreeBSD: ports/MOVED,v 1.1445 2007/08/08 19:30:35 sat Exp $ # # Each entry consists of a single line containing the following four # fields in the order named, separated with the pipe (`|') character: @@ -22,7 +22,6 @@ # (e.g. upgraded to a later version), don't record it here. # # Port|Moved to|Date|Why -lang/tcl-tk-wrapper||2007-05-31|Replaced by tcl-wrapper and tk-wrapper net/ratoolset|net/irrtoolset|2002-11-16|software was renamed chinese/linux-netscape47-communicator||2002-11-17|security vulnerability chinese/linux-netscape47-navigator||2002-11-17|security vulnerability @@ -2957,6 +2956,7 @@ games/marathon-evil||2007-05-28|Has expired: Installed by games/alephone-scenarios with wrapper script games/marathon2-data||2007-05-28|Has expired: Installed by games/alephone-data with wrapper script net-im/tik||2007-05-28|Has expired: uses the old and unsupported TOC protocol, use net-im/aim or net-im/gaim instead +lang/tcl-tk-wrapper||2007-05-31|Replaced by tcl-wrapper and tk-wrapper audio/gstreamer-plugins-a52dec80|audio/gstreamer-plugins-a52dec|2007-06-01|Gstreamer 0.8 has been removed audio/gstreamer-plugins-artsd80||2007-06-01|Gstreamer 0.8 has been removed audio/gstreamer-plugins-audiofile80||2007-06-01|Gstreamer 0.8 has been removed @@ -3139,3 +3139,6 @@ security/p5-openxpki-client-soap-lite||2007-08-01|Has expired: No longer maintained by Developers. net-mgmt/aircrack|net-mgmt/aircrack-ng|2007-08-01|Has expired: Please use net-mgmt/aircrack-ng databases/ruby-postgres|databases/rubygem-postgres|2007-08-03|Port updated in rubygem version +editors/flim113||2007-08-05|Expired: distfile no longer available +editors/semi113||2007-08-05|Expired: distfile no longer available +deskutils/intclock|x11-clocks/intclock|2007-08-08|Moved to a more appropriate category ==== //depot/projects/soc2006/gabor_destdir/Mk/bsd.database.mk#5 (text+ko) ==== @@ -1,7 +1,7 @@ # -*- mode: Makefile; tab-width: 4; -*- # ex: ts=4 # -# $FreeBSD: ports/Mk/bsd.database.mk,v 1.19 2007/08/02 05:42:21 delphij Exp $ +# $FreeBSD: ports/Mk/bsd.database.mk,v 1.20 2007/08/06 09:23:13 delphij Exp $ # .if defined(_POSTMKINCLUDED) && !defined(Database_Post_Include) @@ -196,7 +196,7 @@ .if defined(USE_BDB) -_DB_PORTS= 2 3 40 41 42 43 44 45 3+ 40+ 41+ 42+ 43+ 44+ 45+ +_DB_PORTS= 2 3 40 41 42 43 44 45 46 3+ 40+ 41+ 42+ 43+ 44+ 45+ 46+ # Dependence lines for different db versions db2_DEPENDS= db2.0:${PORTSDIR}/databases/db2 db3_DEPENDS= db3.3:${PORTSDIR}/databases/db3 @@ -206,6 +206,7 @@ db43_DEPENDS= db-4.3.0:${PORTSDIR}/databases/db43 db44_DEPENDS= db-4.4.0:${PORTSDIR}/databases/db44 db45_DEPENDS= db-4.5.0:${PORTSDIR}/databases/db45 +db46_DEPENDS= db-4.6.0:${PORTSDIR}/databases/db46 # Detect db versions by finding some files db3_FIND= ${LOCALBASE}/include/db3/db.h db40_FIND= ${LOCALBASE}/include/db4/db.h @@ -214,6 +215,7 @@ db43_FIND= ${LOCALBASE}/include/db43/db.h db44_FIND= ${LOCALBASE}/include/db44/db.h db45_FIND= ${LOCALBASE}/include/db45/db.h +db46_FIND= ${LOCALBASE}/include/db46/db.h # For specifying [3, 40, 41, ..]+ _DB_3P= 3 ${_DB_40P} @@ -222,7 +224,8 @@ _DB_42P= 42 ${_DB_43P} _DB_43P= 43 ${_DB_44P} _DB_44P= 44 ${_DB_45P} -_DB_45P= 45 +_DB_45P= 45 ${_DB_46P} +_DB_46P= 46 # Override the global WITH_BDB_VER with the # port specific _WITH_BDB_VER @@ -350,6 +353,10 @@ BDB_LIB_NAME= db-4.5 BDB_LIB_CXX_NAME= db_cxx-4.5 BDB_LIB_DIR= ${LOCALBASE}/lib/db45 +. elif ${_BDB_VER} == 46 +BDB_LIB_NAME= db-4.6 +BDB_LIB_CXX_NAME= db_cxx-4.6 +BDB_LIB_DIR= ${LOCALBASE}/lib/db46 . endif BDB_LIB_NAME?= db${_BDB_VER} BDB_LIB_CXX_NAME?= db${_BDB_VER}_cxx ==== //depot/projects/soc2006/gabor_destdir/Mk/bsd.java.mk#5 (text+ko) ==== @@ -9,7 +9,7 @@ # Please send all suggested changes to the maintainer instead of committing # them to CVS yourself. # -# $FreeBSD: ports/Mk/bsd.java.mk,v 1.78 2007/06/06 15:38:54 glewis Exp $ +# $FreeBSD: ports/Mk/bsd.java.mk,v 1.80 2007/08/05 21:19:47 glewis Exp $ # .if !defined(Java_Include) @@ -166,7 +166,7 @@ . endif # The complete list of Java versions, os and vendors supported. -__JAVA_VERSION_LIST= 1.1 1.2 1.3 1.4 1.5 +__JAVA_VERSION_LIST= 1.1 1.2 1.3 1.4 1.5 1.6 _JAVA_VERSION_LIST= ${__JAVA_VERSION_LIST} ${__JAVA_VERSION_LIST:S/$/+/} _JAVA_OS_LIST= native linux _JAVA_VENDOR_LIST= freebsd bsdjava sun blackdown @@ -185,6 +185,8 @@ VERSION=1.4.2 OS=native VENDOR=bsdjava _JAVA_PORT_NATIVE_BSDJAVA_JDK_1_5_INFO= PORT=java/jdk15 HOME=${LOCALBASE}/jdk1.5.0 \ VERSION=1.5.0 OS=native VENDOR=bsdjava +_JAVA_PORT_NATIVE_BSDJAVA_JDK_1_6_INFO= PORT=java/jdk16 HOME=${LOCALBASE}/jdk1.6.0 \ + VERSION=1.6.0 OS=native VENDOR=bsdjava _JAVA_PORT_LINUX_BLACKDOWN_JDK_1_2_INFO= PORT=java/linux-blackdown-jdk12 HOME=${LOCALBASE}/linux-blackdown-jdk1.2.2 \ VERSION=1.2.2 OS=linux VENDOR=blackdown _JAVA_PORT_LINUX_BLACKDOWN_JDK_1_4_INFO= PORT=java/linux-blackdown-jdk14 HOME=${LOCALBASE}/linux-blackdown-jdk1.4.2 \ @@ -197,6 +199,8 @@ VERSION=1.4.2 OS=linux VENDOR=sun _JAVA_PORT_LINUX_SUN_JDK_1_5_INFO= PORT=java/linux-sun-jdk15 HOME=${LOCALBASE}/linux-sun-jdk1.5.0 \ VERSION=1.5.0 OS=linux VENDOR=sun +_JAVA_PORT_LINUX_SUN_JDK_1_6_INFO= PORT=java/linux-sun-jdk16 HOME=${LOCALBASE}/linux-sun-jdk1.6.0 \ + VERSION=1.6.0 OS=linux VENDOR=sun # Verbose description for each VENDOR _JAVA_VENDOR_freebsd= "FreeBSD Foundation" @@ -218,11 +222,13 @@ # List all JDK ports __JAVA_PORTS_ALL= JAVA_PORT_NATIVE_FREEBSD_JDK_1_5 \ + JAVA_PORT_NATIVE_BSDJAVA_JDK_1_6 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_5 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_4 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_3 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_2 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_1 \ + JAVA_PORT_LINUX_SUN_JDK_1_6 \ JAVA_PORT_LINUX_SUN_JDK_1_5 \ JAVA_PORT_LINUX_SUN_JDK_1_4 \ JAVA_PORT_LINUX_SUN_JDK_1_3 \ @@ -302,7 +308,7 @@ . undef _JAVA_PORTS_INSTALLED . undef _JAVA_PORTS_POSSIBLE . if defined(JAVA_VERSION) -_JAVA_VERSION= ${JAVA_VERSION:S/1.1+/1.1 1.2 1.3 1.4 1.5/:S/1.2+/1.2 1.3 1.4 1.5/:S/1.3+/1.3 1.4 1.5/:S/1.4+/1.4 1.5/:S/1.5+/1.5/} +_JAVA_VERSION= ${JAVA_VERSION:S/1.1+/1.1 1.2 1.3 1.4 1.5 1.6/:S/1.2+/1.2 1.3 1.4 1.5 1.6/:S/1.3+/1.3 1.4 1.5 1.6/:S/1.4+/1.4 1.5 1.6/:S/1.5+/1.5 1.6/:S/1.6+/1.6/} . else _JAVA_VERSION= ${__JAVA_VERSION_LIST} . endif @@ -388,9 +394,10 @@ . undef HAVE_JIKES -# Enforce USE_JIKES=NO if not defined and using Java 1.5 +# Enforce USE_JIKES=NO if not defined and using Java 1.5+ # XXX: This is a temporary fix to be removed when Jikes supports Java 1.5 -. if ${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.5" +. if (${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.5") || \ + (${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.6") USE_JIKES?= NO . endif # First test if USE_JIKES has a valid value ==== //depot/projects/soc2006/gabor_destdir/Mk/bsd.openssl.mk#4 (text+ko) ==== @@ -2,7 +2,7 @@ # Date created: 31 May 2002 # Whom: dinoex # -# $FreeBSD: ports/Mk/bsd.openssl.mk,v 1.35 2007/08/04 11:37:23 gabor Exp $ +# $FreeBSD: ports/Mk/bsd.openssl.mk,v 1.36 2007/08/06 10:39:24 dinoex Exp $ # # Use of 'USE_OPENSSL=yes' includes this Makefile after bsd.ports.pre.mk # @@ -62,7 +62,7 @@ OPENSSLBASE= /usr OPENSSLDIR= /etc/ssl -.if !exists(/usr/lib/libcrypto.so) +.if !exists(${DESTDIR}/usr/lib/libcrypto.so) check-depends:: @${ECHO_CMD} "Dependency error: this port requires the OpenSSL library, which is part of" @${ECHO_CMD} "the FreeBSD crypto distribution but not installed on your" @@ -121,7 +121,7 @@ .if !defined(OPENSSL_PORT) && \ exists(${LOCALBASE}/lib/libcrypto.so) # find installed port and use it for dependency -PKG_DBDIR?= /var/db/pkg +PKG_DBDIR?= ${DESTDIR}/var/db/pkg OPENSSL_INSTALLED!= grep -l -r "^lib/libssl.so." "${PKG_DBDIR}" | \ while read contents; do \ sslprefix=`grep "^@cwd " "$${contents}" | ${HEAD} -n 1`; \ ==== //depot/projects/soc2006/gabor_destdir/Mk/bsd.port.mk#40 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.port.mk,v 1.579 2007/08/04 19:48:34 pav Exp $ +# $FreeBSD: ports/Mk/bsd.port.mk,v 1.580 2007/08/08 03:46:04 kris Exp $ # $NetBSD: $ # # bsd.port.mk - 940820 Jordan K. Hubbard. @@ -1089,6 +1089,17 @@ # Most port authors should not need to understand anything after this point. # +# These need to be absolute since we don't know how deep in the ports +# tree we are and thus can't go relative. They can, of course, be overridden +# by individual Makefiles or local system make configuration. +PORTSDIR?= /usr/ports +LOCALBASE?= /usr/local +X11BASE?= ${LOCALBASE} +LINUXBASE?= /compat/linux +DISTDIR?= ${PORTSDIR}/distfiles +_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} +INDEXDIR?= ${PORTSDIR} + .include "${PORTSDIR}/Mk/bsd.commands.mk" # @@ -1294,16 +1305,6 @@ PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION} DISTNAME?= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION:C/:(.)/\1/g}${DISTVERSIONSUFFIX} -# These need to be absolute since we don't know how deep in the ports -# tree we are and thus can't go relative. They can, of course, be overridden -# by individual Makefiles or local system make configuration. -PORTSDIR?= /usr/ports -LOCALBASE?= /usr/local -X11BASE?= ${LOCALBASE} -LINUXBASE?= /compat/linux -DISTDIR?= ${PORTSDIR}/distfiles -_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} -INDEXDIR?= ${PORTSDIR} INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} DOCSDIR?= ${PREFIX}/share/doc/${PORTNAME} @@ -2300,7 +2301,6 @@ .undef NO_PACKAGE .endif -COMMENTFILE?= ${PKGDIR}/pkg-comment DESCR?= ${PKGDIR}/pkg-descr PLIST?= ${PKGDIR}/pkg-plist PKGINSTALL?= ${PKGDIR}/pkg-install ==== //depot/projects/soc2006/gabor_destdir/Mk/bsd.port.subdir.mk#12 (text+ko) ==== @@ -2,7 +2,7 @@ # ex:ts=4 # # from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91 -# $FreeBSD: ports/Mk/bsd.port.subdir.mk,v 1.71 2007/08/04 11:37:24 gabor Exp $ +# $FreeBSD: ports/Mk/bsd.port.subdir.mk,v 1.72 2007/08/08 03:46:04 kris Exp $ # # The include file contains the default targets # for building ports subdirectories. @@ -40,6 +40,21 @@ # Search for ports using either 'make search key=' # or 'make search name='. +PORTSDIR?= /usr/ports +TEMPLATES?= ${PORTSDIR}/Templates +.if defined(PORTSTOP) +README= ${TEMPLATES}/README.top +.else +README= ${TEMPLATES}/README.category +.endif +MOVEDDIR?= ${PORTSDIR} +MOVEDFILE?= MOVED + +# XXX Are these needed here? DESCR was set wrong for a few years +MASTERDIR?= ${.CURDIR} +PKGDIR?= ${MASTERDIR} +DESCR?= ${PKGDIR}/pkg-descr + .include "${PORTSDIR}/Mk/bsd.commands.mk" .MAIN: all @@ -66,6 +81,9 @@ .endif .endif +INDEXDIR?= ${PORTSDIR} +INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} + UID!= ${ID} -u .if exists(${LOCALBASE}/sbin/pkg_info) PKG_INFO?= ${LOCALBASE}/sbin/pkg_info @@ -249,28 +267,6 @@ @${MAKE} README.html .endif -.if (${OPSYS} == "NetBSD") -PORTSDIR ?= /usr/opt -.else -PORTSDIR ?= /usr/ports -.endif -TEMPLATES ?= ${PORTSDIR}/Templates -.if defined(PORTSTOP) -README= ${TEMPLATES}/README.top -.else -README= ${TEMPLATES}/README.category -.endif -COMMENTFILE?= ${.CURDIR}/pkg/COMMENT -DESCR?= ${.CURDIR}/pkg/DESCR -INDEXDIR?= ${PORTSDIR} -.if ${OSVERSION} >= 500036 -INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} -.else -INDEXFILE?= INDEX -.endif -MOVEDDIR?= ${PORTSDIR} -MOVEDFILE?= MOVED - HTMLIFY= ${SED} -e 's/&/\&/g' -e 's/>/\>/g' -e 's/ $@.tmp4 .else -.if exists(${COMMENTFILE}) - @${HTMLIFY} ${COMMENTFILE} > $@.tmp4 -.else @> $@.tmp4 .endif -.endif @${CAT} ${README} | \ ${SED} -e 's/%%CATEGORY%%/'"`basename ${.CURDIR}`"'/g' \ -e '/%%COMMENT%%/r$@.tmp4' \ @@ -415,7 +407,7 @@ break; \ }\ } \ - if (toprint == 1 ) disp[fields[d[i]]] = 1; \ + if (toprint == 1 ) disp[fields[d[i]]] = 1; \ } \ } \ { \ ==== //depot/projects/soc2006/gabor_ports/MOVED#18 (text+ko) ==== @@ -1,7 +1,7 @@ # # MOVED - a list of (recently) moved or removed ports # -# $FreeBSD: ports/MOVED,v 1.1442 2007/08/03 07:24:48 clsung Exp $ +# $FreeBSD: ports/MOVED,v 1.1445 2007/08/08 19:30:35 sat Exp $ # # Each entry consists of a single line containing the following four # fields in the order named, separated with the pipe (`|') character: @@ -22,7 +22,6 @@ # (e.g. upgraded to a later version), don't record it here. # # Port|Moved to|Date|Why -lang/tcl-tk-wrapper||2007-05-31|Replaced by tcl-wrapper and tk-wrapper net/ratoolset|net/irrtoolset|2002-11-16|software was renamed chinese/linux-netscape47-communicator||2002-11-17|security vulnerability chinese/linux-netscape47-navigator||2002-11-17|security vulnerability @@ -2957,6 +2956,7 @@ games/marathon-evil||2007-05-28|Has expired: Installed by games/alephone-scenarios with wrapper script games/marathon2-data||2007-05-28|Has expired: Installed by games/alephone-data with wrapper script net-im/tik||2007-05-28|Has expired: uses the old and unsupported TOC protocol, use net-im/aim or net-im/gaim instead +lang/tcl-tk-wrapper||2007-05-31|Replaced by tcl-wrapper and tk-wrapper audio/gstreamer-plugins-a52dec80|audio/gstreamer-plugins-a52dec|2007-06-01|Gstreamer 0.8 has been removed audio/gstreamer-plugins-artsd80||2007-06-01|Gstreamer 0.8 has been removed audio/gstreamer-plugins-audiofile80||2007-06-01|Gstreamer 0.8 has been removed @@ -3139,3 +3139,6 @@ security/p5-openxpki-client-soap-lite||2007-08-01|Has expired: No longer maintained by Developers. net-mgmt/aircrack|net-mgmt/aircrack-ng|2007-08-01|Has expired: Please use net-mgmt/aircrack-ng databases/ruby-postgres|databases/rubygem-postgres|2007-08-03|Port updated in rubygem version +editors/flim113||2007-08-05|Expired: distfile no longer available +editors/semi113||2007-08-05|Expired: distfile no longer available +deskutils/intclock|x11-clocks/intclock|2007-08-08|Moved to a more appropriate category ==== //depot/projects/soc2006/gabor_ports/Mk/bsd.database.mk#7 (text+ko) ==== @@ -1,7 +1,7 @@ # -*- mode: Makefile; tab-width: 4; -*- # ex: ts=4 # -# $FreeBSD: ports/Mk/bsd.database.mk,v 1.19 2007/08/02 05:42:21 delphij Exp $ +# $FreeBSD: ports/Mk/bsd.database.mk,v 1.20 2007/08/06 09:23:13 delphij Exp $ # .if defined(_POSTMKINCLUDED) && !defined(Database_Post_Include) @@ -196,7 +196,7 @@ .if defined(USE_BDB) -_DB_PORTS= 2 3 40 41 42 43 44 45 3+ 40+ 41+ 42+ 43+ 44+ 45+ +_DB_PORTS= 2 3 40 41 42 43 44 45 46 3+ 40+ 41+ 42+ 43+ 44+ 45+ 46+ # Dependence lines for different db versions db2_DEPENDS= db2.0:${PORTSDIR}/databases/db2 db3_DEPENDS= db3.3:${PORTSDIR}/databases/db3 @@ -206,6 +206,7 @@ db43_DEPENDS= db-4.3.0:${PORTSDIR}/databases/db43 db44_DEPENDS= db-4.4.0:${PORTSDIR}/databases/db44 db45_DEPENDS= db-4.5.0:${PORTSDIR}/databases/db45 +db46_DEPENDS= db-4.6.0:${PORTSDIR}/databases/db46 # Detect db versions by finding some files db3_FIND= ${LOCALBASE}/include/db3/db.h db40_FIND= ${LOCALBASE}/include/db4/db.h @@ -214,6 +215,7 @@ db43_FIND= ${LOCALBASE}/include/db43/db.h db44_FIND= ${LOCALBASE}/include/db44/db.h db45_FIND= ${LOCALBASE}/include/db45/db.h +db46_FIND= ${LOCALBASE}/include/db46/db.h # For specifying [3, 40, 41, ..]+ _DB_3P= 3 ${_DB_40P} @@ -222,7 +224,8 @@ _DB_42P= 42 ${_DB_43P} _DB_43P= 43 ${_DB_44P} _DB_44P= 44 ${_DB_45P} -_DB_45P= 45 +_DB_45P= 45 ${_DB_46P} +_DB_46P= 46 # Override the global WITH_BDB_VER with the # port specific _WITH_BDB_VER @@ -350,6 +353,10 @@ BDB_LIB_NAME= db-4.5 BDB_LIB_CXX_NAME= db_cxx-4.5 BDB_LIB_DIR= ${LOCALBASE}/lib/db45 +. elif ${_BDB_VER} == 46 +BDB_LIB_NAME= db-4.6 +BDB_LIB_CXX_NAME= db_cxx-4.6 +BDB_LIB_DIR= ${LOCALBASE}/lib/db46 . endif BDB_LIB_NAME?= db${_BDB_VER} BDB_LIB_CXX_NAME?= db${_BDB_VER}_cxx ==== //depot/projects/soc2006/gabor_ports/Mk/bsd.java.mk#6 (text+ko) ==== @@ -9,7 +9,7 @@ # Please send all suggested changes to the maintainer instead of committing # them to CVS yourself. # -# $FreeBSD: ports/Mk/bsd.java.mk,v 1.78 2007/06/06 15:38:54 glewis Exp $ +# $FreeBSD: ports/Mk/bsd.java.mk,v 1.80 2007/08/05 21:19:47 glewis Exp $ # .if !defined(Java_Include) @@ -166,7 +166,7 @@ . endif # The complete list of Java versions, os and vendors supported. -__JAVA_VERSION_LIST= 1.1 1.2 1.3 1.4 1.5 +__JAVA_VERSION_LIST= 1.1 1.2 1.3 1.4 1.5 1.6 _JAVA_VERSION_LIST= ${__JAVA_VERSION_LIST} ${__JAVA_VERSION_LIST:S/$/+/} _JAVA_OS_LIST= native linux _JAVA_VENDOR_LIST= freebsd bsdjava sun blackdown @@ -185,6 +185,8 @@ VERSION=1.4.2 OS=native VENDOR=bsdjava _JAVA_PORT_NATIVE_BSDJAVA_JDK_1_5_INFO= PORT=java/jdk15 HOME=${LOCALBASE}/jdk1.5.0 \ VERSION=1.5.0 OS=native VENDOR=bsdjava +_JAVA_PORT_NATIVE_BSDJAVA_JDK_1_6_INFO= PORT=java/jdk16 HOME=${LOCALBASE}/jdk1.6.0 \ + VERSION=1.6.0 OS=native VENDOR=bsdjava _JAVA_PORT_LINUX_BLACKDOWN_JDK_1_2_INFO= PORT=java/linux-blackdown-jdk12 HOME=${LOCALBASE}/linux-blackdown-jdk1.2.2 \ VERSION=1.2.2 OS=linux VENDOR=blackdown _JAVA_PORT_LINUX_BLACKDOWN_JDK_1_4_INFO= PORT=java/linux-blackdown-jdk14 HOME=${LOCALBASE}/linux-blackdown-jdk1.4.2 \ @@ -197,6 +199,8 @@ VERSION=1.4.2 OS=linux VENDOR=sun _JAVA_PORT_LINUX_SUN_JDK_1_5_INFO= PORT=java/linux-sun-jdk15 HOME=${LOCALBASE}/linux-sun-jdk1.5.0 \ VERSION=1.5.0 OS=linux VENDOR=sun +_JAVA_PORT_LINUX_SUN_JDK_1_6_INFO= PORT=java/linux-sun-jdk16 HOME=${LOCALBASE}/linux-sun-jdk1.6.0 \ + VERSION=1.6.0 OS=linux VENDOR=sun # Verbose description for each VENDOR _JAVA_VENDOR_freebsd= "FreeBSD Foundation" @@ -218,11 +222,13 @@ # List all JDK ports __JAVA_PORTS_ALL= JAVA_PORT_NATIVE_FREEBSD_JDK_1_5 \ + JAVA_PORT_NATIVE_BSDJAVA_JDK_1_6 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_5 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_4 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_3 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_2 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_1 \ + JAVA_PORT_LINUX_SUN_JDK_1_6 \ JAVA_PORT_LINUX_SUN_JDK_1_5 \ JAVA_PORT_LINUX_SUN_JDK_1_4 \ JAVA_PORT_LINUX_SUN_JDK_1_3 \ @@ -302,7 +308,7 @@ . undef _JAVA_PORTS_INSTALLED . undef _JAVA_PORTS_POSSIBLE . if defined(JAVA_VERSION) -_JAVA_VERSION= ${JAVA_VERSION:S/1.1+/1.1 1.2 1.3 1.4 1.5/:S/1.2+/1.2 1.3 1.4 1.5/:S/1.3+/1.3 1.4 1.5/:S/1.4+/1.4 1.5/:S/1.5+/1.5/} +_JAVA_VERSION= ${JAVA_VERSION:S/1.1+/1.1 1.2 1.3 1.4 1.5 1.6/:S/1.2+/1.2 1.3 1.4 1.5 1.6/:S/1.3+/1.3 1.4 1.5 1.6/:S/1.4+/1.4 1.5 1.6/:S/1.5+/1.5 1.6/:S/1.6+/1.6/} . else _JAVA_VERSION= ${__JAVA_VERSION_LIST} . endif @@ -388,9 +394,10 @@ . undef HAVE_JIKES -# Enforce USE_JIKES=NO if not defined and using Java 1.5 +# Enforce USE_JIKES=NO if not defined and using Java 1.5+ # XXX: This is a temporary fix to be removed when Jikes supports Java 1.5 -. if ${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.5" +. if (${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.5") || \ + (${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.6") USE_JIKES?= NO . endif # First test if USE_JIKES has a valid value ==== //depot/projects/soc2006/gabor_ports/Mk/bsd.openssl.mk#8 (text+ko) ==== @@ -2,7 +2,7 @@ # Date created: 31 May 2002 # Whom: dinoex # -# $FreeBSD: ports/Mk/bsd.openssl.mk,v 1.35 2007/08/04 11:37:23 gabor Exp $ +# $FreeBSD: ports/Mk/bsd.openssl.mk,v 1.36 2007/08/06 10:39:24 dinoex Exp $ # # Use of 'USE_OPENSSL=yes' includes this Makefile after bsd.ports.pre.mk # @@ -62,7 +62,7 @@ OPENSSLBASE= /usr OPENSSLDIR= /etc/ssl -.if !exists(/usr/lib/libcrypto.so) +.if !exists(${DESTDIR}/usr/lib/libcrypto.so) check-depends:: @${ECHO_CMD} "Dependency error: this port requires the OpenSSL library, which is part of" @${ECHO_CMD} "the FreeBSD crypto distribution but not installed on your" @@ -121,7 +121,7 @@ .if !defined(OPENSSL_PORT) && \ exists(${LOCALBASE}/lib/libcrypto.so) # find installed port and use it for dependency -PKG_DBDIR?= /var/db/pkg +PKG_DBDIR?= ${DESTDIR}/var/db/pkg OPENSSL_INSTALLED!= grep -l -r "^lib/libssl.so." "${PKG_DBDIR}" | \ while read contents; do \ sslprefix=`grep "^@cwd " "$${contents}" | ${HEAD} -n 1`; \ ==== //depot/projects/soc2006/gabor_ports/Mk/bsd.port.mk#88 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.port.mk,v 1.579 2007/08/04 19:48:34 pav Exp $ +# $FreeBSD: ports/Mk/bsd.port.mk,v 1.580 2007/08/08 03:46:04 kris Exp $ # $NetBSD: $ # # bsd.port.mk - 940820 Jordan K. Hubbard. @@ -1104,6 +1104,17 @@ # Most port authors should not need to understand anything after this point. # +# These need to be absolute since we don't know how deep in the ports +# tree we are and thus can't go relative. They can, of course, be overridden +# by individual Makefiles or local system make configuration. +PORTSDIR?= /usr/ports +LOCALBASE?= /usr/local +X11BASE?= ${LOCALBASE} +LINUXBASE?= /compat/linux +DISTDIR?= ${PORTSDIR}/distfiles +_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} +INDEXDIR?= ${PORTSDIR} + .include "${PORTSDIR}/Mk/bsd.commands.mk" # @@ -1317,16 +1328,6 @@ PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION} DISTNAME?= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION:C/:(.)/\1/g}${DISTVERSIONSUFFIX} -# These need to be absolute since we don't know how deep in the ports -# tree we are and thus can't go relative. They can, of course, be overridden -# by individual Makefiles or local system make configuration. -PORTSDIR?= /usr/ports -LOCALBASE?= /usr/local -X11BASE?= ${LOCALBASE} -LINUXBASE?= /compat/linux -DISTDIR?= ${PORTSDIR}/distfiles -_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} -INDEXDIR?= ${PORTSDIR} INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} DOCSDIR?= ${PREFIX}/share/doc/${PORTNAME} @@ -2338,7 +2339,6 @@ .undef NO_PACKAGE .endif -COMMENTFILE?= ${PKGDIR}/pkg-comment DESCR?= ${PKGDIR}/pkg-descr PLIST?= ${PKGDIR}/pkg-plist PKGINSTALL?= ${PKGDIR}/pkg-install ==== //depot/projects/soc2006/gabor_ports/Mk/bsd.port.subdir.mk#6 (text+ko) ==== @@ -2,7 +2,7 @@ # ex:ts=4 # # from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91 -# $FreeBSD: ports/Mk/bsd.port.subdir.mk,v 1.71 2007/08/04 11:37:24 gabor Exp $ +# $FreeBSD: ports/Mk/bsd.port.subdir.mk,v 1.72 2007/08/08 03:46:04 kris Exp $ # # The include file contains the default targets # for building ports subdirectories. @@ -40,6 +40,21 @@ # Search for ports using either 'make search key=' # or 'make search name='. +PORTSDIR?= /usr/ports +TEMPLATES?= ${PORTSDIR}/Templates +.if defined(PORTSTOP) +README= ${TEMPLATES}/README.top +.else +README= ${TEMPLATES}/README.category +.endif +MOVEDDIR?= ${PORTSDIR} +MOVEDFILE?= MOVED + +# XXX Are these needed here? DESCR was set wrong for a few years +MASTERDIR?= ${.CURDIR} +PKGDIR?= ${MASTERDIR} +DESCR?= ${PKGDIR}/pkg-descr + .include "${PORTSDIR}/Mk/bsd.commands.mk" .MAIN: all @@ -66,6 +81,9 @@ .endif .endif +INDEXDIR?= ${PORTSDIR} +INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} + UID!= ${ID} -u .if exists(${LOCALBASE}/sbin/pkg_info) PKG_INFO?= ${LOCALBASE}/sbin/pkg_info @@ -249,28 +267,6 @@ @${MAKE} README.html .endif -.if (${OPSYS} == "NetBSD") -PORTSDIR ?= /usr/opt -.else -PORTSDIR ?= /usr/ports -.endif -TEMPLATES ?= ${PORTSDIR}/Templates -.if defined(PORTSTOP) -README= ${TEMPLATES}/README.top -.else -README= ${TEMPLATES}/README.category -.endif -COMMENTFILE?= ${.CURDIR}/pkg/COMMENT -DESCR?= ${.CURDIR}/pkg/DESCR -INDEXDIR?= ${PORTSDIR} -.if ${OSVERSION} >= 500036 -INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} -.else -INDEXFILE?= INDEX -.endif -MOVEDDIR?= ${PORTSDIR} -MOVEDFILE?= MOVED - HTMLIFY= ${SED} -e 's/&/\&/g' -e 's/>/\>/g' -e 's/ $@.tmp4 .else -.if exists(${COMMENTFILE}) - @${HTMLIFY} ${COMMENTFILE} > $@.tmp4 -.else @> $@.tmp4 .endif -.endif @${CAT} ${README} | \ ${SED} -e 's/%%CATEGORY%%/'"`basename ${.CURDIR}`"'/g' \ -e '/%%COMMENT%%/r$@.tmp4' \ @@ -415,7 +407,7 @@ break; \ }\ } \ - if (toprint == 1 ) disp[fields[d[i]]] = 1; \ + if (toprint == 1 ) disp[fields[d[i]]] = 1; \ } \ } \ { \ From owner-p4-projects@FreeBSD.ORG Thu Aug 9 14:25:00 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1BA0A16A419; Thu, 9 Aug 2007 14:25:00 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C254D16A46E for ; Thu, 9 Aug 2007 14:24:59 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B0A2F13C45A for ; Thu, 9 Aug 2007 14:24:59 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79EOxhi055023 for ; Thu, 9 Aug 2007 14:24:59 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79EOxA0055020 for perforce@freebsd.org; Thu, 9 Aug 2007 14:24:59 GMT (envelope-from gabor@freebsd.org) Date: Thu, 9 Aug 2007 14:24:59 GMT Message-Id: <200708091424.l79EOxA0055020@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124953 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, 09 Aug 2007 14:25:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=124953 Change 124953 by gabor@gabor_server on 2007/08/09 14:24:09 IFC Affected files ... .. //depot/projects/soc2007/gabor_perlmk/MOVED#3 integrate .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.database.mk#3 integrate .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.java.mk#2 integrate .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.openssl.mk#3 integrate .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.mk#8 integrate .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.subdir.mk#3 integrate Differences ... ==== //depot/projects/soc2007/gabor_perlmk/MOVED#3 (text+ko) ==== @@ -1,7 +1,7 @@ # # MOVED - a list of (recently) moved or removed ports # -# $FreeBSD: ports/MOVED,v 1.1442 2007/08/03 07:24:48 clsung Exp $ +# $FreeBSD: ports/MOVED,v 1.1445 2007/08/08 19:30:35 sat Exp $ # # Each entry consists of a single line containing the following four # fields in the order named, separated with the pipe (`|') character: @@ -22,7 +22,6 @@ # (e.g. upgraded to a later version), don't record it here. # # Port|Moved to|Date|Why -lang/tcl-tk-wrapper||2007-05-31|Replaced by tcl-wrapper and tk-wrapper net/ratoolset|net/irrtoolset|2002-11-16|software was renamed chinese/linux-netscape47-communicator||2002-11-17|security vulnerability chinese/linux-netscape47-navigator||2002-11-17|security vulnerability @@ -2957,6 +2956,7 @@ games/marathon-evil||2007-05-28|Has expired: Installed by games/alephone-scenarios with wrapper script games/marathon2-data||2007-05-28|Has expired: Installed by games/alephone-data with wrapper script net-im/tik||2007-05-28|Has expired: uses the old and unsupported TOC protocol, use net-im/aim or net-im/gaim instead +lang/tcl-tk-wrapper||2007-05-31|Replaced by tcl-wrapper and tk-wrapper audio/gstreamer-plugins-a52dec80|audio/gstreamer-plugins-a52dec|2007-06-01|Gstreamer 0.8 has been removed audio/gstreamer-plugins-artsd80||2007-06-01|Gstreamer 0.8 has been removed audio/gstreamer-plugins-audiofile80||2007-06-01|Gstreamer 0.8 has been removed @@ -3139,3 +3139,6 @@ security/p5-openxpki-client-soap-lite||2007-08-01|Has expired: No longer maintained by Developers. net-mgmt/aircrack|net-mgmt/aircrack-ng|2007-08-01|Has expired: Please use net-mgmt/aircrack-ng databases/ruby-postgres|databases/rubygem-postgres|2007-08-03|Port updated in rubygem version +editors/flim113||2007-08-05|Expired: distfile no longer available +editors/semi113||2007-08-05|Expired: distfile no longer available +deskutils/intclock|x11-clocks/intclock|2007-08-08|Moved to a more appropriate category ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.database.mk#3 (text+ko) ==== @@ -1,7 +1,7 @@ # -*- mode: Makefile; tab-width: 4; -*- # ex: ts=4 # -# $FreeBSD: ports/Mk/bsd.database.mk,v 1.19 2007/08/02 05:42:21 delphij Exp $ +# $FreeBSD: ports/Mk/bsd.database.mk,v 1.20 2007/08/06 09:23:13 delphij Exp $ # .if defined(_POSTMKINCLUDED) && !defined(Database_Post_Include) @@ -196,7 +196,7 @@ .if defined(USE_BDB) -_DB_PORTS= 2 3 40 41 42 43 44 45 3+ 40+ 41+ 42+ 43+ 44+ 45+ +_DB_PORTS= 2 3 40 41 42 43 44 45 46 3+ 40+ 41+ 42+ 43+ 44+ 45+ 46+ # Dependence lines for different db versions db2_DEPENDS= db2.0:${PORTSDIR}/databases/db2 db3_DEPENDS= db3.3:${PORTSDIR}/databases/db3 @@ -206,6 +206,7 @@ db43_DEPENDS= db-4.3.0:${PORTSDIR}/databases/db43 db44_DEPENDS= db-4.4.0:${PORTSDIR}/databases/db44 db45_DEPENDS= db-4.5.0:${PORTSDIR}/databases/db45 +db46_DEPENDS= db-4.6.0:${PORTSDIR}/databases/db46 # Detect db versions by finding some files db3_FIND= ${LOCALBASE}/include/db3/db.h db40_FIND= ${LOCALBASE}/include/db4/db.h @@ -214,6 +215,7 @@ db43_FIND= ${LOCALBASE}/include/db43/db.h db44_FIND= ${LOCALBASE}/include/db44/db.h db45_FIND= ${LOCALBASE}/include/db45/db.h +db46_FIND= ${LOCALBASE}/include/db46/db.h # For specifying [3, 40, 41, ..]+ _DB_3P= 3 ${_DB_40P} @@ -222,7 +224,8 @@ _DB_42P= 42 ${_DB_43P} _DB_43P= 43 ${_DB_44P} _DB_44P= 44 ${_DB_45P} -_DB_45P= 45 +_DB_45P= 45 ${_DB_46P} +_DB_46P= 46 # Override the global WITH_BDB_VER with the # port specific _WITH_BDB_VER @@ -350,6 +353,10 @@ BDB_LIB_NAME= db-4.5 BDB_LIB_CXX_NAME= db_cxx-4.5 BDB_LIB_DIR= ${LOCALBASE}/lib/db45 +. elif ${_BDB_VER} == 46 +BDB_LIB_NAME= db-4.6 +BDB_LIB_CXX_NAME= db_cxx-4.6 +BDB_LIB_DIR= ${LOCALBASE}/lib/db46 . endif BDB_LIB_NAME?= db${_BDB_VER} BDB_LIB_CXX_NAME?= db${_BDB_VER}_cxx ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.java.mk#2 (text+ko) ==== @@ -9,7 +9,7 @@ # Please send all suggested changes to the maintainer instead of committing # them to CVS yourself. # -# $FreeBSD: ports/Mk/bsd.java.mk,v 1.78 2007/06/06 15:38:54 glewis Exp $ +# $FreeBSD: ports/Mk/bsd.java.mk,v 1.80 2007/08/05 21:19:47 glewis Exp $ # .if !defined(Java_Include) @@ -166,7 +166,7 @@ . endif # The complete list of Java versions, os and vendors supported. -__JAVA_VERSION_LIST= 1.1 1.2 1.3 1.4 1.5 +__JAVA_VERSION_LIST= 1.1 1.2 1.3 1.4 1.5 1.6 _JAVA_VERSION_LIST= ${__JAVA_VERSION_LIST} ${__JAVA_VERSION_LIST:S/$/+/} _JAVA_OS_LIST= native linux _JAVA_VENDOR_LIST= freebsd bsdjava sun blackdown @@ -185,6 +185,8 @@ VERSION=1.4.2 OS=native VENDOR=bsdjava _JAVA_PORT_NATIVE_BSDJAVA_JDK_1_5_INFO= PORT=java/jdk15 HOME=${LOCALBASE}/jdk1.5.0 \ VERSION=1.5.0 OS=native VENDOR=bsdjava +_JAVA_PORT_NATIVE_BSDJAVA_JDK_1_6_INFO= PORT=java/jdk16 HOME=${LOCALBASE}/jdk1.6.0 \ + VERSION=1.6.0 OS=native VENDOR=bsdjava _JAVA_PORT_LINUX_BLACKDOWN_JDK_1_2_INFO= PORT=java/linux-blackdown-jdk12 HOME=${LOCALBASE}/linux-blackdown-jdk1.2.2 \ VERSION=1.2.2 OS=linux VENDOR=blackdown _JAVA_PORT_LINUX_BLACKDOWN_JDK_1_4_INFO= PORT=java/linux-blackdown-jdk14 HOME=${LOCALBASE}/linux-blackdown-jdk1.4.2 \ @@ -197,6 +199,8 @@ VERSION=1.4.2 OS=linux VENDOR=sun _JAVA_PORT_LINUX_SUN_JDK_1_5_INFO= PORT=java/linux-sun-jdk15 HOME=${LOCALBASE}/linux-sun-jdk1.5.0 \ VERSION=1.5.0 OS=linux VENDOR=sun +_JAVA_PORT_LINUX_SUN_JDK_1_6_INFO= PORT=java/linux-sun-jdk16 HOME=${LOCALBASE}/linux-sun-jdk1.6.0 \ + VERSION=1.6.0 OS=linux VENDOR=sun # Verbose description for each VENDOR _JAVA_VENDOR_freebsd= "FreeBSD Foundation" @@ -218,11 +222,13 @@ # List all JDK ports __JAVA_PORTS_ALL= JAVA_PORT_NATIVE_FREEBSD_JDK_1_5 \ + JAVA_PORT_NATIVE_BSDJAVA_JDK_1_6 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_5 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_4 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_3 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_2 \ JAVA_PORT_NATIVE_BSDJAVA_JDK_1_1 \ + JAVA_PORT_LINUX_SUN_JDK_1_6 \ JAVA_PORT_LINUX_SUN_JDK_1_5 \ JAVA_PORT_LINUX_SUN_JDK_1_4 \ JAVA_PORT_LINUX_SUN_JDK_1_3 \ @@ -302,7 +308,7 @@ . undef _JAVA_PORTS_INSTALLED . undef _JAVA_PORTS_POSSIBLE . if defined(JAVA_VERSION) -_JAVA_VERSION= ${JAVA_VERSION:S/1.1+/1.1 1.2 1.3 1.4 1.5/:S/1.2+/1.2 1.3 1.4 1.5/:S/1.3+/1.3 1.4 1.5/:S/1.4+/1.4 1.5/:S/1.5+/1.5/} +_JAVA_VERSION= ${JAVA_VERSION:S/1.1+/1.1 1.2 1.3 1.4 1.5 1.6/:S/1.2+/1.2 1.3 1.4 1.5 1.6/:S/1.3+/1.3 1.4 1.5 1.6/:S/1.4+/1.4 1.5 1.6/:S/1.5+/1.5 1.6/:S/1.6+/1.6/} . else _JAVA_VERSION= ${__JAVA_VERSION_LIST} . endif @@ -388,9 +394,10 @@ . undef HAVE_JIKES -# Enforce USE_JIKES=NO if not defined and using Java 1.5 +# Enforce USE_JIKES=NO if not defined and using Java 1.5+ # XXX: This is a temporary fix to be removed when Jikes supports Java 1.5 -. if ${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.5" +. if (${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.5") || \ + (${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.6") USE_JIKES?= NO . endif # First test if USE_JIKES has a valid value ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.openssl.mk#3 (text+ko) ==== @@ -2,7 +2,7 @@ # Date created: 31 May 2002 # Whom: dinoex # -# $FreeBSD: ports/Mk/bsd.openssl.mk,v 1.35 2007/08/04 11:37:23 gabor Exp $ +# $FreeBSD: ports/Mk/bsd.openssl.mk,v 1.36 2007/08/06 10:39:24 dinoex Exp $ # # Use of 'USE_OPENSSL=yes' includes this Makefile after bsd.ports.pre.mk # @@ -62,7 +62,7 @@ OPENSSLBASE= /usr OPENSSLDIR= /etc/ssl -.if !exists(/usr/lib/libcrypto.so) +.if !exists(${DESTDIR}/usr/lib/libcrypto.so) check-depends:: @${ECHO_CMD} "Dependency error: this port requires the OpenSSL library, which is part of" @${ECHO_CMD} "the FreeBSD crypto distribution but not installed on your" @@ -121,7 +121,7 @@ .if !defined(OPENSSL_PORT) && \ exists(${LOCALBASE}/lib/libcrypto.so) # find installed port and use it for dependency -PKG_DBDIR?= /var/db/pkg +PKG_DBDIR?= ${DESTDIR}/var/db/pkg OPENSSL_INSTALLED!= grep -l -r "^lib/libssl.so." "${PKG_DBDIR}" | \ while read contents; do \ sslprefix=`grep "^@cwd " "$${contents}" | ${HEAD} -n 1`; \ ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.mk#8 (text+ko) ==== @@ -1,7 +1,7 @@ #-*- mode: makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.port.mk,v 1.579 2007/08/04 19:48:34 pav Exp $ +# $FreeBSD: ports/Mk/bsd.port.mk,v 1.580 2007/08/08 03:46:04 kris Exp $ # $NetBSD: $ # # bsd.port.mk - 940820 Jordan K. Hubbard. @@ -1070,6 +1070,17 @@ # Most port authors should not need to understand anything after this point. # +# These need to be absolute since we don't know how deep in the ports +# tree we are and thus can't go relative. They can, of course, be overridden +# by individual Makefiles or local system make configuration. +PORTSDIR?= /usr/ports +LOCALBASE?= /usr/local +X11BASE?= ${LOCALBASE} +LINUXBASE?= /compat/linux +DISTDIR?= ${PORTSDIR}/distfiles +_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} +INDEXDIR?= ${PORTSDIR} + .include "${PORTSDIR}/Mk/bsd.commands.mk" # @@ -1275,16 +1286,6 @@ PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION} DISTNAME?= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION:C/:(.)/\1/g}${DISTVERSIONSUFFIX} -# These need to be absolute since we don't know how deep in the ports -# tree we are and thus can't go relative. They can, of course, be overridden -# by individual Makefiles or local system make configuration. -PORTSDIR?= /usr/ports -LOCALBASE?= /usr/local -X11BASE?= ${LOCALBASE} -LINUXBASE?= /compat/linux -DISTDIR?= ${PORTSDIR}/distfiles -_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} -INDEXDIR?= ${PORTSDIR} INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} DOCSDIR?= ${PREFIX}/share/doc/${PORTNAME} @@ -2211,7 +2212,6 @@ .undef NO_PACKAGE .endif -COMMENTFILE?= ${PKGDIR}/pkg-comment DESCR?= ${PKGDIR}/pkg-descr PLIST?= ${PKGDIR}/pkg-plist PKGINSTALL?= ${PKGDIR}/pkg-install ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.subdir.mk#3 (text+ko) ==== @@ -2,7 +2,7 @@ # ex:ts=4 # # from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91 -# $FreeBSD: ports/Mk/bsd.port.subdir.mk,v 1.71 2007/08/04 11:37:24 gabor Exp $ +# $FreeBSD: ports/Mk/bsd.port.subdir.mk,v 1.72 2007/08/08 03:46:04 kris Exp $ # # The include file contains the default targets # for building ports subdirectories. @@ -40,6 +40,21 @@ # Search for ports using either 'make search key=' # or 'make search name='. +PORTSDIR?= /usr/ports +TEMPLATES?= ${PORTSDIR}/Templates +.if defined(PORTSTOP) +README= ${TEMPLATES}/README.top +.else +README= ${TEMPLATES}/README.category +.endif +MOVEDDIR?= ${PORTSDIR} +MOVEDFILE?= MOVED + +# XXX Are these needed here? DESCR was set wrong for a few years +MASTERDIR?= ${.CURDIR} +PKGDIR?= ${MASTERDIR} +DESCR?= ${PKGDIR}/pkg-descr + .include "${PORTSDIR}/Mk/bsd.commands.mk" .MAIN: all @@ -66,6 +81,9 @@ .endif .endif +INDEXDIR?= ${PORTSDIR} +INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} + UID!= ${ID} -u .if exists(${LOCALBASE}/sbin/pkg_info) PKG_INFO?= ${LOCALBASE}/sbin/pkg_info @@ -249,28 +267,6 @@ @${MAKE} README.html .endif -.if (${OPSYS} == "NetBSD") -PORTSDIR ?= /usr/opt -.else -PORTSDIR ?= /usr/ports -.endif -TEMPLATES ?= ${PORTSDIR}/Templates -.if defined(PORTSTOP) -README= ${TEMPLATES}/README.top -.else -README= ${TEMPLATES}/README.category -.endif -COMMENTFILE?= ${.CURDIR}/pkg/COMMENT -DESCR?= ${.CURDIR}/pkg/DESCR -INDEXDIR?= ${PORTSDIR} -.if ${OSVERSION} >= 500036 -INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} -.else -INDEXFILE?= INDEX -.endif -MOVEDDIR?= ${PORTSDIR} -MOVEDFILE?= MOVED - HTMLIFY= ${SED} -e 's/&/\&/g' -e 's/>/\>/g' -e 's/ $@.tmp4 .else -.if exists(${COMMENTFILE}) - @${HTMLIFY} ${COMMENTFILE} > $@.tmp4 -.else @> $@.tmp4 .endif -.endif @${CAT} ${README} | \ ${SED} -e 's/%%CATEGORY%%/'"`basename ${.CURDIR}`"'/g' \ -e '/%%COMMENT%%/r$@.tmp4' \ @@ -415,7 +407,7 @@ break; \ }\ } \ - if (toprint == 1 ) disp[fields[d[i]]] = 1; \ + if (toprint == 1 ) disp[fields[d[i]]] = 1; \ } \ } \ { \ From owner-p4-projects@FreeBSD.ORG Thu Aug 9 14:59:49 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 820FB16A46C; Thu, 9 Aug 2007 14:59:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 404C116A469 for ; Thu, 9 Aug 2007 14:59:49 +0000 (UTC) (envelope-from avatar@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 301F513C46C for ; Thu, 9 Aug 2007 14:59:49 +0000 (UTC) (envelope-from avatar@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79Exiqn056823 for ; Thu, 9 Aug 2007 14:59:49 GMT (envelope-from avatar@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79Exhuq056820 for perforce@freebsd.org; Thu, 9 Aug 2007 14:59:43 GMT (envelope-from avatar@freebsd.org) Date: Thu, 9 Aug 2007 14:59:43 GMT Message-Id: <200708091459.l79Exhuq056820@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to avatar@freebsd.org using -f From: Tai-hwa Liang To: Perforce Change Reviews Cc: Subject: PERFORCE change 124956 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, 09 Aug 2007 14:59:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=124956 Change 124956 by avatar@avatar_t40 on 2007/08/09 14:59:34 Fixing invalid channel display in ifconfig(8) by implementing required ioctl(). Note that other information provided by ifconfig(8) such like "list chan" or "list ap" are still not available at this moment. Before an(4) is connected to wlan(4), users are encouraged to use ancontrol(8) to retrieve aforementioned information. Reported by: dhw (http://lists.freebsd.org/pipermail/freebsd-current/2007-July/074848.html) Reviewed by: ambrisko Tested by: dhw MFP4 after: 2 weeks Affected files ... .. //depot/projects/wifi/sys/dev/an/if_an.c#16 edit Differences ... ==== //depot/projects/wifi/sys/dev/an/if_an.c#16 (text+ko) ==== @@ -1862,6 +1862,7 @@ struct ifreq *ifr; struct thread *td = curthread; struct ieee80211req *ireq; + struct ieee80211_channel ch; u_int8_t tmpstr[IEEE80211_NWID_LEN*2]; u_int8_t *tmpptr; struct an_ltv_genconfig *config; @@ -2217,6 +2218,22 @@ } ireq->i_val = status->an_cur_channel; break; + case IEEE80211_IOC_CURCHAN: + sc->areq.an_type = AN_RID_STATUS; + if (an_read_record(sc, + (struct an_ltv_gen *)&sc->areq)) { + error = EINVAL; + break; + } + bzero(&ch, sizeof(ch)); + ch.ic_freq = ieee80211_ieee2mhz(status->an_cur_channel, + IEEE80211_CHAN_B); + ch.ic_flags = IEEE80211_CHAN_B; + ch.ic_ieee = status->an_cur_channel; + AN_UNLOCK(sc); + error = copyout(&ch, ireq->i_data, sizeof(ch)); + AN_LOCK(sc); + break; case IEEE80211_IOC_POWERSAVE: sc->areq.an_type = AN_RID_ACTUALCFG; if (an_read_record(sc, From owner-p4-projects@FreeBSD.ORG Thu Aug 9 17:05:27 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8CFB816A468; Thu, 9 Aug 2007 17:05:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A88316A420 for ; Thu, 9 Aug 2007 17:05:27 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4A70213C4B0 for ; Thu, 9 Aug 2007 17:05:27 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79H5RXM076872 for ; Thu, 9 Aug 2007 17:05:27 GMT (envelope-from jbr@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79H5Q74076869 for perforce@freebsd.org; Thu, 9 Aug 2007 17:05:26 GMT (envelope-from jbr@FreeBSD.org) Date: Thu, 9 Aug 2007 17:05:26 GMT Message-Id: <200708091705.l79H5Q74076869@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jbr@FreeBSD.org using -f From: Jesper Brix Rosenkilde To: Perforce Change Reviews Cc: Subject: PERFORCE change 124960 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, 09 Aug 2007 17:05:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=124960 Change 124960 by jbr@jbr_bob on 2007/08/09 17:05:23 The page allocation has been moved Affected files ... .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#9 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/exec.h#2 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.c#6 edit Differences ... ==== //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#9 (text+ko) ==== @@ -445,6 +445,8 @@ goto exec_fail_dealloc; } + exec_map_sysshm(imgp); + /* * Special interpreter operation, cleanup and loop up to try to * activate the interpreter. @@ -902,6 +904,18 @@ } } +int +exec_map_sysshm(imgp) + struct image_params *imgp; +{ + vm_map_t map = &imgp->proc->p_vmspace->vm_map; + vm_offset_t *addr = &imgp->proc->p_sysent->sv_sysshm; + + vm_map_sysshm(map, addr, 42); + + return(0); +} + /* * Destroy old address space, and allocate a new stack * The new stack is only SGROWSIZ large because it is grown @@ -918,7 +932,7 @@ vm_offset_t stack_addr; vm_map_t map; u_long ssiz; - + imgp->vmspace_destroyed = 1; imgp->sysent = sv; @@ -969,11 +983,6 @@ vmspace->vm_ssize = sgrowsiz >> PAGE_SHIFT; vmspace->vm_maxsaddr = (char *)sv->sv_usrstack - ssiz; - /* Allocate memory shared between process and kernel */ - error = vm_map_sysshm(map, &(sv->sv_sysshm), 42); - if (error) - return (error); - return (0); } ==== //depot/projects/soc2007/jbr-syscall/src/sys/sys/exec.h#2 (text+ko) ==== @@ -74,6 +74,8 @@ int exec_map_first_page(struct image_params *); void exec_unmap_first_page(struct image_params *); +int exec_map_sysshm(struct image_params *); + int exec_register(const struct execsw *); int exec_unregister(const struct execsw *); ==== //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.c#6 (text+ko) ==== @@ -2993,11 +2993,14 @@ size = round_page(size); - *addr = round_page((vm_offset_t) - curthread->td_proc->p_vmspace->vm_daddr); - -/* error = vm_map_find(map, NULL, 0, addr, size, TRUE, VM_PROT_NONE, */ -/* VM_PROT_ALL, 0); */ + PROC_LOCK(curthread->td_proc); + *addr = round_page((vm_offset_t) + curthread->td_proc->p_vmspace->vm_daddr) + + lim_cur(curthread->td_proc, RLIMIT_DATA); + PROC_UNLOCK(curthread->td_proc); + + error = vm_map_find(map, NULL, 0, addr, size, TRUE, VM_PROT_NONE, + VM_PROT_ALL, 0); return (error); } From owner-p4-projects@FreeBSD.ORG Thu Aug 9 17:24:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFD4016A41B; Thu, 9 Aug 2007 17:24:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B25516A417 for ; Thu, 9 Aug 2007 17:24:52 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3EB0C13C46A for ; Thu, 9 Aug 2007 17:24:52 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79HOp6d078047 for ; Thu, 9 Aug 2007 17:24:52 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79HOpkc078044 for perforce@freebsd.org; Thu, 9 Aug 2007 17:24:51 GMT (envelope-from mharvan@FreeBSD.org) Date: Thu, 9 Aug 2007 17:24:51 GMT Message-Id: <200708091724.l79HOpkc078044@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124961 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, 09 Aug 2007 17:24:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=124961 Change 124961 by mharvan@mharvan_bike-planet on 2007/08/09 17:24:49 first attempt for a tcp catchall socket - not yet working Affected files ... .. //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/catchalld.c#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/dmesg_tail#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/sys.patch#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/usr.patch#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 9 18:07:47 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BF2F216A421; Thu, 9 Aug 2007 18:07:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B23916A418 for ; Thu, 9 Aug 2007 18:07:46 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 649FB13C45E for ; Thu, 9 Aug 2007 18:07:46 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79I7kvr081710 for ; Thu, 9 Aug 2007 18:07:46 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79I7kEF081707 for perforce@freebsd.org; Thu, 9 Aug 2007 18:07:46 GMT (envelope-from mharvan@FreeBSD.org) Date: Thu, 9 Aug 2007 18:07:46 GMT Message-Id: <200708091807.l79I7kEF081707@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124963 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, 09 Aug 2007 18:07:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=124963 Change 124963 by mharvan@mharvan_bike-planet on 2007/08/09 18:07:29 use err(3) rather than errx(3) when errno is available Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.src/mtund.c#2 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/mtund.src/mtund.c#2 (text+ko) ==== @@ -310,7 +310,7 @@ /* fragment reassembly timeout */ if (gettimeofday(&tv, NULL) != 0) { - errx(EX_OSERR, "gettimeofday() failed"); + err(EX_OSERR, "gettimeofday() failed"); } else { LIST_FOREACH_SAFE(np, &frag_info_list, frag_infos, np_temp) { if (tv.tv_sec - np->tv_sec > FRAG_TIMEOUT) { @@ -409,7 +409,7 @@ /* collect information about the fragments */ if (gettimeofday(&tv, NULL) != 0) { - errx(EX_OSERR, "gettimeofday() failed"); + err(EX_OSERR, "gettimeofday() failed"); } p->id = frag_hdr->id; p->size = frag_hdr->size; From owner-p4-projects@FreeBSD.ORG Thu Aug 9 18:29:15 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D51C316A468; Thu, 9 Aug 2007 18:29:14 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92D3D16A41B for ; Thu, 9 Aug 2007 18:29:14 +0000 (UTC) (envelope-from thioretic@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 826D813C458 for ; Thu, 9 Aug 2007 18:29:14 +0000 (UTC) (envelope-from thioretic@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79ITEim082833 for ; Thu, 9 Aug 2007 18:29:14 GMT (envelope-from thioretic@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79ITERa082830 for perforce@freebsd.org; Thu, 9 Aug 2007 18:29:14 GMT (envelope-from thioretic@FreeBSD.org) Date: Thu, 9 Aug 2007 18:29:14 GMT Message-Id: <200708091829.l79ITERa082830@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thioretic@FreeBSD.org using -f From: Maxim Zhuravlev To: Perforce Change Reviews Cc: Subject: PERFORCE change 124964 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, 09 Aug 2007 18:29:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=124964 Change 124964 by thioretic@thioretic on 2007/08/09 18:29:10 Errata, some locking. Affected files ... .. //depot/projects/soc2007/thioretic_gidl2/kern/subr_busio.c#2 edit .. //depot/projects/soc2007/thioretic_gidl2/sys/uio.h#2 edit Differences ... ==== //depot/projects/soc2007/thioretic_gidl2/kern/subr_busio.c#2 (text+ko) ==== @@ -3,6 +3,10 @@ #include #include #include +#include +#include +#include +#include static MALLOC_DEFINE(M_BUS_IO, "bus_io", "Bus io subsystem data structures"); @@ -15,8 +19,42 @@ typedef work_kthread* work_kthread_t; typedef TAILQ_HEAD(work_kthread_list, work_kthread) work_kthread_list_t; +static work_kthread_list_t work_kthreads = TAILQ_HEAD_INITIALIZER(work_kthreads); + +static struct mtx work_kthreads_list_mtx; -static work_kthread_list_t work_kthreads = TAILQ_HEAD_INITIALIZER(work_kthreads); +struct ior { +#define OPEN 1<<0 +#define FDOPEN 1<<1 +#define CLOSE 1<<2 +#define READ 1<<3 +#define WRITE 1<<4 +#define IOCTL 1<<5 +#define POLL 1<<6 +#define MMAP 1<<7 +#define STRATEGY 1<<8 +#define DUMP 1<<9 +#define KQFILTER 1<<10 +#define PURGE 1<<11 +#define SPARE2 1<<12 + u_int32_t type; + void* data; +#define IORS_INVALIDATE 1<<0 +#define IORS_DONE 1<<1 +#define IORS_RETRY 1<<2 + u_int32_t state; + u_int32_t flags; + ior_t parent; + ior_list_t children; + devicelink_list_t path; + TAILQ_ENTRY (ior) link; +}; +typedef struct ior* ior_t; + +typedef TAILQ_HEAD(ior_list, ior) ior_list_t; +static ior_list_t iors = TAILQ_HEAD_INITIALIZER(iors); + +static struct mtx iors_list_mtx; SYSCTL_NODE(_kern, OID_AUTO, newbus, CTLFLAG_RW, 0, "Newbus tuneup family"); @@ -31,44 +69,70 @@ work_kthreads_set_number, "I", "Number of kernel threads" "to process queued io requests"); +static void bus_io_process_next_irp (work_kthread_t tp); + static void work_kthread_proc (void *arg){ - static work_kthread_t my_pwk = *((work_kthread_t)arg); + static work_kthread_t my_pwk = ((work_kthread_t)arg); + struct thread *tp = FIRST_THREAD_IN_PROC(my_pwk->kthread); + + mtx_lock_spin (&sched_lock); + sched_prio (tp, ); /*TODO*/ + mtx_unlock_spin (&sched_lock); + + while (TRUE){ + if (my_pwk->flags & WKF_REMOVE){ + mtx_lock (&work_kthreads_list_mtx); + TAILQ_REMOVE (&work_kthreads, my_pwk, link); + mtx_unlock (&work_kthreads_list_mtx); + free (my_pwk); + kthread_exit (0); + return (); + } + bus_io_process_next_irp (my_pwk); + } } static void reset_work_kthreads (void){ work_kthread_t pwk; - u_int32_t cur_work_kthread_num; + u_int32_t cur_work_kthreads_num; if (old_work_kthreads_num == work_kthreads_num) return (); + if (!mtx_initialized (&work_kthreads_list_mtx)) + mtx_init (&work_kthreads_list_mtx, + "bus_io_work_threads_list_mtx", + NULL, MTX_DEF); + + mtx_lock (&work_kthreads_list_mtx); + if (old_work_kthreads_num < work_kthreads_num){ - cur_work_kthread_num = old_work_kthreads_num; + cur_work_kthreads_num = old_work_kthreads_num; do{ - id = cur_work_kthreads_num; pwk = malloc (sizeof(struct work_kthread), M_BUS_IO, M_NOWAIT|M_ZERO); - if (!pwk || kthread_create (&work_kthread_proc, &pwk, - &(pwk->kthread), 0, 0, "bus_io_work_kthread%d", id)){ + if (!pwk || kthread_create (&work_kthread_proc, pwk, + &(pwk->kthread), 0, 0, "bus_io_work_kthread%d", + cur_work_kthreads_num)){ work_kthreads_num = cur_work_kthreads_num; if (pwk) free(pwk); - return (); + break; } TAILQ_INSERT_TAIL(&work_kthreads, pwk, link); }while (work_kthreads_num < ++cur_work_kthreads_num); } else{ - cur_work_kthread_num = work_kthreads_num; + cur_work_kthreads_num = work_kthreads_num; TAILQ_FOREACH(pwk, &work_kthreads, link){ - if(cur_work_kthreads_num){ + if(cur_work_kthreads_num) cur_work_kthreads_num--; - } - else{ + else pwk->flags |= WKF_REMOVE; - } } } + + mtx_unlock (&work_kthreads_list_mtx); } static int @@ -92,5 +156,12 @@ void bus_io_init (void){ + mtx_init (&iors_list_mtx, + "bus_io_iors_list_mtx", + NULL, MTX_DEF); reset_work_kthreads(); +} + +static void +bus_io_process_next_irp (work_kthread_t wkt){ } ==== //depot/projects/soc2007/thioretic_gidl2/sys/uio.h#2 (text+ko) ==== @@ -68,11 +68,6 @@ enum uio_seg uio_segflg; enum uio_rw uio_rw; struct thread *uio_td; - char* stack_path; -#define INVALIDATE 1 -#define FULFILLED 2 -#define RETRY 4 - int state; }; /* From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:07:02 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4F4F816A41A; Thu, 9 Aug 2007 19:07:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2244716A418 for ; Thu, 9 Aug 2007 19:07:02 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 06EFB13C4A5 for ; Thu, 9 Aug 2007 19:07:02 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79J71gL086321 for ; Thu, 9 Aug 2007 19:07:01 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79J71wC086318 for perforce@freebsd.org; Thu, 9 Aug 2007 19:07:01 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:07:01 GMT Message-Id: <200708091907.l79J71wC086318@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124965 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, 09 Aug 2007 19:07:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=124965 Change 124965 by fli@fli_nexus on 2007/08/09 19:06:10 - Add utf8_casecmp() to do case insensitive string compairsons. - Add utf8_tolower() that converts a string to lower case. - const'ify some argument in utf8_{en,de}code while here. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/utf8.c#2 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/utf8.h#2 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/utf8_cfold.c#1 add Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/utf8.c#2 (text+ko) ==== @@ -26,10 +26,14 @@ #include +#include #include #include "utf8.h" +extern struct casemap unicm_up2low[]; +extern int unicm_up2low_size; + /* * utf8_encode * Encodes a wide character string into an UTF-8 byte sequence @@ -46,10 +50,11 @@ * This function is partially based on code from libarchive by Tim Kientzle */ ssize_t -utf8_encode(wchar_t *src, char *dst, size_t dlen) +utf8_encode(const wchar_t *src, char *dst, size_t dlen) { char *p; - wchar_t *wp, wc; + const wchar_t *wp; + wchar_t wc; size_t len; len = 0; @@ -106,10 +111,11 @@ * Returns logical length of decoded string or -1 on failure */ ssize_t -utf8_decode(char *src, size_t slen, wchar_t *dst, size_t dlen) +utf8_decode(const char *src, size_t slen, wchar_t *dst, size_t dlen) { size_t len; - char c, *p; + const char *p; + char c; wchar_t *wp; if (dlen < slen) @@ -149,3 +155,184 @@ return (len); } + +static inline int +chrdec(const char *p, uint32_t *v, const char *end) +{ + char c = *p; + + if ((c & 0xf8) == 0xf0 && ((p + 3) < end)) { + *v = (p[0] & 0x7) << 18; + *v |= (p[1] & 0x3f) << 12; + *v |= (p[2] & 0x3f) << 6; + *v |= (p[3] & 0x3f); + return (4); + } + else if ((c & 0xf0) == 0xe0 && ((p + 2) < end)) { + *v = (p[0] & 0xf) << 12; + *v |= (p[1] & 0x3f) << 6; + *v |= (p[2] & 0x3f); + return (3); + } + else if ((c & 0xe0) == 0xc0 && ((p + 1) < end)) { + *v = (p[0] & 0x1f) << 6; + *v |= (p[1] & 0x3f); + return (2); + } + else if ((c & 0x80) == 0) { + *v = c & 0x7f; + return (1); + } + return (0); +} + +static inline int +chrenc(char *p, uint32_t val, char *end) +{ + + if (val <= 0x7f) { + *p = (char)val; + return (1); + } else if (val <= 0x7ff && ((p + 1) < end)) { + p[0] = 0xc0 | ((val >> 6) & 0x1f); + p[1] = 0x80 | (val & 0x3f); + return (2); + } else if (val <= 0xffff && ((p + 2) < end)) { + p[0] = 0xe0 | ((val >> 12) & 0x0f); + p[1] = 0x80 | ((val >> 6) & 0x3f); + p[2] = 0x80 | (val & 0x3f); + return (3); + } else if (val <= 0x10ffff && ((p + 3) < end)) { + p[0] = 0xf0 | ((val >> 18) & 0x07); + p[1] = 0x80 | ((val >> 12) & 0x3f); + p[2] = 0x80 | ((val >> 6) & 0x3f); + p[3] = 0x80 | (val & 0x3f); + return (3); + } + return (0); +} + +/* + * Look up a case mapping from a case folding table + */ +static inline uint32_t +chrcase(uint32_t val, struct casemap *cm, size_t cmsz) +{ + uint32_t nval; + int start, end, n; + + nval = val; + start = 0; + end = cmsz - 1; + while (start <= end) { + n = (start + end) / 2; + if (cm[n].cm_val1 > val) { + end = n - 1; + continue; + } + else if (cm[n].cm_val1 < val) { + start = n + 1; + continue; + } + + nval = cm[n].cm_val2; + break; + } + return (nval); +} + +static inline uint32_t +chrlcase(uint32_t val) +{ + + return (chrcase(val, unicm_up2low, unicm_up2low_size)); +} + +/* + * utf8_casecmp + * Compares two UTF-8 strings case in-sensitive + * Arguments + * str1 - First string + * str2 - Second string + * + * Returns 0 if the strings are identical. If string one is binary larger 1 + * is returned, if the second string is binary larger -1 is returned. + */ +int +utf8_casecmp(const char *str1, const char *str2) +{ + const char *p, *q, *pe, *qe; + int l1, l2; + uint32_t v1, v2, nv1, nv2; + size_t len1, len2; + + len1 = strlen(str1); + len2 = strlen(str2); + + p = str1; + q = str2; + pe = p + len1; + qe = q + len2; + + while (*p != '\0' && *q != '\0') { + l1 = chrdec(p, &v1, pe); + l2 = chrdec(q, &v2, qe); + + if (l1 == 0 || l2 == 0) + return (-2); + + nv1 = chrlcase(v1); + nv2 = chrlcase(v2); + + if (nv1 != nv2) + return (nv1 > nv2) ? 1 : -1; + + p += l1; + q += l2; + } + + if (*p == '\0' && *q != '\0') + return (1); + else if (*p != '\0' && *q == '\0') + return (-1); + else + return (0); +} + +/* + * utf8_tolower + * Converts a UTF-8 string to lower case + * Arguments + * src - Original string ('\0'-terminated) + * dst - Pointer to space where the new string is stored + * dlen - Length of destination buffer + * + * Returns the length of the converted lower case string or a value + * less than 0 if a failure occurs. + */ +int +utf8_tolower(const char *src, char *dst, size_t dlen) +{ + const char *p, *pe; + char *q, *qe; + uint32_t val, nval; + size_t slen, i; + int l1, l2; + + slen = strlen(src); + p = src; + q = dst; + pe = src + slen; + qe = dst + dlen; + for (i = 0; i < slen; i++) { + l1 = chrdec(p, &val, pe); + nval = chrlcase(val); + l2 = chrenc(q, nval, qe); + if (l1 == 0 || l2 == 0) + return (-1); + p += l1; + q += l2; + } + *q = '\0'; + return (q - dst); +} ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/utf8.h#2 (text+ko) ==== @@ -27,7 +27,20 @@ #ifndef _UTF8_H_ #define _UTF8_H_ -ssize_t utf8_encode(wchar_t *, char *, size_t); -ssize_t utf8_decode(char *, size_t, wchar_t *, size_t); +#include + +#include +#include + +/* Case mapping */ +struct casemap { + uint32_t cm_val1; + uint32_t cm_val2; +}; + +ssize_t utf8_encode(const wchar_t *, char *, size_t); +ssize_t utf8_decode(const char *, size_t, wchar_t *, size_t); +int utf8_casecmp(const char *, const char *); +int utf8_tolower(const char *, char *, size_t); #endif /* _UTF8_H_ */ From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:10:22 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0238E16A46E; Thu, 9 Aug 2007 19:10:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B87D16A417 for ; Thu, 9 Aug 2007 19:10:21 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 894D013C4CE for ; Thu, 9 Aug 2007 19:10:21 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JALk6086513 for ; Thu, 9 Aug 2007 19:10:21 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JALVB086510 for perforce@freebsd.org; Thu, 9 Aug 2007 19:10:21 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:10:21 GMT Message-Id: <200708091910.l79JALVB086510@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124966 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, 09 Aug 2007 19:10:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=124966 Change 124966 by fli@fli_nexus on 2007/08/09 19:09:21 Ignore case when comparing record names. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/record.c#4 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/record.c#4 (text+ko) ==== @@ -31,6 +31,7 @@ #include "debug.h" #include "log.h" #include "record.h" +#include "utf8.h" #define record_aquire(r) (r)->r_refcnt++; \ dprintf(DEBUG_REC, "Refcount on r=%x increased to %d",\ @@ -95,14 +96,17 @@ int record_get(struct records *recs, struct record **r, int flags, char *name) { - size_t len; + ssize_t len; struct record *rec; + char namlc[MDNS_RECORD_LEN+1]; MDNS_INIT_ASSERT(recs, r_magic); - len = strlen(name); - rec = hashtbl_find(&recs->r_recs, name, len); - + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + if (len <= 0) + return (-1); + + rec = hashtbl_find(&recs->r_recs, namlc, len); if (rec == NULL && (flags & RECORD_NOINIT)) { *r = NULL; return (0); @@ -123,7 +127,7 @@ (*r)->r_flags = flags; TAILQ_INIT(&((*r)->r_list)); memcpy((*r)->r_name, name, len+1); - hashtbl_add(&recs->r_recs, (*r)->r_name, len, *r, 0); + hashtbl_add(&recs->r_recs, namlc, len, *r, HASHTBL_KEYDUP); } else { *r = rec; @@ -142,8 +146,9 @@ void record_release(struct record *r) { - size_t len; + ssize_t len; struct records *recs; + char namlc[MDNS_RECORD_LEN+1]; MDNS_INIT_ASSERT(r, r_magic); recs = r->r_recs; @@ -151,8 +156,8 @@ if (--r->r_refcnt == 0) { assert(TAILQ_EMPTY(&r->r_list) == 1); - len = strlen(r->r_name); - hashtbl_del(&recs->r_recs, r->r_name, len); + len = utf8_tolower(r->r_name, namlc, MDNS_RECORD_LEN); + hashtbl_del(&recs->r_recs, namlc, len); MDNS_INIT_UNSET(r, r_magic); if (!(r->r_flags & RECORD_NOALLOC)) free(r); @@ -193,12 +198,16 @@ record_find(struct records *recs, char *name) { struct record *r; - size_t len; + ssize_t len; + char namlc[MDNS_RECORD_LEN+1]; MDNS_INIT_ASSERT(recs, r_magic); - len = strlen(name); - r = hashtbl_find(&recs->r_recs, name, len); + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + if (len <= 0) + return (NULL); + + r = hashtbl_find(&recs->r_recs, namlc, len); return (r); } @@ -367,12 +376,16 @@ struct record *r; struct record_type *rt; struct record_res *rr; - size_t len; + ssize_t len; + char namlc[MDNS_RECORD_LEN+1]; MDNS_INIT_ASSERT(recs, r_magic); - len = strlen(name); - r = hashtbl_find(&recs->r_recs, name, len); + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + if (len <= 0) + return (NULL); + + r = hashtbl_find(&recs->r_recs, namlc, len); if (r == NULL) return (NULL); @@ -396,12 +409,16 @@ { struct record *r; struct record_type *rt; - size_t len; + ssize_t len; + char namlc[MDNS_RECORD_LEN+1]; MDNS_INIT_ASSERT(recs, r_magic); - len = strlen(name); - r = hashtbl_find(&recs->r_recs, name, len); + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + if (len <= 0) + return (NULL); + + r = hashtbl_find(&recs->r_recs, namlc, len); if (r == NULL) return (NULL); From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:12:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F362C16A41B; Thu, 9 Aug 2007 19:12:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB7D616A417 for ; Thu, 9 Aug 2007 19:12:24 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 971B413C457 for ; Thu, 9 Aug 2007 19:12:24 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JCOjR086921 for ; Thu, 9 Aug 2007 19:12:24 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JCOqM086918 for perforce@freebsd.org; Thu, 9 Aug 2007 19:12:24 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:12:24 GMT Message-Id: <200708091912.l79JCOqM086918@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124967 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, 09 Aug 2007 19:12:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=124967 Change 124967 by fli@fli_nexus on 2007/08/09 19:11:23 Remove whitespaces introduced in previous submit. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/record.c#5 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/record.c#5 (text+ko) ==== @@ -102,7 +102,7 @@ MDNS_INIT_ASSERT(recs, r_magic); - len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); if (len <= 0) return (-1); @@ -203,7 +203,7 @@ MDNS_INIT_ASSERT(recs, r_magic); - len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); if (len <= 0) return (NULL); @@ -381,7 +381,7 @@ MDNS_INIT_ASSERT(recs, r_magic); - len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); if (len <= 0) return (NULL); @@ -414,7 +414,7 @@ MDNS_INIT_ASSERT(recs, r_magic); - len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); + len = utf8_tolower(name, namlc, MDNS_RECORD_LEN); if (len <= 0) return (NULL); From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:13:26 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B568816A469; Thu, 9 Aug 2007 19:13:26 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 934A516A41B for ; Thu, 9 Aug 2007 19:13:26 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8426713C459 for ; Thu, 9 Aug 2007 19:13:26 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JDQQP087009 for ; Thu, 9 Aug 2007 19:13:26 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JDPkN087006 for perforce@freebsd.org; Thu, 9 Aug 2007 19:13:25 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:13:25 GMT Message-Id: <200708091913.l79JDPkN087006@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124968 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, 09 Aug 2007 19:13:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=124968 Change 124968 by fli@fli_nexus on 2007/08/09 19:12:35 Hook up new file (utf8_cfold.c) to the build. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/Makefile#6 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/Makefile#6 (text+ko) ==== @@ -1,7 +1,7 @@ SRCS= cache.c clisrv.c dbrec.c event.c hash.c log.c mdnsd.c objalloc.c \ output.c output_aggr.c parse.y queries.c record.c stack_buf.c \ - stack_mdns.c stack_packet.c stack_util.c token.l utf8.c var.c \ - wqueue.c y.tab.h + stack_mdns.c stack_packet.c stack_util.c token.l utf8.c utf8_cfold.c \ + var.c wqueue.c y.tab.h PROG= mdnsd WARNS?= 4 From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:16:31 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4AA2A16A420; Thu, 9 Aug 2007 19:16:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1ED9916A419 for ; Thu, 9 Aug 2007 19:16:31 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0FEB313C467 for ; Thu, 9 Aug 2007 19:16:31 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JGUFg087130 for ; Thu, 9 Aug 2007 19:16:30 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JGUSG087127 for perforce@freebsd.org; Thu, 9 Aug 2007 19:16:30 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:16:30 GMT Message-Id: <200708091916.l79JGUSG087127@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124969 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, 09 Aug 2007 19:16:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=124969 Change 124969 by fli@fli_nexus on 2007/08/09 19:15:48 Pass user suplied name to mdns_name_encode() instead, this allows the use of ip-addresses as names, they will be converted to the appropriate format automatically. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/clisrv.c#4 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/clisrv.c#4 (text+ko) ==== @@ -281,6 +281,7 @@ TAILQ_FOREACH_SAFE(cscq, &csc->csc_queries, cscq_next, cscq2) { query_dereg(cscq->cscq_q, &cscq->cscq_qs, cscq); TAILQ_REMOVE(&csc->csc_queries, cscq, cscq_next); + free(cscq->cscq_qs.q_name); obj_free(OBJ_CSCQ, cscq); } @@ -472,6 +473,7 @@ int error, retval = 0; struct csc_query cscq; wchar_t name[MDNS_RECORD_LEN+1]; + char *nam; if (len < sizeof(struct mipc_query)) return (MIE_IVAL); @@ -483,8 +485,9 @@ wp = (wchar_t *)(buf + sizeof(struct mipc_query)); memcpy(name, wp, miq->miq_len * sizeof(wchar_t)); name[miq->miq_len] = L'\0'; - error = utf8_encode(name, cscq.cscq_qs.name, MDNS_RECORD_LEN); - if (error < 0) + + nam = mdns_name_encode(name, MDNS_RECORD_LEN, MDNS_ENC_AUTO); + if (nam == NULL) return (MIE_IVAL); dprintf(DEBUG_CS,"Query message class=%d, type=%d, name=%ls, " @@ -492,7 +495,7 @@ miq->miq_type, name, miq->miq_cmd, miq->miq_fam, miq->miq_ifidx, miq->miq_timeout); - cscq.cscq_qs.q_name = cscq.cscq_qs.name; + mdns_qset_name(&cscq.cscq_qs, nam); cscq.cscq_qs.q_type = miq->miq_type; cscq.cscq_qs.q_class = miq->miq_class; cscq.cscq_id = mih->mih_id; @@ -1535,6 +1538,7 @@ send_error(csc, cscq->cscq_id, MIE_TOUT); + free(cscq->cscq_qs.q_name); obj_free(OBJ_CSCQ, cscq); MTX_UNLOCK(csc, csc_mtx); return; @@ -1661,6 +1665,7 @@ MDNS_INIT_ASSERT(mif, mif_magic); query_dereg(&mif->mif_q, &cscq->cscq_qs, cscq2); TAILQ_REMOVE(&csc->csc_queries, cscq2, cscq_next); + free(cscq->cscq_qs.q_name); obj_free(OBJ_CSCQ, cscq2); } else { @@ -1682,6 +1687,7 @@ query_dereg(&mif->mif_q, &cscq->cscq_qs, cscq2); TAILQ_REMOVE(&csc->csc_queries, cscq2, cscq_next); + free(cscq->cscq_qs.q_name); obj_free(OBJ_CSCQ, cscq2); } } From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:17:33 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8388C16A46C; Thu, 9 Aug 2007 19:17:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 612C116A469 for ; Thu, 9 Aug 2007 19:17:33 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 524FD13C45A for ; Thu, 9 Aug 2007 19:17:33 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JHX5B087173 for ; Thu, 9 Aug 2007 19:17:33 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JHXZt087170 for perforce@freebsd.org; Thu, 9 Aug 2007 19:17:33 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:17:33 GMT Message-Id: <200708091917.l79JHXZt087170@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124970 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, 09 Aug 2007 19:17:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=124970 Change 124970 by fli@fli_nexus on 2007/08/09 19:17:18 - Follow changes done to the record database. - Use unsigned int on variables that hold interface indices. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/mdnsd.c#6 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/mdnsd.c#6 (text+ko) ==== @@ -287,7 +287,7 @@ mrs = mdns_pkg_getrrset(); record2rrset(r, rt, rr, mrs, 0); - mrs->r_ttl = ds->ds_ttl; + mrs->r_ttl = ds->ds_dir->dir_ttl; clock_gettime(CLOCK_REALTIME, &ds->ds_time); mdns_pkg_addanswer(pc, mrs, 0); } @@ -363,10 +363,10 @@ if (ds != NULL && !(ds->ds_flags & DS_INVALID)) { rr = &ds->ds_res; if (aq_inqueue(aq, rr)) { - if (rs.r_ttl > ds->ds_ttl / 2) + if (rs.r_ttl > ds->ds_dir->dir_ttl / 2) aq_dequeue(aq, rr); } - else if (rs.r_ttl > ds->ds_ttl / 2) { + else if (rs.r_ttl > ds->ds_dir->dir_ttl / 2) { error = cache_add(&ac, &rs, NULL); if (error == 1) free(rs.r_data); @@ -483,7 +483,8 @@ if (legacy || qs.q_unicast) { rsp = mdns_pkg_getrrset(); record2rrset(r, rt, rr, rsp, 0); - rsp->r_ttl = legacy ? 10 : ds->ds_ttl; + rsp->r_ttl = legacy ? 10 : + ds->ds_dir->dir_ttl; mdns_pkg_addanswer(&upc, rsp, 0); send_unicast = 1; /* @@ -493,7 +494,7 @@ * its ttl. */ if ((ts.tv_sec - ds->ds_time.tv_sec) > - (int32_t)(ds->ds_ttl / 4)) + (int32_t)(ds->ds_dir->dir_ttl / 4)) aq_enqueue(aq, rr, min, max); } /* @@ -544,7 +545,8 @@ dr = dbr_find(&mif->mif_dbr, rs.r_name); if (dr != NULL && !(dr->dr_flags & DR_SHARED)) { - dprintf(DEBUG_SEND, "Conflicting name %s", rs.r_name); + dprintf(DEBUG_SEND, "Conflicting name %s (dr=%x)", + rs.r_name, dr); dbr_defend(&mif->mif_dbr, dr, &rs, from->sa_family); continue; } @@ -1121,7 +1123,7 @@ } static struct md_if * -if_indextodata(struct md_glob *g, int idx) +if_indextodata(struct md_glob *g, unsigned int idx) { struct md_if *mif; From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:21:39 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8291D16A420; Thu, 9 Aug 2007 19:21:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B21216A46B for ; Thu, 9 Aug 2007 19:21:39 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2A4E313C465 for ; Thu, 9 Aug 2007 19:21:39 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JLdfx087670 for ; Thu, 9 Aug 2007 19:21:39 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JLcdh087667 for perforce@freebsd.org; Thu, 9 Aug 2007 19:21:38 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:21:38 GMT Message-Id: <200708091921.l79JLcdh087667@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124971 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, 09 Aug 2007 19:21:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=124971 Change 124971 by fli@fli_nexus on 2007/08/09 19:21:34 Add libmdns, it's purpose is to provide an API to applications that whishes to do mDNS queries. It will also provide routines to manipulate the internal state of the daemon (record database, cache flush, etc). Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/libmdns/Makefile#1 add .. //depot/projects/soc2007/fli-mdns_sd/libmdns/libmdns.c#1 add .. //depot/projects/soc2007/fli-mdns_sd/libmdns/libmdns.h#1 add .. //depot/projects/soc2007/fli-mdns_sd/libmdns/mdns.h#1 add .. //depot/projects/soc2007/fli-mdns_sd/libmdns/table.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:29:51 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A14D16A420; Thu, 9 Aug 2007 19:29:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD1B316A41A for ; Thu, 9 Aug 2007 19:29:50 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A5B2713C45E for ; Thu, 9 Aug 2007 19:29:50 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JToL1088100 for ; Thu, 9 Aug 2007 19:29:50 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JToHo088097 for perforce@freebsd.org; Thu, 9 Aug 2007 19:29:50 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 9 Aug 2007 19:29:50 GMT Message-Id: <200708091929.l79JToHo088097@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124972 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, 09 Aug 2007 19:29:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=124972 Change 124972 by fli@fli_nexus on 2007/08/09 19:28:50 Add mdns(1), an administrative and debugging utility. It's currently able to resolv names (similar to host(1)) and interpret moste common mDNS resource types. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdns/Makefile#1 add .. //depot/projects/soc2007/fli-mdns_sd/mdns/mdns.c#1 add .. //depot/projects/soc2007/fli-mdns_sd/mdns/query.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 9 19:32:56 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ADAED16A41B; Thu, 9 Aug 2007 19:32:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6700016A419 for ; Thu, 9 Aug 2007 19:32:56 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 55C5E13C45A for ; Thu, 9 Aug 2007 19:32:56 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79JWub2088478 for ; Thu, 9 Aug 2007 19:32:56 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79JWsUH088475 for perforce@freebsd.org; Thu, 9 Aug 2007 19:32:54 GMT (envelope-from bz@freebsd.org) Date: Thu, 9 Aug 2007 19:32:54 GMT Message-Id: <200708091932.l79JWsUH088475@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 124973 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, 09 Aug 2007 19:32:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=124973 Change 124973 by bz@bz_dopt_ah on 2007/08/09 19:32:03 IFC @124959 Affected files ... .. //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/arm/arm/genassym.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/arm/arm/swtch.S#4 integrate .. //depot/projects/fast_ipsec/src/sys/boot/arm/at91/libat91/Makefile#5 integrate .. //depot/projects/fast_ipsec/src/sys/compat/linux/linux_socket.c#10 integrate .. //depot/projects/fast_ipsec/src/sys/conf/NOTES#15 integrate .. //depot/projects/fast_ipsec/src/sys/conf/files#20 integrate .. //depot/projects/fast_ipsec/src/sys/conf/kern.pre.mk#9 integrate .. //depot/projects/fast_ipsec/src/sys/conf/options#18 integrate .. //depot/projects/fast_ipsec/src/sys/dev/adlink/adlink.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/an/if_an.c#8 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ath/if_ath.c#13 integrate .. //depot/projects/fast_ipsec/src/sys/dev/dc/if_dc.c#12 integrate .. //depot/projects/fast_ipsec/src/sys/dev/dc/if_dcreg.h#7 integrate .. //depot/projects/fast_ipsec/src/sys/dev/em/if_em.c#13 integrate .. //depot/projects/fast_ipsec/src/sys/dev/re/if_re.c#14 integrate .. //depot/projects/fast_ipsec/src/sys/dev/streams/streams.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/if_axe.c#10 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/if_axereg.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/dev/wi/if_wi.c#9 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/denode.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_conv.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_denode.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_fat.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_fileno.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_lookup.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_vfsops.c#9 integrate .. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_vnops.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/clock.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/exception.S#3 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/interrupt.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/machdep.c#8 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/mp_machdep.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/pmap.c#11 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/include/ia64_cpu.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/include/md_var.h#4 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_descrip.c#10 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_lockf.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_poll.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/kern/sys_socket.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/kern/uipc_domain.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/kern/uipc_syscalls.c#13 integrate .. //depot/projects/fast_ipsec/src/sys/net/bpf.c#10 integrate .. //depot/projects/fast_ipsec/src/sys/net/bpfdesc.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/net/bridgestp.c#8 integrate .. //depot/projects/fast_ipsec/src/sys/net/bridgestp.h#4 integrate .. //depot/projects/fast_ipsec/src/sys/net/netisr.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/netgraph/netflow/netflow.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/in_mcast.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/in_pcb.h#8 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/ip_divert.c#9 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/ip_dummynet.c#8 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/ip_fw2.c#12 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/ip_input.c#10 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/ip_ipsec.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/ip_mroute.c#9 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/sctp_constants.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/sctp_input.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/sctp_uio.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/sctp_usrreq.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/sctputil.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/tcp_syncache.c#9 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/ip6_ipsec.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netipsec/xform_ah.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/netipsec/xform_esp.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/netipsec/xform_ipcomp.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/nfsclient/bootp_subr.c#5 integrate .. //depot/projects/fast_ipsec/src/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/nfsclient/nfs_socket.c#13 integrate .. //depot/projects/fast_ipsec/src/sys/nfsclient/nfs_vfsops.c#11 integrate .. //depot/projects/fast_ipsec/src/sys/nfsserver/nfs_srvsock.c#9 integrate .. //depot/projects/fast_ipsec/src/sys/nfsserver/nfs_srvsubs.c#9 integrate .. //depot/projects/fast_ipsec/src/sys/nfsserver/nfs_syscalls.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_xl.c#8 integrate .. //depot/projects/fast_ipsec/src/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/fast_ipsec/src/sys/powerpc/include/intr_machdep.h#4 integrate .. //depot/projects/fast_ipsec/src/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/powerpc/powerpc/interrupt.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/powerpc/powerpc/intr_machdep.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/powerpc/powerpc/trap.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/rpc/rpcclnt.c#6 integrate .. //depot/projects/fast_ipsec/src/sys/security/mac/mac_syscalls.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/sparc64/include/iommureg.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/sparc64/pci/psycho.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/sparc64/pci/psychoreg.h#5 integrate .. //depot/projects/fast_ipsec/src/sys/sparc64/sbus/sbus.c#7 integrate .. //depot/projects/fast_ipsec/src/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/sparc64/sparc64/iommu.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/sys/mutex.h#7 integrate .. //depot/projects/fast_ipsec/src/sys/vm/device_pager.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/vm/phys_pager.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/vm/swap_pager.c#10 integrate .. //depot/projects/fast_ipsec/src/sys/vm/vm_pager.c#3 integrate Differences ... ==== //depot/projects/fast_ipsec/src/sys/arm/arm/cpufunc.c#6 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $"); #include #include @@ -148,9 +148,9 @@ arm7tdmi_cache_flushID, /* idcache_wbinv_all */ (void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -210,9 +210,9 @@ arm8_cache_purgeID, /* idcache_wbinv_all */ (void *)arm8_cache_purgeID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -271,9 +271,9 @@ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ arm9_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -333,9 +333,9 @@ arm10_idcache_wbinv_all, /* idcache_wbinv_all */ arm10_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -395,9 +395,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -456,9 +456,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -517,9 +517,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -581,9 +581,9 @@ xscale_cache_purgeID, /* idcache_wbinv_all */ xscale_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ ==== //depot/projects/fast_ipsec/src/sys/arm/arm/genassym.c#5 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $"); #include #include #include @@ -92,6 +92,7 @@ ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TD_MD, offsetof(struct thread, td_md)); +ASSYM(TD_LOCK, offsetof(struct thread, td_lock)); ASSYM(MD_TP, offsetof(struct mdthread, md_tp)); ASSYM(TF_R0, offsetof(struct trapframe, tf_r0)); ==== //depot/projects/fast_ipsec/src/sys/arm/arm/swtch.S#4 (text+ko) ==== @@ -83,7 +83,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.19 2006/04/09 20:16:47 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.20 2007/08/07 18:20:55 cognet Exp $"); /* @@ -127,6 +127,8 @@ .word _C_LABEL(block_userspace_access) .Lcpu_do_powersave: .word _C_LABEL(cpu_do_powersave) +.Lblocked_lock: + .word _C_LABEL(blocked_lock) ENTRY(cpu_throw) mov r5, r1 @@ -214,6 +216,7 @@ ENTRY(cpu_switch) stmfd sp!, {r4-r7, lr} + mov r6, r2 /* Save the mutex */ .Lswitch_resume: /* rem: r0 = old lwp */ @@ -241,10 +244,11 @@ /* Stage two : Save old context */ - /* Get the user structure for the old lwp. */ + /* Get the user structure for the old thread. */ ldr r2, [r0, #(TD_PCB)] + mov r4, r0 /* Save the old thread. */ - /* Save all the registers in the old lwp's pcb */ + /* Save all the registers in the old thread's pcb */ #ifndef __XSCALE__ add r7, r2, #(PCB_R8) stmia r7, {r8-r13} @@ -324,8 +328,7 @@ mov lr, pc ldr pc, [r1, #CF_IDCACHE_WBINV_ALL] .Lcs_cache_purge_skipped: - /* rem: r4 = &block_userspace_access */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r9 = new PCB */ /* rem: r10 = old L1 */ /* rem: r11 = new L1 */ @@ -389,6 +392,17 @@ .Lcs_context_switched: + /* Release the old thread */ + str r6, [r4, #TD_LOCK] + ldr r6, .Lblocked_lock + ldr r3, .Lcurthread + ldr r3, [r3] + +1: + ldr r4, [r3, #TD_LOCK] + cmp r4, r6 + beq 1b + /* XXXSCW: Safe to re-enable FIQs here */ /* rem: r9 = new PCB */ @@ -419,7 +433,7 @@ ldr r13, [r7, #(PCB_SP)] #endif - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new pcb */ #ifdef ARMFPE @@ -429,7 +443,7 @@ #endif /* rem: r5 = new lwp's proc */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new PCB */ .Lswitch_return: ==== //depot/projects/fast_ipsec/src/sys/boot/arm/at91/libat91/Makefile#5 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.9 2007/07/13 14:27:04 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.10 2007/08/09 05:16:55 imp Exp $ .include "${.CURDIR}/../Makefile.inc" @@ -8,7 +8,7 @@ putchar.c printf.c reset.c spi_flash.c xmodem.c \ sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ memset.c memcmp.c -SRCS+=ashldi3.c divsi3.c +SRCS+=ashldi3.c divsi3.S NO_MAN= .if ${MK_TAG_LIST} != "no" ==== //depot/projects/fast_ipsec/src/sys/compat/linux/linux_socket.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.73 2007/04/14 10:35:09 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.74 2007/08/06 14:25:59 rwatson Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -670,7 +670,6 @@ * socket and use the file descriptor reference instead of * creating a new one. */ - NET_LOCK_GIANT(); error = fgetsock(td, linux_args.s, &so, &fflag); if (error == 0) { error = EISCONN; @@ -683,7 +682,6 @@ } fputsock(so); } - NET_UNLOCK_GIANT(); return (error); } ==== //depot/projects/fast_ipsec/src/sys/conf/NOTES#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1447 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1448 2007/08/05 16:16:15 bz Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -501,15 +501,15 @@ options IPSEC #IP security (requires device crypto) #options IPSEC_DEBUG #debug for IP security # -# Set IPSEC_FILTERGIF to force packets coming through a gif tunnel -# to be processed by any configured packet filtering (ipfw, ipf). -# The default is that packets coming from a tunnel are _not_ processed; +# Set IPSEC_FILTERTUNNEL to force packets coming through a tunnel +# to be processed by any configured packet filtering twice. +# The default is that packets coming out of a tunnel are _not_ processed; # they are assumed trusted. # # IPSEC history is preserved for such packets, and can be filtered # using ipfw(8)'s 'ipsec' keyword, when this option is enabled. # -#options IPSEC_FILTERGIF #filter ipsec packets from a tunnel +#options IPSEC_FILTERTUNNEL #filter ipsec packets from a tunnel options IPX #IPX/SPX communications protocols ==== //depot/projects/fast_ipsec/src/sys/conf/files#20 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1241 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1242 2007/08/09 01:11:21 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -259,7 +259,7 @@ contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ - compile-with "${NORMAL_C} -I$S/contrib/ipfilter" + compile-with "${NORMAL_C} -Wno-error -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ ==== //depot/projects/fast_ipsec/src/sys/conf/kern.pre.mk#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.91 2007/07/31 03:15:32 marcel Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.92 2007/08/08 19:12:06 marcel Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -88,7 +88,8 @@ CFLAGS+= --param inline-unit-growth=100 CFLAGS+= --param large-function-growth=1000 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \ - ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64" + ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc64" WERROR?= -Werror .endif .endif ==== //depot/projects/fast_ipsec/src/sys/conf/options#18 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.603 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/options,v 1.605 2007/08/06 14:25:59 rwatson Exp $ # # On the handling of kernel options # @@ -362,7 +362,7 @@ INET6 opt_inet6.h IPSEC opt_ipsec.h IPSEC_DEBUG opt_ipsec.h -IPSEC_FILTERGIF opt_ipsec.h +IPSEC_FILTERTUNNEL opt_ipsec.h IPDIVERT DUMMYNET opt_ipdn.h IPFILTER opt_ipfilter.h @@ -383,7 +383,6 @@ MBUF_STRESS_TEST NCP NETATALK opt_atalk.h -NET_WITH_GIANT opt_net.h PPP_BSDCOMP opt_ppp.h PPP_DEFLATE opt_ppp.h PPP_FILTER opt_ppp.h ==== //depot/projects/fast_ipsec/src/sys/dev/adlink/adlink.c#4 (text+ko) ==== @@ -43,7 +43,7 @@ #ifdef _KERNEL #include -__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.16 2007/02/23 12:18:29 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.17 2007/08/04 17:43:11 kib Exp $"); #include #include @@ -119,6 +119,7 @@ static struct cdevsw adlink_cdevsw = { .d_version = D_VERSION, + .d_flags = D_NEEDGIANT, .d_ioctl = adlink_ioctl, .d_mmap = adlink_mmap, .d_name = "adlink", ==== //depot/projects/fast_ipsec/src/sys/dev/an/if_an.c#8 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.82 2007/08/02 02:20:19 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.83 2007/08/07 12:26:19 avatar Exp $"); /* * The Aironet 4500/4800 series cards come in PCMCIA, ISA and PCI form. @@ -1065,8 +1065,10 @@ rx_frame.an_rsvd0); #endif #endif + AN_UNLOCK(sc); (*ifp->if_input)(ifp, m); - + AN_LOCK(sc); + an_rx_desc.an_valid = 1; an_rx_desc.an_len = AN_RX_BUFFER_SIZE; an_rx_desc.an_done = 0; ==== //depot/projects/fast_ipsec/src/sys/dev/ath/if_ath.c#13 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.172 2007/06/24 01:57:20 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.173 2007/08/06 14:25:59 rwatson Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -888,11 +888,9 @@ * truly a bmiss we'll get another interrupt soon and that'll * be dispatched up for processing. */ - if (tsf - lastrx > bmisstimeout) { - NET_LOCK_GIANT(); + if (tsf - lastrx > bmisstimeout) ieee80211_beacon_miss(ic); - NET_UNLOCK_GIANT(); - } else + else sc->sc_stats.ast_bmiss_phantom++; } } @@ -3447,7 +3445,6 @@ int16_t nf; u_int64_t tsf; - NET_LOCK_GIANT(); /* XXX */ DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s: pending %u\n", __func__, npending); ngood = 0; @@ -3715,7 +3712,6 @@ !IFQ_IS_EMPTY(&ifp->if_snd)) ath_start(ifp); - NET_UNLOCK_GIANT(); /* XXX */ #undef PA2DESC } ==== //depot/projects/fast_ipsec/src/sys/dev/dc/if_dc.c#12 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.191 2007/02/23 12:18:37 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.192 2007/08/05 11:28:19 marius Exp $"); /* * DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143 @@ -294,7 +294,6 @@ static void dc_apply_fixup(struct dc_softc *, int); static void dc_dma_map_txbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); -static void dc_dma_map_rxbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); #ifdef DC_USEIOSPACE #define DC_RES SYS_RES_IOPORT @@ -2424,29 +2423,6 @@ return (0); } -static void -dc_dma_map_rxbuf(arg, segs, nseg, mapsize, error) - void *arg; - bus_dma_segment_t *segs; - int nseg; - bus_size_t mapsize; - int error; -{ - struct dc_softc *sc; - struct dc_desc *c; - - sc = arg; - c = &sc->dc_ldata->dc_rx_list[sc->dc_cdata.dc_rx_cur]; - if (error) { - sc->dc_cdata.dc_rx_err = error; - return; - } - - KASSERT(nseg == 1, ("wrong number of segments, should be 1")); - sc->dc_cdata.dc_rx_err = 0; - c->dc_data = htole32(segs->ds_addr); -} - /* * Initialize an RX descriptor and attach an MBUF cluster. */ @@ -2455,7 +2431,8 @@ { struct mbuf *m_new; bus_dmamap_t tmp; - int error; + bus_dma_segment_t segs[1]; + int error, nseg; if (alloc) { m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); @@ -2478,17 +2455,14 @@ /* No need to remap the mbuf if we're reusing it. */ if (alloc) { - sc->dc_cdata.dc_rx_cur = i; - error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_sparemap, - m_new, dc_dma_map_rxbuf, sc, 0); + error = bus_dmamap_load_mbuf_sg(sc->dc_mtag, sc->dc_sparemap, + m_new, segs, &nseg, 0); + KASSERT(nseg == 1, ("wrong number of segments, should be 1")); if (error) { m_freem(m_new); return (error); } - if (sc->dc_cdata.dc_rx_err != 0) { - m_freem(m_new); - return (sc->dc_cdata.dc_rx_err); - } + sc->dc_ldata->dc_rx_list[i].dc_data = htole32(segs->ds_addr); bus_dmamap_unload(sc->dc_mtag, sc->dc_cdata.dc_rx_map[i]); tmp = sc->dc_cdata.dc_rx_map[i]; sc->dc_cdata.dc_rx_map[i] = sc->dc_sparemap; @@ -2865,12 +2839,11 @@ sc->dc_cdata.dc_tx_cnt--; DC_INC(idx, DC_TX_LIST_CNT); } + sc->dc_cdata.dc_tx_cons = idx; - if (idx != sc->dc_cdata.dc_tx_cons) { - /* Some buffers have been freed. */ - sc->dc_cdata.dc_tx_cons = idx; + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt > DC_TX_LIST_RSVD) ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - } + if (sc->dc_cdata.dc_tx_cnt == 0) sc->dc_wdog_timer = 0; } @@ -3161,10 +3134,8 @@ int cur, first, frag, i; sc = arg; - if (error) { - sc->dc_cdata.dc_tx_err = error; + if (error) return; - } first = cur = frag = sc->dc_cdata.dc_tx_prod; for (i = 0; i < nseg; i++) { @@ -3217,7 +3188,7 @@ /* * If there's no way we can send any packets, return now. */ - if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt < 6) + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt <= DC_TX_LIST_RSVD) return (ENOBUFS); /* @@ -3229,27 +3200,30 @@ for (m = *m_head; m != NULL; m = m->m_next) chainlen++; - if ((chainlen > DC_TX_LIST_CNT / 4) || - ((DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt)) < 6)) { + m = NULL; + if ((sc->dc_flags & DC_TX_COALESCE && ((*m_head)->m_next != NULL || + sc->dc_flags & DC_TX_ALIGN)) || (chainlen > DC_TX_LIST_CNT / 4) || + (DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt) <= + DC_TX_LIST_RSVD)) { m = m_defrag(*m_head, M_DONTWAIT); - if (m == NULL) + if (m == NULL) { + m_freem(*m_head); + *m_head = NULL; return (ENOBUFS); + } *m_head = m; } - - /* - * Start packing the mbufs in this chain into - * the fragment pointers. Stop when we run out - * of fragments or hit the end of the mbuf chain. - */ idx = sc->dc_cdata.dc_tx_prod; sc->dc_cdata.dc_tx_mapping = *m_head; error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], *m_head, dc_dma_map_txbuf, sc, 0); - if (error) - return (error); - if (sc->dc_cdata.dc_tx_err != 0) - return (sc->dc_cdata.dc_tx_err); + if (error != 0 || sc->dc_cdata.dc_tx_err != 0) { + if (m != NULL) { + m_freem(m); + *m_head = NULL; + } + return (error != 0 ? error : sc->dc_cdata.dc_tx_err); + } bus_dmamap_sync(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], BUS_DMASYNC_PREWRITE); bus_dmamap_sync(sc->dc_ltag, sc->dc_lmap, @@ -3279,7 +3253,7 @@ dc_start_locked(struct ifnet *ifp) { struct dc_softc *sc; - struct mbuf *m_head = NULL, *m; + struct mbuf *m_head = NULL; unsigned int queued = 0; int idx; @@ -3300,20 +3274,9 @@ if (m_head == NULL) break; - if (sc->dc_flags & DC_TX_COALESCE && - (m_head->m_next != NULL || - sc->dc_flags & DC_TX_ALIGN)) { - m = m_defrag(m_head, M_DONTWAIT); - if (m == NULL) { - IFQ_DRV_PREPEND(&ifp->if_snd, m_head); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if (dc_encap(sc, &m_head)) { + if (m_head == NULL) break; - } else { - m_head = m; - } - } - - if (dc_encap(sc, &m_head)) { IFQ_DRV_PREPEND(&ifp->if_snd, m_head); ifp->if_drv_flags |= IFF_DRV_OACTIVE; break; ==== //depot/projects/fast_ipsec/src/sys/dev/dc/if_dcreg.h#7 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.53 2006/12/06 01:56:38 marius Exp $ + * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.54 2007/08/05 11:28:19 marius Exp $ */ /* @@ -461,6 +461,7 @@ #define DC_RX_LIST_CNT 64 #endif #define DC_TX_LIST_CNT 256 +#define DC_TX_LIST_RSVD 5 #define DC_MIN_FRAMELEN 60 #define DC_RXLEN 1536 @@ -496,8 +497,6 @@ int dc_tx_prod; int dc_tx_cons; int dc_tx_cnt; - int dc_rx_err; - int dc_rx_cur; int dc_rx_prod; }; ==== //depot/projects/fast_ipsec/src/sys/dev/em/if_em.c#13 (text+ko) ==== @@ -31,7 +31,7 @@ ***************************************************************************/ -/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.182 2007/07/27 14:48:05 cognet Exp $*/ +/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.183 2007/08/06 14:25:59 rwatson Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" @@ -1474,7 +1474,6 @@ struct adapter *adapter = context; struct ifnet *ifp; - NET_LOCK_GIANT(); ifp = adapter->ifp; /* @@ -1493,7 +1492,6 @@ } em_enable_intr(adapter); - NET_UNLOCK_GIANT(); } /********************************************************************* ==== //depot/projects/fast_ipsec/src/sys/dev/re/if_re.c#14 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.93 2007/07/27 00:43:12 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.94 2007/08/05 11:20:33 marius Exp $"); /* * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver @@ -1005,6 +1005,7 @@ } cmdstat = segs[i].ds_len; totlen += segs[i].ds_len; + d->rl_vlanctl = 0; d->rl_bufaddr_lo = htole32(RL_ADDR_LO(segs[i].ds_addr)); d->rl_bufaddr_hi = htole32(RL_ADDR_HI(segs[i].ds_addr)); if (i == 0) ==== //depot/projects/fast_ipsec/src/sys/dev/streams/streams.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.55 2007/04/04 09:11:31 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.56 2007/08/06 14:26:00 rwatson Exp $"); #include #include @@ -244,9 +244,7 @@ return error; /* An extra reference on `fp' has been held for us by falloc(). */ - NET_LOCK_GIANT(); error = socreate(family, &so, type, protocol, td->td_ucred, td); - NET_UNLOCK_GIANT(); if (error) { fdclose(fdp, fp, fd, td); fdrop(fp, td); ==== //depot/projects/fast_ipsec/src/sys/dev/usb/if_axe.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.52 2007/06/30 20:08:08 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.53 2007/08/09 04:40:07 imp Exp $"); /* * ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the @@ -468,7 +468,7 @@ /* * Get station address. */ - axe_cmd(sc, AXE_CMD_READ_NODEID, 0, 0, &eaddr); + axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, &eaddr); /* * Load IPG values and PHY indexes. @@ -894,12 +894,12 @@ } /* Set transmitter IPG values */ - axe_cmd(sc, AXE_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); /* Enable receiver, set RX mode */ - rxmode = AXE_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; + rxmode = AXE_172_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; /* If we want promiscuous mode, set the allframes bit. */ if (ifp->if_flags & IFF_PROMISC) ==== //depot/projects/fast_ipsec/src/sys/dev/usb/if_axereg.h#5 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.13 2007/06/30 20:08:08 imp Exp $ + * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.14 2007/08/09 04:40:07 imp Exp $ */ /* @@ -53,9 +53,11 @@ #define AXE_CMD_LEN(x) (((x) & 0xF000) >> 12) #define AXE_CMD_CMD(x) ((x) & 0x00FF) -#define AXE_CMD_READ_RXTX_SRAM 0x2002 -#define AXE_CMD_WRITE_RX_SRAM 0x0103 -#define AXE_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_172_CMD_READ_RXTX_SRAM 0x2002 +#define AXE_182_CMD_READ_RXTX_SRAM 0x8002 +#define AXE_172_CMD_WRITE_RX_SRAM 0x0103 +#define AXE_172_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_182_CMD_WRITE_RXTX_SRAM 0x8103 #define AXE_CMD_MII_OPMODE_SW 0x0106 #define AXE_CMD_MII_READ_REG 0x2007 #define AXE_CMD_MII_WRITE_REG 0x2108 @@ -68,35 +70,79 @@ #define AXE_CMD_RXCTL_READ 0x200F #define AXE_CMD_RXCTL_WRITE 0x0110 #define AXE_CMD_READ_IPG012 0x3011 -#define AXE_CMD_WRITE_IPG0 0x0112 -#define AXE_CMD_WRITE_IPG1 0x0113 -#define AXE_CMD_WRITE_IPG2 0x0114 +#define AXE_172_CMD_WRITE_IPG0 0x0112 +#define AXE_172_CMD_WRITE_IPG1 0x0113 +#define AXE_172_CMD_WRITE_IPG2 0x0114 +#define AXE_178_CMD_WRITE_IPG012 0x0112 #define AXE_CMD_READ_MCAST 0x8015 #define AXE_CMD_WRITE_MCAST 0x8116 -#define AXE_CMD_READ_NODEID 0x6017 -#define AXE_CMD_WRITE_NODEID 0x6118 +#define AXE_172_CMD_READ_NODEID 0x6017 +#define AXE_172_CMD_WRITE_NODEID 0x6118 +#define AXE_178_CMD_READ_NODEID 0x6013 +#define AXE_178_CMD_WRITE_NODEID 0x6114 #define AXE_CMD_READ_PHYID 0x2019 -#define AXE_CMD_READ_MEDIA 0x101A +#define AXE_172_CMD_READ_MEDIA 0x101A +#define AXE_178_CMD_READ_MEDIA 0x201A #define AXE_CMD_WRITE_MEDIA 0x011B #define AXE_CMD_READ_MONITOR_MODE 0x101C #define AXE_CMD_WRITE_MONITOR_MODE 0x011D #define AXE_CMD_READ_GPIO 0x101E #define AXE_CMD_WRITE_GPIO 0x011F +#define AXE_CMD_SW_RESET_REG 0x0120 +#define AXE_CMD_SW_PHY_STATUS 0x0021 +#define AXE_CMD_SW_PHY_SELECT 0x0122 + +#define AXE_SW_RESET_CLEAR 0x00 +#define AXE_SW_RESET_RR 0x01 +#define AXE_SW_RESET_RT 0x02 +#define AXE_SW_RESET_PRTE 0x04 +#define AXE_SW_RESET_PRL 0x08 +#define AXE_SW_RESET_BZ 0x10 +#define AXE_SW_RESET_IPRL 0x20 +#define AXE_SW_RESET_IPPD 0x40 + +/* AX88178 documentation says to always write this bit... */ +#define AXE_178_RESET_MAGIC 0x40 + +#define AXE_178_MEDIA_GMII 0x0001 +#define AXE_MEDIA_FULL_DUPLEX 0x0002 +#define AXE_172_MEDIA_TX_ABORT_ALLOW 0x0004 +/* AX88178 documentation says to always write 1 to reserved bit... */ +#define AXE_178_MEDIA_MAGIC 0x0004 +#define AXE_178_MEDIA_ENCK 0x0008 +#define AXE_172_MEDIA_FLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_RXFLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_TXFLOW_CONTROL_EN 0x0020 +#define AXE_178_MEDIA_JUMBO_EN 0x0040 +#define AXE_178_MEDIA_LTPF_ONLY 0x0080 +#define AXE_178_MEDIA_RX_EN 0x0100 +#define AXE_178_MEDIA_100TX 0x0200 +#define AXE_178_MEDIA_SBP 0x0800 +#define AXE_178_MEDIA_SUPERMAC 0x1000 #define AXE_RXCMD_PROMISC 0x0001 #define AXE_RXCMD_ALLMULTI 0x0002 -#define AXE_RXCMD_UNICAST 0x0004 +#define AXE_172_RXCMD_UNICAST 0x0004 +#define AXE_178_RXCMD_KEEP_INVALID_CRC 0x0004 #define AXE_RXCMD_BROADCAST 0x0008 #define AXE_RXCMD_MULTICAST 0x0010 #define AXE_RXCMD_ENABLE 0x0080 +#define AXE_178_RXCMD_MFB 0x0300 #define AXE_NOPHY 0xE0 +#define AXE_INTPHY 0x10 #define AXE_TIMEOUT 1000 +#define AXE_172_BUFSZ 1536 +#define AXE_178_MIN_BUFSZ 2048 +#define AXE_178_MAX_BUFSZ 16384 #define AXE_MIN_FRAMELEN 60 #define AXE_RX_FRAMES 1 #define AXE_TX_FRAMES 1 +#define AXE_RX_LIST_CNT 1 +#define AXE_TX_LIST_CNT 1 + #define AXE_CTL_READ 0x01 #define AXE_CTL_WRITE 0x02 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 9 20:10:46 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 51A5E16A41A; Thu, 9 Aug 2007 20:10:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D00E316A418 for ; Thu, 9 Aug 2007 20:10:45 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8A48A13C459 for ; Thu, 9 Aug 2007 20:10:45 +0000 (UTC) (envelope-from jbr@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79KAjST091716 for ; Thu, 9 Aug 2007 20:10:45 GMT (envelope-from jbr@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79KAjvm091712 for perforce@freebsd.org; Thu, 9 Aug 2007 20:10:45 GMT (envelope-from jbr@FreeBSD.org) Date: Thu, 9 Aug 2007 20:10:45 GMT Message-Id: <200708092010.l79KAjvm091712@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jbr@FreeBSD.org using -f From: Jesper Brix Rosenkilde To: Perforce Change Reviews Cc: Subject: PERFORCE change 124976 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, 09 Aug 2007 20:10:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=124976 Change 124976 by jbr@jbr_bob on 2007/08/09 20:10:36 Prepering for sf_buf, still needs unmap Affected files ... .. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#10 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/exec.h#3 edit .. //depot/projects/soc2007/jbr-syscall/src/sys/sys/imgact.h#2 edit Differences ... ==== //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#10 (text+ko) ==== @@ -445,7 +445,8 @@ goto exec_fail_dealloc; } - exec_map_sysshm(imgp); + if (exec_map_sysshm(imgp)) + goto exec_fail_dealloc; /* * Special interpreter operation, cleanup and loop up to try to @@ -453,6 +454,7 @@ */ if (imgp->interpreted) { exec_unmap_first_page(imgp); + exec_unmap_sysshm(imgp); /* * VV_TEXT needs to be unset for scripts. There is a short * period before we determine that something is a script where @@ -787,6 +789,9 @@ if (imgp->firstpage != NULL) exec_unmap_first_page(imgp); + if (imgp->sysshm != NULL) + exec_unmap_sysshm(imgp); + if (imgp->vp != NULL) { NDFREE(ndp, NDF_ONLY_PNBUF); vput(imgp->vp); @@ -906,14 +911,25 @@ int exec_map_sysshm(imgp) - struct image_params *imgp; + struct image_params *imgp; { + int error; vm_map_t map = &imgp->proc->p_vmspace->vm_map; vm_offset_t *addr = &imgp->proc->p_sysent->sv_sysshm; - vm_map_sysshm(map, addr, 42); + if (imgp->sysshm != NULL) + exec_unmap_sysshm(imgp); + + error = vm_map_sysshm(map, addr, 42); + + return(error); +} + +void +exec_unmap_sysshm(imgp) + struct image_params *imgp; +{ - return(0); } /* ==== //depot/projects/soc2007/jbr-syscall/src/sys/sys/exec.h#3 (text+ko) ==== @@ -75,6 +75,7 @@ void exec_unmap_first_page(struct image_params *); int exec_map_sysshm(struct image_params *); +void exec_unmap_sysshm(struct image_params *); int exec_register(const struct execsw *); int exec_unregister(const struct execsw *); ==== //depot/projects/soc2007/jbr-syscall/src/sys/sys/imgact.h#2 (text+ko) ==== @@ -60,6 +60,7 @@ char *interpreter_name; /* name of the interpreter */ void *auxargs; /* ELF Auxinfo structure pointer */ struct sf_buf *firstpage; /* first page that we mapped */ + struct sf_buf *sysshm; unsigned long ps_strings; /* PS_STRINGS for BSD/OS binaries */ size_t auxarg_size; struct image_args *args; /* system call arguments */ From owner-p4-projects@FreeBSD.ORG Thu Aug 9 22:47:04 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA00416A420; Thu, 9 Aug 2007 22:47:03 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F4EF16A419 for ; Thu, 9 Aug 2007 22:47:03 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3EC6613C494 for ; Thu, 9 Aug 2007 22:47:03 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79Ml3am012951 for ; Thu, 9 Aug 2007 22:47:03 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79Ml3kL012948 for perforce@freebsd.org; Thu, 9 Aug 2007 22:47:03 GMT (envelope-from mharvan@FreeBSD.org) Date: Thu, 9 Aug 2007 22:47:03 GMT Message-Id: <200708092247.l79Ml3kL012948@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124981 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, 09 Aug 2007 22:47:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=124981 Change 124981 by mharvan@mharvan_bike-planet on 2007/08/09 22:46:07 working TCP_CATCHALL Affected files ... .. //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/sys.patch#2 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/sys.patch#2 (text+ko) ==== @@ -4,7 +4,7 @@ retrieving revision 1.31.2.2 diff -u -r1.31.2.2 tcp.h --- tcp.h 5 Mar 2007 10:21:52 -0000 1.31.2.2 -+++ tcp.h 9 Aug 2007 17:12:31 -0000 ++++ tcp.h 9 Aug 2007 22:41:16 -0000 @@ -160,6 +160,7 @@ #define TCP_NOOPT 0x08 /* don't use TCP options */ #define TCP_MD5SIG 0x10 /* use MD5 digests (RFC2385) */ @@ -19,35 +19,31 @@ retrieving revision 1.281.2.13 diff -u -r1.281.2.13 tcp_input.c --- tcp_input.c 12 Jun 2007 18:53:32 -0000 1.281.2.13 -+++ tcp_input.c 9 Aug 2007 17:12:33 -0000 ++++ tcp_input.c 9 Aug 2007 22:41:18 -0000 @@ -163,6 +163,7 @@ #define tcb6 tcb /* for KAME src sync over BSD*'s */ struct inpcbinfo tcbinfo; struct mtx *tcbinfo_mtx; -+struct inpcb *inp_catchall = NULL; ++struct inpcb *inp_catchall; /* binding to all unused TCP ports */ static void tcp_dooptions(struct tcpopt *, u_char *, int, int); -@@ -690,6 +691,23 @@ +@@ -690,6 +691,19 @@ goto drop; } #endif /*IPSEC || FAST_IPSEC*/ + + /* catchall socket */ -+ if ((inp == NULL) && (inp_catchall != NULL) && -+ /* only the SYN flag shall be set */ -+ (thflags & TH_SYN) //&& (thflags ^ TH_SYN) == 0 -+ ) { -+ printf("catchall socket used (0x%x)\n", -+ (unsigned int)inp_catchall); -+ char dbuf[4*sizeof "123"], sbuf[4*sizeof "123"]; -+ strcpy(dbuf, inet_ntoa(ip->ip_dst)); -+ strcpy(sbuf, inet_ntoa(ip->ip_src)); -+ printf("\tip_src: %s, sport: %hu\n\tip_dst: %s, dport: %hu\n", -+ sbuf, ntohs(th->th_sport), -+ dbuf, ntohs(th->th_dport)); ++ if ((inp == NULL) && (inp_catchall != NULL)) { ++ printf("catchall socket used (0x%x)\n", ++ (unsigned int)inp_catchall); ++ char dbuf[4*sizeof "123"], sbuf[4*sizeof "123"]; ++ strcpy(dbuf, inet_ntoa(ip->ip_dst)); ++ strcpy(sbuf, inet_ntoa(ip->ip_src)); ++ printf("\tip_src: %s, sport: %hu\n\tip_dst: %s, dport: %hu\n", ++ sbuf, ntohs(th->th_sport), dbuf, ntohs(th->th_dport)); + -+ inp = inp_catchall; ++ inp = inp_catchall; + } /* @@ -58,7 +54,7 @@ retrieving revision 1.228.2.14 diff -u -r1.228.2.14 tcp_subr.c --- tcp_subr.c 30 Dec 2006 17:58:46 -0000 1.228.2.14 -+++ tcp_subr.c 9 Aug 2007 17:12:35 -0000 ++++ tcp_subr.c 9 Aug 2007 22:41:19 -0000 @@ -324,6 +324,9 @@ tcp_rexmit_slop = TCPTV_CPU_VAR; tcp_inflight_rttthresh = TCPTV_INFLIGHT_RTTTHRESH; @@ -75,15 +71,15 @@ retrieving revision 1.124.2.6 diff -u -r1.124.2.6 tcp_usrreq.c --- tcp_usrreq.c 8 Jan 2007 18:10:12 -0000 1.124.2.6 -+++ tcp_usrreq.c 9 Aug 2007 17:12:36 -0000 ++++ tcp_usrreq.c 9 Aug 2007 22:41:21 -0000 @@ -162,6 +162,12 @@ INP_INFO_WUNLOCK(&tcbinfo); return error; } + + if (inp == inp_catchall) { -+ printf("deactivating TCP_CATCHALL - socket closed\n"); -+ inp_catchall = NULL; ++ printf("deactivating TCP_CATCHALL - socket closed\n"); ++ inp_catchall = NULL; + } + INP_LOCK(inp); @@ -94,46 +90,49 @@ break; + case TCP_CATCHALL: -+ printf("TCP_CATCHALL option code\n"); ++ printf("TCP_CATCHALL option code\n"); + error = sooptcopyin(sopt, &optval, sizeof optval, + sizeof optval); + if (error) + break; + -+ printf("TCP_CATCHALL optval: %d\n", optval); ++ printf("TCP_CATCHALL optval: %d\n", optval); + if (optval > 0) { /* enable CATCHALL */ -+ printf("request to enable TCP_CATCHALL\n"); -+ if (inp_catchall == NULL) { -+ printf("enabled TCP_CATCHALL\n"); -+ inp_catchall = inp; -+ } else { -+ printf("TCP_CATCHALL already enabled, " -+ "ignoring setsockopt()\n"); -+ error = EINVAL; -+ } ++ printf("request to enable TCP_CATCHALL\n"); ++ if (inp_catchall == NULL) { ++ printf("enabled TCP_CATCHALL\n"); ++ inp_catchall = inp; ++ } else { ++ printf("TCP_CATCHALL already enabled, " ++ "ignoring setsockopt()\n"); ++ error = EINVAL; ++ } + } else {/* disable CATCHALL */ -+ printf("request to disable TCP_CATCHALL\n"); -+ if (inp_catchall == inp) { -+ printf("disabled TCP_CATCHALL\n"); -+ inp_catchall = NULL; -+ } else { -+ printf("TCP_CATCHALL already disabled, " -+ "ignoring setsockopt()\n"); -+ error = EINVAL; -+ } ++ printf("request to disable TCP_CATCHALL\n"); ++ if (inp_catchall == inp) { ++ printf("disabled TCP_CATCHALL\n"); ++ inp_catchall = NULL; ++ } else { ++ printf("TCP_CATCHALL already disabled" ++ ", ignoring setsockopt()\n"); ++ error = EINVAL; ++ } + } + break; + default: error = ENOPROTOOPT; break; -@@ -1145,6 +1182,10 @@ +@@ -1145,6 +1182,13 @@ case TCP_INFO: tcp_fill_info(tp, &ti); error = sooptcopyout(sopt, &ti, sizeof ti); + break; + case TCP_CATCHALL: -+ optval = 1; ++ if (inp == inp_catchall) ++ optval = 1; ++ else ++ optval = 0; + error = sooptcopyout(sopt, &optval, sizeof optval); break; default: @@ -144,12 +143,12 @@ retrieving revision 1.126.2.3 diff -u -r1.126.2.3 tcp_var.h --- tcp_var.h 19 Sep 2006 12:58:40 -0000 1.126.2.3 -+++ tcp_var.h 9 Aug 2007 17:12:37 -0000 ++++ tcp_var.h 9 Aug 2007 22:41:22 -0000 @@ -504,6 +504,7 @@ extern struct inpcbhead tcb; /* head of queue of active tcpcb's */ extern struct inpcbinfo tcbinfo; -+extern struct inpcb *inp_catchall; ++extern struct inpcb *inp_catchall; /* binding to all unused TCP ports */ extern struct tcpstat tcpstat; /* tcp statistics */ extern int tcp_mssdflt; /* XXX */ extern int tcp_minmss; From owner-p4-projects@FreeBSD.ORG Thu Aug 9 23:25:51 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B9A2116A420; Thu, 9 Aug 2007 23:25:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E87116A41A for ; Thu, 9 Aug 2007 23:25:51 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6DE6813C465 for ; Thu, 9 Aug 2007 23:25:51 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l79NPpMF016781 for ; Thu, 9 Aug 2007 23:25:51 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l79NPp0c016778 for perforce@freebsd.org; Thu, 9 Aug 2007 23:25:51 GMT (envelope-from mharvan@FreeBSD.org) Date: Thu, 9 Aug 2007 23:25:51 GMT Message-Id: <200708092325.l79NPp0c016778@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 124982 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, 09 Aug 2007 23:25:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=124982 Change 124982 by mharvan@mharvan_bike-planet on 2007/08/09 23:25:40 rate limit for TYCP_CATCHALL-created sockets Affected files ... .. //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/sys.patch#3 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/tcp_catchall/sys.patch#3 (text+ko) ==== @@ -4,7 +4,7 @@ retrieving revision 1.31.2.2 diff -u -r1.31.2.2 tcp.h --- tcp.h 5 Mar 2007 10:21:52 -0000 1.31.2.2 -+++ tcp.h 9 Aug 2007 22:41:16 -0000 ++++ tcp.h 9 Aug 2007 23:15:00 -0000 @@ -160,6 +160,7 @@ #define TCP_NOOPT 0x08 /* don't use TCP options */ #define TCP_MD5SIG 0x10 /* use MD5 digests (RFC2385) */ @@ -19,8 +19,17 @@ retrieving revision 1.281.2.13 diff -u -r1.281.2.13 tcp_input.c --- tcp_input.c 12 Jun 2007 18:53:32 -0000 1.281.2.13 -+++ tcp_input.c 9 Aug 2007 22:41:18 -0000 -@@ -163,6 +163,7 @@ ++++ tcp_input.c 9 Aug 2007 23:15:02 -0000 +@@ -159,10 +159,16 @@ + &tcp_reass_overflows, 0, + "Global number of TCP Segment Reassembly Queue Overflows"); + ++static int catchalllim = 5; ++SYSCTL_INT(_net_inet_tcp, OID_AUTO, catchalllim, CTLFLAG_RW, ++ &catchalllim, 0, ++ "Rate limit on sockets created by the TCP_CATCHALL socket"); ++ + struct inpcbhead tcb; #define tcb6 tcb /* for KAME src sync over BSD*'s */ struct inpcbinfo tcbinfo; struct mtx *tcbinfo_mtx; @@ -28,7 +37,19 @@ static void tcp_dooptions(struct tcpopt *, u_char *, int, int); -@@ -690,6 +691,19 @@ +@@ -465,6 +471,11 @@ + struct tcphdr tcp_savetcp; + short ostate = 0; + #endif ++ static struct rate { ++ struct timeval lasttime; ++ int curpps; ++ } catchallr; ++ + + #ifdef INET6 + isipv6 = (mtod(m, struct ip *)->ip_v == 6) ? 1 : 0; +@@ -690,6 +701,32 @@ goto drop; } #endif /*IPSEC || FAST_IPSEC*/ @@ -42,8 +63,21 @@ + strcpy(sbuf, inet_ntoa(ip->ip_src)); + printf("\tip_src: %s, sport: %hu\n\tip_dst: %s, dport: %hu\n", + sbuf, ntohs(th->th_sport), dbuf, ntohs(th->th_dport)); -+ -+ inp = inp_catchall; ++ ++ /* do rate limiting for SYN packets */ ++ if (thflags & TH_SYN) { ++ if (catchalllim > 0) ++ if (ppsratecheck(&catchallr.lasttime, ++ &catchallr.curpps, catchalllim)) ++ inp = inp_catchall; ++ else ++ printf("ppsratecheck limited " ++ "tcp_catchall\n"); ++ else ++ printf("ppsratecheck limited tcp_catchall\n"); ++ ++ } else ++ inp = inp_catchall; + } /* @@ -54,12 +88,13 @@ retrieving revision 1.228.2.14 diff -u -r1.228.2.14 tcp_subr.c --- tcp_subr.c 30 Dec 2006 17:58:46 -0000 1.228.2.14 -+++ tcp_subr.c 9 Aug 2007 22:41:19 -0000 -@@ -324,6 +324,9 @@ ++++ tcp_subr.c 9 Aug 2007 23:15:04 -0000 +@@ -324,6 +324,10 @@ tcp_rexmit_slop = TCPTV_CPU_VAR; tcp_inflight_rttthresh = TCPTV_INFLIGHT_RTTTHRESH; -+ printf("TCP_CATCHALL initialization\n"); ++ printf("TCP_CATCHALL initialization (was 0x%x)\n", ++ (unsigned int)inp_catchall); + inp_catchall = NULL; + INP_INFO_LOCK_INIT(&tcbinfo, "tcp"); @@ -71,7 +106,7 @@ retrieving revision 1.124.2.6 diff -u -r1.124.2.6 tcp_usrreq.c --- tcp_usrreq.c 8 Jan 2007 18:10:12 -0000 1.124.2.6 -+++ tcp_usrreq.c 9 Aug 2007 22:41:21 -0000 ++++ tcp_usrreq.c 9 Aug 2007 23:15:05 -0000 @@ -162,6 +162,12 @@ INP_INFO_WUNLOCK(&tcbinfo); return error; @@ -143,7 +178,7 @@ retrieving revision 1.126.2.3 diff -u -r1.126.2.3 tcp_var.h --- tcp_var.h 19 Sep 2006 12:58:40 -0000 1.126.2.3 -+++ tcp_var.h 9 Aug 2007 22:41:22 -0000 ++++ tcp_var.h 9 Aug 2007 23:15:05 -0000 @@ -504,6 +504,7 @@ extern struct inpcbhead tcb; /* head of queue of active tcpcb's */ From owner-p4-projects@FreeBSD.ORG Fri Aug 10 05:01:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C667516A41A; Fri, 10 Aug 2007 05:01:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B64416A420 for ; Fri, 10 Aug 2007 05:01:52 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 48E8513C45B for ; Fri, 10 Aug 2007 05:01:52 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7A51qoV062630 for ; Fri, 10 Aug 2007 05:01:52 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7A51oNT062627 for perforce@freebsd.org; Fri, 10 Aug 2007 05:01:50 GMT (envelope-from imp@freebsd.org) Date: Fri, 10 Aug 2007 05:01:50 GMT Message-Id: <200708100501.l7A51oNT062627@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 124986 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, 10 Aug 2007 05:01:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=124986 Change 124986 by imp@imp_paco-paco on 2007/08/10 05:01:18 IFC @124984 Affected files ... .. //depot/projects/arm/src/ObsoleteFiles.inc#26 integrate .. //depot/projects/arm/src/contrib/opensolaris/cmd/zdb/zdb.c#3 integrate .. //depot/projects/arm/src/etc/rc.d/nscd#2 integrate .. //depot/projects/arm/src/lib/libdisk/open_disk.c#2 integrate .. //depot/projects/arm/src/lib/libthr/thread/thr_private.h#9 integrate .. //depot/projects/arm/src/sbin/ipfw/ipfw.8#10 integrate .. //depot/projects/arm/src/share/man/man4/ddb.4#6 integrate .. //depot/projects/arm/src/share/man/man4/ipsec.4#5 integrate .. //depot/projects/arm/src/share/man/man4/vpo.4#2 integrate .. //depot/projects/arm/src/share/man/man9/locking.9#5 integrate .. //depot/projects/arm/src/share/man/man9/rtentry.9#2 integrate .. //depot/projects/arm/src/share/misc/bsd-family-tree#9 integrate .. //depot/projects/arm/src/sys/arm/arm/cpufunc.c#17 integrate .. //depot/projects/arm/src/sys/arm/arm/genassym.c#7 integrate .. //depot/projects/arm/src/sys/arm/arm/swtch.S#7 integrate .. //depot/projects/arm/src/sys/boot/arm/at91/libat91/Makefile#29 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_socket.c#14 integrate .. //depot/projects/arm/src/sys/conf/NOTES#53 integrate .. //depot/projects/arm/src/sys/conf/files#77 integrate .. //depot/projects/arm/src/sys/conf/kern.pre.mk#13 integrate .. //depot/projects/arm/src/sys/conf/options#50 integrate .. //depot/projects/arm/src/sys/dev/an/if_an.c#9 integrate .. //depot/projects/arm/src/sys/dev/ath/if_ath.c#32 integrate .. //depot/projects/arm/src/sys/dev/dc/if_dc.c#14 integrate .. //depot/projects/arm/src/sys/dev/dc/if_dcreg.h#8 integrate .. //depot/projects/arm/src/sys/dev/em/if_em.c#41 integrate .. //depot/projects/arm/src/sys/dev/re/if_re.c#27 integrate .. //depot/projects/arm/src/sys/dev/streams/streams.c#4 integrate .. //depot/projects/arm/src/sys/dev/usb/if_axe.c#14 integrate .. //depot/projects/arm/src/sys/dev/usb/if_axereg.h#8 integrate .. //depot/projects/arm/src/sys/dev/wi/if_wi.c#16 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/denode.h#7 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_conv.c#8 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_denode.c#8 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_fat.c#5 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_fileno.c#3 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_lookup.c#4 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_vfsops.c#19 integrate .. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_vnops.c#12 integrate .. //depot/projects/arm/src/sys/i386/i386/machdep.c#30 integrate .. //depot/projects/arm/src/sys/i386/include/cpufunc.h#4 integrate .. //depot/projects/arm/src/sys/ia64/ia64/clock.c#7 integrate .. //depot/projects/arm/src/sys/ia64/ia64/exception.S#5 integrate .. //depot/projects/arm/src/sys/ia64/ia64/interrupt.c#9 integrate .. //depot/projects/arm/src/sys/ia64/ia64/machdep.c#18 integrate .. //depot/projects/arm/src/sys/ia64/ia64/mp_machdep.c#10 integrate .. //depot/projects/arm/src/sys/ia64/ia64/pmap.c#16 integrate .. //depot/projects/arm/src/sys/ia64/include/ia64_cpu.h#4 integrate .. //depot/projects/arm/src/sys/ia64/include/md_var.h#5 integrate .. //depot/projects/arm/src/sys/kern/kern_descrip.c#25 integrate .. //depot/projects/arm/src/sys/kern/kern_lockf.c#6 integrate .. //depot/projects/arm/src/sys/kern/kern_poll.c#8 integrate .. //depot/projects/arm/src/sys/kern/sys_socket.c#7 integrate .. //depot/projects/arm/src/sys/kern/uipc_domain.c#8 integrate .. //depot/projects/arm/src/sys/kern/uipc_syscalls.c#27 integrate .. //depot/projects/arm/src/sys/net/bpf.c#20 integrate .. //depot/projects/arm/src/sys/net/bpfdesc.h#7 integrate .. //depot/projects/arm/src/sys/net/bridgestp.c#18 integrate .. //depot/projects/arm/src/sys/net/bridgestp.h#9 integrate .. //depot/projects/arm/src/sys/net/netisr.c#5 integrate .. //depot/projects/arm/src/sys/netgraph/netflow/netflow.c#8 integrate .. //depot/projects/arm/src/sys/netinet/in_mcast.c#3 integrate .. //depot/projects/arm/src/sys/netinet/in_pcb.h#13 integrate .. //depot/projects/arm/src/sys/netinet/ip_divert.c#12 integrate .. //depot/projects/arm/src/sys/netinet/ip_dummynet.c#13 integrate .. //depot/projects/arm/src/sys/netinet/ip_fw2.c#35 integrate .. //depot/projects/arm/src/sys/netinet/ip_input.c#21 integrate .. //depot/projects/arm/src/sys/netinet/ip_ipsec.c#6 integrate .. //depot/projects/arm/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/arm/src/sys/netinet/ip_mroute.c#15 integrate .. //depot/projects/arm/src/sys/netinet/sctp_constants.h#15 integrate .. //depot/projects/arm/src/sys/netinet/sctp_input.c#19 integrate .. //depot/projects/arm/src/sys/netinet/sctp_uio.h#16 integrate .. //depot/projects/arm/src/sys/netinet/sctp_usrreq.c#19 integrate .. //depot/projects/arm/src/sys/netinet/sctputil.c#20 integrate .. //depot/projects/arm/src/sys/netinet/tcp_syncache.c#26 integrate .. //depot/projects/arm/src/sys/netinet6/ip6_ipsec.c#3 integrate .. //depot/projects/arm/src/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/arm/src/sys/netipsec/xform_ah.c#7 integrate .. //depot/projects/arm/src/sys/netipsec/xform_esp.c#8 integrate .. //depot/projects/arm/src/sys/netipsec/xform_ipcomp.c#4 integrate .. //depot/projects/arm/src/sys/nfsclient/bootp_subr.c#7 integrate .. //depot/projects/arm/src/sys/nfsclient/krpc_subr.c#3 integrate .. //depot/projects/arm/src/sys/nfsclient/nfs_socket.c#20 integrate .. //depot/projects/arm/src/sys/nfsclient/nfs_vfsops.c#14 integrate .. //depot/projects/arm/src/sys/nfsserver/nfs_srvsock.c#11 integrate .. //depot/projects/arm/src/sys/nfsserver/nfs_srvsubs.c#13 integrate .. //depot/projects/arm/src/sys/nfsserver/nfs_syscalls.c#12 integrate .. //depot/projects/arm/src/sys/pci/if_xl.c#11 integrate .. //depot/projects/arm/src/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/arm/src/sys/powerpc/include/intr_machdep.h#4 integrate .. //depot/projects/arm/src/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/arm/src/sys/powerpc/powerpc/interrupt.c#3 integrate .. //depot/projects/arm/src/sys/powerpc/powerpc/intr_machdep.c#7 integrate .. //depot/projects/arm/src/sys/powerpc/powerpc/trap.c#11 integrate .. //depot/projects/arm/src/sys/rpc/rpcclnt.c#7 integrate .. //depot/projects/arm/src/sys/security/mac/mac_syscalls.c#3 integrate .. //depot/projects/arm/src/sys/sparc64/include/iommureg.h#3 integrate .. //depot/projects/arm/src/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/arm/src/sys/sparc64/pci/psycho.c#11 integrate .. //depot/projects/arm/src/sys/sparc64/pci/psychoreg.h#5 integrate .. //depot/projects/arm/src/sys/sparc64/sbus/sbus.c#11 integrate .. //depot/projects/arm/src/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/arm/src/sys/sparc64/sparc64/iommu.c#3 integrate .. //depot/projects/arm/src/sys/sys/mutex.h#19 integrate .. //depot/projects/arm/src/sys/vm/device_pager.c#5 integrate .. //depot/projects/arm/src/sys/vm/phys_pager.c#5 integrate .. //depot/projects/arm/src/sys/vm/swap_pager.c#15 integrate .. //depot/projects/arm/src/sys/vm/vm_pager.c#3 integrate .. //depot/projects/arm/src/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt#3 integrate .. //depot/projects/arm/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c#4 integrate .. //depot/projects/arm/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_snmp.h#4 integrate .. //depot/projects/arm/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c#5 integrate .. //depot/projects/arm/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#3 integrate .. //depot/projects/arm/src/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#4 integrate .. //depot/projects/arm/src/usr.sbin/freebsd-update/freebsd-update.sh#7 integrate .. //depot/projects/arm/src/usr.sbin/nscd/Makefile#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/agent.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/cachelib.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/cacheplcs.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/config.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/debug.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/log.c#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/log.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/mp_rs_query.c#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/mp_rs_query.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/mp_ws_query.c#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/mp_ws_query.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/nscd.8#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/nscd.c#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/nscd.conf.5#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/nscdcli.c#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/nscdcli.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/parser.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/protocol.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/query.c#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/query.h#2 integrate .. //depot/projects/arm/src/usr.sbin/nscd/singletons.h#2 integrate .. //depot/projects/arm/src/usr.sbin/rpc.statd/statd.c#4 integrate Differences ... ==== //depot/projects/arm/src/ObsoleteFiles.inc#26 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.108 2007/08/02 08:04:47 bz Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.109 2007/08/07 23:48:30 marcel Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,10 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070807: removal of PowerPC specific header file. +.if ${TARGET_ARCH} == "powerpc" +OLD_FILES+=usr/include/machine/interruptvar.h +.endif # 20070801: fast_ipsec.4 gone OLD_FILES+=usr/share/man/man4/fast_ipsec.4.gz # 20070715: netatm temporarily disconnected ==== //depot/projects/arm/src/contrib/opensolaris/cmd/zdb/zdb.c#3 (text+ko) ==== @@ -1136,7 +1136,15 @@ exit(1); } - psize = statbuf.st_size; + if (S_ISCHR(statbuf.st_mode)) { + if (ioctl(fd, DIOCGMEDIASIZE, &psize) != 0) { + (void) printf("failed to get size '%s': %s\n", dev, + strerror(errno)); + exit(1); + } + } else + psize = statbuf.st_size; + psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t)); for (l = 0; l < VDEV_LABELS; l++) { ==== //depot/projects/arm/src/etc/rc.d/nscd#2 (text+ko) ==== @@ -1,32 +1,32 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/nscd,v 1.3 2006/06/06 15:34:50 ume Exp $ +# $FreeBSD: src/etc/rc.d/nscd,v 1.4 2007/08/09 13:06:11 bushman Exp $ # -# PROVIDE: cached +# PROVIDE: nscd # REQUIRE: DAEMON # BEFORE: LOGIN # # Add the following lines to /etc/rc.conf to enable cached: # -# cached_enable="YES" +# nscd_enable="YES" # -# See cached(8) for flags +# See nscd(8) for flags # . /etc/rc.subr -name=cached +name=nscd rcvar=`set_rcvar` -command=/usr/sbin/cached +command=/usr/sbin/nscd extra_commands="flush" flush_cmd="${command} -I all" -cached_enable=${cached_enable:-"NO"} -cached_pidfile=${cached_pidfile:-"/var/run/cached.pid"} -cached_flags=${cached_flags:-""} +nscd_enable=${nscd_enable:-"NO"} +nscd_pidfile=${nscd_pidfile:-"/var/run/nscd.pid"} +nscd_flags=${nscd_flags:-""} load_rc_config $name run_rc_command "$1" ==== //depot/projects/arm/src/lib/libdisk/open_disk.c#2 (text+ko) ==== @@ -8,7 +8,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libdisk/open_disk.c,v 1.10 2005/03/08 21:46:18 stefanf Exp $"); +__FBSDID("$FreeBSD: src/lib/libdisk/open_disk.c,v 1.11 2007/08/05 16:55:40 rink Exp $"); #include #include @@ -43,19 +43,24 @@ Int_Open_Disk(const char *name, char *conftxt) { struct disk *d; - int i; + int i, line = 1; char *p, *q, *r, *a, *b, *n, *t, *sn; daddr_t o, len, off; u_int l, s, ty, sc, hd, alt; daddr_t lo[10]; - for (p = conftxt; p != NULL && *p; p = strchr(p, '\n')) { + /* + * Locate the disk (by name) in our sysctl output + */ + for (p = conftxt; p != NULL && *p; p = strchr(p, '\n'), line++) { if (*p == '\n') p++; a = strsep(&p, " "); + /* Skip anything not with index 0 */ if (strcmp(a, "0")) continue; + /* Skip anything not a disk */ a = strsep(&p, " "); if (strcmp(a, "DISK")) continue; @@ -79,15 +84,17 @@ a = strsep(&p, " "); /* length in bytes */ len = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse length in line %d (r='%s')\n", + name, line, r); + return NULL; } a = strsep(&p, " "); /* sectorsize */ s = strtoul(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse sector size in line %d (r='%s')\n", + name, line, r); + return NULL; } if (s == 0) @@ -99,6 +106,7 @@ DPRINT(("Failed to add 'whole' chunk")); } + /* Try to parse any fields after the sector size in the DISK entry line */ for (;;) { a = strsep(&p, " "); if (a == NULL) @@ -106,15 +114,17 @@ b = strsep(&p, " "); o = strtoimax(b, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse parameter '%s' in line %d (r='%s')\n", + name, a, line, r); + return NULL; } if (!strcmp(a, "hd")) d->bios_hd = o; else if (!strcmp(a, "sc")) d->bios_sect = o; else - printf("HUH ? <%s> <%s>\n", a, b); + printf("libdisk: Int_Open_Disk(%s): unknown parameter '%s' with value '%s' in line %d, ignored\n", + name, a, b, line); } /* @@ -124,35 +134,43 @@ o = d->bios_hd * d->bios_sect; d->bios_cyl = (o != 0) ? len / o : 0; - p = q; + p = q; line++; /* p is now the start of the line _after_ the DISK entry */ lo[0] = 0; - for (; p != NULL && *p; p = q) { + for (; p != NULL && *p; p = q, line++) { sn = NULL; q = strchr(p, '\n'); if (q != NULL) *q++ = '\0'; a = strsep(&p, " "); /* Index */ + /* + * If we find index 0 again, this means we've encountered another disk, so it's safe to assume this disk + * has been processed. + */ if (!strcmp(a, "0")) break; l = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse depth '%s' in line %d (r='%s')\n", + name, a, line, r); + return NULL; + } t = strsep(&p, " "); /* Type {SUN, BSD, MBR, PC98, GPT} */ n = strsep(&p, " "); /* name */ a = strsep(&p, " "); /* len */ len = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse length '%s' in line %d (r='%s')\n", + name, a, line, r); + continue; } a = strsep(&p, " "); /* secsize */ s = strtoimax(a, &r, 0); if (*r) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse sector size '%s' in line %d (r='%s')\n", + name, a, line, r); + continue; } for (;;) { a = strsep(&p, " "); @@ -167,8 +185,9 @@ o = strtoimax(b, &r, 0); /* APPLE have ty as a string */ if ((*r) && (strcmp(t, "APPLE") && strcmp(t, "GPT"))) { - printf("BARF %d <%d>\n", __LINE__, *r); - exit (0); + printf("libdisk: Int_Open_Disk(%s): can't parse parameter '%s' in line %d (r='%s')\n", + name, a, line, r); + break; } if (!strcmp(a, "o")) off = o; ==== //depot/projects/arm/src/lib/libthr/thread/thr_private.h#9 (text+ko) ==== @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE 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/libthr/thread/thr_private.h,v 1.77 2006/12/20 04:43:34 davidxu Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.78 2007/08/07 04:50:14 davidxu Exp $ */ #ifndef _THR_PRIVATE_H @@ -72,7 +72,7 @@ /* Output debug messages like this: */ #define stdout_debug(args...) _thread_printf(STDOUT_FILENO, ##args) -#define stderr_debug(args...) _thread_printf(STDOUT_FILENO, ##args) +#define stderr_debug(args...) _thread_printf(STDERR_FILENO, ##args) #ifdef _PTHREADS_INVARIANTS #define THR_ASSERT(cond, msg) do { \ ==== //depot/projects/arm/src/sbin/ipfw/ipfw.8#10 (text+ko) ==== @@ -1,7 +1,7 @@ .\" -.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.201 2007/06/18 17:52:37 maxim Exp $ +.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.203 2007/08/05 16:16:14 bz Exp $ .\" -.Dd June 16, 2007 +.Dd August 5, 2007 .Dt IPFW 8 .Os .Sh NAME @@ -1156,14 +1156,10 @@ A .Ar group may be specified by name or number. -This option should be used only if debug.mpsafenet=0 to avoid possible -deadlocks due to layering violations in its implementation. .It Cm jail Ar prisonID Matches all TCP or UDP packets sent by or received for the jail whos prison ID is .Ar prisonID . -This option should be used only if debug.mpsafenet=0 to avoid possible -deadlocks due to layering violations in its implementation. .It Cm icmptypes Ar types Matches ICMP packets whose ICMP type is in the list .Ar types . @@ -1255,7 +1251,7 @@ .It Cm ipsec Matches packets that have IPSEC history associated with them (i.e., the packet comes encapsulated in IPSEC, the kernel -has IPSEC support and IPSEC_FILTERGIF option, and can correctly +has IPSEC support and IPSEC_FILTERTUNNEL option, and can correctly decapsulate it). .Pp Note that specifying @@ -1508,8 +1504,6 @@ A .Ar user may be matched by name or identification number. -This option should be used only if debug.mpsafenet=0 to avoid possible -deadlocks due to layering violations in its implementation. .It Cm verrevpath For incoming packets, a routing table lookup is done on the packet's source address. @@ -1973,8 +1967,7 @@ .El .Pp When used with IPv6 data, dummynet currently has several limitations. -First, debug.mpsafenet=0 must be set. -Second, the information necessicary to route link-local packets to an +Information necessary to route link-local packets to an interface is not avalable after processing by dummynet so those packets are dropped in the output path. Care should be taken to insure that link-local packets are not passed to @@ -2610,8 +2603,6 @@ .Xr dummynet 4 traffic shaper supported by Akamba Corp. .Sh BUGS -Use of dummynet with IPv6 requires that debug.mpsafenet be set to 0. -.Pp The syntax has grown over the years and sometimes it might be confusing. Unfortunately, backward compatibility prevents cleaning up mistakes made in the definition of the syntax. @@ -2655,10 +2646,6 @@ .Xr setuid 2 or similar system calls. .Pp -Rules which use uid, gid or jail based matching should be used only -if debug.mpsafenet=0 to avoid possible deadlocks due to layering -violations in its implementation. -.Pp Rule syntax is subject to the command line environment and some patterns may need to be escaped with the backslash character or quoted appropriately. ==== //depot/projects/arm/src/share/man/man4/ddb.4#6 (text+ko) ==== @@ -57,9 +57,9 @@ .\" Created. .\" [90/08/30 dbg] .\" -.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.41 2006/10/30 12:55:06 ru Exp $ +.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.42 2007/08/09 20:14:35 njl Exp $ .\" -.Dd October 27, 2006 +.Dd August 6, 2007 .Dt DDB 4 .Os .Sh NAME @@ -522,6 +522,12 @@ modifier depends on the machine. If not supported, incorrect information will be displayed. .Pp +.It Ic show Cm sysregs +Show system registers (e.g., +.Li cr0-4 +on i386.) +Not present on some platforms. +.Pp .It Ic show Cm geom Op Ar addr If the .Ar addr ==== //depot/projects/arm/src/share/man/man4/ipsec.4#5 (text+ko) ==== @@ -27,9 +27,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ipsec.4,v 1.21 2007/08/02 08:04:48 bz Exp $ +.\" $FreeBSD: src/share/man/man4/ipsec.4,v 1.22 2007/08/05 16:16:14 bz Exp $ .\" -.Dd August 1, 2007 +.Dd August 5, 2007 .Dt IPSEC 4 .Os .Sh NAME @@ -37,7 +37,7 @@ .Nd Internet Protocol Security protocol .Sh SYNOPSIS .Cd "options IPSEC" -.Cd "options IPSEC_FILTERGIF" +.Cd "options IPSEC_FILTERTUNNEL" .Cd "device crypto" .Pp .In sys/types.h @@ -89,7 +89,7 @@ To properly filter on the inner packets of an .Nm tunnel with firewalls, add -.Cd "options IPSEC_FILTERGIF" +.Cd "options IPSEC_FILTERTUNNEL" to the kernel configuration file. .\" .Ss Kernel interface ==== //depot/projects/arm/src/share/man/man4/vpo.4#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/vpo.4,v 1.22 2005/01/21 08:36:37 ru Exp $ +.\" $FreeBSD: src/share/man/man4/vpo.4,v 1.23 2007/08/05 07:39:30 maxim Exp $ .\" .Dd December 14, 2004 .Dt VPO 4 @@ -38,7 +38,7 @@ .Sh DESCRIPTION The .Nm -driver provide access to parallel port Iomage Zip and Jaz drives. +driver provide access to parallel port Iomega Zip and Jaz drives. .Sh HARDWARE The .Nm ==== //depot/projects/arm/src/share/man/man9/locking.9#5 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/locking.9,v 1.10 2007/06/21 16:39:25 brueffer Exp $ +.\" $FreeBSD: src/share/man/man9/locking.9,v 1.11 2007/08/09 21:09:56 julian Exp $ .\" .Dd March 14, 2007 .Dt LOCKING 9 @@ -67,7 +67,8 @@ .El .Pp The primitives interact and have a number of rules regarding how -they can and can not be combined. There are too many for the average +they can and can not be combined. +There are too many for the average human mind and they keep changing. (if you disagree, please write replacement text) :-) .Pp @@ -85,63 +86,70 @@ If you don't own it then you just spin, waiting for the holder (on another CPU) to release it. Hopefully they are doing something fast. -You can not do anything that deschedules the thread while you +You +.Em must not +do anything that deschedules the thread while you are holding a SPIN mutex. -.Ss Sleep Mutexes -Basically sleep (regular) mutexes will deschedule the thread if the +.Ss Mutexes +Basically (regular) mutexes will deschedule the thread if the mutex can not be acquired. +A non-spin mutex can be considered to be equivalent +to getting a write lock on an +.Em rw_lock +(see below), and in fact non-spin mutexes and rw_locks may soon become the same thing. As in spin mutexes, you either get it or you don't. -You may call the +You may only call the .Xr sleep 9 -call +call via .Fn msleep or the new .Fn mtx_sleep -variant. These will atomically drop the mutex and reacquire it +variant. +These will atomically drop the mutex and reacquire it as part of waking up. +This is often however a +.Em BAD +idea because it generally relies on you having +such a good knowledge of all the call graph above you +and what assumptions it is making that there are a lot +of ways to make hard-to-find mistakes. +For example you MUST re-test all the assumptions you made before, +all the way up the call graph to where you got the lock. +You can not just assume that mtx_sleep can be inserted anywhere. +If any caller above you has any mutex or +rwlock, your sleep, will cause a panic. +If the sleep only happens rarely it may be years before the +bad code path is found. .Ss Pool Mutexes -A variant of SLEEP mutexes where the allocation of the mutex is handled +A variant of regular mutexes where the allocation of the mutex is handled more by the system. -.Ss Sx_locks -Shared/exclusive locks are used to protect data that are read far more often -than they are written. -Mutexes are inherently more efficient than shared/exclusive locks, so -shared/exclusive locks should be used prudently. -A thread may hold a shared or exclusive lock on an -.Em sx_lock -lock while sleeping. -As a result, an -.Em sx_lock -lock may not be acquired while holding a mutex. -Otherwise, if one thread slept while holding an -.Em sx_lock -lock while another thread blocked on the same -.Em sx_lock -lock after acquiring a mutex, then the second thread would effectively -end up sleeping while holding a mutex, which is not allowed. .Ss Rw_locks Reader/writer locks allow shared access to protected data by multiple threads, or exclusive access by a single thread. The threads with shared access are known as .Em readers -since they only read the protected data. +since they should only read the protected data. A thread with exclusive access is known as a .Em writer -since it can modify protected data. +since it may modify protected data. .Pp Although reader/writer locks look very similar to .Xr sx 9 -locks, their usage pattern is different. -Reader/writer locks can be treated as mutexes (see +(see below) locks, their usage pattern is different. +Reader/writer locks can be treated as mutexes (see above and .Xr mutex 9 ) with shared/exclusive semantics. -Unlike -.Xr sx 9 , -an +More specifically, regular mutexes can be +considered to be equivalent to a write-lock on an +.Em rw_lock. +In the future this may in fact +become literally the fact. +An .Em rw_lock -can be locked while holding a non-spin mutex, and an -.Em rw_lock -cannot be held while sleeping. +can be locked while holding a regular mutex, but +can +.Em not +be held while sleeping. The .Em rw_lock locks have priority propagation like mutexes, but priority @@ -150,8 +158,36 @@ are anonymous. Another important property is that shared holders of .Em rw_lock -can recurse, -but exclusive locks are not allowed to recurse. +can recurse, but exclusive locks are not allowed to recurse. +This ability should not be used lightly and +.Em may go away. +Users of recursion in any locks should be prepared to +defend their decision against vigorous criticism. +.Ss Sx_locks +Shared/exclusive locks are used to protect data that are read far more often +than they are written. +Mutexes are inherently more efficient than shared/exclusive locks, so +shared/exclusive locks should be used prudently. +The main reason for using an +.Em sx_lock +is that a thread may hold a shared or exclusive lock on an +.Em sx_lock +lock while sleeping. +As a consequence of this however, an +.Em sx_lock +lock may not be acquired while holding a mutex. +The reason for this is that, if one thread slept while holding an +.Em sx_lock +lock while another thread blocked on the same +.Em sx_lock +lock after acquiring a mutex, then the second thread would effectively +end up sleeping while holding a mutex, which is not allowed. +The +.Em sx_lock +should be considered to be closely related to +.Xr sleep 9 . +In fact it could in some cases be +considered a conditional sleep. .Ss Turnstiles Turnstiles are used to hold a queue of threads blocked on non-sleepable locks. @@ -160,6 +196,7 @@ are assigned to a lock held by an owning thread. Thus, when one thread is enqueued onto a turnstile, it can lend its priority to the owning thread. +If this sounds confusing, we need to describe it better. .Ss Semaphores .Ss Condition variables Condition variables are used in conjunction with mutexes to wait for @@ -182,7 +219,7 @@ .It You can sleep while it has recursed, but other recursive locks cannot. .It -Giant must be locked first. +Giant must be locked first before other locks. .It There are places in the kernel that drop Giant and pick it back up again. @@ -249,7 +286,8 @@ mutex before the function returns. .Pp .Ss lockmanager locks -Largely deprecated. See the +Largely deprecated. +See the .Xr lock 9 page for more information. I don't know what the downsides are but I'm sure someone will fill in this part. @@ -269,10 +307,12 @@ .El .Pp .Em *1 -Recursion is defined per lock. Lock order is important. +Recursion is defined per lock. +Lock order is important. .Pp .Em *2 -readers can recurse though writers can not. Lock order is important. +readers can recurse though writers can not. +Lock order is important. .Pp .Em *3 There are calls atomically release this primitive when going to sleep @@ -302,6 +342,7 @@ .Xr condvar 9 , .Xr lock 9 , .Xr mtx_pool 9 , +.Xr mutex 9 , .Xr rwlock 9 , .Xr sema 9 , .Xr sleep 9 , ==== //depot/projects/arm/src/share/man/man9/rtentry.9#2 (text+ko) ==== @@ -26,7 +26,7 @@ .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/rtentry.9,v 1.24 2005/01/21 08:36:40 ru Exp $ +.\" $FreeBSD: src/share/man/man9/rtentry.9,v 1.25 2007/08/05 07:38:09 maxim Exp $ .\" .Dd October 7, 2004 .Os @@ -263,7 +263,7 @@ .Dv RMX_RTTUNIT per second. .It Vt "u_long rmx_rttvar" ; -The average deviation of the round-type time to this destination, in +The average deviation of the round-trip time to this destination, in units of .Dv RMX_RTTUNIT per second. ==== //depot/projects/arm/src/share/misc/bsd-family-tree#9 (text+ko) ==== @@ -174,7 +174,7 @@ | | | | \ FreeBSD 5.0 | | | | | | | | | -FreeBSD 5.1 | | | DragonFly 1.0 +FreeBSD 5.1 | | | DragonFly 1.0 | \ | | | | | ----- Mac OS X | | | | 10.3 | | | @@ -185,7 +185,7 @@ *-------FreeBSD 5.3 | | | | | | | | OpenBSD 3.6 | | | | NetBSD 2.0 | | - | | | | | | | DragonFly 1.2.0 + | | | | | | | DragonFly 1.2.0 | | Mac OS X | | NetBSD 2.0.2 | | | | 10.4 | | | | | | FreeBSD 5.4 | | | | | | @@ -198,19 +198,20 @@ | | | | | NetBSD 2.1 | | | | | | | | | | | | | NetBSD 3.0 | | - | | | | | | | | DragonFly 1.4.0 + | | | | | | | | DragonFly 1.4.0 | | | | | | | OpenBSD 3.9 | | FreeBSD | | | | | | | | 6.1 | | | | | | | | | FreeBSD 5.5 | | | | | | - | | | | | NetBSD 3.0.1 | DragonFly 1.6.0 + | | | | | NetBSD 3.0.1 | DragonFly 1.6.0 | | | | | | | | | | | | | | OpenBSD 4.0 | | | | | | NetBSD 3.0.2 | | | | | | NetBSD 3.1 | | | FreeBSD 6.2 | | | | - | | | | | DragonFly 1.8.0 + | | | | | DragonFly 1.8.0 | | | | OpenBSD 4.1 | + | | | | | DragonFly 1.10.0 | V | | | | FreeBSD 7 -current | NetBSD -current OpenBSD -current | | | | | | @@ -466,6 +467,7 @@ FreeBSD 6.2 2007-01-15 [FBD] DragonFly 1.8.0 2007-01-30 [DFB] OpenBSD 4.1 2007-05-01 [OBD] +DragonFly 1.10.0 2007-08-06 [DFB] Bibliography ------------------------ @@ -526,4 +528,4 @@ Copyright (c) 1997-2007 Wolfram Schneider URL: http://cvsweb.freebsd.org/src/share/misc/bsd-family-tree -$FreeBSD: src/share/misc/bsd-family-tree,v 1.113 2007/05/31 03:40:29 imp Exp $ +$FreeBSD: src/share/misc/bsd-family-tree,v 1.115 2007/08/07 15:35:24 maxim Exp $ ==== //depot/projects/arm/src/sys/arm/arm/cpufunc.c#17 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $"); #include #include @@ -148,9 +148,9 @@ arm7tdmi_cache_flushID, /* idcache_wbinv_all */ (void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -210,9 +210,9 @@ arm8_cache_purgeID, /* idcache_wbinv_all */ (void *)arm8_cache_purgeID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -271,9 +271,9 @@ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ arm9_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -391,9 +391,9 @@ arm10_idcache_wbinv_all, /* idcache_wbinv_all */ arm10_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -453,9 +453,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -514,9 +514,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -575,9 +575,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -639,9 +639,9 @@ xscale_cache_purgeID, /* idcache_wbinv_all */ xscale_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ ==== //depot/projects/arm/src/sys/arm/arm/genassym.c#7 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $"); #include #include #include @@ -92,6 +92,7 @@ ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TD_MD, offsetof(struct thread, td_md)); +ASSYM(TD_LOCK, offsetof(struct thread, td_lock)); ASSYM(MD_TP, offsetof(struct mdthread, md_tp)); ASSYM(TF_R0, offsetof(struct trapframe, tf_r0)); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 10 05:22:19 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D52F316A419; Fri, 10 Aug 2007 05:22:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 934DE16A417 for ; Fri, 10 Aug 2007 05:22:18 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 65F3513C45D for ; Fri, 10 Aug 2007 05:22:18 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7A5MIJ0064997 for ; Fri, 10 Aug 2007 05:22:18 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7A5MINK064994 for perforce@freebsd.org; Fri, 10 Aug 2007 05:22:18 GMT (envelope-from imp@freebsd.org) Date: Fri, 10 Aug 2007 05:22:18 GMT Message-Id: <200708100522.l7A5MINK064994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 124988 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, 10 Aug 2007 05:22:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=124988 Change 124988 by imp@imp_lighthouse on 2007/08/10 05:22:16 Add BINDIR?=/boot Affected files ... .. //depot/projects/arm/src/sys/boot/arm/at91/Makefile.inc#34 edit Differences ... ==== //depot/projects/arm/src/sys/boot/arm/at91/Makefile.inc#34 (text+ko) ==== @@ -2,6 +2,7 @@ .if !target(__at91_boot_Makefile.inc__) .PATH: ${.CURDIR}/../../../../libkern ${.CURDIR}/../../../../libkern/arm +BINDIR?=/boot __at91_boot_Makefile.inc__: From owner-p4-projects@FreeBSD.ORG Fri Aug 10 05:46:50 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE0B316A421; Fri, 10 Aug 2007 05:46:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89AEF16A417 for ; Fri, 10 Aug 2007 05:46:49 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 797EE13C45E for ; Fri, 10 Aug 2007 05:46:49 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7A5kncR066632 for ; Fri, 10 Aug 2007 05:46:49 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7A5knih066629 for perforce@freebsd.org; Fri, 10 Aug 2007 05:46:49 GMT (envelope-from imp@freebsd.org) Date: Fri, 10 Aug 2007 05:46:49 GMT Message-Id: <200708100546.l7A5knih066629@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 124990 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, 10 Aug 2007 05:46:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=124990 Change 124990 by imp@imp_lighthouse on 2007/08/10 05:46:37 XMODEM_DL OBE. Affected files ... .. //depot/projects/arm/src/sys/boot/arm/at91/boot2/boot2.c#36 edit .. //depot/projects/arm/src/sys/boot/arm/at91/boot2/bwct_board.c#3 edit .. //depot/projects/arm/src/sys/boot/arm/at91/boot2/tsc_board.c#11 edit Differences ... ==== //depot/projects/arm/src/sys/boot/arm/at91/boot2/boot2.c#36 (text+ko) ==== @@ -172,10 +172,6 @@ c = 0; if (parse()) xputchar('\a'); -#ifdef XMODEM_DL - else if (*cmd == '*') - Update(); -#endif else load(); } ==== //depot/projects/arm/src/sys/boot/arm/at91/boot2/bwct_board.c#3 (text+ko) ==== @@ -35,38 +35,6 @@ mac[1], mac[2], mac[3], mac[4], mac[5]); } -#ifdef XMODEM_DL -#define FLASH_OFFSET (0 * FLASH_PAGE_SIZE) -#define KERNEL_OFFSET (220 * FLASH_PAGE_SIZE) -#define KERNEL_LEN (6 * 1024 * FLASH_PAGE_SIZE) - -static void -UpdateFlash(int offset) -{ - char *addr = (char *)0x20000000 + (1 << 20); /* Load to base + 1MB */ - int len, i, off; - - while ((len = xmodem_rx(addr)) == -1) - continue; - printf("\nDownloaded %u bytes.\n", len); - for (i = 0; i < len; i+= FLASH_PAGE_SIZE) { - off = i + offset; - SPI_WriteFlash(off, addr + i, FLASH_PAGE_SIZE); - } -} -void -Update(void) -{ - UpdateFlash(FLASH_OFFSET); -} - -#else -void -Update(void) -{ -} -#endif - void board_init(void) { ==== //depot/projects/arm/src/sys/boot/arm/at91/boot2/tsc_board.c#11 (text+ko) ==== @@ -87,40 +87,6 @@ mac[1], mac[2], mac[3], mac[4], mac[5]); } -#ifdef XMODEM_DL -#define FLASH_OFFSET (0 * FLASH_PAGE_SIZE) -#define FPGA_OFFSET (15 * FLASH_PAGE_SIZE) -#define FPGA_LEN (212608) -#define KERNEL_OFFSET (220 * FLASH_PAGE_SIZE) -#define KERNEL_LEN (6 * 1024 * FLASH_PAGE_SIZE) - -static void -UpdateFlash(int offset) -{ - char *addr = (char *)0x20000000 + (1 << 20); /* Load to base + 1MB */ - int len, i, off; - - while ((len = xmodem_rx(addr)) == -1) - continue; - printf("\nDownloaded %u bytes.\n", len); - for (i = 0; i < len; i+= FLASH_PAGE_SIZE) { - off = i + offset; - SPI_WriteFlash(off, addr + i, FLASH_PAGE_SIZE); - } -} -void -Update(void) -{ - UpdateFlash(FLASH_OFFSET); -} - -#else -void -Update(void) -{ -} -#endif - void board_init(void) { From owner-p4-projects@FreeBSD.ORG Fri Aug 10 06:13:23 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BE59B16A421; Fri, 10 Aug 2007 06:13:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80F8816A41B for ; Fri, 10 Aug 2007 06:13:23 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 70EED13C46C for ; Fri, 10 Aug 2007 06:13:23 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7A6DNim069775 for ; Fri, 10 Aug 2007 06:13:23 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7A6DNa4069772 for perforce@freebsd.org; Fri, 10 Aug 2007 06:13:23 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Fri, 10 Aug 2007 06:13:23 GMT Message-Id: <200708100613.l7A6DNa4069772@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 124991 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, 10 Aug 2007 06:13:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=124991 Change 124991 by zhouzhouyi@zhouzhouyi_mactest on 2007/08/10 06:13:17 Add test cases for pipe io Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/Makefile#5 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/pipe_io.c#1 add .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/fifo/00.t#2 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#15 edit .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/pipe/00.t#1 add Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/Makefile#5 (text+ko) ==== @@ -6,7 +6,7 @@ #CFLAGS+=-DHAS_TRUNCATE64 #CFLAGS+=-DHAS_STAT64 -all: macproc mactest mdconfigopenrdonly fifo_io +all: macproc mactest mdconfigopenrdonly fifo_io pipe_io macproc: macproc.c gcc -Wall ${CFLAGS} macproc.c -o macproc -lutil @@ -17,9 +17,12 @@ gcc ${CFLAGS} -o mdconfigopenrdonly mdconfig.c -lutil -lgeom -lbsdxml -lsbuf fifo_io: fifo_io.c gcc ${CFLAGS} -o fifo_io fifo_io.c mactestparser.tab.c macconf.c +pipe_io: pipe_io.c + gcc ${CFLAGS} -o pipe_io pipe_io.c mactestparser.tab.c macconf.c clean: rm -f macproc rm -f mactest rm -f mdconfigopenrdonly rm -f fifo_io + rm -f pipe_io ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/fifo/00.t#2 (text+ko) ==== @@ -70,7 +70,7 @@ echo "biba/high(low-high),mls/6(low-high) biba/high,mls/7" >> ${mactest_conf} echo -n "pid = -2 mac_test_check_vnode_open#VREAD:" >> ${mactest_conf} echo "biba/high(low-high),mls/7(low-high) biba/high,mls/7" >> ${mactest_conf} - fifotestexpect "" "" -r "mls/7(low-high)" -w "mls/6(low-high)" -f ${mactest_conf} -p ${n3}/${n2} + bizarretestexpect ${fifo_io} "" "" -r "mls/7(low-high)" -w "mls/6(low-high)" -f ${mactest_conf} -p ${n3}/${n2} #cleanup: t=`sysctl security.mac.mls.enabled=0` ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/tests/misc.sh#15 (text+ko) ==== @@ -19,6 +19,7 @@ mactest="${maindir}/mactest" mdconfigopenrdonly="${maindir}/mdconfigopenrdonly" fifo_io="${maindir}/fifo_io" +pipe_io="${maindir}/pipe_io" . ${maindir}/tests/conf @@ -112,15 +113,19 @@ } -fifotestexpect() +bizarretestexpect() { - + + command="${1}" + shift + e="${1}" shift e1="${1}" shift + if [ -f ${tmp_file} ]; then rm ${tmp_file} fi @@ -139,7 +144,7 @@ label1="mls/equal,biba/equal" setfmac ${label1} ${tmp_file} ${tmp_file1} /var/log/mactest - ${fifo_io} $* 2>${tmp_file1} 1>>${tmp_file} + ${command} $* 2>${tmp_file1} 1>>${tmp_file} c=1 b=1 From owner-p4-projects@FreeBSD.ORG Fri Aug 10 09:46:54 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4F38716A46B; Fri, 10 Aug 2007 09:46:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F32A516A41B for ; Fri, 10 Aug 2007 09:46:53 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E1E0B13C442 for ; Fri, 10 Aug 2007 09:46:53 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7A9krhB095708 for ; Fri, 10 Aug 2007 09:46:53 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7A9kovD095703 for perforce@freebsd.org; Fri, 10 Aug 2007 09:46:50 GMT (envelope-from gonzo@FreeBSD.org) Date: Fri, 10 Aug 2007 09:46:50 GMT Message-Id: <200708100946.l7A9kovD095703@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 124998 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, 10 Aug 2007 09:46:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=124998 Change 124998 by gonzo@gonzo_jeeves on 2007/08/10 09:46:26 o IFC Affected files ... .. //depot/projects/mips2/src/ObsoleteFiles.inc#7 integrate .. //depot/projects/mips2/src/contrib/less/main.c#4 integrate .. //depot/projects/mips2/src/contrib/opensolaris/cmd/zdb/zdb.c#3 integrate .. //depot/projects/mips2/src/contrib/tcpdump/print-bgp.c#2 integrate .. //depot/projects/mips2/src/etc/namedb/named.conf#3 integrate .. //depot/projects/mips2/src/etc/rc.d/nscd#1 branch .. //depot/projects/mips2/src/include/arpa/tftp.h#2 integrate .. //depot/projects/mips2/src/lib/libarchive/test/main.c#4 integrate .. //depot/projects/mips2/src/lib/libc/net/name6.c#3 integrate .. //depot/projects/mips2/src/lib/libdisk/open_disk.c#2 integrate .. //depot/projects/mips2/src/lib/libelf/elf_begin.3#2 integrate .. //depot/projects/mips2/src/lib/libelf/elf_memory.3#2 integrate .. //depot/projects/mips2/src/lib/libthr/thread/thr_private.h#4 integrate .. //depot/projects/mips2/src/lib/libutil/flopen.3#2 integrate .. //depot/projects/mips2/src/lib/libutil/flopen.c#2 integrate .. //depot/projects/mips2/src/lib/libutil/pidfile.c#3 integrate .. //depot/projects/mips2/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 integrate .. //depot/projects/mips2/src/sbin/fsck_ffs/main.c#3 integrate .. //depot/projects/mips2/src/sbin/ifconfig/ifbridge.c#4 integrate .. //depot/projects/mips2/src/sbin/ifconfig/ifconfig.8#6 integrate .. //depot/projects/mips2/src/sbin/ipfw/ipfw.8#5 integrate .. //depot/projects/mips2/src/share/man/man4/Makefile#8 integrate .. //depot/projects/mips2/src/share/man/man4/crypto.4#2 integrate .. //depot/projects/mips2/src/share/man/man4/ddb.4#3 integrate .. //depot/projects/mips2/src/share/man/man4/enc.4#4 integrate .. //depot/projects/mips2/src/share/man/man4/fast_ipsec.4#3 delete .. //depot/projects/mips2/src/share/man/man4/ipsec.4#3 integrate .. //depot/projects/mips2/src/share/man/man4/lagg.4#2 integrate .. //depot/projects/mips2/src/share/man/man4/man4.i386/padlock.4#4 integrate .. //depot/projects/mips2/src/share/man/man4/ng_ppp.4#3 integrate .. //depot/projects/mips2/src/share/man/man4/vpo.4#2 integrate .. //depot/projects/mips2/src/share/man/man9/locking.9#3 integrate .. //depot/projects/mips2/src/share/man/man9/rtentry.9#2 integrate .. //depot/projects/mips2/src/share/man/man9/sysctl_ctx_init.9#2 integrate .. //depot/projects/mips2/src/share/misc/bsd-family-tree#5 integrate .. //depot/projects/mips2/src/share/misc/committers-doc.dot#2 integrate .. //depot/projects/mips2/src/sys/amd64/amd64/local_apic.c#5 integrate .. //depot/projects/mips2/src/sys/amd64/amd64/mp_machdep.c#4 integrate .. //depot/projects/mips2/src/sys/arm/arm/busdma_machdep.c#4 integrate .. //depot/projects/mips2/src/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/mips2/src/sys/arm/arm/cpufunc_asm_xscale_c3.S#1 branch .. //depot/projects/mips2/src/sys/arm/arm/elf_trampoline.c#3 integrate .. //depot/projects/mips2/src/sys/arm/arm/genassym.c#4 integrate .. //depot/projects/mips2/src/sys/arm/arm/identcpu.c#3 integrate .. //depot/projects/mips2/src/sys/arm/arm/intr.c#4 integrate .. //depot/projects/mips2/src/sys/arm/arm/pmap.c#5 integrate .. //depot/projects/mips2/src/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/mips2/src/sys/arm/arm/trap.c#5 integrate .. //depot/projects/mips2/src/sys/arm/arm/vm_machdep.c#5 integrate .. //depot/projects/mips2/src/sys/arm/at91/at91rm92reg.h#3 integrate .. //depot/projects/mips2/src/sys/arm/at91/kb920x_machdep.c#5 integrate .. //depot/projects/mips2/src/sys/arm/at91/ohci_atmelarm.c#3 integrate .. //depot/projects/mips2/src/sys/arm/conf/CRB#1 branch .. //depot/projects/mips2/src/sys/arm/conf/KB920X#4 integrate .. //depot/projects/mips2/src/sys/arm/include/armreg.h#3 integrate .. //depot/projects/mips2/src/sys/arm/include/cpufunc.h#3 integrate .. //depot/projects/mips2/src/sys/arm/include/pmap.h#4 integrate .. //depot/projects/mips2/src/sys/arm/include/pte.h#3 integrate .. //depot/projects/mips2/src/sys/arm/xscale/i80321/i80321_pci.c#3 integrate .. //depot/projects/mips2/src/sys/arm/xscale/i80321/i80321_timer.c#4 integrate .. //depot/projects/mips2/src/sys/arm/xscale/i80321/i80321_wdog.c#3 integrate .. //depot/projects/mips2/src/sys/arm/xscale/i80321/i80321var.h#3 integrate .. //depot/projects/mips2/src/sys/arm/xscale/i80321/obio.c#2 integrate .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/crb_machdep.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/files.crb#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/files.i81342#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/i81342.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/i81342_mcu.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/i81342_pci.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/i81342_space.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/i81342reg.h#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/i81342var.h#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/obio.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/obio_space.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/obiovar.h#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/std.crb#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/std.i81342#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/uart_bus_i81342.c#1 branch .. //depot/projects/mips2/src/sys/arm/xscale/i8134x/uart_cpu_i81342.c#1 branch .. //depot/projects/mips2/src/sys/boot/arm/at91/libat91/Makefile#4 integrate .. //depot/projects/mips2/src/sys/compat/linux/linux_socket.c#5 integrate .. //depot/projects/mips2/src/sys/conf/Makefile.arm#4 integrate .. //depot/projects/mips2/src/sys/conf/NOTES#7 integrate .. //depot/projects/mips2/src/sys/conf/files#9 integrate .. //depot/projects/mips2/src/sys/conf/kern.pre.mk#5 integrate .. //depot/projects/mips2/src/sys/conf/options#7 integrate .. //depot/projects/mips2/src/sys/conf/options.ia64#2 integrate .. //depot/projects/mips2/src/sys/contrib/pf/net/if_pfsync.c#6 integrate .. //depot/projects/mips2/src/sys/dev/acpica/acpi_hpet.c#5 integrate .. //depot/projects/mips2/src/sys/dev/acpica/acpi_timer.c#4 integrate .. //depot/projects/mips2/src/sys/dev/adlink/adlink.c#3 integrate .. //depot/projects/mips2/src/sys/dev/aic7xxx/aic7xxx.c#4 integrate .. //depot/projects/mips2/src/sys/dev/aic7xxx/aic_osm_lib.c#3 integrate .. //depot/projects/mips2/src/sys/dev/an/if_an.c#4 integrate .. //depot/projects/mips2/src/sys/dev/arcmsr/arcmsr.c#5 integrate .. //depot/projects/mips2/src/sys/dev/ath/ath_rate/amrr/amrr.c#4 integrate .. //depot/projects/mips2/src/sys/dev/ath/ath_rate/onoe/onoe.c#4 integrate .. //depot/projects/mips2/src/sys/dev/ath/if_ath.c#6 integrate .. //depot/projects/mips2/src/sys/dev/bce/if_bce.c#5 integrate .. //depot/projects/mips2/src/sys/dev/bce/if_bcefw.h#3 integrate .. //depot/projects/mips2/src/sys/dev/bce/if_bcereg.h#4 integrate .. //depot/projects/mips2/src/sys/dev/ce/if_ce.c#3 integrate .. //depot/projects/mips2/src/sys/dev/cp/if_cp.c#3 integrate .. //depot/projects/mips2/src/sys/dev/ctau/if_ct.c#3 integrate .. //depot/projects/mips2/src/sys/dev/cx/if_cx.c#3 integrate .. //depot/projects/mips2/src/sys/dev/dc/if_dc.c#3 integrate .. //depot/projects/mips2/src/sys/dev/dc/if_dcreg.h#3 integrate .. //depot/projects/mips2/src/sys/dev/em/if_em.c#5 integrate .. //depot/projects/mips2/src/sys/dev/nmdm/nmdm.c#3 integrate .. //depot/projects/mips2/src/sys/dev/pci/pci.c#5 integrate .. //depot/projects/mips2/src/sys/dev/re/if_re.c#6 integrate .. //depot/projects/mips2/src/sys/dev/streams/streams.c#4 integrate .. //depot/projects/mips2/src/sys/dev/usb/if_axe.c#4 integrate .. //depot/projects/mips2/src/sys/dev/usb/if_axereg.h#3 integrate .. //depot/projects/mips2/src/sys/dev/usb/ufoma.c#4 integrate .. //depot/projects/mips2/src/sys/dev/usb/umodem.c#4 integrate .. //depot/projects/mips2/src/sys/dev/wi/if_wi.c#5 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/denode.h#3 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_conv.c#3 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_denode.c#3 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_fat.c#4 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_vfsops.c#5 integrate .. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_vnops.c#4 integrate .. //depot/projects/mips2/src/sys/fs/tmpfs/tmpfs.h#2 integrate .. //depot/projects/mips2/src/sys/fs/tmpfs/tmpfs_subr.c#2 integrate .. //depot/projects/mips2/src/sys/fs/tmpfs/tmpfs_vfsops.c#3 integrate .. //depot/projects/mips2/src/sys/fs/tmpfs/tmpfs_vnops.c#2 integrate .. //depot/projects/mips2/src/sys/i386/i386/local_apic.c#5 integrate .. //depot/projects/mips2/src/sys/i386/i386/machdep.c#5 integrate .. //depot/projects/mips2/src/sys/i386/i386/mp_machdep.c#5 integrate .. //depot/projects/mips2/src/sys/i386/include/cpufunc.h#2 integrate .. //depot/projects/mips2/src/sys/i386/isa/clock.c#5 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/clock.c#4 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/db_machdep.c#4 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/exception.S#3 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/interrupt.c#4 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/machdep.c#4 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/mp_machdep.c#4 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/nexus.c#3 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/pmap.c#4 integrate .. //depot/projects/mips2/src/sys/ia64/ia64/sapic.c#2 integrate .. //depot/projects/mips2/src/sys/ia64/include/atomic.h#2 integrate .. //depot/projects/mips2/src/sys/ia64/include/ia64_cpu.h#3 integrate .. //depot/projects/mips2/src/sys/ia64/include/intr.h#3 integrate .. //depot/projects/mips2/src/sys/ia64/include/md_var.h#2 integrate .. //depot/projects/mips2/src/sys/ia64/include/sapicvar.h#2 integrate .. //depot/projects/mips2/src/sys/kern/kern_descrip.c#6 integrate .. //depot/projects/mips2/src/sys/kern/kern_kse.c#5 integrate .. //depot/projects/mips2/src/sys/kern/kern_lockf.c#3 integrate .. //depot/projects/mips2/src/sys/kern/kern_poll.c#4 integrate .. //depot/projects/mips2/src/sys/kern/kern_switch.c#4 integrate .. //depot/projects/mips2/src/sys/kern/kern_thread.c#5 integrate .. //depot/projects/mips2/src/sys/kern/sched_ule.c#5 integrate .. //depot/projects/mips2/src/sys/kern/subr_bus.c#5 integrate .. //depot/projects/mips2/src/sys/kern/sys_socket.c#4 integrate .. //depot/projects/mips2/src/sys/kern/uipc_domain.c#4 integrate .. //depot/projects/mips2/src/sys/kern/uipc_syscalls.c#7 integrate .. //depot/projects/mips2/src/sys/net/bpf.c#6 integrate .. //depot/projects/mips2/src/sys/net/bpfdesc.h#3 integrate .. //depot/projects/mips2/src/sys/net/bridgestp.c#5 integrate .. //depot/projects/mips2/src/sys/net/bridgestp.h#3 integrate .. //depot/projects/mips2/src/sys/net/if.c#6 integrate .. //depot/projects/mips2/src/sys/net/if_bridge.c#6 integrate .. //depot/projects/mips2/src/sys/net/if_bridgevar.h#6 integrate .. //depot/projects/mips2/src/sys/net/if_ethersubr.c#6 integrate .. //depot/projects/mips2/src/sys/net/if_lagg.c#4 integrate .. //depot/projects/mips2/src/sys/net/if_lagg.h#3 integrate .. //depot/projects/mips2/src/sys/net/netisr.c#3 integrate .. //depot/projects/mips2/src/sys/netgraph/netflow/netflow.c#3 integrate .. //depot/projects/mips2/src/sys/netgraph/netgraph.h#3 integrate .. //depot/projects/mips2/src/sys/netgraph/ng_ppp.c#5 integrate .. //depot/projects/mips2/src/sys/netgraph/ng_ppp.h#3 integrate .. //depot/projects/mips2/src/sys/netinet/in_mcast.c#2 integrate .. //depot/projects/mips2/src/sys/netinet/in_pcb.h#6 integrate .. //depot/projects/mips2/src/sys/netinet/ip_carp.c#5 integrate .. //depot/projects/mips2/src/sys/netinet/ip_divert.c#5 integrate .. //depot/projects/mips2/src/sys/netinet/ip_dummynet.c#4 integrate .. //depot/projects/mips2/src/sys/netinet/ip_fw2.c#5 integrate .. //depot/projects/mips2/src/sys/netinet/ip_input.c#4 integrate .. //depot/projects/mips2/src/sys/netinet/ip_ipsec.c#4 integrate .. //depot/projects/mips2/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/mips2/src/sys/netinet/ip_mroute.c#4 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_constants.h#4 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_input.c#6 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_uio.h#5 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_usrreq.c#6 integrate .. //depot/projects/mips2/src/sys/netinet/sctputil.c#6 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_fsm.h#3 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_input.c#7 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_subr.c#7 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_syncache.c#7 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_timer.h#5 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_usrreq.c#6 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_var.h#7 integrate .. //depot/projects/mips2/src/sys/netinet6/ip6_ipsec.c#2 integrate .. //depot/projects/mips2/src/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/mips2/src/sys/netinet6/udp6_usrreq.c#6 integrate .. //depot/projects/mips2/src/sys/netipsec/xform_ah.c#3 integrate .. //depot/projects/mips2/src/sys/netipsec/xform_esp.c#3 integrate .. //depot/projects/mips2/src/sys/netipsec/xform_ipcomp.c#2 integrate .. //depot/projects/mips2/src/sys/netipx/spx_debug.c#4 integrate .. //depot/projects/mips2/src/sys/netipx/spx_debug.h#4 integrate .. //depot/projects/mips2/src/sys/nfsclient/bootp_subr.c#3 integrate .. //depot/projects/mips2/src/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/mips2/src/sys/nfsclient/nfs_socket.c#5 integrate .. //depot/projects/mips2/src/sys/nfsclient/nfs_vfsops.c#3 integrate .. //depot/projects/mips2/src/sys/nfsserver/nfs_srvsock.c#5 integrate .. //depot/projects/mips2/src/sys/nfsserver/nfs_srvsubs.c#3 integrate .. //depot/projects/mips2/src/sys/nfsserver/nfs_syscalls.c#5 integrate .. //depot/projects/mips2/src/sys/pc98/cbus/clock.c#5 integrate .. //depot/projects/mips2/src/sys/pci/if_xl.c#3 integrate .. //depot/projects/mips2/src/sys/pci/viapm.c#3 integrate .. //depot/projects/mips2/src/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/mips2/src/sys/powerpc/include/intr_machdep.h#3 integrate .. //depot/projects/mips2/src/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/mips2/src/sys/powerpc/powerpc/interrupt.c#2 integrate .. //depot/projects/mips2/src/sys/powerpc/powerpc/intr_machdep.c#4 integrate .. //depot/projects/mips2/src/sys/powerpc/powerpc/trap.c#5 integrate .. //depot/projects/mips2/src/sys/rpc/rpcclnt.c#4 integrate .. //depot/projects/mips2/src/sys/security/mac/mac_syscalls.c#2 integrate .. //depot/projects/mips2/src/sys/sparc64/include/iommureg.h#3 integrate .. //depot/projects/mips2/src/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/mips2/src/sys/sparc64/pci/psycho.c#4 integrate .. //depot/projects/mips2/src/sys/sparc64/pci/psychoreg.h#3 integrate .. //depot/projects/mips2/src/sys/sparc64/sbus/sbus.c#4 integrate .. //depot/projects/mips2/src/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/mips2/src/sys/sparc64/sparc64/iommu.c#3 integrate .. //depot/projects/mips2/src/sys/sys/kernel.h#4 integrate .. //depot/projects/mips2/src/sys/sys/mutex.h#6 integrate .. //depot/projects/mips2/src/sys/sys/proc.h#6 integrate .. //depot/projects/mips2/src/sys/sys/vmmeter.h#4 integrate .. //depot/projects/mips2/src/sys/vm/device_pager.c#3 integrate .. //depot/projects/mips2/src/sys/vm/phys_pager.c#4 integrate .. //depot/projects/mips2/src/sys/vm/swap_pager.c#4 integrate .. //depot/projects/mips2/src/sys/vm/vm_meter.c#5 integrate .. //depot/projects/mips2/src/sys/vm/vm_page.c#5 integrate .. //depot/projects/mips2/src/sys/vm/vm_pager.c#2 integrate .. //depot/projects/mips2/src/tools/regression/lib/libutil/Makefile#2 integrate .. //depot/projects/mips2/src/tools/regression/lib/libutil/test-flopen.c#1 branch .. //depot/projects/mips2/src/tools/regression/lib/libutil/test-flopen.t#1 branch .. //depot/projects/mips2/src/tools/tools/net80211/Makefile#3 integrate .. //depot/projects/mips2/src/tools/tools/net80211/README#2 integrate .. //depot/projects/mips2/src/tools/tools/net80211/wlandebug/Makefile#3 delete .. //depot/projects/mips2/src/tools/tools/net80211/wlandebug/wlandebug.8#2 delete .. //depot/projects/mips2/src/tools/tools/net80211/wlandebug/wlandebug.c#4 delete .. //depot/projects/mips2/src/usr.bin/calendar/calendars/calendar.holiday#3 integrate .. //depot/projects/mips2/src/usr.bin/netstat/ipx.c#4 integrate .. //depot/projects/mips2/src/usr.bin/tar/bsdtar.c#4 integrate .. //depot/projects/mips2/src/usr.bin/truss/i386-fbsd.c#5 integrate .. //depot/projects/mips2/src/usr.bin/truss/main.c#4 integrate .. //depot/projects/mips2/src/usr.bin/truss/powerpc-fbsd.c#4 integrate .. //depot/projects/mips2/src/usr.bin/truss/syscalls.c#3 integrate .. //depot/projects/mips2/src/usr.bin/vmstat/vmstat.c#3 integrate .. //depot/projects/mips2/src/usr.sbin/Makefile#6 integrate .. //depot/projects/mips2/src/usr.sbin/acpi/acpidump/acpi_user.c#3 integrate .. //depot/projects/mips2/src/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt#2 integrate .. //depot/projects/mips2/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c#2 integrate .. //depot/projects/mips2/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_snmp.h#2 integrate .. //depot/projects/mips2/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c#2 integrate .. //depot/projects/mips2/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#2 integrate .. //depot/projects/mips2/src/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#3 integrate .. //depot/projects/mips2/src/usr.sbin/freebsd-update/freebsd-update.sh#3 integrate .. //depot/projects/mips2/src/usr.sbin/iostat/iostat.c#4 integrate .. //depot/projects/mips2/src/usr.sbin/nscd/Makefile#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agent.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agent.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agents/Makefile.inc#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agents/group.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agents/group.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agents/passwd.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agents/passwd.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agents/services.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/agents/services.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/cachelib.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/cachelib.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/cacheplcs.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/cacheplcs.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/config.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/config.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/debug.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/debug.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/hashtable.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/log.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/log.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/mp_rs_query.#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/mp_rs_query.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/mp_rs_query.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/mp_ws_query.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/mp_ws_query.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/nscd.8#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/nscd.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/nscd.conf.5#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/nscdcli.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/nscdcli.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/parser.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/parser.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/protocol.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/protocol.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/query.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/query.h#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/singletons.c#1 branch .. //depot/projects/mips2/src/usr.sbin/nscd/singletons.h#1 branch .. //depot/projects/mips2/src/usr.sbin/portsnap/portsnap/portsnap.sh#3 integrate .. //depot/projects/mips2/src/usr.sbin/rpc.statd/statd.c#4 integrate .. //depot/projects/mips2/src/usr.sbin/wlandebug/Makefile#1 branch .. //depot/projects/mips2/src/usr.sbin/wlandebug/wlandebug.8#1 branch .. //depot/projects/mips2/src/usr.sbin/wlandebug/wlandebug.c#1 branch Differences ... ==== //depot/projects/mips2/src/ObsoleteFiles.inc#7 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.107 2007/07/17 17:28:59 delphij Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.109 2007/08/07 23:48:30 marcel Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,12 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070807: removal of PowerPC specific header file. +.if ${TARGET_ARCH} == "powerpc" +OLD_FILES+=usr/include/machine/interruptvar.h +.endif +# 20070801: fast_ipsec.4 gone +OLD_FILES+=usr/share/man/man4/fast_ipsec.4.gz # 20070715: netatm temporarily disconnected OLD_FILES+=rescue/atm OLD_FILES+=rescue/fore_dnld ==== //depot/projects/mips2/src/contrib/less/main.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/contrib/less/main.c,v 1.9 2007/06/23 15:28:00 delphij Exp $ */ +/* $FreeBSD: src/contrib/less/main.c,v 1.10 2007/08/04 13:16:09 deischen Exp $ */ /* * Copyright (C) 1984-2007 Mark Nudelman * @@ -165,7 +165,7 @@ quit(QUIT_OK); } - if (less_is_more && get_quit_at_eof()) + if (less_is_more || get_quit_at_eof()) no_init = quit_if_one_screen = TRUE; #if EDITOR ==== //depot/projects/mips2/src/contrib/opensolaris/cmd/zdb/zdb.c#3 (text+ko) ==== @@ -1136,7 +1136,15 @@ exit(1); } - psize = statbuf.st_size; + if (S_ISCHR(statbuf.st_mode)) { + if (ioctl(fd, DIOCGMEDIASIZE, &psize) != 0) { + (void) printf("failed to get size '%s': %s\n", dev, + strerror(errno)); + exit(1); + } + } else + psize = statbuf.st_size; + psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t)); for (l = 0; l < VDEV_LABELS; l++) { ==== //depot/projects/mips2/src/contrib/tcpdump/print-bgp.c#2 (text+ko) ==== @@ -622,6 +622,26 @@ return -2; } +/* + * As I remember, some versions of systems have an snprintf() that + * returns -1 if the buffer would have overflowed. If the return + * value is negative, set buflen to 0, to indicate that we've filled + * the buffer up. + * + * If the return value is greater than buflen, that means that + * the buffer would have overflowed; again, set buflen to 0 in + * that case. + */ +#define UPDATE_BUF_BUFLEN(buf, buflen, strlen) \ + if (strlen<0) \ + buflen=0; \ + else if ((u_int)strlen>buflen) \ + buflen=0; \ + else { \ + buflen-=strlen; \ + buf+=strlen; \ + } + static int decode_labeled_vpn_l2(const u_char *pptr, char *buf, u_int buflen) { @@ -632,11 +652,13 @@ tlen=plen; pptr+=2; TCHECK2(pptr[0],15); + buf[0]='\0'; strlen=snprintf(buf, buflen, "RD: %s, CE-ID: %u, Label-Block Offset: %u, Label Base %u", bgp_vpn_rd_print(pptr), EXTRACT_16BITS(pptr+8), EXTRACT_16BITS(pptr+10), EXTRACT_24BITS(pptr+12)>>4); /* the label is offsetted by 4 bits so lets shift it right */ + UPDATE_BUF_BUFLEN(buf, buflen, strlen); pptr+=15; tlen-=15; @@ -652,23 +674,32 @@ switch(tlv_type) { case 1: - strlen+=snprintf(buf+strlen,buflen-strlen, "\n\t\tcircuit status vector (%u) length: %u: 0x", - tlv_type, - tlv_len); + if (buflen!=0) { + strlen=snprintf(buf,buflen, "\n\t\tcircuit status vector (%u) length: %u: 0x", + tlv_type, + tlv_len); + UPDATE_BUF_BUFLEN(buf, buflen, strlen); + } ttlv_len=ttlv_len/8+1; /* how many bytes do we need to read ? */ while (ttlv_len>0) { TCHECK(pptr[0]); - strlen+=snprintf(buf+strlen,buflen-strlen, "%02x",*pptr++); + if (buflen!=0) { + strlen=snprintf(buf,buflen, "%02x",*pptr++); + UPDATE_BUF_BUFLEN(buf, buflen, strlen); + } ttlv_len--; } break; default: - snprintf(buf+strlen,buflen-strlen, "\n\t\tunknown TLV #%u, length: %u", - tlv_type, - tlv_len); + if (buflen!=0) { + strlen=snprintf(buf,buflen, "\n\t\tunknown TLV #%u, length: %u", + tlv_type, + tlv_len); + UPDATE_BUF_BUFLEN(buf, buflen, strlen); + } break; } - tlen-=(tlv_len<<3); /* the tlv-length is expressed in bits so lets shift it tright */ + tlen-=(tlv_len<<3); /* the tlv-length is expressed in bits so lets shift it right */ } return plen+2; ==== //depot/projects/mips2/src/etc/namedb/named.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -// $FreeBSD: src/etc/namedb/named.conf,v 1.24 2007/06/18 06:29:45 dougb Exp $ +// $FreeBSD: src/etc/namedb/named.conf,v 1.25 2007/08/02 09:18:53 dougb Exp $ // // Refer to the named.conf(5) and named(8) man pages, and the documentation // in /usr/share/doc/bind9 for more details. @@ -15,10 +15,6 @@ dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; - disable-empty-zone "255.255.255.255.IN-ADDR.ARPA"; - disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; - disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; - // If named is being used only as a local resolver, this is a safe default. // For named to be accessible to the network, comment this option, specify // the proper IP address, or delete this option. @@ -29,6 +25,12 @@ // an IPv6 address, or the keyword "any". // listen-on-v6 { ::1; }; +// These zones are already covered by the empty zones listed below. +// If you remove the related empty zones below, comment these lines out. + disable-empty-zone "255.255.255.255.IN-ADDR.ARPA"; + disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; + disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; + // In addition to the "forwarders" clause, you can force your name // server to never initiate queries of its own, but always ask its // forwarders only, by enabling the following line: @@ -57,22 +59,23 @@ // first in your /etc/resolv.conf so this server will be queried. // Also, make sure to enable it in /etc/rc.conf. +// The traditional root hints mechanism. Use this, OR the slave zones below. +zone "." { type hint; file "named.root"; }; + /* Slaving the following zones from the root name servers has some significant advantages: 1. Faster local resolution for your users 2. No spurious traffic will be sent from your network to the roots 3. Greater resilience to any potential root server failure/DDoS - If you do not wish to slave these zones from the root servers - use the entry below instead. - zone "." { type hint; file "named.root"; }; + To use this mechanism, uncomment the entries below, and comment + the hint zone above. */ +/* zone "." { type slave; file "slave/root.slave"; masters { - 192.5.5.241; // F.ROOT-SERVERS.NET. - 192.228.79.201; // B.ROOT-SERVERS.NET. 192.33.4.12; // C.ROOT-SERVERS.NET. 192.112.36.4; // G.ROOT-SERVERS.NET. 193.0.14.129; // K.ROOT-SERVERS.NET. @@ -83,8 +86,6 @@ type slave; file "slave/arpa.slave"; masters { - 192.5.5.241; // F.ROOT-SERVERS.NET. - 192.228.79.201; // B.ROOT-SERVERS.NET. 192.33.4.12; // C.ROOT-SERVERS.NET. 192.112.36.4; // G.ROOT-SERVERS.NET. 193.0.14.129; // K.ROOT-SERVERS.NET. @@ -95,14 +96,13 @@ type slave; file "slave/in-addr.arpa.slave"; masters { - 192.5.5.241; // F.ROOT-SERVERS.NET. - 192.228.79.201; // B.ROOT-SERVERS.NET. 192.33.4.12; // C.ROOT-SERVERS.NET. 192.112.36.4; // G.ROOT-SERVERS.NET. 193.0.14.129; // K.ROOT-SERVERS.NET. }; notify no; }; +*/ /* Serving the following zones locally will prevent any queries for these zones leaving your network and going to the root ==== //depot/projects/mips2/src/include/arpa/tftp.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tftp.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/arpa/tftp.h,v 1.5 2001/09/27 20:50:14 obrien Exp $ + * $FreeBSD: src/include/arpa/tftp.h,v 1.6 2007/08/01 11:59:09 ticso Exp $ */ #ifndef _ARPA_TFTP_H_ @@ -58,9 +58,9 @@ unsigned short tu_block; /* block # */ unsigned short tu_code; /* error code */ char tu_stuff[1]; /* request packet stuff */ - } th_u; + } __packed th_u; char th_data[1]; /* data or error string */ -}; +} __packed; #define th_block th_u.tu_block #define th_code th_u.tu_code ==== //depot/projects/mips2/src/lib/libarchive/test/main.c#4 (text+ko) ==== @@ -32,7 +32,13 @@ #include #include "test.h" -__FBSDID("$FreeBSD: src/lib/libarchive/test/main.c,v 1.7 2007/07/14 17:52:01 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/test/main.c,v 1.8 2007/07/31 05:03:27 kientzle Exp $"); + +/* Interix doesn't define these in a standard header. */ +#if __INTERIX__ +extern char *optarg; +extern int optind; +#endif /* Default is to crash and try to force a core dump on failure. */ static int dump_on_failure = 1; @@ -101,6 +107,7 @@ static int skipped_line; void skipping_setup(const char *filename, int line) { + skipped_filename = filename; skipped_line = line; } void ==== //depot/projects/mips2/src/lib/libc/net/name6.c#3 (text+ko) ==== @@ -88,7 +88,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/net/name6.c,v 1.61 2006/07/26 08:35:46 yar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/net/name6.c,v 1.62 2007/07/31 16:09:41 bushman Exp $"); #include "namespace.h" #include @@ -118,16 +118,8 @@ #include #include "un-namespace.h" #include "netdb_private.h" -#include "res_config.h" #include "res_private.h" -#ifdef NS_CACHING -#include "nscache.h" -#endif -#ifndef _PATH_HOSTS -#define _PATH_HOSTS "/etc/hosts" -#endif - #ifndef MAXALIASES #define MAXALIASES 10 #endif @@ -153,7 +145,7 @@ } while (0) #define MAPADDRENABLED(flags) \ (((flags) & AI_V4MAPPED) || \ - (((flags) & AI_V4MAPPED_CFG) && _mapped_addr_enabled())) + (((flags) & AI_V4MAPPED_CFG))) union inx_addr { struct in_addr in_addr; @@ -202,14 +194,11 @@ static struct hostent *_hpcopy(struct hostent *, int *); static struct hostent *_hpaddr(int, const char *, void *, int *); +#ifdef INET6 static struct hostent *_hpmerge(struct hostent *, struct hostent *, int *); -#ifdef INET6 static struct hostent *_hpmapv6(struct hostent *, int *); #endif static struct hostent *_hpsort(struct hostent *, res_state); -static struct hostent *_ghbyname(const char *, int, int, int *); -static char *_hgetword(char **); -static int _mapped_addr_enabled(void); static struct hostent *_hpreorder(struct hostent *); static int get_addrselectpolicy(struct policyhead *); @@ -221,325 +210,30 @@ static int comp_dst(const void *, const void *); static int gai_addr2scopetype(struct sockaddr *); -static FILE *_files_open(int *); -static int _files_ghbyname(void *, void *, va_list); -static int _files_ghbyaddr(void *, void *, va_list); -#ifdef YP -static int _nis_ghbyname(void *, void *, va_list); -static int _nis_ghbyaddr(void *, void *, va_list); -#endif -static int _dns_ghbyname(void *, void *, va_list); -static int _dns_ghbyaddr(void *, void *, va_list); -static void _dns_shent(int) __unused; -static void _dns_ehent(void) __unused; -#ifdef ICMPNL -static int _icmp_ghbyaddr(void *, void *, va_list); -#endif /* ICMPNL */ -#ifdef NS_CACHING -static int ipnode_id_func(char *, size_t *, va_list, void *); -static int ipnode_marshal_func(char *, size_t *, void *, va_list, void *); -static int ipnode_unmarshal_func(char *, size_t, void *, va_list, void *); -#endif - -/* Host lookup order if nsswitch.conf is broken or nonexistant */ -static const ns_src default_src[] = { - { NSSRC_FILES, NS_SUCCESS }, - { NSSRC_DNS, NS_SUCCESS }, -#ifdef ICMPNL -#define NSSRC_ICMP "icmp" - { NSSRC_ICMP, NS_SUCCESS }, -#endif - { 0 } -}; - /* - * Check if kernel supports mapped address. - * implementation dependent + * Functions defined in RFC2553 + * getipnodebyname, getipnodebyaddr, freehostent */ -#ifdef __KAME__ -#include -#endif /* __KAME__ */ -static int -_mapped_addr_enabled(void) +struct hostent * +getipnodebyname(const char *name, int af, int flags, int *errp) { - /* implementation dependent check */ -#if defined(__KAME__) && defined(IPV6CTL_MAPPED_ADDR) - int mib[4]; - size_t len; - int val; - - mib[0] = CTL_NET; - mib[1] = PF_INET6; - mib[2] = IPPROTO_IPV6; - mib[3] = IPV6CTL_MAPPED_ADDR; - len = sizeof(val); - if (sysctl(mib, 4, &val, &len, 0, 0) == 0 && val != 0) - return 1; -#endif /* __KAME__ && IPV6CTL_MAPPED_ADDR */ - return 0; -} - -#ifdef NS_CACHING -static int -ipnode_id_func(char *buffer, size_t *buffer_size, va_list ap, - void *cache_mdata) -{ + struct hostent *hp; + union inx_addr addrbuf; res_state statp; - u_long res_options; + u_long options; - const int op_id = 2; - char *name; - int af; - size_t len; - void *src; - - char *p; - size_t desired_size, size; - enum nss_lookup_type lookup_type; - int res = NS_UNAVAIL; - - statp = __res_state(); - res_options = statp->options & (RES_RECURSE | RES_DEFNAMES | - RES_DNSRCH | RES_NOALIASES | RES_USE_INET6); - - lookup_type = (enum nss_lookup_type)cache_mdata; - switch (lookup_type) { - case nss_lt_name: - name = va_arg(ap, char *); - af = va_arg(ap, int); - - size = strlen(name); - desired_size = sizeof(res_options) + sizeof(int) + - sizeof(enum nss_lookup_type) + sizeof(int) + size + 1; - - if (desired_size > *buffer_size) { - res = NS_RETURN; - goto fin; - } - - p = buffer; - memcpy(p, &res_options, sizeof(res_options)); - p += sizeof(res_options); - - memcpy(p, &op_id, sizeof(int)); - p += sizeof(int); - - memcpy(p, &lookup_type, sizeof(enum nss_lookup_type)); - p += sizeof(enum nss_lookup_type); - - memcpy(p, &af, sizeof(int)); - p += sizeof(int); - - memcpy(p, name, size + 1); - - res = NS_SUCCESS; + switch (af) { + case AF_INET: +#ifdef INET6 + case AF_INET6: +#endif break; - case nss_lt_id: - src = va_arg(ap, void *); - len = va_arg(ap, size_t); - af = va_arg(ap, int); - - desired_size = sizeof(res_options) + sizeof(int) + - sizeof(enum nss_lookup_type) + sizeof(int) + - sizeof(size_t) + len; - - if (desired_size > *buffer_size) { - res = NS_RETURN; - goto fin; - } - - p = buffer; - memcpy(p, &res_options, sizeof(res_options)); - p += sizeof(res_options); - - memcpy(p, &op_id, sizeof(int)); - p += sizeof(int); - - memcpy(p, &lookup_type, sizeof(enum nss_lookup_type)); - p += sizeof(enum nss_lookup_type); - - memcpy(p, &af, sizeof(int)); - p += sizeof(int); - - memcpy(p, &len, sizeof(size_t)); - p += sizeof(size_t); - - memcpy(p, src, len); - - res = NS_SUCCESS; - break; default: - /* should be unreachable */ - return (NS_UNAVAIL); - } - -fin: - *buffer_size = desired_size; - return (res); -} - -static int -ipnode_marshal_func(char *buffer, size_t *buffer_size, void *retval, - va_list ap, void *cache_mdata) -{ - struct hostent *ht; - - struct hostent new_ht; - size_t desired_size, aliases_size, addr_size, size; - char *p, **iter; - - ht = *((struct hostent **)retval); - - desired_size = _ALIGNBYTES + sizeof(struct hostent) + sizeof(char *); - if (ht->h_name != NULL) - desired_size += strlen(ht->h_name) + 1; - - if (ht->h_aliases != NULL) { - aliases_size = 0; - for (iter = ht->h_aliases; *iter; ++iter) { - desired_size += strlen(*iter) + 1; - ++aliases_size; - } - - desired_size += _ALIGNBYTES + - (aliases_size + 1) * sizeof(char *); - } - - if (ht->h_addr_list != NULL) { - addr_size = 0; - for (iter = ht->h_addr_list; *iter; ++iter) - ++addr_size; - - desired_size += addr_size * _ALIGN(ht->h_length); - desired_size += _ALIGNBYTES + (addr_size + 1) * sizeof(char *); - } - - if (desired_size > *buffer_size) { - /* this assignment is here for future use */ - *buffer_size = desired_size; - return (NS_RETURN); - } - - memcpy(&new_ht, ht, sizeof(struct hostent)); - memset(buffer, 0, desired_size); - - *buffer_size = desired_size; - p = buffer + sizeof(struct hostent) + sizeof(char *); - memcpy(buffer + sizeof(struct hostent), &p, sizeof(char *)); - p = (char *)_ALIGN(p); - - if (new_ht.h_name != NULL) { - size = strlen(new_ht.h_name); - memcpy(p, new_ht.h_name, size); - new_ht.h_name = p; - p += size + 1; - } - - if (new_ht.h_aliases != NULL) { - p = (char *)_ALIGN(p); - memcpy(p, new_ht.h_aliases, sizeof(char *) * aliases_size); - new_ht.h_aliases = (char **)p; - p += sizeof(char *) * (aliases_size + 1); - - for (iter = new_ht.h_aliases; *iter; ++iter) { - size = strlen(*iter); - memcpy(p, *iter, size); - *iter = p; - p += size + 1; - } - } - - if (new_ht.h_addr_list != NULL) { - p = (char *)_ALIGN(p); - memcpy(p, new_ht.h_addr_list, sizeof(char *) * addr_size); - new_ht.h_addr_list = (char **)p; - p += sizeof(char *) * (addr_size + 1); - - size = _ALIGN(new_ht.h_length); - for (iter = new_ht.h_addr_list; *iter; ++iter) { - memcpy(p, *iter, size); - *iter = p; - p += size + 1; - } + *errp = NO_RECOVERY; + return NULL; } - memcpy(buffer, &new_ht, sizeof(struct hostent)); - return (NS_SUCCESS); -} -static int -ipnode_unmarshal_func(char *buffer, size_t buffer_size, void *retval, - va_list ap, void *cache_mdata) -{ - struct hostent new_ht; - struct hostent *ht; - - char *p; - char **iter; - char *orig_buf; - int err; - - ht = &new_ht; - - memcpy(ht, buffer, sizeof(struct hostent)); - memcpy(&p, buffer + sizeof(struct hostent), sizeof(char *)); - - orig_buf = buffer + sizeof(struct hostent) + sizeof(char *) + - _ALIGN(p) - (size_t)p; - p = (char *)_ALIGN(p); - - - NS_APPLY_OFFSET(ht->h_name, orig_buf, p, char *); - if (ht->h_aliases != NULL) { - NS_APPLY_OFFSET(ht->h_aliases, orig_buf, p, char **); - - for (iter = ht->h_aliases; *iter; ++iter) - NS_APPLY_OFFSET(*iter, orig_buf, p, char *); - } - - if (ht->h_addr_list != NULL) { - NS_APPLY_OFFSET(ht->h_addr_list, orig_buf, p, char **); - - for (iter = ht->h_addr_list; *iter; ++iter) - NS_APPLY_OFFSET(*iter, orig_buf, p, char *); - } - - ht = _hpcopy(ht, &err); - if (ht == NULL) - return (NS_UNAVAIL); - - *((struct hostent **)retval) = ht; - return (NS_SUCCESS); -} -#endif - -/* - * Functions defined in RFC2553 - * getipnodebyname, getipnodebyaddr, freehostent - */ - -static struct hostent * -_ghbyname(const char *name, int af, int flags, int *errp) -{ - struct hostent *hp; - int rval; - -#ifdef NS_CACHING - static const nss_cache_info cache_info = - NS_COMMON_CACHE_INFO_INITIALIZER( - hosts, (void *)nss_lt_name, - ipnode_id_func, ipnode_marshal_func, ipnode_unmarshal_func); -#endif - static const ns_dtab dtab[] = { - NS_FILES_CB(_files_ghbyname, NULL) - { NSSRC_DNS, _dns_ghbyname, NULL }, - NS_NIS_CB(_nis_ghbyname, NULL) -#ifdef NS_CACHING - NS_CACHE_CB(&cache_info) -#endif - { 0 } - }; - if (flags & AI_ADDRCONFIG) { int s; @@ -554,31 +248,8 @@ */ _close(s); } - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 10 10:03:15 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 684E016A41B; Fri, 10 Aug 2007 10:03:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26EB416A417 for ; Fri, 10 Aug 2007 10:03:15 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 17EAB13C4A8 for ; Fri, 10 Aug 2007 10:03:15 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AA3Emg098261 for ; Fri, 10 Aug 2007 10:03:14 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7AA3END098258 for perforce@freebsd.org; Fri, 10 Aug 2007 10:03:14 GMT (envelope-from fli@FreeBSD.org) Date: Fri, 10 Aug 2007 10:03:14 GMT Message-Id: <200708101003.l7AA3END098258@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 124999 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, 10 Aug 2007 10:03:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=124999 Change 124999 by fli@fli_nexus on 2007/08/10 10:02:55 Do not assume that the name passed to name_compress() is properly dot-terminated (even though it should be). Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_packet.c#8 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_packet.c#8 (text+ko) ==== @@ -231,14 +231,15 @@ */ static int name_compress(struct hashtbl *ht, char *str, size_t slen, char *dst, - size_t *dlen, int pkg_offset) + size_t *dlen, int pkg_offset) + { char *p, *q; void *res; int i; uint16_t offset; - if (slen > *dlen) + if (slen >= *dlen) return (-1); p = str + slen - 1; @@ -247,7 +248,14 @@ /* * Turn into a normal DNS label without compression. */ - while (p != str) { + if (*p == '.') + p--; + else { + q++; + slen++; + } + *q-- = 0; + while (p != str && q != (dst + 1) ) { if (*p == '.') { *q = (char)i; i = 0; From owner-p4-projects@FreeBSD.ORG Fri Aug 10 11:14:50 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 70C3716A420; Fri, 10 Aug 2007 11:14:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4730916A41A for ; Fri, 10 Aug 2007 11:14:50 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1FDA613C442 for ; Fri, 10 Aug 2007 11:14:50 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7ABEnZA004887 for ; Fri, 10 Aug 2007 11:14:50 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7ABEnNA004884 for perforce@freebsd.org; Fri, 10 Aug 2007 11:14:49 GMT (envelope-from gonzo@FreeBSD.org) Date: Fri, 10 Aug 2007 11:14:49 GMT Message-Id: <200708101114.l7ABEnNA004884@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 125005 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, 10 Aug 2007 11:14:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=125005 Change 125005 by gonzo@gonzo_jeeves on 2007/08/10 11:14:08 o Unbreak kernel build - remove extra .endif Affected files ... .. //depot/projects/mips2/src/sys/conf/Makefile.mips#12 edit Differences ... ==== //depot/projects/mips2/src/sys/conf/Makefile.mips#12 (text+ko) ==== @@ -48,7 +48,6 @@ SYSTEM_LD+=-EB HACK_EXTRA_FLAGS+=-EB -Wl,-EB .endif -.endif # We add the -fno-pic flag to kernels because otherwise performance # is extremely poor, as well as -mno-abicalls to force no ABI usage. From owner-p4-projects@FreeBSD.ORG Fri Aug 10 12:32:32 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 60B6C16A41A; Fri, 10 Aug 2007 12:32:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1FB5316A419 for ; Fri, 10 Aug 2007 12:32:32 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0E2EA13C457 for ; Fri, 10 Aug 2007 12:32:32 +0000 (UTC) (envelope-from delphij@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7ACWVsB011434 for ; Fri, 10 Aug 2007 12:32:31 GMT (envelope-from delphij@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7ACWVnP011431 for perforce@freebsd.org; Fri, 10 Aug 2007 12:32:31 GMT (envelope-from delphij@freebsd.org) Date: Fri, 10 Aug 2007 12:32:31 GMT Message-Id: <200708101232.l7ACWVnP011431@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to delphij@freebsd.org using -f From: Xin LI To: Perforce Change Reviews Cc: Subject: PERFORCE change 125011 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, 10 Aug 2007 12:32:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=125011 Change 125011 by delphij@charlie on 2007/08/10 12:31:55 IFC Affected files ... .. //depot/projects/delphij_fork/etc/rc.d/nscd#2 integrate .. //depot/projects/delphij_fork/sbin/fsck_ffs/main.c#2 integrate .. //depot/projects/delphij_fork/share/man/man4/ddb.4#2 integrate .. //depot/projects/delphij_fork/share/man/man9/locking.9#2 integrate .. //depot/projects/delphij_fork/sys/dev/wi/if_wi.c#3 integrate .. //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs.h#5 integrate .. //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs_subr.c#5 integrate .. //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs_vfsops.c#6 integrate .. //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs_vnops.c#4 integrate .. //depot/projects/delphij_fork/sys/i386/i386/machdep.c#2 integrate .. //depot/projects/delphij_fork/sys/i386/include/cpufunc.h#2 integrate .. //depot/projects/delphij_fork/tools/regression/tmpfs/h_tools.c#2 integrate .. //depot/projects/delphij_fork/tools/regression/tmpfs/t_mount#2 integrate .. //depot/projects/delphij_fork/tools/regression/tmpfs/t_rename#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/Makefile#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/agent.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/cachelib.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/cacheplcs.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/config.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/debug.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/log.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/log.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/mp_rs_query.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/mp_rs_query.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/mp_ws_query.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/mp_ws_query.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/nscd.8#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/nscd.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/nscd.conf.5#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/nscdcli.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/nscdcli.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/parser.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/protocol.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/query.c#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/query.h#2 integrate .. //depot/projects/delphij_fork/usr.sbin/nscd/singletons.h#2 integrate Differences ... ==== //depot/projects/delphij_fork/etc/rc.d/nscd#2 (text+ko) ==== @@ -1,32 +1,32 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/nscd,v 1.3 2006/06/06 15:34:50 ume Exp $ +# $FreeBSD: src/etc/rc.d/nscd,v 1.4 2007/08/09 13:06:11 bushman Exp $ # -# PROVIDE: cached +# PROVIDE: nscd # REQUIRE: DAEMON # BEFORE: LOGIN # # Add the following lines to /etc/rc.conf to enable cached: # -# cached_enable="YES" +# nscd_enable="YES" # -# See cached(8) for flags +# See nscd(8) for flags # . /etc/rc.subr -name=cached +name=nscd rcvar=`set_rcvar` -command=/usr/sbin/cached +command=/usr/sbin/nscd extra_commands="flush" flush_cmd="${command} -I all" -cached_enable=${cached_enable:-"NO"} -cached_pidfile=${cached_pidfile:-"/var/run/cached.pid"} -cached_flags=${cached_flags:-""} +nscd_enable=${nscd_enable:-"NO"} +nscd_pidfile=${nscd_pidfile:-"/var/run/nscd.pid"} +nscd_flags=${nscd_flags:-""} load_rc_config $name run_rc_command "$1" ==== //depot/projects/delphij_fork/sbin/fsck_ffs/main.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/fsck_ffs/main.c,v 1.45 2006/10/31 22:06:56 pjd Exp $"); +__FBSDID("$FreeBSD: src/sbin/fsck_ffs/main.c,v 1.46 2007/08/10 06:29:54 pjd Exp $"); #include #include @@ -67,6 +67,7 @@ static void usage(void) __dead2; static int argtoi(int flag, const char *req, const char *str, int base); static int checkfilesys(char *filesys); +static int chkdoreload(struct statfs *mntp); static struct statfs *getmntpt(const char *); int @@ -197,7 +198,7 @@ struct stat snapdir; struct group *grp; ufs2_daddr_t blks; - int cylno, ret; + int cylno; ino_t files; size_t size; @@ -253,7 +254,9 @@ } if ((sblock.fs_flags & (FS_UNCLEAN | FS_NEEDSFSCK)) == 0) { gjournal_check(filesys); - exit(0); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); } else { pfatal("UNEXPECTED INCONSISTENCY, %s\n", "CANNOT RUN FAST FSCK\n"); @@ -483,23 +486,7 @@ printf("\n***** FILE SYSTEM WAS MODIFIED *****\n"); if (rerun) printf("\n***** PLEASE RERUN FSCK *****\n"); - if (mntp != NULL) { - /* - * We modified a mounted file system. Do a mount update on - * it unless it is read-write, so we can continue using it - * as safely as possible. - */ - if (mntp->f_flags & MNT_RDONLY) { - args.fspec = 0; - args.export.ex_flags = 0; - args.export.ex_root = 0; - ret = mount("ufs", mntp->f_mntonname, - mntp->f_flags | MNT_UPDATE | MNT_RELOAD, &args); - if (ret == 0) - return (0); - pwarn("mount reload of '%s' failed: %s\n\n", - mntp->f_mntonname, strerror(errno)); - } + if (chkdoreload(mntp) != 0) { if (!fsmodified) return (0); if (!preen) @@ -510,6 +497,36 @@ return (0); } +static int +chkdoreload(struct statfs *mntp) +{ + struct ufs_args args; + + if (mntp == NULL) + return (0); + /* + * We modified a mounted file system. Do a mount update on + * it unless it is read-write, so we can continue using it + * as safely as possible. + */ + if (mntp->f_flags & MNT_RDONLY) { + memset(&args, 0, sizeof args); + /* + * args.fspec = 0; + * args.export.ex_flags = 0; + * args.export.ex_root = 0; + */ + if (mount("ufs", mntp->f_mntonname, + mntp->f_flags | MNT_UPDATE | MNT_RELOAD, &args) == 0) { + return (0); + } + pwarn("mount reload of '%s' failed: %s\n\n", + mntp->f_mntonname, strerror(errno)); + return (1); + } + return (0); +} + /* * Get the mount point information for name. */ ==== //depot/projects/delphij_fork/share/man/man4/ddb.4#2 (text+ko) ==== @@ -57,9 +57,9 @@ .\" Created. .\" [90/08/30 dbg] .\" -.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.41 2006/10/30 12:55:06 ru Exp $ +.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.42 2007/08/09 20:14:35 njl Exp $ .\" -.Dd October 27, 2006 +.Dd August 6, 2007 .Dt DDB 4 .Os .Sh NAME @@ -522,6 +522,12 @@ modifier depends on the machine. If not supported, incorrect information will be displayed. .Pp +.It Ic show Cm sysregs +Show system registers (e.g., +.Li cr0-4 +on i386.) +Not present on some platforms. +.Pp .It Ic show Cm geom Op Ar addr If the .Ar addr ==== //depot/projects/delphij_fork/share/man/man9/locking.9#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/locking.9,v 1.10 2007/06/21 16:39:25 brueffer Exp $ +.\" $FreeBSD: src/share/man/man9/locking.9,v 1.11 2007/08/09 21:09:56 julian Exp $ .\" .Dd March 14, 2007 .Dt LOCKING 9 @@ -67,7 +67,8 @@ .El .Pp The primitives interact and have a number of rules regarding how -they can and can not be combined. There are too many for the average +they can and can not be combined. +There are too many for the average human mind and they keep changing. (if you disagree, please write replacement text) :-) .Pp @@ -85,63 +86,70 @@ If you don't own it then you just spin, waiting for the holder (on another CPU) to release it. Hopefully they are doing something fast. -You can not do anything that deschedules the thread while you +You +.Em must not +do anything that deschedules the thread while you are holding a SPIN mutex. -.Ss Sleep Mutexes -Basically sleep (regular) mutexes will deschedule the thread if the +.Ss Mutexes +Basically (regular) mutexes will deschedule the thread if the mutex can not be acquired. +A non-spin mutex can be considered to be equivalent +to getting a write lock on an +.Em rw_lock +(see below), and in fact non-spin mutexes and rw_locks may soon become the same thing. As in spin mutexes, you either get it or you don't. -You may call the +You may only call the .Xr sleep 9 -call +call via .Fn msleep or the new .Fn mtx_sleep -variant. These will atomically drop the mutex and reacquire it +variant. +These will atomically drop the mutex and reacquire it as part of waking up. +This is often however a +.Em BAD +idea because it generally relies on you having +such a good knowledge of all the call graph above you +and what assumptions it is making that there are a lot +of ways to make hard-to-find mistakes. +For example you MUST re-test all the assumptions you made before, +all the way up the call graph to where you got the lock. +You can not just assume that mtx_sleep can be inserted anywhere. +If any caller above you has any mutex or +rwlock, your sleep, will cause a panic. +If the sleep only happens rarely it may be years before the +bad code path is found. .Ss Pool Mutexes -A variant of SLEEP mutexes where the allocation of the mutex is handled +A variant of regular mutexes where the allocation of the mutex is handled more by the system. -.Ss Sx_locks -Shared/exclusive locks are used to protect data that are read far more often -than they are written. -Mutexes are inherently more efficient than shared/exclusive locks, so -shared/exclusive locks should be used prudently. -A thread may hold a shared or exclusive lock on an -.Em sx_lock -lock while sleeping. -As a result, an -.Em sx_lock -lock may not be acquired while holding a mutex. -Otherwise, if one thread slept while holding an -.Em sx_lock -lock while another thread blocked on the same -.Em sx_lock -lock after acquiring a mutex, then the second thread would effectively -end up sleeping while holding a mutex, which is not allowed. .Ss Rw_locks Reader/writer locks allow shared access to protected data by multiple threads, or exclusive access by a single thread. The threads with shared access are known as .Em readers -since they only read the protected data. +since they should only read the protected data. A thread with exclusive access is known as a .Em writer -since it can modify protected data. +since it may modify protected data. .Pp Although reader/writer locks look very similar to .Xr sx 9 -locks, their usage pattern is different. -Reader/writer locks can be treated as mutexes (see +(see below) locks, their usage pattern is different. +Reader/writer locks can be treated as mutexes (see above and .Xr mutex 9 ) with shared/exclusive semantics. -Unlike -.Xr sx 9 , -an +More specifically, regular mutexes can be +considered to be equivalent to a write-lock on an +.Em rw_lock. +In the future this may in fact +become literally the fact. +An .Em rw_lock -can be locked while holding a non-spin mutex, and an -.Em rw_lock -cannot be held while sleeping. +can be locked while holding a regular mutex, but +can +.Em not +be held while sleeping. The .Em rw_lock locks have priority propagation like mutexes, but priority @@ -150,8 +158,36 @@ are anonymous. Another important property is that shared holders of .Em rw_lock -can recurse, -but exclusive locks are not allowed to recurse. +can recurse, but exclusive locks are not allowed to recurse. +This ability should not be used lightly and +.Em may go away. +Users of recursion in any locks should be prepared to +defend their decision against vigorous criticism. +.Ss Sx_locks +Shared/exclusive locks are used to protect data that are read far more often +than they are written. +Mutexes are inherently more efficient than shared/exclusive locks, so +shared/exclusive locks should be used prudently. +The main reason for using an +.Em sx_lock +is that a thread may hold a shared or exclusive lock on an +.Em sx_lock +lock while sleeping. +As a consequence of this however, an +.Em sx_lock +lock may not be acquired while holding a mutex. +The reason for this is that, if one thread slept while holding an +.Em sx_lock +lock while another thread blocked on the same +.Em sx_lock +lock after acquiring a mutex, then the second thread would effectively +end up sleeping while holding a mutex, which is not allowed. +The +.Em sx_lock +should be considered to be closely related to +.Xr sleep 9 . +In fact it could in some cases be +considered a conditional sleep. .Ss Turnstiles Turnstiles are used to hold a queue of threads blocked on non-sleepable locks. @@ -160,6 +196,7 @@ are assigned to a lock held by an owning thread. Thus, when one thread is enqueued onto a turnstile, it can lend its priority to the owning thread. +If this sounds confusing, we need to describe it better. .Ss Semaphores .Ss Condition variables Condition variables are used in conjunction with mutexes to wait for @@ -182,7 +219,7 @@ .It You can sleep while it has recursed, but other recursive locks cannot. .It -Giant must be locked first. +Giant must be locked first before other locks. .It There are places in the kernel that drop Giant and pick it back up again. @@ -249,7 +286,8 @@ mutex before the function returns. .Pp .Ss lockmanager locks -Largely deprecated. See the +Largely deprecated. +See the .Xr lock 9 page for more information. I don't know what the downsides are but I'm sure someone will fill in this part. @@ -269,10 +307,12 @@ .El .Pp .Em *1 -Recursion is defined per lock. Lock order is important. +Recursion is defined per lock. +Lock order is important. .Pp .Em *2 -readers can recurse though writers can not. Lock order is important. +readers can recurse though writers can not. +Lock order is important. .Pp .Em *3 There are calls atomically release this primitive when going to sleep @@ -302,6 +342,7 @@ .Xr condvar 9 , .Xr lock 9 , .Xr mtx_pool 9 , +.Xr mutex 9 , .Xr rwlock 9 , .Xr sema 9 , .Xr sleep 9 , ==== //depot/projects/delphij_fork/sys/dev/wi/if_wi.c#3 (text+ko) ==== @@ -62,7 +62,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.211 2007/07/11 21:25:48 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.212 2007/08/09 13:29:26 avatar Exp $"); #define WI_HERMES_AUTOINC_WAR /* Work around data write autoinc bug. */ #define WI_HERMES_STATS_WAR /* Work around stats counter bug. */ @@ -267,12 +267,12 @@ int error; ifp = sc->sc_ifp = if_alloc(IFT_ETHER); - ifp->if_softc = sc; if (ifp == NULL) { device_printf(dev, "can not if_alloc\n"); wi_free(dev); return (ENOSPC); } + ifp->if_softc = sc; /* * NB: no locking is needed here; don't put it here ==== //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs.h#5 (text+ko) ==== @@ -1,7 +1,7 @@ -/* $NetBSD: tmpfs.h,v 1.18 2006/03/31 20:27:49 riz Exp $ */ +/* $NetBSD: tmpfs.h,v 1.26 2007/02/22 06:37:00 thorpej Exp $ */ /* - * Copyright (c) 2005 The NetBSD Foundation, Inc. + * Copyright (c) 2005, 2006 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -36,7 +36,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/tmpfs/tmpfs.h,v 1.9 2007/08/03 06:24:31 delphij Exp $ + * $FreeBSD: src/sys/fs/tmpfs/tmpfs.h,v 1.11 2007/08/10 11:00:30 delphij Exp $ */ #ifndef _FS_TMPFS_TMPFS_H_ @@ -97,11 +97,74 @@ * importantly, to remove redundancy. */ TAILQ_HEAD(tmpfs_dir, tmpfs_dirent); -#define TMPFS_DIRCOOKIE(dirent) ((off_t)(uintptr_t)(dirent)) +/* Each entry in a directory has a cookie that identifies it. Cookies + * supersede offsets within directories because, given how tmpfs stores + * directories in memory, there is no such thing as an offset. (Emulating + * a real offset could be very difficult.) + * + * The '.', '..' and the end of directory markers have fixed cookies which + * cannot collide with the cookies generated by other entries. The cookies + * fot the other entries are generated based on the memory address on which + * stores their information is stored. + * + * Ideally, using the entry's memory pointer as the cookie would be enough + * to represent it and it wouldn't cause collisions in any system. + * Unfortunately, this results in "offsets" with very large values which + * later raise problems in the Linux compatibility layer (and maybe in other + * places) as described in PR kern/32034. Hence we need to workaround this + * with a rather ugly hack. + * + * Linux 32-bit binaries, unless built with _FILE_OFFSET_BITS=64, have off_t + * set to 'long', which is a 32-bit *signed* long integer. Regardless of + * the macro value, GLIBC (2.3 at least) always uses the getdents64 + * system call (when calling readdir) which internally returns off64_t + * offsets. In order to make 32-bit binaries work, *GLIBC* converts the + * 64-bit values returned by the kernel to 32-bit ones and aborts with + * EOVERFLOW if the conversion results in values that won't fit in 32-bit + * integers (which it assumes is because the directory is extremely large). + * This wouldn't cause problems if we were dealing with unsigned integers, + * but as we have signed integers, this check fails due to sign expansion. + * + * For example, consider that the kernel returns the 0xc1234567 cookie to + * userspace in a off64_t integer. Later on, GLIBC casts this value to + * off_t (remember, signed) with code similar to: + * system call returns the offset in kernel_value; + * off_t casted_value = kernel_value; + * if (sizeof(off_t) != sizeof(off64_t) && + * kernel_value != casted_value) + * error! + * In this case, casted_value still has 0xc1234567, but when it is compared + * for equality against kernel_value, it is promoted to a 64-bit integer and + * becomes 0xffffffffc1234567, which is different than 0x00000000c1234567. + * Then, GLIBC assumes this is because the directory is very large. + * + * Given that all the above happens in user-space, we have no control over + * it; therefore we must workaround the issue here. We do this by + * truncating the pointer value to a 32-bit integer and hope that there + * won't be collisions. In fact, this will not cause any problems in + * 32-bit platforms but some might arise in 64-bit machines (I'm not sure + * if they can happen at all in practice). + * + * XXX A nicer solution shall be attempted. */ +#ifdef _KERNEL #define TMPFS_DIRCOOKIE_DOT 0 #define TMPFS_DIRCOOKIE_DOTDOT 1 #define TMPFS_DIRCOOKIE_EOF 2 +static __inline +off_t +tmpfs_dircookie(struct tmpfs_dirent *de) +{ + off_t cookie; + + cookie = ((off_t)(uintptr_t)de >> 1) & 0x7FFFFFFF; + MPASS(cookie != TMPFS_DIRCOOKIE_DOT); + MPASS(cookie != TMPFS_DIRCOOKIE_DOTDOT); + MPASS(cookie != TMPFS_DIRCOOKIE_EOF); + return cookie; +} +#endif + /* --------------------------------------------------------------------- */ /* @@ -353,8 +416,8 @@ const char *, uint16_t, struct tmpfs_dirent **); void tmpfs_free_dirent(struct tmpfs_mount *, struct tmpfs_dirent *, boolean_t); -int tmpfs_alloc_vp(struct mount *, struct tmpfs_node *, struct vnode **, - struct thread *td); +int tmpfs_alloc_vp(struct mount *, struct tmpfs_node *, int, + struct vnode **, struct thread *); void tmpfs_free_vp(struct vnode *); int tmpfs_alloc_file(struct vnode *, struct vnode **, struct vattr *, struct componentname *, char *); @@ -408,7 +471,7 @@ MPASS((node)->tn_type == VDIR); \ MPASS((node)->tn_size % sizeof(struct tmpfs_dirent) == 0); \ MPASS((node)->tn_dir.tn_readdir_lastp == NULL || \ - TMPFS_DIRCOOKIE((node)->tn_dir.tn_readdir_lastp) == (node)->tn_dir.tn_readdir_lastn); + tmpfs_dircookie((node)->tn_dir.tn_readdir_lastp) == (node)->tn_dir.tn_readdir_lastn); /* --------------------------------------------------------------------- */ ==== //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs_subr.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $NetBSD: tmpfs_subr.c,v 1.21 2006/06/07 22:33:39 kardel Exp $ */ +/* $NetBSD: tmpfs_subr.c,v 1.35 2007/07/09 21:10:50 ad Exp $ */ /* * Copyright (c) 2005 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ * Efficient memory file system supporting functions. */ #include -__FBSDID("$FreeBSD: src/sys/fs/tmpfs/tmpfs_subr.c,v 1.10 2007/08/03 06:24:31 delphij Exp $"); +__FBSDID("$FreeBSD: src/sys/fs/tmpfs/tmpfs_subr.c,v 1.12 2007/08/10 11:00:30 delphij Exp $"); #include #include @@ -188,6 +188,12 @@ { size_t pages = 0; +#ifdef INVARIANTS + TMPFS_NODE_LOCK(node); + MPASS(node->tn_vnode == NULL); + TMPFS_NODE_UNLOCK(node); +#endif + TMPFS_LOCK(tmp); LIST_REMOVE(node, tn_entries); tmp->tm_nodes_inuse--; @@ -302,17 +308,20 @@ * Returns zero on success or an appropriate error code on failure. */ int -tmpfs_alloc_vp(struct mount *mp, struct tmpfs_node *node, struct vnode **vpp, - struct thread *td) +tmpfs_alloc_vp(struct mount *mp, struct tmpfs_node *node, int lkflag, + struct vnode **vpp, struct thread *td) { - int error; + int error = 0; struct vnode *vp; loop: + TMPFS_NODE_LOCK(node); if ((vp = node->tn_vnode) != NULL) { - error = vget(vp, LK_EXCLUSIVE | LK_RETRY, td); - if (error) - return error; + VI_LOCK(vp); + TMPFS_NODE_UNLOCK(node); + vholdl(vp); + (void) vget(vp, lkflag | LK_INTERLOCK | LK_RETRY, td); + vdrop(vp); /* * Make sure the vnode is still there after @@ -330,12 +339,11 @@ * otherwise lock the vp list while we call getnewvnode * since that can block. */ - TMPFS_NODE_LOCK(node); if (node->tn_vpstate & TMPFS_VNODE_ALLOCATING) { node->tn_vpstate |= TMPFS_VNODE_WANT; error = msleep((caddr_t) &node->tn_vpstate, TMPFS_NODE_MTX(node), PDROP | PCATCH, - "tmpfs_vplock", 0); + "tmpfs_alloc_vp", 0); if (error) return error; @@ -351,13 +359,7 @@ goto unlock; MPASS(vp != NULL); - error = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - if (error != 0) { - vp->v_data = NULL; - vput(vp); - vp = NULL; - goto unlock; - } + (void) vn_lock(vp, lkflag | LK_RETRY, td); vp->v_data = node; vp->v_type = node->tn_type; @@ -386,23 +388,15 @@ vnode_pager_setsize(vp, node->tn_size); error = insmntque(vp, mp); - if (error) { - node->tn_vnode = NULL; - TMPFS_NODE_LOCK(node); - if (node->tn_vpstate & TMPFS_VNODE_WANT) { - node->tn_vpstate &= ~TMPFS_VNODE_WANT; - TMPFS_NODE_UNLOCK(node); - wakeup((caddr_t) &node->tn_vpstate); - } else - TMPFS_NODE_UNLOCK(node); - return error; - } - node->tn_vnode = vp; + if (error) + vp = NULL; unlock: TMPFS_NODE_LOCK(node); + MPASS(node->tn_vpstate & TMPFS_VNODE_ALLOCATING); node->tn_vpstate &= ~TMPFS_VNODE_ALLOCATING; + node->tn_vnode = vp; if (node->tn_vpstate & TMPFS_VNODE_WANT) { node->tn_vpstate &= ~TMPFS_VNODE_WANT; @@ -415,7 +409,11 @@ *vpp = vp; MPASS(IFF(error == 0, *vpp != NULL && VOP_ISLOCKED(*vpp, td))); +#ifdef INVARIANTS + TMPFS_NODE_LOCK(node); MPASS(*vpp == node->tn_vnode); + TMPFS_NODE_UNLOCK(node); +#endif return error; } @@ -433,8 +431,10 @@ node = VP_TO_TMPFS_NODE(vp); + TMPFS_NODE_LOCK(node); node->tn_vnode = NULL; vp->v_data = NULL; + TMPFS_NODE_UNLOCK(node); } /* --------------------------------------------------------------------- */ @@ -499,7 +499,8 @@ } /* Allocate a vnode for the new file. */ - error = tmpfs_alloc_vp(dvp->v_mount, node, vpp, cnp->cn_thread); + error = tmpfs_alloc_vp(dvp->v_mount, node, LK_EXCLUSIVE, vpp, + cnp->cn_thread); if (error != 0) { tmpfs_free_dirent(tmp, de, TRUE); tmpfs_free_node(tmp, node); @@ -672,7 +673,7 @@ if (de == NULL) uio->uio_offset = TMPFS_DIRCOOKIE_EOF; else - uio->uio_offset = TMPFS_DIRCOOKIE(de); + uio->uio_offset = tmpfs_dircookie(de); } } @@ -697,7 +698,7 @@ } TAILQ_FOREACH(de, &node->tn_dir.tn_dirhead, td_entries) { - if (TMPFS_DIRCOOKIE(de) == cookie) { + if (tmpfs_dircookie(de) == cookie) { break; } } @@ -805,7 +806,7 @@ node->tn_dir.tn_readdir_lastn = 0; node->tn_dir.tn_readdir_lastp = NULL; } else { - node->tn_dir.tn_readdir_lastn = uio->uio_offset = TMPFS_DIRCOOKIE(de); + node->tn_dir.tn_readdir_lastn = uio->uio_offset = tmpfs_dircookie(de); node->tn_dir.tn_readdir_lastp = de; } ==== //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs_vfsops.c#6 (text+ko) ==== @@ -48,7 +48,7 @@ * allocate and release resources. */ #include -__FBSDID("$FreeBSD: src/sys/fs/tmpfs/tmpfs_vfsops.c,v 1.8 2007/07/24 17:14:53 delphij Exp $"); +__FBSDID("$FreeBSD: src/sys/fs/tmpfs/tmpfs_vfsops.c,v 1.9 2007/08/10 05:24:49 delphij Exp $"); #include #include @@ -390,7 +390,7 @@ tmpfs_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td) { int error; - error = tmpfs_alloc_vp(mp, VFS_TO_TMPFS(mp)->tm_root, vpp, td); + error = tmpfs_alloc_vp(mp, VFS_TO_TMPFS(mp)->tm_root, flags, vpp, td); if (!error) (*vpp)->v_vflag |= VV_ROOT; @@ -429,7 +429,10 @@ } TMPFS_UNLOCK(tmp); - return found ? tmpfs_alloc_vp(mp, node, vpp, curthread) : EINVAL; + if (found) + return (tmpfs_alloc_vp(mp, node, LK_EXCLUSIVE, vpp, curthread)); + + return (EINVAL); } /* --------------------------------------------------------------------- */ ==== //depot/projects/delphij_fork/sys/fs/tmpfs/tmpfs_vnops.c#4 (text+ko) ==== @@ -1,7 +1,7 @@ -/* $NetBSD: tmpfs_vnops.c,v 1.35 2007/01/04 15:42:37 elad Exp $ */ +/* $NetBSD: tmpfs_vnops.c,v 1.39 2007/07/23 15:41:01 jmmv Exp $ */ /* - * Copyright (c) 2005 The NetBSD Foundation, Inc. + * Copyright (c) 2005, 2006 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -41,7 +41,7 @@ * tmpfs vnode interface. */ #include -__FBSDID("$FreeBSD: src/sys/fs/tmpfs/tmpfs_vnops.c,v 1.8 2007/07/19 03:34:50 delphij Exp $"); +__FBSDID("$FreeBSD: src/sys/fs/tmpfs/tmpfs_vnops.c,v 1.10 2007/08/10 11:00:30 delphij Exp $"); #include #include @@ -95,12 +95,17 @@ !(cnp->cn_flags & ISDOTDOT))); if (cnp->cn_flags & ISDOTDOT) { + int ltype = 0; + + ltype = VOP_ISLOCKED(dvp, td); + vhold(dvp); VOP_UNLOCK(dvp, 0, td); - /* Allocate a new vnode on the matching entry. */ - error = tmpfs_alloc_vp(dvp->v_mount, dnode->tn_dir.tn_parent, vpp, td); + error = tmpfs_alloc_vp(dvp->v_mount, dnode->tn_dir.tn_parent, + cnp->cn_lkflags, vpp, td); - vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(dvp, ltype | LK_RETRY, td); + vdrop(dvp); dnode->tn_dir.tn_parent->tn_lookup_dirent = NULL; } else if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { @@ -160,7 +165,8 @@ goto out; /* Allocate a new vnode on the matching entry. */ - error = tmpfs_alloc_vp(dvp->v_mount, tnode, vpp, td); + error = tmpfs_alloc_vp(dvp->v_mount, tnode, + cnp->cn_lkflags, vpp, td); if (error != 0) goto out; @@ -174,10 +180,10 @@ } tnode->tn_lookup_dirent = de; cnp->cn_flags |= SAVENAME; + } else { + error = tmpfs_alloc_vp(dvp->v_mount, tnode, + cnp->cn_lkflags, vpp, td); } - else - error = tmpfs_alloc_vp(dvp->v_mount, tnode, vpp, td); - } } @@ -478,7 +484,7 @@ vm_page_wakeup(m); VM_OBJECT_UNLOCK(vobj); return (error); - } + } VM_OBJECT_UNLOCK(vobj); nocache: VM_OBJECT_LOCK(tobj); @@ -886,13 +892,13 @@ struct vnode *tdvp = v->a_tdvp; struct vnode *tvp = v->a_tvp; struct componentname *tcnp = v->a_tcnp; - struct tmpfs_node *tnode = 0; /* pacify gcc */ char *newname; int error; struct tmpfs_dirent *de; struct tmpfs_node *fdnode; struct tmpfs_node *fnode; + struct tmpfs_node *tnode; struct tmpfs_node *tdnode; MPASS(VOP_ISLOCKED(tdvp, tcnp->cn_thread)); @@ -902,6 +908,7 @@ fdnode = VP_TO_TMPFS_DIR(fdvp); fnode = VP_TO_TMPFS_NODE(fvp); + tnode = (tvp == NULL) ? NULL : VP_TO_TMPFS_NODE(tvp); de = fnode->tn_lookup_dirent; /* Disallow cross-device renames. @@ -934,7 +941,7 @@ * Kern_rename gurantees the destination to be a directory * if the source is one. */ if (tvp != NULL) { - tnode = VP_TO_TMPFS_NODE(tvp); + MPASS(tnode != NULL); if ((tnode->tn_flags & (NOUNLINK | IMMUTABLE | APPEND)) || (tdnode->tn_flags & (APPEND | IMMUTABLE))) { @@ -942,9 +949,20 @@ goto out; } - if ((de->td_node->tn_type == VDIR) && (tnode->tn_size > 0)) { - error = ENOTEMPTY; + if (fnode->tn_type == VDIR && tnode->tn_type == VDIR) { + if (tnode->tn_size > 0) { + error = ENOTEMPTY; + goto out; + } + } else if (fnode->tn_type == VDIR && tnode->tn_type != VDIR) { + error = ENOTDIR; + goto out; + } else if (fnode->tn_type != VDIR && tnode->tn_type == VDIR) { + error = EISDIR; goto out; + } else { + MPASS(fnode->tn_type != VDIR && + tnode->tn_type != VDIR); } } @@ -1190,50 +1208,36 @@ int error; off_t startoff; - off_t cnt; + off_t cnt = 0; struct tmpfs_node *node; /* This operation only makes sense on directory nodes. */ - if (vp->v_type != VDIR) { - error = ENOTDIR; - goto out; - } + if (vp->v_type != VDIR) + return ENOTDIR; node = VP_TO_TMPFS_DIR(vp); startoff = uio->uio_offset; - cnt = 0; - if (uio->uio_offset == TMPFS_DIRCOOKIE_DOT) { + switch (startoff) { + case TMPFS_DIRCOOKIE_DOT: error = tmpfs_dir_getdotdent(node, uio); - if (error == -1) { - error = 0; - goto outok; - } else if (error != 0) - goto outok; - cnt++; - } - - if (uio->uio_offset == TMPFS_DIRCOOKIE_DOTDOT) { + if (error == 0) + cnt++; + break; + case TMPFS_DIRCOOKIE_DOTDOT: error = tmpfs_dir_getdotdotdent(node, uio); - if (error == -1) { - error = 0; - goto outok; - } else if (error != 0) - goto outok; - cnt++; + if (error == 0) + cnt++; + break; + default: + error = tmpfs_dir_getdents(node, uio, &cnt); + MPASS(error >= -1); } - error = tmpfs_dir_getdents(node, uio, &cnt); if (error == -1) error = 0; - MPASS(error >= 0); -outok: - /* This label assumes that startoff has been - * initialized. If the compiler didn't spit out warnings, we'd - * simply make this one be 'out' and drop 'outok'. */ - if (eofflag != NULL) *eofflag = (error == 0 && uio->uio_offset == TMPFS_DIRCOOKIE_EOF); @@ -1262,11 +1266,10 @@ MPASS(de != NULL); de = TAILQ_NEXT(de, td_entries); } - if (de == NULL) { + if (de == NULL) off = TMPFS_DIRCOOKIE_EOF; - } else { - off = TMPFS_DIRCOOKIE(de); - } + else + off = tmpfs_dircookie(de); } (*cookies)[i] = off; @@ -1274,7 +1277,6 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 10 12:33:34 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66D6A16A41B; Fri, 10 Aug 2007 12:33:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 113B316A418 for ; Fri, 10 Aug 2007 12:33:34 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 00F8313C459 for ; Fri, 10 Aug 2007 12:33:34 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7ACXXsH011516 for ; Fri, 10 Aug 2007 12:33:33 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7ACXX3H011512 for perforce@freebsd.org; Fri, 10 Aug 2007 12:33:33 GMT (envelope-from fli@FreeBSD.org) Date: Fri, 10 Aug 2007 12:33:33 GMT Message-Id: <200708101233.l7ACXX3H011512@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 125012 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, 10 Aug 2007 12:33:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=125012 Change 125012 by fli@fli_nexus on 2007/08/10 12:33:25 - Add a name validation function that verifies name length, label length, removes duplicated label separators and make sure names are properly dot-terminated. - Add a (correct) TXT resource encoding function. - Some minor whitespace fixes. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/mdns.h#7 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_util.c#5 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/mdns.h#7 (text+ko) ==== @@ -99,7 +99,7 @@ char *bufptr; /* Direct buffer data pointer */ char **offsets; /* Section offset pointers */ int last_offset; - TAILQ_HEAD(, mdns_pkg_res) res_head; + TAILQ_HEAD(, mdns_pkg_res) res_head; } p_data[4]; #define p_buf(x) p_data[x].bufptr #define p_bufseg(x) p_data[x].buf @@ -292,5 +292,6 @@ int mdns_type_atoi(const char *); void * mdns_res_encode(uint16_t, uint16_t, void *, int, size_t, size_t *); char * mdns_name_encode(wchar_t *, size_t, int); +int mdns_name_validate(char *, size_t *, size_t); #endif /* _MDNS_H_ */ ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_util.c#5 (text+ko) ==== @@ -37,6 +37,7 @@ #include #include "mdns.h" +#include "stack_mdns.h" #include "utf8.h" struct char2type { @@ -270,7 +271,7 @@ } /* - * Resource data encoder to CNAME,TXT + * Resource data encoder to CNAME */ static void * enc_in_string(void *data, int flags, size_t dlen, size_t *rlen) @@ -297,6 +298,41 @@ } /* + * Resource data encoder to TXT + */ +static void * +enc_in_text(void *data, int flags, size_t dlen, size_t *rlen) +{ + char *r, *p, *q; + size_t len; + + r = NULL; + if (flags & (MDNS_ENC_CHAR | MDNS_ENC_WCHAR)) { + p = data; + if (flags & MDNS_ENC_WCHAR) { + p = q = malloc(255); + len = wcstombs(q, data, 255); + } + + len = dlen & 0xff; + r = malloc(len + 1); + *r = len; + memcpy(r+1, p, len); + if (flags & MDNS_ENC_CHAR) + free(q); + *rlen = len + 1; + } + else if (flags & MDNS_ENC_BINARY) { + len = dlen & 0xff; + r = malloc(len + 1); + *r = len; + memcpy(r+1, data, len); + *rlen = len + 1; + } + return (r); +} + +/* * Table of recognized IN types for which a resource encoding * function exists. */ @@ -307,7 +343,7 @@ #endif { .em_type = mdns_in_ptr, .em_encoder = enc_in_ptr }, { .em_type = mdns_in_cname, .em_encoder = enc_in_string }, - { .em_type = mdns_in_txt, .em_encoder = enc_in_string } + { .em_type = mdns_in_txt, .em_encoder = enc_in_text } }; static int res_enc_table_size = sizeof(res_enc_table) / sizeof(struct encmap); @@ -333,6 +369,7 @@ { char *p, *res = NULL; size_t rlen; + int error; char addr[MDNS_RECORD_LEN]; /* @@ -364,12 +401,70 @@ #endif } - if (flags & MDNS_ENC_ADDR) + if (flags & MDNS_ENC_ADDR) { res = enc_in_ptr(data, flags | MDNS_ENC_WCHAR, dlen, &rlen); + } else { res = malloc(MDNS_RECORD_LEN); - utf8_encode(data, res, MDNS_RECORD_LEN); + rlen = utf8_encode(data, res, MDNS_RECORD_LEN); + if ((ssize_t)rlen <= 0) { + free(res); + res = NULL; + } + } + + if (res != NULL) { + error = mdns_name_validate(res, &rlen, MDNS_RECORD_LEN); + if (error < 0) { + free(res); + res = NULL; + } } return (res); } + +/* + * Validate a name and fix errors where possible. + */ +int +mdns_name_validate(char *name, size_t *namlen, size_t buflen) +{ + char *p; + size_t len, llen; + + /* + * Length check, the maximum length on-wire is 255, which + * in pratice results in maximum 254 real chars (incl. final dot). + */ + if (name[*namlen] != '.' && *namlen >= (MDNS_RECORD_LEN - 1)) + return (-1); + else if (*namlen >= MDNS_RECORD_LEN) + return (-1); + + len = *namlen; + llen = 0; + for (p = name; *p != '\0'; p++) { + if (*p == '.') { + /* Remove duplicate zero length labels */ + if (llen == 0) + memmove(p - 1, p, --len); + llen = 0; + } + /* Validate label length */ + else if (++llen > MDNS_PKG_LABEL_LEN) + return (-1); + } + + /* Make sure name is dot-terminated */ + if (*(p - 1) != '.') { + if (len >= buflen) + return (-1); + *p = '.'; + *++p = '\0'; + len++; + } + + *namlen = len; + return (0); +} From owner-p4-projects@FreeBSD.ORG Fri Aug 10 12:35:37 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5FCE916A41A; Fri, 10 Aug 2007 12:35:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35BE316A46B for ; Fri, 10 Aug 2007 12:35:37 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0D04613C491 for ; Fri, 10 Aug 2007 12:35:37 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7ACZa6v011678 for ; Fri, 10 Aug 2007 12:35:36 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7ACZaOP011675 for perforce@freebsd.org; Fri, 10 Aug 2007 12:35:36 GMT (envelope-from fli@FreeBSD.org) Date: Fri, 10 Aug 2007 12:35:36 GMT Message-Id: <200708101235.l7ACZaOP011675@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 125013 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, 10 Aug 2007 12:35:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=125013 Change 125013 by fli@fli_nexus on 2007/08/10 12:35:32 Somehow I managed to add some stupid whitespaces in the last submit, remove it. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_packet.c#9 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_packet.c#9 (text+ko) ==== @@ -231,8 +231,7 @@ */ static int name_compress(struct hashtbl *ht, char *str, size_t slen, char *dst, - size_t *dlen, int pkg_offset) - + size_t *dlen, int pkg_offset) { char *p, *q; void *res; From owner-p4-projects@FreeBSD.ORG Fri Aug 10 14:31:02 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8874716A41B; Fri, 10 Aug 2007 14:31:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5D44016A418 for ; Fri, 10 Aug 2007 14:31:02 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4C17113C45E for ; Fri, 10 Aug 2007 14:31:02 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AEV2pG036631 for ; Fri, 10 Aug 2007 14:31:02 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7AEV2NY036628 for perforce@freebsd.org; Fri, 10 Aug 2007 14:31:02 GMT (envelope-from mharvan@FreeBSD.org) Date: Fri, 10 Aug 2007 14:31:02 GMT Message-Id: <200708101431.l7AEV2NY036628@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 125014 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, 10 Aug 2007 14:31:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=125014 Change 125014 by mharvan@mharvan_bike-planet on 2007/08/10 14:30:50 sys patch for both udp and tcp - first attempt Affected files ... .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/catchall.sys.patch#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/Makefile#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/tcatchalld.c#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/ucatchalld.c#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/usr_include.patch#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Fri Aug 10 14:57:37 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B3CD16A41B; Fri, 10 Aug 2007 14:57:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 169A216A419 for ; Fri, 10 Aug 2007 14:57:37 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 058FE13C481 for ; Fri, 10 Aug 2007 14:57:37 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AEvac0038124 for ; Fri, 10 Aug 2007 14:57:36 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7AEvakQ038121 for perforce@freebsd.org; Fri, 10 Aug 2007 14:57:36 GMT (envelope-from mharvan@FreeBSD.org) Date: Fri, 10 Aug 2007 14:57:36 GMT Message-Id: <200708101457.l7AEvakQ038121@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 125015 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, 10 Aug 2007 14:57:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=125015 Change 125015 by mharvan@mharvan_bike-planet on 2007/08/10 14:57:03 test program for UDP_CATCHALL was broken Well, it is still not fully funtional, but at least less broken. Affected files ... .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/README#1 add .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/ucatchalld.c#2 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/ucatchalld.c#2 (text+ko) ==== @@ -279,9 +279,14 @@ { int fd; char *msg = "Welcome to catchalld\r\n"; - int n, nwrite; + int n, nwrite, nread; int soval = 1; int count = 5; + char buf[1234]; + struct sockaddr_storage from; + socklen_t fromlen = sizeof(from); + char host[NI_MAXHOST]; + char serv[NI_MAXSERV]; fd = udp_open("1234"); @@ -289,11 +294,33 @@ err(EX_UNAVAILABLE, "setsockopt(UDP_CATCHALL) failed"); while (count > 0) { + nread = recvfrom(fd, buf, sizeof(buf), 0, + (struct sockaddr *) &from, &fromlen); + if (nread < 0) { + warn("recvfrom() returned %d", nread); + continue; + } + + if (getnameinfo((struct sockaddr *) &from, fromlen, + host, sizeof(host), serv, sizeof(serv), + NI_NUMERICHOST | NI_DGRAM) ) { + fprintf(stderr, "getnameinfo failed: %s\n", + gai_strerror(errno)); + } else { + fprintf(stderr, "received traffic from client %s:%s\n", + host, serv); + } + fprintf(stderr, "traffic on UDP socket \n"); n = 0; nwrite = 0; do { - nwrite = send(fd, msg + n, strlen(msg) - n, 0); + nwrite = sendto(fd, msg + n, strlen(msg) - n, 0, + (struct sockaddr *) &from, fromlen); + if (nwrite < 0) + warn("sendto() returned %d", nwrite); + else if (nwrite == 0) + warnx("sendto() returned %d", nwrite); n += nwrite; } while (n < strlen(msg) && nwrite > 0); count--; From owner-p4-projects@FreeBSD.ORG Fri Aug 10 15:37:30 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E06B416A494; Fri, 10 Aug 2007 15:37:29 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BBBE816A480 for ; Fri, 10 Aug 2007 15:37:29 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A8EDA13C48A for ; Fri, 10 Aug 2007 15:37:29 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AFbTCe043340 for ; Fri, 10 Aug 2007 15:37:29 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7AFbTdF043336 for perforce@freebsd.org; Fri, 10 Aug 2007 15:37:29 GMT (envelope-from fli@FreeBSD.org) Date: Fri, 10 Aug 2007 15:37:29 GMT Message-Id: <200708101537.l7AFbTdF043336@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 125018 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, 10 Aug 2007 15:37:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=125018 Change 125018 by fli@fli_nexus on 2007/08/10 15:37:24 Limit number of "pointer jumps" in the name decompresstion code to 128 which is the maximum number of jumps any valid name could have. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_packet.c#10 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_packet.c#10 (text+ko) ==== @@ -307,18 +307,11 @@ } /* - * Expand/translate a series of labels into a human - * readable domain name, it also expands domain name compression. - * - * name - Pointer to start of name (inside buf) - * dst - Destination buffer (where to store the expanded name) - * dstlen - Size of destination buffer (MDNS_RECORD_LEN) - * buf - Packet buffer - * pkglen - Packet length + * Real decompression routine */ static int -name_decompress(char *name, char *dst, size_t dstlen, char *buf, - size_t pkglen) +decompress(char *name, char *dst, size_t dstlen, char *buf, + size_t pkglen, int ptrjmp) { char *p, *q, val; uint16_t offset; @@ -333,8 +326,10 @@ offset = ntohs(MDNS_READ2(p)) & ~0xc000; if (offset > pkglen || (buf + offset) == name) return (-1); - return (name_decompress(buf + offset, q, dstlen - i, - buf, pkglen)); + else if (++ptrjmp > 128) + return (-1); + return (decompress(buf + offset, q, dstlen - i, + buf, pkglen, ptrjmp)); } val = *p & 0x3f; if ((p + val + 1) > (buf + pkglen)) @@ -351,6 +346,25 @@ } /* + * Expand/translate a series of labels into a human + * readable domain name, it also expands domain name compression. + * + * name - Pointer to start of name (inside buf) + * dst - Destination buffer (where to store the expanded name) + * dstlen - Size of destination buffer (MDNS_RECORD_LEN) + * buf - Packet buffer + * pkglen - Packet length + */ +static int +name_decompress(char *name, char *dst, size_t dstlen, char *buf, + size_t pkglen) +{ + int ptrjmp = 0; + + return (decompress(name, dst, dstlen, buf, pkglen, ptrjmp)); +} + +/* * Some resource types requires special attention as their resource data * contains names that might have been name compressed. */ From owner-p4-projects@FreeBSD.ORG Fri Aug 10 18:02:28 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ECAE416A46B; Fri, 10 Aug 2007 18:02:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B607E16A417 for ; Fri, 10 Aug 2007 18:02:27 +0000 (UTC) (envelope-from thioretic@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A2A6013C45E for ; Fri, 10 Aug 2007 18:02:27 +0000 (UTC) (envelope-from thioretic@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AI2Rta078675 for ; Fri, 10 Aug 2007 18:02:27 GMT (envelope-from thioretic@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7AI2RjA078672 for perforce@freebsd.org; Fri, 10 Aug 2007 18:02:27 GMT (envelope-from thioretic@FreeBSD.org) Date: Fri, 10 Aug 2007 18:02:27 GMT Message-Id: <200708101802.l7AI2RjA078672@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thioretic@FreeBSD.org using -f From: Maxim Zhuravlev To: Perforce Change Reviews Cc: Subject: PERFORCE change 125020 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, 10 Aug 2007 18:02:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=125020 Change 125020 by thioretic@thioretic on 2007/08/10 18:01:56 some basic ior api. Affected files ... .. //depot/projects/soc2007/thioretic_gidl2/kern/subr_bus.c#4 edit .. //depot/projects/soc2007/thioretic_gidl2/kern/subr_busio.c#3 edit .. //depot/projects/soc2007/thioretic_gidl2/sys/bus.h#3 edit Differences ... ==== //depot/projects/soc2007/thioretic_gidl2/kern/subr_bus.c#4 (text+ko) ==== @@ -4771,50 +4771,48 @@ */ static int -parse_parent_name (char* in, char ***out){ +break_str (char* in, char ***out, char delim, int* pcount){ char* cptr = in, *ptr = in, *newpar; - int count = 1, num = 0; + int count = 1, num = 0, i = 0; if (!in || *in == '\0') return (0); - if (!strcmp(in, "*")){ - /* do we need this? - * if we do, then there must be a way - * to add filter driver to devclasses - * of drivers, not yet added - */ - } - else{ - while (strchr(ptr, '|')) count++; - *out = malloc (sizeof(char*)*(count+1), M_BUS, M_NOWAIT|M_ZERO); - count=0; - do { - while (*ptr!='|' && *ptr!='\0') {num++; ptr++;} - newpar = malloc ((num+1)*sizeof(char), M_BUS, M_NOWAIT|M_ZERO); - if (!newpar) return(0); - strlcpy(newpar, cptr, num+1); - (*out)[count++] = newpar; - num = 0; cptr = ++ptr; - } while (cptr<(in+strlen(in))); - (*out)[count] = NULL; + while (strchr(ptr, delim)) count++; + *out = malloc (sizeof(char*)*(count), M_BUS, M_NOWAIT|M_ZERO); + if (!(*out)) return (1); - } + count=0; + do { + while (*ptr!='|' && *ptr!='\0') {num++; ptr++;} + newpar = malloc ((num+1)*sizeof(char), M_BUS, M_NOWAIT|M_ZERO); + if (!newpar) { + for (i=0; iflags |= DF_PERSISTENT; *pdc = dc; - if (!parse_parent_name(hosts, &parents)) + if (error = break_str(hosts, &parents, '|', &count)) return (0); - while (parents[count]){ - if (!(parentdc = devclass_find(parents[count++]))) + while (count--){ + if (!(parentdc = devclass_find(parents[count]))) continue; devclass_get_devices(parentdc, &devices, &devcount); for (i=0, inameunit, check[i]))){ + (*dev_path)[i+1] = parents[ii]; + dev = parents[ii]; + found = 1; + break; + } + } + free (parents); + error |= !found; + } + free (check[i]); + found = 0; + } + free (old_check); + + *path_len = i; + + if (error && (*dev_path)) + free (*dev_path); + + return (error); +} ==== //depot/projects/soc2007/thioretic_gidl2/kern/subr_busio.c#3 (text+ko) ==== @@ -24,33 +24,44 @@ static struct mtx work_kthreads_list_mtx; struct ior { -#define OPEN 1<<0 -#define FDOPEN 1<<1 -#define CLOSE 1<<2 -#define READ 1<<3 -#define WRITE 1<<4 -#define IOCTL 1<<5 -#define POLL 1<<6 -#define MMAP 1<<7 -#define STRATEGY 1<<8 -#define DUMP 1<<9 -#define KQFILTER 1<<10 -#define PURGE 1<<11 -#define SPARE2 1<<12 +#define OPEN 1 +#define FDOPEN 2 +#define CLOSE 3 +#define READ 4 +#define WRITE 5 +#define IOCTL 6 +#define POLL 7 +#define MMAP 8 +#define STRATEGY 9 +#define DUMP 10 +#define KQFILTER 11 +#define PURGE 12 +#define SPARE2 13 u_int32_t type; void* data; -#define IORS_INVALIDATE 1<<0 -#define IORS_DONE 1<<1 +#define IORS_DONE 1<<0 +#define IORS_INVALIDATE 1<<1 #define IORS_RETRY 1<<2 u_int32_t state; u_int32_t flags; - ior_t parent; - ior_list_t children; + ior_link_list_t parents; + ior_link_list_t children; + device_t origin; devicelink_list_t path; + + struct mtx guard_mtx; + TAILQ_ENTRY (ior) link; }; typedef struct ior* ior_t; +struct ior_link { + ior_t iorp; + TAILQ_ENTRY (ior_link) link; +}; +typedef struct ior_link* ior_link_t; + +typedef TAILQ_HEAD(ior_link_list, ior_link) ior_link_list_t; typedef TAILQ_HEAD(ior_list, ior) ior_list_t; static ior_list_t iors = TAILQ_HEAD_INITIALIZER(iors); @@ -163,5 +174,133 @@ } static void -bus_io_process_next_irp (work_kthread_t wkt){ +bus_io_process_next_ior (work_kthread_t wkt){ +} + +ior_t +create_ior (device_t origin, int type, void* data, + ior_t* parents, int pcount, char* path){ + ior_t new_ior; + ior_link_t il, il2, cil, *ils; + int i = 0, error = 0, path_len; + device_t *dev_path; + devicelink_t dl; + + new_ior = malloc (sizeof (struct ior), M_BUS_IO, M_NOWAIT|M_ZERO); + if (!new_ior) + return (NULL); + + ils = malloc (sizeof(struct ior_link) * pcount * 2, M_BUS_IO, + M_NOWAIT|M_ZERO); + if (!ils){ + free (new_ior); + return (NULL); + } + + mtx_init (&new_ior->guard_mtx, + "ior_mtx", NULL, MTX_DEF); + + if (error = ior_set_path (new_ior, origin, path)){ + free (new_ior); free (ils); + return (NULL); + } + +// mtx_lock (&new_ior->guard_mtx); + + new_ior->type = type; + new_ior->data = data; + for (i = 0; i < pcount; i++){ + il = ils++; + il->iorp = parents[i]; + TAILQ_INSERT_TAIL (&new_ior->parents, il, link); + + il = ils++; + il->iorp = new_ior; + TAILQ_INSERT_TAIL (&(parents[i])->children, il, link); + } + new_ior->origin = origin; + +// mtx_unlock (&new_ior->guard_mtx); + + return (new_ior); + +} + +void +ior_set_state (ior_t r, u_int32_t val){ + r->state = val; +} + +u_int32_t +ior_get_state (ior_t r){ + return (r->state); +} + +void +ior_get_flags (ior_t r, u_int32_t val){ + r->flags = val; +} + +u_int32_t +ior_get_flags (ior_t r){ + return (r->flags); +} + +int +ior_set_path (ior_t r, device_t origin, char* path){ + int i = 0, error = 0, path_len; + device_t *dev_path; + devicelink_t dl; + + if (error = resolve_path (origin, path, &dev_path, &path_len)){ + return (error); + } + + dl = malloc (sizeof (struct devicelink) * path_len, M_BUS_IO, + M_NOWAIT|M_ZERO); + if (!dl) { + free (dev_path); + return (ENOMEM); + } + + mtx_lock (&r->guard_mtx); + + for (i = 0; i < path_len; i++){ + dl->device_ptr = dev_path[i]; + TAILQ_INSERT_TAIL (&r->path, dl, link); + dl++; + } + + mtx_unlock (&r->guard_mtx); + + free (dev_path); + return (0); +} + +int +ior_get_path (ior_t r, device_t **dev_path, int *path_len){ + int i = 0; + devicelink_t dl; + + mtx_lock (&r->guard_mtx); + + TAILQ_FOREACH (dl, &r->path, link){ + (*path_len)++; + } + + (*dev_path) = malloc (sizeof (device_t) * (*path_len), M_BUS_IO, + M_NOWAIT|M_ZERO); + + if (!(*dev_path)){ + mtx_unlock (&r->guard_mtx); + return (ENOMEM); + } + + TAILQ_FOREACH (dl, &r->path, link){ + (*dev_path)[i++] = dl->device_ptr; + } + + mtx_unlock (&r->path); + + return (0); } ==== //depot/projects/soc2007/thioretic_gidl2/sys/bus.h#3 (text+ko) ==== @@ -706,6 +706,15 @@ #define bus_write_region_stream_8(r, o, d, c) \ bus_space_write_region_stream_8(rman_get_bustag(r), rman_get_bushandle(r), (o), (d), (c)) +int resolve_path (device_t origin, char* path, device_t **dev_path, int *path_len); +ior_t create_ior (device_t origin, int type, void* data, ior_t* parents, int pcount, char* path) +void ior_set_state (ior_t r, u_int32_t val); +u_int32_t ior_get_state (ior_t r); +void ior_get_flags (ior_t r, u_int32_t val); +u_int32_t ior_get_flags (ior_t r); +int ior_set_path (ior_t r, device_t origin, char* path); +int ior_get_path (ior_t r, device_t **dev_path, int *path_len); + #endif /* _KERNEL */ #endif /* !_SYS_BUS_H_ */ From owner-p4-projects@FreeBSD.ORG Fri Aug 10 18:45:24 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2A22C16A419; Fri, 10 Aug 2007 18:45:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D735B16A46B; Fri, 10 Aug 2007 18:45:23 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from mojo.ru (mojo.ru [84.252.152.63]) by mx1.freebsd.org (Postfix) with ESMTP id 3348713C481; Fri, 10 Aug 2007 18:45:22 +0000 (UTC) (envelope-from cnst@FreeBSD.org) Received: from [192.168.0.16] (nc-76-4-28-21.dhcp.embarqhsd.net [76.4.28.21]) (authenticated bits=0) by mojo.ru (8.12.11.20060308/8.12.10) with ESMTP id l7AIjMlO004855 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 10 Aug 2007 22:45:26 +0400 Message-ID: <46BCB234.3070305@FreeBSD.org> Date: Fri, 10 Aug 2007 14:45:08 -0400 From: "Constantine A. Murenin" Organization: Google Summer of Code 2007 Student @ The FreeBSD Project User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.7.5) Gecko/20041217 X-Accept-Language: en-gb, en-gb-oed, en, en-us, ru, ru-ru, ru-su MIME-Version: 1.0 To: Jesper Brix Rosenkilde References: <200708092010.l79KAjvm091712@repoman.freebsd.org> In-Reply-To: <200708092010.l79KAjvm091712@repoman.freebsd.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: Perforce Change Reviews , "Constantine A. Murenin" Subject: Re: PERFORCE change 124976 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, 10 Aug 2007 18:45:24 -0000 On 09/08/2007 16:10, Jesper Brix Rosenkilde wrote: > http://perforce.freebsd.org/chv.cgi?CH=124976 > > Change 124976 by jbr@jbr_bob on 2007/08/09 20:10:36 ... > +void > +exec_unmap_sysshm(imgp) > + struct image_params *imgp; > +{ This notation is depricated, please use ANSI C, e.g. +void +exec_unmap_sysshm(struct image_params *imgp) +{ C. From owner-p4-projects@FreeBSD.ORG Fri Aug 10 20:09:03 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 30B7016A41A; Fri, 10 Aug 2007 20:09:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C99EE16A418 for ; Fri, 10 Aug 2007 20:09:02 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B7E8213C459 for ; Fri, 10 Aug 2007 20:09:02 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AK92lj011049 for ; Fri, 10 Aug 2007 20:09:02 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7AK92Of011046 for perforce@freebsd.org; Fri, 10 Aug 2007 20:09:02 GMT (envelope-from gabor@freebsd.org) Date: Fri, 10 Aug 2007 20:09:02 GMT Message-Id: <200708102009.l7AK92Of011046@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 125022 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, 10 Aug 2007 20:09:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=125022 Change 125022 by gabor@gabor_server on 2007/08/10 20:08:59 - Move Perl-specific do-install target into bsd.perl.mk Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#14 edit .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.mk#9 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#14 (text+ko) ==== @@ -205,5 +205,12 @@ do-build: @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${ALL_TARGET}) .endif # !target(do-build) + +.if !defined(USE_GMAKE) +.if !target(do-install) +do-install: + @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${INSTALL_TARGET}) +.endif # !target(do-install) +.endif # !defined(USE_GMAKE) .endif # defined(PERL_MODBUILD) .endif # defined (_POSTMKINCLUDED) && !defined(_PERLPOSTMKINCLUDED) ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.port.mk#9 (text+ko) ==== @@ -3596,16 +3596,12 @@ @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man) .endif .else # !defined(USE_GMAKE) -.if defined(PERL_MODBUILD) - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${INSTALL_TARGET}) -.else @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) .if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES) @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man) .endif .endif .endif -.endif # Package From owner-p4-projects@FreeBSD.ORG Fri Aug 10 21:15:46 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 088BF16A421; Fri, 10 Aug 2007 21:15:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6DAE16A418 for ; Fri, 10 Aug 2007 21:15:45 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A3C3513C45E for ; Fri, 10 Aug 2007 21:15:45 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7ALFjr1037658 for ; Fri, 10 Aug 2007 21:15:45 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7ALFhwP037649 for perforce@freebsd.org; Fri, 10 Aug 2007 21:15:43 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 10 Aug 2007 21:15:43 GMT Message-Id: <200708102115.l7ALFhwP037649@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 125024 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, 10 Aug 2007 21:15:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=125024 Change 125024 by kmacy@kmacy_home:ethng on 2007/08/10 21:14:42 IFC Affected files ... .. //depot/projects/ethng/src/ObsoleteFiles.inc#2 integrate .. //depot/projects/ethng/src/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/ethng/src/etc/rc.d/nscd#2 integrate .. //depot/projects/ethng/src/lib/libthr/thread/thr_private.h#2 integrate .. //depot/projects/ethng/src/sbin/fsck_ffs/main.c#2 integrate .. //depot/projects/ethng/src/share/man/man4/ddb.4#2 integrate .. //depot/projects/ethng/src/share/man/man9/locking.9#2 integrate .. //depot/projects/ethng/src/share/misc/bsd-family-tree#2 integrate .. //depot/projects/ethng/src/sys/arm/arm/cpufunc.c#2 integrate .. //depot/projects/ethng/src/sys/arm/arm/genassym.c#2 integrate .. //depot/projects/ethng/src/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/ethng/src/sys/boot/arm/at91/libat91/Makefile#2 integrate .. //depot/projects/ethng/src/sys/conf/files#2 integrate .. //depot/projects/ethng/src/sys/conf/kern.pre.mk#2 integrate .. //depot/projects/ethng/src/sys/dev/an/if_an.c#2 integrate .. //depot/projects/ethng/src/sys/dev/usb/if_axe.c#2 integrate .. //depot/projects/ethng/src/sys/dev/usb/if_axereg.h#2 integrate .. //depot/projects/ethng/src/sys/dev/wi/if_wi.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/denode.h#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_conv.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_fat.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_vfsops.c#2 integrate .. //depot/projects/ethng/src/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate .. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs.h#2 integrate .. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs_subr.c#2 integrate .. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs_vfsops.c#2 integrate .. //depot/projects/ethng/src/sys/fs/tmpfs/tmpfs_vnops.c#2 integrate .. //depot/projects/ethng/src/sys/i386/i386/machdep.c#2 integrate .. //depot/projects/ethng/src/sys/i386/include/cpufunc.h#2 integrate .. //depot/projects/ethng/src/sys/kern/kern_lockf.c#2 integrate .. //depot/projects/ethng/src/sys/netinet/in_mcast.c#2 integrate .. //depot/projects/ethng/src/sys/netinet/ip_divert.c#2 integrate .. //depot/projects/ethng/src/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/ethng/src/sys/powerpc/include/intr_machdep.h#2 integrate .. //depot/projects/ethng/src/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/ethng/src/sys/powerpc/powerpc/interrupt.c#2 integrate .. //depot/projects/ethng/src/sys/powerpc/powerpc/intr_machdep.c#2 integrate .. //depot/projects/ethng/src/sys/powerpc/powerpc/trap.c#2 integrate .. //depot/projects/ethng/src/sys/vm/device_pager.c#2 integrate .. //depot/projects/ethng/src/tools/regression/tmpfs/h_tools.c#2 integrate .. //depot/projects/ethng/src/tools/regression/tmpfs/t_mount#2 integrate .. //depot/projects/ethng/src/tools/regression/tmpfs/t_rename#2 integrate .. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt#2 integrate .. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_snmp.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#2 integrate .. //depot/projects/ethng/src/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#2 integrate .. //depot/projects/ethng/src/usr.sbin/freebsd-update/freebsd-update.sh#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/Makefile#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/agent.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/cachelib.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/cacheplcs.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/config.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/debug.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/log.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/log.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/mp_rs_query.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/mp_rs_query.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/mp_ws_query.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/mp_ws_query.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/nscd.8#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/nscd.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/nscd.conf.5#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/nscdcli.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/nscdcli.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/parser.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/protocol.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/query.c#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/query.h#2 integrate .. //depot/projects/ethng/src/usr.sbin/nscd/singletons.h#2 integrate Differences ... ==== //depot/projects/ethng/src/ObsoleteFiles.inc#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.108 2007/08/02 08:04:47 bz Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.109 2007/08/07 23:48:30 marcel Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,10 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070807: removal of PowerPC specific header file. +.if ${TARGET_ARCH} == "powerpc" +OLD_FILES+=usr/include/machine/interruptvar.h +.endif # 20070801: fast_ipsec.4 gone OLD_FILES+=usr/share/man/man4/fast_ipsec.4.gz # 20070715: netatm temporarily disconnected ==== //depot/projects/ethng/src/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ==== @@ -1136,7 +1136,15 @@ exit(1); } - psize = statbuf.st_size; + if (S_ISCHR(statbuf.st_mode)) { + if (ioctl(fd, DIOCGMEDIASIZE, &psize) != 0) { + (void) printf("failed to get size '%s': %s\n", dev, + strerror(errno)); + exit(1); + } + } else + psize = statbuf.st_size; + psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t)); for (l = 0; l < VDEV_LABELS; l++) { ==== //depot/projects/ethng/src/etc/rc.d/nscd#2 (text+ko) ==== @@ -1,32 +1,32 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/nscd,v 1.3 2006/06/06 15:34:50 ume Exp $ +# $FreeBSD: src/etc/rc.d/nscd,v 1.4 2007/08/09 13:06:11 bushman Exp $ # -# PROVIDE: cached +# PROVIDE: nscd # REQUIRE: DAEMON # BEFORE: LOGIN # # Add the following lines to /etc/rc.conf to enable cached: # -# cached_enable="YES" +# nscd_enable="YES" # -# See cached(8) for flags +# See nscd(8) for flags # . /etc/rc.subr -name=cached +name=nscd rcvar=`set_rcvar` -command=/usr/sbin/cached +command=/usr/sbin/nscd extra_commands="flush" flush_cmd="${command} -I all" -cached_enable=${cached_enable:-"NO"} -cached_pidfile=${cached_pidfile:-"/var/run/cached.pid"} -cached_flags=${cached_flags:-""} +nscd_enable=${nscd_enable:-"NO"} +nscd_pidfile=${nscd_pidfile:-"/var/run/nscd.pid"} +nscd_flags=${nscd_flags:-""} load_rc_config $name run_rc_command "$1" ==== //depot/projects/ethng/src/lib/libthr/thread/thr_private.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE 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/libthr/thread/thr_private.h,v 1.77 2006/12/20 04:43:34 davidxu Exp $ + * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.78 2007/08/07 04:50:14 davidxu Exp $ */ #ifndef _THR_PRIVATE_H @@ -72,7 +72,7 @@ /* Output debug messages like this: */ #define stdout_debug(args...) _thread_printf(STDOUT_FILENO, ##args) -#define stderr_debug(args...) _thread_printf(STDOUT_FILENO, ##args) +#define stderr_debug(args...) _thread_printf(STDERR_FILENO, ##args) #ifdef _PTHREADS_INVARIANTS #define THR_ASSERT(cond, msg) do { \ ==== //depot/projects/ethng/src/sbin/fsck_ffs/main.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/fsck_ffs/main.c,v 1.45 2006/10/31 22:06:56 pjd Exp $"); +__FBSDID("$FreeBSD: src/sbin/fsck_ffs/main.c,v 1.46 2007/08/10 06:29:54 pjd Exp $"); #include #include @@ -67,6 +67,7 @@ static void usage(void) __dead2; static int argtoi(int flag, const char *req, const char *str, int base); static int checkfilesys(char *filesys); +static int chkdoreload(struct statfs *mntp); static struct statfs *getmntpt(const char *); int @@ -197,7 +198,7 @@ struct stat snapdir; struct group *grp; ufs2_daddr_t blks; - int cylno, ret; + int cylno; ino_t files; size_t size; @@ -253,7 +254,9 @@ } if ((sblock.fs_flags & (FS_UNCLEAN | FS_NEEDSFSCK)) == 0) { gjournal_check(filesys); - exit(0); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); } else { pfatal("UNEXPECTED INCONSISTENCY, %s\n", "CANNOT RUN FAST FSCK\n"); @@ -483,23 +486,7 @@ printf("\n***** FILE SYSTEM WAS MODIFIED *****\n"); if (rerun) printf("\n***** PLEASE RERUN FSCK *****\n"); - if (mntp != NULL) { - /* - * We modified a mounted file system. Do a mount update on - * it unless it is read-write, so we can continue using it - * as safely as possible. - */ - if (mntp->f_flags & MNT_RDONLY) { - args.fspec = 0; - args.export.ex_flags = 0; - args.export.ex_root = 0; - ret = mount("ufs", mntp->f_mntonname, - mntp->f_flags | MNT_UPDATE | MNT_RELOAD, &args); - if (ret == 0) - return (0); - pwarn("mount reload of '%s' failed: %s\n\n", - mntp->f_mntonname, strerror(errno)); - } + if (chkdoreload(mntp) != 0) { if (!fsmodified) return (0); if (!preen) @@ -510,6 +497,36 @@ return (0); } +static int +chkdoreload(struct statfs *mntp) +{ + struct ufs_args args; + + if (mntp == NULL) + return (0); + /* + * We modified a mounted file system. Do a mount update on + * it unless it is read-write, so we can continue using it + * as safely as possible. + */ + if (mntp->f_flags & MNT_RDONLY) { + memset(&args, 0, sizeof args); + /* + * args.fspec = 0; + * args.export.ex_flags = 0; + * args.export.ex_root = 0; + */ + if (mount("ufs", mntp->f_mntonname, + mntp->f_flags | MNT_UPDATE | MNT_RELOAD, &args) == 0) { + return (0); + } + pwarn("mount reload of '%s' failed: %s\n\n", + mntp->f_mntonname, strerror(errno)); + return (1); + } + return (0); +} + /* * Get the mount point information for name. */ ==== //depot/projects/ethng/src/share/man/man4/ddb.4#2 (text+ko) ==== @@ -57,9 +57,9 @@ .\" Created. .\" [90/08/30 dbg] .\" -.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.41 2006/10/30 12:55:06 ru Exp $ +.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.42 2007/08/09 20:14:35 njl Exp $ .\" -.Dd October 27, 2006 +.Dd August 6, 2007 .Dt DDB 4 .Os .Sh NAME @@ -522,6 +522,12 @@ modifier depends on the machine. If not supported, incorrect information will be displayed. .Pp +.It Ic show Cm sysregs +Show system registers (e.g., +.Li cr0-4 +on i386.) +Not present on some platforms. +.Pp .It Ic show Cm geom Op Ar addr If the .Ar addr ==== //depot/projects/ethng/src/share/man/man9/locking.9#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/locking.9,v 1.10 2007/06/21 16:39:25 brueffer Exp $ +.\" $FreeBSD: src/share/man/man9/locking.9,v 1.11 2007/08/09 21:09:56 julian Exp $ .\" .Dd March 14, 2007 .Dt LOCKING 9 @@ -67,7 +67,8 @@ .El .Pp The primitives interact and have a number of rules regarding how -they can and can not be combined. There are too many for the average +they can and can not be combined. +There are too many for the average human mind and they keep changing. (if you disagree, please write replacement text) :-) .Pp @@ -85,63 +86,70 @@ If you don't own it then you just spin, waiting for the holder (on another CPU) to release it. Hopefully they are doing something fast. -You can not do anything that deschedules the thread while you +You +.Em must not +do anything that deschedules the thread while you are holding a SPIN mutex. -.Ss Sleep Mutexes -Basically sleep (regular) mutexes will deschedule the thread if the +.Ss Mutexes +Basically (regular) mutexes will deschedule the thread if the mutex can not be acquired. +A non-spin mutex can be considered to be equivalent +to getting a write lock on an +.Em rw_lock +(see below), and in fact non-spin mutexes and rw_locks may soon become the same thing. As in spin mutexes, you either get it or you don't. -You may call the +You may only call the .Xr sleep 9 -call +call via .Fn msleep or the new .Fn mtx_sleep -variant. These will atomically drop the mutex and reacquire it +variant. +These will atomically drop the mutex and reacquire it as part of waking up. +This is often however a +.Em BAD +idea because it generally relies on you having +such a good knowledge of all the call graph above you +and what assumptions it is making that there are a lot +of ways to make hard-to-find mistakes. +For example you MUST re-test all the assumptions you made before, +all the way up the call graph to where you got the lock. +You can not just assume that mtx_sleep can be inserted anywhere. +If any caller above you has any mutex or +rwlock, your sleep, will cause a panic. +If the sleep only happens rarely it may be years before the +bad code path is found. .Ss Pool Mutexes -A variant of SLEEP mutexes where the allocation of the mutex is handled +A variant of regular mutexes where the allocation of the mutex is handled more by the system. -.Ss Sx_locks -Shared/exclusive locks are used to protect data that are read far more often -than they are written. -Mutexes are inherently more efficient than shared/exclusive locks, so -shared/exclusive locks should be used prudently. -A thread may hold a shared or exclusive lock on an -.Em sx_lock -lock while sleeping. -As a result, an -.Em sx_lock -lock may not be acquired while holding a mutex. -Otherwise, if one thread slept while holding an -.Em sx_lock -lock while another thread blocked on the same -.Em sx_lock -lock after acquiring a mutex, then the second thread would effectively -end up sleeping while holding a mutex, which is not allowed. .Ss Rw_locks Reader/writer locks allow shared access to protected data by multiple threads, or exclusive access by a single thread. The threads with shared access are known as .Em readers -since they only read the protected data. +since they should only read the protected data. A thread with exclusive access is known as a .Em writer -since it can modify protected data. +since it may modify protected data. .Pp Although reader/writer locks look very similar to .Xr sx 9 -locks, their usage pattern is different. -Reader/writer locks can be treated as mutexes (see +(see below) locks, their usage pattern is different. +Reader/writer locks can be treated as mutexes (see above and .Xr mutex 9 ) with shared/exclusive semantics. -Unlike -.Xr sx 9 , -an +More specifically, regular mutexes can be +considered to be equivalent to a write-lock on an +.Em rw_lock. +In the future this may in fact +become literally the fact. +An .Em rw_lock -can be locked while holding a non-spin mutex, and an -.Em rw_lock -cannot be held while sleeping. +can be locked while holding a regular mutex, but +can +.Em not +be held while sleeping. The .Em rw_lock locks have priority propagation like mutexes, but priority @@ -150,8 +158,36 @@ are anonymous. Another important property is that shared holders of .Em rw_lock -can recurse, -but exclusive locks are not allowed to recurse. +can recurse, but exclusive locks are not allowed to recurse. +This ability should not be used lightly and +.Em may go away. +Users of recursion in any locks should be prepared to +defend their decision against vigorous criticism. +.Ss Sx_locks +Shared/exclusive locks are used to protect data that are read far more often +than they are written. +Mutexes are inherently more efficient than shared/exclusive locks, so +shared/exclusive locks should be used prudently. +The main reason for using an +.Em sx_lock +is that a thread may hold a shared or exclusive lock on an +.Em sx_lock +lock while sleeping. +As a consequence of this however, an +.Em sx_lock +lock may not be acquired while holding a mutex. +The reason for this is that, if one thread slept while holding an +.Em sx_lock +lock while another thread blocked on the same +.Em sx_lock +lock after acquiring a mutex, then the second thread would effectively +end up sleeping while holding a mutex, which is not allowed. +The +.Em sx_lock +should be considered to be closely related to +.Xr sleep 9 . +In fact it could in some cases be +considered a conditional sleep. .Ss Turnstiles Turnstiles are used to hold a queue of threads blocked on non-sleepable locks. @@ -160,6 +196,7 @@ are assigned to a lock held by an owning thread. Thus, when one thread is enqueued onto a turnstile, it can lend its priority to the owning thread. +If this sounds confusing, we need to describe it better. .Ss Semaphores .Ss Condition variables Condition variables are used in conjunction with mutexes to wait for @@ -182,7 +219,7 @@ .It You can sleep while it has recursed, but other recursive locks cannot. .It -Giant must be locked first. +Giant must be locked first before other locks. .It There are places in the kernel that drop Giant and pick it back up again. @@ -249,7 +286,8 @@ mutex before the function returns. .Pp .Ss lockmanager locks -Largely deprecated. See the +Largely deprecated. +See the .Xr lock 9 page for more information. I don't know what the downsides are but I'm sure someone will fill in this part. @@ -269,10 +307,12 @@ .El .Pp .Em *1 -Recursion is defined per lock. Lock order is important. +Recursion is defined per lock. +Lock order is important. .Pp .Em *2 -readers can recurse though writers can not. Lock order is important. +readers can recurse though writers can not. +Lock order is important. .Pp .Em *3 There are calls atomically release this primitive when going to sleep @@ -302,6 +342,7 @@ .Xr condvar 9 , .Xr lock 9 , .Xr mtx_pool 9 , +.Xr mutex 9 , .Xr rwlock 9 , .Xr sema 9 , .Xr sleep 9 , ==== //depot/projects/ethng/src/share/misc/bsd-family-tree#2 (text+ko) ==== @@ -174,7 +174,7 @@ | | | | \ FreeBSD 5.0 | | | | | | | | | -FreeBSD 5.1 | | | DragonFly 1.0 +FreeBSD 5.1 | | | DragonFly 1.0 | \ | | | | | ----- Mac OS X | | | | 10.3 | | | @@ -185,7 +185,7 @@ *-------FreeBSD 5.3 | | | | | | | | OpenBSD 3.6 | | | | NetBSD 2.0 | | - | | | | | | | DragonFly 1.2.0 + | | | | | | | DragonFly 1.2.0 | | Mac OS X | | NetBSD 2.0.2 | | | | 10.4 | | | | | | FreeBSD 5.4 | | | | | | @@ -198,19 +198,20 @@ | | | | | NetBSD 2.1 | | | | | | | | | | | | | NetBSD 3.0 | | - | | | | | | | | DragonFly 1.4.0 + | | | | | | | | DragonFly 1.4.0 | | | | | | | OpenBSD 3.9 | | FreeBSD | | | | | | | | 6.1 | | | | | | | | | FreeBSD 5.5 | | | | | | - | | | | | NetBSD 3.0.1 | DragonFly 1.6.0 + | | | | | NetBSD 3.0.1 | DragonFly 1.6.0 | | | | | | | | | | | | | | OpenBSD 4.0 | | | | | | NetBSD 3.0.2 | | | | | | NetBSD 3.1 | | | FreeBSD 6.2 | | | | - | | | | | DragonFly 1.8.0 + | | | | | DragonFly 1.8.0 | | | | OpenBSD 4.1 | + | | | | | DragonFly 1.10.0 | V | | | | FreeBSD 7 -current | NetBSD -current OpenBSD -current | | | | | | @@ -466,6 +467,7 @@ FreeBSD 6.2 2007-01-15 [FBD] DragonFly 1.8.0 2007-01-30 [DFB] OpenBSD 4.1 2007-05-01 [OBD] +DragonFly 1.10.0 2007-08-06 [DFB] Bibliography ------------------------ @@ -526,4 +528,4 @@ Copyright (c) 1997-2007 Wolfram Schneider URL: http://cvsweb.freebsd.org/src/share/misc/bsd-family-tree -$FreeBSD: src/share/misc/bsd-family-tree,v 1.113 2007/05/31 03:40:29 imp Exp $ +$FreeBSD: src/share/misc/bsd-family-tree,v 1.115 2007/08/07 15:35:24 maxim Exp $ ==== //depot/projects/ethng/src/sys/arm/arm/cpufunc.c#2 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $"); #include #include @@ -148,9 +148,9 @@ arm7tdmi_cache_flushID, /* idcache_wbinv_all */ (void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -210,9 +210,9 @@ arm8_cache_purgeID, /* idcache_wbinv_all */ (void *)arm8_cache_purgeID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -271,9 +271,9 @@ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ arm9_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -333,9 +333,9 @@ arm10_idcache_wbinv_all, /* idcache_wbinv_all */ arm10_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -395,9 +395,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -456,9 +456,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -517,9 +517,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -581,9 +581,9 @@ xscale_cache_purgeID, /* idcache_wbinv_all */ xscale_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ ==== //depot/projects/ethng/src/sys/arm/arm/genassym.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $"); #include #include #include @@ -92,6 +92,7 @@ ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TD_MD, offsetof(struct thread, td_md)); +ASSYM(TD_LOCK, offsetof(struct thread, td_lock)); ASSYM(MD_TP, offsetof(struct mdthread, md_tp)); ASSYM(TF_R0, offsetof(struct trapframe, tf_r0)); ==== //depot/projects/ethng/src/sys/arm/arm/swtch.S#2 (text+ko) ==== @@ -83,7 +83,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.19 2006/04/09 20:16:47 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.20 2007/08/07 18:20:55 cognet Exp $"); /* @@ -127,6 +127,8 @@ .word _C_LABEL(block_userspace_access) .Lcpu_do_powersave: .word _C_LABEL(cpu_do_powersave) +.Lblocked_lock: + .word _C_LABEL(blocked_lock) ENTRY(cpu_throw) mov r5, r1 @@ -214,6 +216,7 @@ ENTRY(cpu_switch) stmfd sp!, {r4-r7, lr} + mov r6, r2 /* Save the mutex */ .Lswitch_resume: /* rem: r0 = old lwp */ @@ -241,10 +244,11 @@ /* Stage two : Save old context */ - /* Get the user structure for the old lwp. */ + /* Get the user structure for the old thread. */ ldr r2, [r0, #(TD_PCB)] + mov r4, r0 /* Save the old thread. */ - /* Save all the registers in the old lwp's pcb */ + /* Save all the registers in the old thread's pcb */ #ifndef __XSCALE__ add r7, r2, #(PCB_R8) stmia r7, {r8-r13} @@ -324,8 +328,7 @@ mov lr, pc ldr pc, [r1, #CF_IDCACHE_WBINV_ALL] .Lcs_cache_purge_skipped: - /* rem: r4 = &block_userspace_access */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r9 = new PCB */ /* rem: r10 = old L1 */ /* rem: r11 = new L1 */ @@ -389,6 +392,17 @@ .Lcs_context_switched: + /* Release the old thread */ + str r6, [r4, #TD_LOCK] + ldr r6, .Lblocked_lock + ldr r3, .Lcurthread + ldr r3, [r3] + +1: + ldr r4, [r3, #TD_LOCK] + cmp r4, r6 + beq 1b + /* XXXSCW: Safe to re-enable FIQs here */ /* rem: r9 = new PCB */ @@ -419,7 +433,7 @@ ldr r13, [r7, #(PCB_SP)] #endif - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new pcb */ #ifdef ARMFPE @@ -429,7 +443,7 @@ #endif /* rem: r5 = new lwp's proc */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new PCB */ .Lswitch_return: ==== //depot/projects/ethng/src/sys/boot/arm/at91/libat91/Makefile#2 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.9 2007/07/13 14:27:04 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.10 2007/08/09 05:16:55 imp Exp $ .include "${.CURDIR}/../Makefile.inc" @@ -8,7 +8,7 @@ putchar.c printf.c reset.c spi_flash.c xmodem.c \ sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ memset.c memcmp.c -SRCS+=ashldi3.c divsi3.c +SRCS+=ashldi3.c divsi3.S NO_MAN= .if ${MK_TAG_LIST} != "no" ==== //depot/projects/ethng/src/sys/conf/files#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1241 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1242 2007/08/09 01:11:21 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -259,7 +259,7 @@ contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ - compile-with "${NORMAL_C} -I$S/contrib/ipfilter" + compile-with "${NORMAL_C} -Wno-error -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ ==== //depot/projects/ethng/src/sys/conf/kern.pre.mk#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.91 2007/07/31 03:15:32 marcel Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.92 2007/08/08 19:12:06 marcel Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -88,7 +88,8 @@ CFLAGS+= --param inline-unit-growth=100 CFLAGS+= --param large-function-growth=1000 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \ - ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64" + ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc64" WERROR?= -Werror .endif .endif ==== //depot/projects/ethng/src/sys/dev/an/if_an.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.82 2007/08/02 02:20:19 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.83 2007/08/07 12:26:19 avatar Exp $"); /* * The Aironet 4500/4800 series cards come in PCMCIA, ISA and PCI form. @@ -1065,8 +1065,10 @@ rx_frame.an_rsvd0); #endif #endif + AN_UNLOCK(sc); (*ifp->if_input)(ifp, m); - + AN_LOCK(sc); + an_rx_desc.an_valid = 1; an_rx_desc.an_len = AN_RX_BUFFER_SIZE; an_rx_desc.an_done = 0; ==== //depot/projects/ethng/src/sys/dev/usb/if_axe.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.52 2007/06/30 20:08:08 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.53 2007/08/09 04:40:07 imp Exp $"); /* * ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the @@ -468,7 +468,7 @@ /* * Get station address. */ - axe_cmd(sc, AXE_CMD_READ_NODEID, 0, 0, &eaddr); + axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, &eaddr); /* * Load IPG values and PHY indexes. @@ -894,12 +894,12 @@ } /* Set transmitter IPG values */ - axe_cmd(sc, AXE_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); /* Enable receiver, set RX mode */ - rxmode = AXE_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; + rxmode = AXE_172_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; /* If we want promiscuous mode, set the allframes bit. */ if (ifp->if_flags & IFF_PROMISC) ==== //depot/projects/ethng/src/sys/dev/usb/if_axereg.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.13 2007/06/30 20:08:08 imp Exp $ + * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.14 2007/08/09 04:40:07 imp Exp $ */ /* @@ -53,9 +53,11 @@ #define AXE_CMD_LEN(x) (((x) & 0xF000) >> 12) #define AXE_CMD_CMD(x) ((x) & 0x00FF) -#define AXE_CMD_READ_RXTX_SRAM 0x2002 -#define AXE_CMD_WRITE_RX_SRAM 0x0103 -#define AXE_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_172_CMD_READ_RXTX_SRAM 0x2002 +#define AXE_182_CMD_READ_RXTX_SRAM 0x8002 +#define AXE_172_CMD_WRITE_RX_SRAM 0x0103 +#define AXE_172_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_182_CMD_WRITE_RXTX_SRAM 0x8103 #define AXE_CMD_MII_OPMODE_SW 0x0106 #define AXE_CMD_MII_READ_REG 0x2007 #define AXE_CMD_MII_WRITE_REG 0x2108 @@ -68,35 +70,79 @@ #define AXE_CMD_RXCTL_READ 0x200F #define AXE_CMD_RXCTL_WRITE 0x0110 #define AXE_CMD_READ_IPG012 0x3011 -#define AXE_CMD_WRITE_IPG0 0x0112 -#define AXE_CMD_WRITE_IPG1 0x0113 -#define AXE_CMD_WRITE_IPG2 0x0114 +#define AXE_172_CMD_WRITE_IPG0 0x0112 +#define AXE_172_CMD_WRITE_IPG1 0x0113 +#define AXE_172_CMD_WRITE_IPG2 0x0114 +#define AXE_178_CMD_WRITE_IPG012 0x0112 #define AXE_CMD_READ_MCAST 0x8015 #define AXE_CMD_WRITE_MCAST 0x8116 -#define AXE_CMD_READ_NODEID 0x6017 -#define AXE_CMD_WRITE_NODEID 0x6118 +#define AXE_172_CMD_READ_NODEID 0x6017 +#define AXE_172_CMD_WRITE_NODEID 0x6118 +#define AXE_178_CMD_READ_NODEID 0x6013 +#define AXE_178_CMD_WRITE_NODEID 0x6114 #define AXE_CMD_READ_PHYID 0x2019 -#define AXE_CMD_READ_MEDIA 0x101A +#define AXE_172_CMD_READ_MEDIA 0x101A +#define AXE_178_CMD_READ_MEDIA 0x201A #define AXE_CMD_WRITE_MEDIA 0x011B #define AXE_CMD_READ_MONITOR_MODE 0x101C #define AXE_CMD_WRITE_MONITOR_MODE 0x011D #define AXE_CMD_READ_GPIO 0x101E #define AXE_CMD_WRITE_GPIO 0x011F +#define AXE_CMD_SW_RESET_REG 0x0120 +#define AXE_CMD_SW_PHY_STATUS 0x0021 +#define AXE_CMD_SW_PHY_SELECT 0x0122 + +#define AXE_SW_RESET_CLEAR 0x00 +#define AXE_SW_RESET_RR 0x01 +#define AXE_SW_RESET_RT 0x02 +#define AXE_SW_RESET_PRTE 0x04 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 10 23:13:16 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0139516A476; Fri, 10 Aug 2007 23:13:16 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6E7C16A417 for ; Fri, 10 Aug 2007 23:13:15 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4BC5113C515 for ; Fri, 10 Aug 2007 23:13:13 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7AND9u6003357 for ; Fri, 10 Aug 2007 23:13:09 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7AND8Hm003354 for perforce@freebsd.org; Fri, 10 Aug 2007 23:13:08 GMT (envelope-from rpaulo@FreeBSD.org) Date: Fri, 10 Aug 2007 23:13:08 GMT Message-Id: <200708102313.l7AND8Hm003354@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 125025 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, 10 Aug 2007 23:13:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=125025 Change 125025 by rpaulo@rpaulo_epsilon on 2007/08/10 23:12:08 Style fixes. Pointed out by: des Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#11 edit Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#11 (text+ko) ==== @@ -23,7 +23,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#10 $ + * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#11 $ * */ @@ -120,11 +120,11 @@ msrtemp_probe(device_t dev) { if (resource_disabled("msrtemp", 0)) - return ENXIO; + return (ENXIO); device_set_desc(dev, "CPU On-Die Thermal Sensors"); - return BUS_PROBE_GENERIC; + return (BUS_PROBE_GENERIC); } static int @@ -159,7 +159,7 @@ dev, 0, msrtemp_get_temp_sysctl, "I", "Current temperature in degC"); - return 0; + return (0); } static int @@ -169,7 +169,7 @@ sysctl_remove_oid(sc->sc_oid, 1, 0); - return 0; + return (0); } @@ -205,10 +205,10 @@ * We use 0x7f to ignore the minus signal. */ temp = sc->sc_tjmax - ((temp >> 16) & 0x7f); - return (int) temp; + return ((int) temp); } - return -1; + return (-1); } static int @@ -219,5 +219,5 @@ temp = msrtemp_get_temp(dev); - return sysctl_handle_int(oidp, &temp, 0, req); + return (sysctl_handle_int(oidp, &temp, 0, req)); } From owner-p4-projects@FreeBSD.ORG Fri Aug 10 23:27:27 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 693B916A41A; Fri, 10 Aug 2007 23:27:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A7F416A418 for ; Fri, 10 Aug 2007 23:27:27 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2AFFA13C483 for ; Fri, 10 Aug 2007 23:27:27 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7ANRR2E007044 for ; Fri, 10 Aug 2007 23:27:27 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7ANRRxS007041 for perforce@freebsd.org; Fri, 10 Aug 2007 23:27:27 GMT (envelope-from rpaulo@FreeBSD.org) Date: Fri, 10 Aug 2007 23:27:27 GMT Message-Id: <200708102327.l7ANRRxS007041@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 125026 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, 10 Aug 2007 23:27:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=125026 Change 125026 by rpaulo@rpaulo_epsilon on 2007/08/10 23:26:29 Remove wrong comment. Pointed out by: des Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#12 edit Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#12 (text+ko) ==== @@ -23,7 +23,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#11 $ + * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/msrtemp/msrtemp.c#12 $ * */ @@ -202,7 +202,6 @@ if (((temp >> 31) & 0x01) == 1) { /* * Starting on bit 16 and ending on bit 22. - * We use 0x7f to ignore the minus signal. */ temp = sc->sc_tjmax - ((temp >> 16) & 0x7f); return ((int) temp); From owner-p4-projects@FreeBSD.ORG Sat Aug 11 00:39:00 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A8CC16A41A; Sat, 11 Aug 2007 00:39:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B21916A418 for ; Sat, 11 Aug 2007 00:39:00 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0681513C4A7 for ; Sat, 11 Aug 2007 00:39:00 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7B0cxl8030421 for ; Sat, 11 Aug 2007 00:38:59 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7B0cv8G030412 for perforce@freebsd.org; Sat, 11 Aug 2007 00:38:57 GMT (envelope-from zec@FreeBSD.org) Date: Sat, 11 Aug 2007 00:38:57 GMT Message-Id: <200708110038.l7B0cv8G030412@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 125030 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, 11 Aug 2007 00:39:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=125030 Change 125030 by zec@zec_tpx32 on 2007/08/11 00:38:49 IFC @ 125021 Affected files ... .. //depot/projects/vimage/src/sys/arm/arm/cpufunc.c#4 integrate .. //depot/projects/vimage/src/sys/arm/arm/genassym.c#3 integrate .. //depot/projects/vimage/src/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/vimage/src/sys/boot/arm/at91/libat91/Makefile#4 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_socket.c#4 integrate .. //depot/projects/vimage/src/sys/conf/NOTES#14 integrate .. //depot/projects/vimage/src/sys/conf/files#17 integrate .. //depot/projects/vimage/src/sys/conf/kern.pre.mk#7 integrate .. //depot/projects/vimage/src/sys/conf/options#17 integrate .. //depot/projects/vimage/src/sys/dev/adlink/adlink.c#3 integrate .. //depot/projects/vimage/src/sys/dev/an/if_an.c#4 integrate .. //depot/projects/vimage/src/sys/dev/ath/if_ath.c#11 integrate .. //depot/projects/vimage/src/sys/dev/dc/if_dc.c#5 integrate .. //depot/projects/vimage/src/sys/dev/dc/if_dcreg.h#3 integrate .. //depot/projects/vimage/src/sys/dev/em/if_em.c#7 integrate .. //depot/projects/vimage/src/sys/dev/re/if_re.c#10 integrate .. //depot/projects/vimage/src/sys/dev/streams/streams.c#3 integrate .. //depot/projects/vimage/src/sys/dev/usb/if_axe.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/if_axereg.h#5 integrate .. //depot/projects/vimage/src/sys/dev/wi/if_wi.c#8 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/denode.h#3 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_conv.c#2 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_denode.c#3 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_fat.c#6 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_vfsops.c#8 integrate .. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_vnops.c#6 integrate .. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs.h#4 integrate .. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_subr.c#4 integrate .. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vfsops.c#5 integrate .. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vnops.c#5 integrate .. //depot/projects/vimage/src/sys/i386/i386/machdep.c#8 integrate .. //depot/projects/vimage/src/sys/i386/include/cpufunc.h#2 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/clock.c#3 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/exception.S#5 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/interrupt.c#5 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/machdep.c#8 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/mp_machdep.c#4 integrate .. //depot/projects/vimage/src/sys/ia64/ia64/pmap.c#6 integrate .. //depot/projects/vimage/src/sys/ia64/include/ia64_cpu.h#3 integrate .. //depot/projects/vimage/src/sys/ia64/include/md_var.h#3 integrate .. //depot/projects/vimage/src/sys/kern/kern_descrip.c#9 integrate .. //depot/projects/vimage/src/sys/kern/kern_lockf.c#4 integrate .. //depot/projects/vimage/src/sys/kern/kern_poll.c#4 integrate .. //depot/projects/vimage/src/sys/kern/kern_switch.c#7 integrate .. //depot/projects/vimage/src/sys/kern/sched_ule.c#9 integrate .. //depot/projects/vimage/src/sys/kern/sys_socket.c#6 edit .. //depot/projects/vimage/src/sys/kern/uipc_domain.c#10 integrate .. //depot/projects/vimage/src/sys/kern/uipc_syscalls.c#12 integrate .. //depot/projects/vimage/src/sys/net/bpf.c#11 integrate .. //depot/projects/vimage/src/sys/net/bpfdesc.h#3 integrate .. //depot/projects/vimage/src/sys/net/bridgestp.c#6 integrate .. //depot/projects/vimage/src/sys/net/bridgestp.h#4 integrate .. //depot/projects/vimage/src/sys/net/netisr.c#5 integrate .. //depot/projects/vimage/src/sys/netgraph/netflow/netflow.c#2 integrate .. //depot/projects/vimage/src/sys/netinet/in_mcast.c#4 integrate .. //depot/projects/vimage/src/sys/netinet/in_pcb.h#10 integrate .. //depot/projects/vimage/src/sys/netinet/ip_divert.c#6 integrate .. //depot/projects/vimage/src/sys/netinet/ip_dummynet.c#5 integrate .. //depot/projects/vimage/src/sys/netinet/ip_fw2.c#22 integrate .. //depot/projects/vimage/src/sys/netinet/ip_input.c#21 integrate .. //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#8 integrate .. //depot/projects/vimage/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/vimage/src/sys/netinet/ip_mroute.c#6 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_constants.h#13 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_input.c#16 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_uio.h#11 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_usrreq.c#16 integrate .. //depot/projects/vimage/src/sys/netinet/sctputil.c#16 integrate .. //depot/projects/vimage/src/sys/netinet/tcp_syncache.c#18 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_ipsec.c#6 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ah.c#10 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_esp.c#9 integrate .. //depot/projects/vimage/src/sys/netipsec/xform_ipcomp.c#8 integrate .. //depot/projects/vimage/src/sys/nfsclient/bootp_subr.c#4 integrate .. //depot/projects/vimage/src/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_socket.c#7 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#6 integrate .. //depot/projects/vimage/src/sys/nfsserver/nfs_srvsock.c#4 integrate .. //depot/projects/vimage/src/sys/nfsserver/nfs_srvsubs.c#5 integrate .. //depot/projects/vimage/src/sys/nfsserver/nfs_syscalls.c#6 integrate .. //depot/projects/vimage/src/sys/pci/if_xl.c#4 integrate .. //depot/projects/vimage/src/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/vimage/src/sys/powerpc/include/intr_machdep.h#3 integrate .. //depot/projects/vimage/src/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/vimage/src/sys/powerpc/powerpc/interrupt.c#2 integrate .. //depot/projects/vimage/src/sys/powerpc/powerpc/intr_machdep.c#5 integrate .. //depot/projects/vimage/src/sys/powerpc/powerpc/trap.c#5 integrate .. //depot/projects/vimage/src/sys/rpc/rpcclnt.c#4 integrate .. //depot/projects/vimage/src/sys/security/mac/mac_syscalls.c#3 integrate .. //depot/projects/vimage/src/sys/sparc64/include/iommureg.h#3 integrate .. //depot/projects/vimage/src/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/vimage/src/sys/sparc64/pci/psycho.c#6 integrate .. //depot/projects/vimage/src/sys/sparc64/pci/psychoreg.h#3 integrate .. //depot/projects/vimage/src/sys/sparc64/sbus/sbus.c#5 integrate .. //depot/projects/vimage/src/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/vimage/src/sys/sparc64/sparc64/iommu.c#3 integrate .. //depot/projects/vimage/src/sys/sys/mutex.h#8 integrate .. //depot/projects/vimage/src/sys/vm/device_pager.c#2 integrate .. //depot/projects/vimage/src/sys/vm/phys_pager.c#4 integrate .. //depot/projects/vimage/src/sys/vm/swap_pager.c#8 integrate .. //depot/projects/vimage/src/sys/vm/vm_pager.c#2 integrate Differences ... ==== //depot/projects/vimage/src/sys/arm/arm/cpufunc.c#4 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.18 2007/08/07 18:37:21 cognet Exp $"); #include #include @@ -148,9 +148,9 @@ arm7tdmi_cache_flushID, /* idcache_wbinv_all */ (void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -210,9 +210,9 @@ arm8_cache_purgeID, /* idcache_wbinv_all */ (void *)arm8_cache_purgeID, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -271,9 +271,9 @@ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ arm9_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -333,9 +333,9 @@ arm10_idcache_wbinv_all, /* idcache_wbinv_all */ arm10_idcache_wbinv_range, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -395,9 +395,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -456,9 +456,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -517,9 +517,9 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -581,9 +581,9 @@ xscale_cache_purgeID, /* idcache_wbinv_all */ xscale_cache_purgeID_rng, /* idcache_wbinv_range */ cpufunc_nullop, /* l2cache_wbinv_all */ - cpufunc_nullop, /* l2cache_wbinv_range */ - cpufunc_nullop, /* l2cache_inv_range */ - cpufunc_nullop, /* l2cache_wb_range */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ ==== //depot/projects/vimage/src/sys/arm/arm/genassym.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.9 2007/05/23 13:21:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.10 2007/08/08 09:27:52 cognet Exp $"); #include #include #include @@ -92,6 +92,7 @@ ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); ASSYM(TD_MD, offsetof(struct thread, td_md)); +ASSYM(TD_LOCK, offsetof(struct thread, td_lock)); ASSYM(MD_TP, offsetof(struct mdthread, md_tp)); ASSYM(TF_R0, offsetof(struct trapframe, tf_r0)); ==== //depot/projects/vimage/src/sys/arm/arm/swtch.S#2 (text+ko) ==== @@ -83,7 +83,7 @@ #include #include #include -__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.19 2006/04/09 20:16:47 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.20 2007/08/07 18:20:55 cognet Exp $"); /* @@ -127,6 +127,8 @@ .word _C_LABEL(block_userspace_access) .Lcpu_do_powersave: .word _C_LABEL(cpu_do_powersave) +.Lblocked_lock: + .word _C_LABEL(blocked_lock) ENTRY(cpu_throw) mov r5, r1 @@ -214,6 +216,7 @@ ENTRY(cpu_switch) stmfd sp!, {r4-r7, lr} + mov r6, r2 /* Save the mutex */ .Lswitch_resume: /* rem: r0 = old lwp */ @@ -241,10 +244,11 @@ /* Stage two : Save old context */ - /* Get the user structure for the old lwp. */ + /* Get the user structure for the old thread. */ ldr r2, [r0, #(TD_PCB)] + mov r4, r0 /* Save the old thread. */ - /* Save all the registers in the old lwp's pcb */ + /* Save all the registers in the old thread's pcb */ #ifndef __XSCALE__ add r7, r2, #(PCB_R8) stmia r7, {r8-r13} @@ -324,8 +328,7 @@ mov lr, pc ldr pc, [r1, #CF_IDCACHE_WBINV_ALL] .Lcs_cache_purge_skipped: - /* rem: r4 = &block_userspace_access */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r9 = new PCB */ /* rem: r10 = old L1 */ /* rem: r11 = new L1 */ @@ -389,6 +392,17 @@ .Lcs_context_switched: + /* Release the old thread */ + str r6, [r4, #TD_LOCK] + ldr r6, .Lblocked_lock + ldr r3, .Lcurthread + ldr r3, [r3] + +1: + ldr r4, [r3, #TD_LOCK] + cmp r4, r6 + beq 1b + /* XXXSCW: Safe to re-enable FIQs here */ /* rem: r9 = new PCB */ @@ -419,7 +433,7 @@ ldr r13, [r7, #(PCB_SP)] #endif - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new pcb */ #ifdef ARMFPE @@ -429,7 +443,7 @@ #endif /* rem: r5 = new lwp's proc */ - /* rem: r6 = new lwp */ + /* rem: r6 = lock */ /* rem: r7 = new PCB */ .Lswitch_return: ==== //depot/projects/vimage/src/sys/boot/arm/at91/libat91/Makefile#4 (text) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.9 2007/07/13 14:27:04 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.10 2007/08/09 05:16:55 imp Exp $ .include "${.CURDIR}/../Makefile.inc" @@ -8,7 +8,7 @@ putchar.c printf.c reset.c spi_flash.c xmodem.c \ sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ memset.c memcmp.c -SRCS+=ashldi3.c divsi3.c +SRCS+=ashldi3.c divsi3.S NO_MAN= .if ${MK_TAG_LIST} != "no" ==== //depot/projects/vimage/src/sys/compat/linux/linux_socket.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.73 2007/04/14 10:35:09 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.74 2007/08/06 14:25:59 rwatson Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -670,7 +670,6 @@ * socket and use the file descriptor reference instead of * creating a new one. */ - NET_LOCK_GIANT(); error = fgetsock(td, linux_args.s, &so, &fflag); if (error == 0) { error = EISCONN; @@ -683,7 +682,6 @@ } fputsock(so); } - NET_UNLOCK_GIANT(); return (error); } ==== //depot/projects/vimage/src/sys/conf/NOTES#14 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1447 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1448 2007/08/05 16:16:15 bz Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -501,15 +501,15 @@ options IPSEC #IP security (requires device crypto) #options IPSEC_DEBUG #debug for IP security # -# Set IPSEC_FILTERGIF to force packets coming through a gif tunnel -# to be processed by any configured packet filtering (ipfw, ipf). -# The default is that packets coming from a tunnel are _not_ processed; +# Set IPSEC_FILTERTUNNEL to force packets coming through a tunnel +# to be processed by any configured packet filtering twice. +# The default is that packets coming out of a tunnel are _not_ processed; # they are assumed trusted. # # IPSEC history is preserved for such packets, and can be filtered # using ipfw(8)'s 'ipsec' keyword, when this option is enabled. # -#options IPSEC_FILTERGIF #filter ipsec packets from a tunnel +#options IPSEC_FILTERTUNNEL #filter ipsec packets from a tunnel options IPX #IPX/SPX communications protocols ==== //depot/projects/vimage/src/sys/conf/files#17 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1241 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1242 2007/08/09 01:11:21 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -259,7 +259,7 @@ contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ - compile-with "${NORMAL_C} -I$S/contrib/ipfilter" + compile-with "${NORMAL_C} -Wno-error -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ ==== //depot/projects/vimage/src/sys/conf/kern.pre.mk#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.91 2007/07/31 03:15:32 marcel Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.92 2007/08/08 19:12:06 marcel Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -88,7 +88,8 @@ CFLAGS+= --param inline-unit-growth=100 CFLAGS+= --param large-function-growth=1000 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || \ - ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64" + ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc64" WERROR?= -Werror .endif .endif ==== //depot/projects/vimage/src/sys/conf/options#17 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.603 2007/07/24 15:35:01 scottl Exp $ +# $FreeBSD: src/sys/conf/options,v 1.605 2007/08/06 14:25:59 rwatson Exp $ # # On the handling of kernel options # @@ -362,7 +362,7 @@ INET6 opt_inet6.h IPSEC opt_ipsec.h IPSEC_DEBUG opt_ipsec.h -IPSEC_FILTERGIF opt_ipsec.h +IPSEC_FILTERTUNNEL opt_ipsec.h IPDIVERT DUMMYNET opt_ipdn.h IPFILTER opt_ipfilter.h @@ -383,7 +383,6 @@ MBUF_STRESS_TEST NCP NETATALK opt_atalk.h -NET_WITH_GIANT opt_net.h PPP_BSDCOMP opt_ppp.h PPP_DEFLATE opt_ppp.h PPP_FILTER opt_ppp.h ==== //depot/projects/vimage/src/sys/dev/adlink/adlink.c#3 (text+ko) ==== @@ -43,7 +43,7 @@ #ifdef _KERNEL #include -__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.16 2007/02/23 12:18:29 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/adlink/adlink.c,v 1.17 2007/08/04 17:43:11 kib Exp $"); #include #include @@ -119,6 +119,7 @@ static struct cdevsw adlink_cdevsw = { .d_version = D_VERSION, + .d_flags = D_NEEDGIANT, .d_ioctl = adlink_ioctl, .d_mmap = adlink_mmap, .d_name = "adlink", ==== //depot/projects/vimage/src/sys/dev/an/if_an.c#4 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.82 2007/08/02 02:20:19 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.83 2007/08/07 12:26:19 avatar Exp $"); /* * The Aironet 4500/4800 series cards come in PCMCIA, ISA and PCI form. @@ -1065,8 +1065,10 @@ rx_frame.an_rsvd0); #endif #endif + AN_UNLOCK(sc); (*ifp->if_input)(ifp, m); - + AN_LOCK(sc); + an_rx_desc.an_valid = 1; an_rx_desc.an_len = AN_RX_BUFFER_SIZE; an_rx_desc.an_done = 0; ==== //depot/projects/vimage/src/sys/dev/ath/if_ath.c#11 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.172 2007/06/24 01:57:20 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.173 2007/08/06 14:25:59 rwatson Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -888,11 +888,9 @@ * truly a bmiss we'll get another interrupt soon and that'll * be dispatched up for processing. */ - if (tsf - lastrx > bmisstimeout) { - NET_LOCK_GIANT(); + if (tsf - lastrx > bmisstimeout) ieee80211_beacon_miss(ic); - NET_UNLOCK_GIANT(); - } else + else sc->sc_stats.ast_bmiss_phantom++; } } @@ -3447,7 +3445,6 @@ int16_t nf; u_int64_t tsf; - NET_LOCK_GIANT(); /* XXX */ DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s: pending %u\n", __func__, npending); ngood = 0; @@ -3715,7 +3712,6 @@ !IFQ_IS_EMPTY(&ifp->if_snd)) ath_start(ifp); - NET_UNLOCK_GIANT(); /* XXX */ #undef PA2DESC } ==== //depot/projects/vimage/src/sys/dev/dc/if_dc.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.191 2007/02/23 12:18:37 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.192 2007/08/05 11:28:19 marius Exp $"); /* * DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143 @@ -294,7 +294,6 @@ static void dc_apply_fixup(struct dc_softc *, int); static void dc_dma_map_txbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); -static void dc_dma_map_rxbuf(void *, bus_dma_segment_t *, int, bus_size_t, int); #ifdef DC_USEIOSPACE #define DC_RES SYS_RES_IOPORT @@ -2424,29 +2423,6 @@ return (0); } -static void -dc_dma_map_rxbuf(arg, segs, nseg, mapsize, error) - void *arg; - bus_dma_segment_t *segs; - int nseg; - bus_size_t mapsize; - int error; -{ - struct dc_softc *sc; - struct dc_desc *c; - - sc = arg; - c = &sc->dc_ldata->dc_rx_list[sc->dc_cdata.dc_rx_cur]; - if (error) { - sc->dc_cdata.dc_rx_err = error; - return; - } - - KASSERT(nseg == 1, ("wrong number of segments, should be 1")); - sc->dc_cdata.dc_rx_err = 0; - c->dc_data = htole32(segs->ds_addr); -} - /* * Initialize an RX descriptor and attach an MBUF cluster. */ @@ -2455,7 +2431,8 @@ { struct mbuf *m_new; bus_dmamap_t tmp; - int error; + bus_dma_segment_t segs[1]; + int error, nseg; if (alloc) { m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); @@ -2478,17 +2455,14 @@ /* No need to remap the mbuf if we're reusing it. */ if (alloc) { - sc->dc_cdata.dc_rx_cur = i; - error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_sparemap, - m_new, dc_dma_map_rxbuf, sc, 0); + error = bus_dmamap_load_mbuf_sg(sc->dc_mtag, sc->dc_sparemap, + m_new, segs, &nseg, 0); + KASSERT(nseg == 1, ("wrong number of segments, should be 1")); if (error) { m_freem(m_new); return (error); } - if (sc->dc_cdata.dc_rx_err != 0) { - m_freem(m_new); - return (sc->dc_cdata.dc_rx_err); - } + sc->dc_ldata->dc_rx_list[i].dc_data = htole32(segs->ds_addr); bus_dmamap_unload(sc->dc_mtag, sc->dc_cdata.dc_rx_map[i]); tmp = sc->dc_cdata.dc_rx_map[i]; sc->dc_cdata.dc_rx_map[i] = sc->dc_sparemap; @@ -2865,12 +2839,11 @@ sc->dc_cdata.dc_tx_cnt--; DC_INC(idx, DC_TX_LIST_CNT); } + sc->dc_cdata.dc_tx_cons = idx; - if (idx != sc->dc_cdata.dc_tx_cons) { - /* Some buffers have been freed. */ - sc->dc_cdata.dc_tx_cons = idx; + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt > DC_TX_LIST_RSVD) ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - } + if (sc->dc_cdata.dc_tx_cnt == 0) sc->dc_wdog_timer = 0; } @@ -3161,10 +3134,8 @@ int cur, first, frag, i; sc = arg; - if (error) { - sc->dc_cdata.dc_tx_err = error; + if (error) return; - } first = cur = frag = sc->dc_cdata.dc_tx_prod; for (i = 0; i < nseg; i++) { @@ -3217,7 +3188,7 @@ /* * If there's no way we can send any packets, return now. */ - if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt < 6) + if (DC_TX_LIST_CNT - sc->dc_cdata.dc_tx_cnt <= DC_TX_LIST_RSVD) return (ENOBUFS); /* @@ -3229,27 +3200,30 @@ for (m = *m_head; m != NULL; m = m->m_next) chainlen++; - if ((chainlen > DC_TX_LIST_CNT / 4) || - ((DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt)) < 6)) { + m = NULL; + if ((sc->dc_flags & DC_TX_COALESCE && ((*m_head)->m_next != NULL || + sc->dc_flags & DC_TX_ALIGN)) || (chainlen > DC_TX_LIST_CNT / 4) || + (DC_TX_LIST_CNT - (chainlen + sc->dc_cdata.dc_tx_cnt) <= + DC_TX_LIST_RSVD)) { m = m_defrag(*m_head, M_DONTWAIT); - if (m == NULL) + if (m == NULL) { + m_freem(*m_head); + *m_head = NULL; return (ENOBUFS); + } *m_head = m; } - - /* - * Start packing the mbufs in this chain into - * the fragment pointers. Stop when we run out - * of fragments or hit the end of the mbuf chain. - */ idx = sc->dc_cdata.dc_tx_prod; sc->dc_cdata.dc_tx_mapping = *m_head; error = bus_dmamap_load_mbuf(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], *m_head, dc_dma_map_txbuf, sc, 0); - if (error) - return (error); - if (sc->dc_cdata.dc_tx_err != 0) - return (sc->dc_cdata.dc_tx_err); + if (error != 0 || sc->dc_cdata.dc_tx_err != 0) { + if (m != NULL) { + m_freem(m); + *m_head = NULL; + } + return (error != 0 ? error : sc->dc_cdata.dc_tx_err); + } bus_dmamap_sync(sc->dc_mtag, sc->dc_cdata.dc_tx_map[idx], BUS_DMASYNC_PREWRITE); bus_dmamap_sync(sc->dc_ltag, sc->dc_lmap, @@ -3279,7 +3253,7 @@ dc_start_locked(struct ifnet *ifp) { struct dc_softc *sc; - struct mbuf *m_head = NULL, *m; + struct mbuf *m_head = NULL; unsigned int queued = 0; int idx; @@ -3300,20 +3274,9 @@ if (m_head == NULL) break; - if (sc->dc_flags & DC_TX_COALESCE && - (m_head->m_next != NULL || - sc->dc_flags & DC_TX_ALIGN)) { - m = m_defrag(m_head, M_DONTWAIT); - if (m == NULL) { - IFQ_DRV_PREPEND(&ifp->if_snd, m_head); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if (dc_encap(sc, &m_head)) { + if (m_head == NULL) break; - } else { - m_head = m; - } - } - - if (dc_encap(sc, &m_head)) { IFQ_DRV_PREPEND(&ifp->if_snd, m_head); ifp->if_drv_flags |= IFF_DRV_OACTIVE; break; ==== //depot/projects/vimage/src/sys/dev/dc/if_dcreg.h#3 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.53 2006/12/06 01:56:38 marius Exp $ + * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.54 2007/08/05 11:28:19 marius Exp $ */ /* @@ -461,6 +461,7 @@ #define DC_RX_LIST_CNT 64 #endif #define DC_TX_LIST_CNT 256 +#define DC_TX_LIST_RSVD 5 #define DC_MIN_FRAMELEN 60 #define DC_RXLEN 1536 @@ -496,8 +497,6 @@ int dc_tx_prod; int dc_tx_cons; int dc_tx_cnt; - int dc_rx_err; - int dc_rx_cur; int dc_rx_prod; }; ==== //depot/projects/vimage/src/sys/dev/em/if_em.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ ***************************************************************************/ -/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.182 2007/07/27 14:48:05 cognet Exp $*/ +/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.183 2007/08/06 14:25:59 rwatson Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" @@ -1474,7 +1474,6 @@ struct adapter *adapter = context; struct ifnet *ifp; - NET_LOCK_GIANT(); ifp = adapter->ifp; /* @@ -1493,7 +1492,6 @@ } em_enable_intr(adapter); - NET_UNLOCK_GIANT(); } /********************************************************************* ==== //depot/projects/vimage/src/sys/dev/re/if_re.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.93 2007/07/27 00:43:12 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.94 2007/08/05 11:20:33 marius Exp $"); /* * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver @@ -1005,6 +1005,7 @@ } cmdstat = segs[i].ds_len; totlen += segs[i].ds_len; + d->rl_vlanctl = 0; d->rl_bufaddr_lo = htole32(RL_ADDR_LO(segs[i].ds_addr)); d->rl_bufaddr_hi = htole32(RL_ADDR_HI(segs[i].ds_addr)); if (i == 0) ==== //depot/projects/vimage/src/sys/dev/streams/streams.c#3 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.55 2007/04/04 09:11:31 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.56 2007/08/06 14:26:00 rwatson Exp $"); #include #include @@ -244,9 +244,7 @@ return error; /* An extra reference on `fp' has been held for us by falloc(). */ - NET_LOCK_GIANT(); error = socreate(family, &so, type, protocol, td->td_ucred, td); - NET_UNLOCK_GIANT(); if (error) { fdclose(fdp, fp, fd, td); fdrop(fp, td); ==== //depot/projects/vimage/src/sys/dev/usb/if_axe.c#7 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.52 2007/06/30 20:08:08 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_axe.c,v 1.53 2007/08/09 04:40:07 imp Exp $"); /* * ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the @@ -468,7 +468,7 @@ /* * Get station address. */ - axe_cmd(sc, AXE_CMD_READ_NODEID, 0, 0, &eaddr); + axe_cmd(sc, AXE_172_CMD_READ_NODEID, 0, 0, &eaddr); /* * Load IPG values and PHY indexes. @@ -894,12 +894,12 @@ } /* Set transmitter IPG values */ - axe_cmd(sc, AXE_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); - axe_cmd(sc, AXE_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->axe_ipgs[0], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->axe_ipgs[1], NULL); + axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->axe_ipgs[2], NULL); /* Enable receiver, set RX mode */ - rxmode = AXE_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; + rxmode = AXE_172_RXCMD_UNICAST|AXE_RXCMD_MULTICAST|AXE_RXCMD_ENABLE; /* If we want promiscuous mode, set the allframes bit. */ if (ifp->if_flags & IFF_PROMISC) ==== //depot/projects/vimage/src/sys/dev/usb/if_axereg.h#5 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.13 2007/06/30 20:08:08 imp Exp $ + * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.14 2007/08/09 04:40:07 imp Exp $ */ /* @@ -53,9 +53,11 @@ #define AXE_CMD_LEN(x) (((x) & 0xF000) >> 12) #define AXE_CMD_CMD(x) ((x) & 0x00FF) -#define AXE_CMD_READ_RXTX_SRAM 0x2002 -#define AXE_CMD_WRITE_RX_SRAM 0x0103 -#define AXE_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_172_CMD_READ_RXTX_SRAM 0x2002 +#define AXE_182_CMD_READ_RXTX_SRAM 0x8002 +#define AXE_172_CMD_WRITE_RX_SRAM 0x0103 +#define AXE_172_CMD_WRITE_TX_SRAM 0x0104 +#define AXE_182_CMD_WRITE_RXTX_SRAM 0x8103 #define AXE_CMD_MII_OPMODE_SW 0x0106 #define AXE_CMD_MII_READ_REG 0x2007 #define AXE_CMD_MII_WRITE_REG 0x2108 @@ -68,35 +70,79 @@ #define AXE_CMD_RXCTL_READ 0x200F #define AXE_CMD_RXCTL_WRITE 0x0110 #define AXE_CMD_READ_IPG012 0x3011 -#define AXE_CMD_WRITE_IPG0 0x0112 -#define AXE_CMD_WRITE_IPG1 0x0113 -#define AXE_CMD_WRITE_IPG2 0x0114 +#define AXE_172_CMD_WRITE_IPG0 0x0112 +#define AXE_172_CMD_WRITE_IPG1 0x0113 +#define AXE_172_CMD_WRITE_IPG2 0x0114 +#define AXE_178_CMD_WRITE_IPG012 0x0112 #define AXE_CMD_READ_MCAST 0x8015 #define AXE_CMD_WRITE_MCAST 0x8116 -#define AXE_CMD_READ_NODEID 0x6017 -#define AXE_CMD_WRITE_NODEID 0x6118 +#define AXE_172_CMD_READ_NODEID 0x6017 +#define AXE_172_CMD_WRITE_NODEID 0x6118 +#define AXE_178_CMD_READ_NODEID 0x6013 +#define AXE_178_CMD_WRITE_NODEID 0x6114 #define AXE_CMD_READ_PHYID 0x2019 -#define AXE_CMD_READ_MEDIA 0x101A +#define AXE_172_CMD_READ_MEDIA 0x101A +#define AXE_178_CMD_READ_MEDIA 0x201A #define AXE_CMD_WRITE_MEDIA 0x011B #define AXE_CMD_READ_MONITOR_MODE 0x101C #define AXE_CMD_WRITE_MONITOR_MODE 0x011D #define AXE_CMD_READ_GPIO 0x101E #define AXE_CMD_WRITE_GPIO 0x011F +#define AXE_CMD_SW_RESET_REG 0x0120 +#define AXE_CMD_SW_PHY_STATUS 0x0021 +#define AXE_CMD_SW_PHY_SELECT 0x0122 + +#define AXE_SW_RESET_CLEAR 0x00 +#define AXE_SW_RESET_RR 0x01 +#define AXE_SW_RESET_RT 0x02 +#define AXE_SW_RESET_PRTE 0x04 +#define AXE_SW_RESET_PRL 0x08 +#define AXE_SW_RESET_BZ 0x10 +#define AXE_SW_RESET_IPRL 0x20 +#define AXE_SW_RESET_IPPD 0x40 + +/* AX88178 documentation says to always write this bit... */ +#define AXE_178_RESET_MAGIC 0x40 + +#define AXE_178_MEDIA_GMII 0x0001 +#define AXE_MEDIA_FULL_DUPLEX 0x0002 +#define AXE_172_MEDIA_TX_ABORT_ALLOW 0x0004 +/* AX88178 documentation says to always write 1 to reserved bit... */ +#define AXE_178_MEDIA_MAGIC 0x0004 +#define AXE_178_MEDIA_ENCK 0x0008 +#define AXE_172_MEDIA_FLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_RXFLOW_CONTROL_EN 0x0010 +#define AXE_178_MEDIA_TXFLOW_CONTROL_EN 0x0020 +#define AXE_178_MEDIA_JUMBO_EN 0x0040 +#define AXE_178_MEDIA_LTPF_ONLY 0x0080 +#define AXE_178_MEDIA_RX_EN 0x0100 +#define AXE_178_MEDIA_100TX 0x0200 +#define AXE_178_MEDIA_SBP 0x0800 +#define AXE_178_MEDIA_SUPERMAC 0x1000 #define AXE_RXCMD_PROMISC 0x0001 #define AXE_RXCMD_ALLMULTI 0x0002 -#define AXE_RXCMD_UNICAST 0x0004 +#define AXE_172_RXCMD_UNICAST 0x0004 +#define AXE_178_RXCMD_KEEP_INVALID_CRC 0x0004 #define AXE_RXCMD_BROADCAST 0x0008 #define AXE_RXCMD_MULTICAST 0x0010 #define AXE_RXCMD_ENABLE 0x0080 +#define AXE_178_RXCMD_MFB 0x0300 #define AXE_NOPHY 0xE0 +#define AXE_INTPHY 0x10 #define AXE_TIMEOUT 1000 +#define AXE_172_BUFSZ 1536 +#define AXE_178_MIN_BUFSZ 2048 +#define AXE_178_MAX_BUFSZ 16384 #define AXE_MIN_FRAMELEN 60 #define AXE_RX_FRAMES 1 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 11 03:31:32 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C4D1C16A41B; Sat, 11 Aug 2007 03:31:31 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 796A716A41A for ; Sat, 11 Aug 2007 03:31:31 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 68CA813C428 for ; Sat, 11 Aug 2007 03:31:31 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7B3VUKN004085 for ; Sat, 11 Aug 2007 03:31:30 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7B3VUwU004079 for perforce@freebsd.org; Sat, 11 Aug 2007 03:31:30 GMT (envelope-from peter@freebsd.org) Date: Sat, 11 Aug 2007 03:31:30 GMT Message-Id: <200708110331.l7B3VUwU004079@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 125031 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, 11 Aug 2007 03:31:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=125031 Change 125031 by peter@peter_work on 2007/08/11 03:30:47 Update to work on 7.x. Regenerate. Adds ktimer_* calls and new 7.x parameters. Note: lkm entries manually changed to 8 args. Syscall 219 was not a lkm* syscall on the machine this was originally generated on. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/makeargsize6.sh#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/sysargcount.c#2 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/makeargsize6.sh#2 (text+ko) ==== @@ -141,6 +141,10 @@ argalias = funcname "_args" if ($3 == "COMPAT" || $3 == "MCOMPAT") argalias = "o" argalias + if ($3 == "COMPAT4" || $3 == "MCOMPAT4") + argalias = "freebsd4_" argalias + if ($3 == "COMPAT6" || $3 == "MCOMPAT6") + argalias = "freebsd6_" argalias } f++ @@ -190,7 +194,7 @@ next } $3 == "COMPAT" || $3 == "MCOMPAT" || $3 == "CPT_NOA" || $3 == "LIBCOMPAT" \ - || $3 == "COMPAT4" || $3 == "MCOMPAT4" || $3 == "MCPT_NOA" { + || $3 == "COMPAT4" || $3 == "MCOMPAT4" || $3 == "COMPAT6" || $3 == "MCOMPAT6" || $3 == "MCPT_NOA" { parseline() printf("\t%s,", argssize) > sysent align_sysent_comment(8 + length(argssize) + 1) @@ -220,6 +224,8 @@ printf "#define KLD_MODULE\n" > syssw printf "#define _KERNEL\n" > syssw printf "#define COMPAT_43\n" > syssw + printf "#define COMPAT_FREEBSD4\n" > syssw + printf "#define COMPAT_FREEBSD6\n" > syssw printf "\n" > syssw printf "\n#define AS(name) (sizeof(struct name) / sizeof(register_t))\n\n" > sysinc printf("};\n") > sysent ==== //depot/projects/valgrind/coregrind/m_syswrap/sysargcount.c#2 (text+ko) ==== @@ -218,7 +218,7 @@ 8, /* 216 */ 8, /* 217 */ 8, /* 218 */ - 3, /* 219 */ + 8, /* 219 */ 4, /* 220 */ 3, /* 221 */ 3, /* 222 */ @@ -234,11 +234,11 @@ 2, /* 232 */ 2, /* 233 */ 2, /* 234 */ - 0, /* 235 */ - 0, /* 236 */ - 0, /* 237 */ - 0, /* 238 */ - 0, /* 239 */ + 3, /* 235 */ + 1, /* 236 */ + 4, /* 237 */ + 2, /* 238 */ + 1, /* 239 */ 2, /* 240 */ 0, /* 241 */ 0, /* 242 */ @@ -254,9 +254,9 @@ 3, /* 252 */ 0, /* 253 */ 3, /* 254 */ - 0, /* 255 */ - 0, /* 256 */ - 0, /* 257 */ + 1, /* 255 */ + 1, /* 256 */ + 4, /* 257 */ 0, /* 258 */ 0, /* 259 */ 0, /* 260 */ @@ -455,5 +455,30 @@ 1, /* 453 */ 5, /* 454 */ 2, /* 455 */ + 3, /* 456 */ + 4, /* 457 */ + 3, /* 458 */ + 5, /* 459 */ + 5, /* 460 */ + 2, /* 461 */ + 1, /* 462 */ + 3, /* 463 */ + 2, /* 464 */ + 2, /* 465 */ + 3, /* 466 */ + 0, /* 467 */ + 0, /* 468 */ + 0, /* 469 */ + 0, /* 470 */ + 2, /* 471 */ + 7, /* 472 */ + 7, /* 473 */ + 7, /* 474 */ + 5, /* 475 */ + 5, /* 476 */ + 7, /* 477 */ + 4, /* 478 */ + 3, /* 479 */ + 3, /* 480 */ }; -int numsysargcount = 456; +int numsysargcount = 481; From owner-p4-projects@FreeBSD.ORG Sat Aug 11 03:36:38 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1881E16A419; Sat, 11 Aug 2007 03:36:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B45FC16A417 for ; Sat, 11 Aug 2007 03:36:37 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A6C7213C457 for ; Sat, 11 Aug 2007 03:36:37 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7B3abPU005487 for ; Sat, 11 Aug 2007 03:36:37 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7B3abuX005476 for perforce@freebsd.org; Sat, 11 Aug 2007 03:36:37 GMT (envelope-from peter@freebsd.org) Date: Sat, 11 Aug 2007 03:36:37 GMT Message-Id: <200708110336.l7B3abuX005476@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 125032 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, 11 Aug 2007 03:36:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=125032 Change 125032 by peter@peter_work on 2007/08/11 03:36:19 Add placemarker names for 7r..x syscalls. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#2 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#2 (text+ko) ==== @@ -2657,6 +2657,33 @@ // _umtx_op 454 // thr_new 455 + // sigqueue 456 + // kmq_open 457 + // kmq_setattr 458 + // kmq_timedreceive 459 + + // kmq_timedsend 460 + // kmq_notify 461 + // kmq_unlink 462 + // abort2 463 + + // thr_set_name 464 + // aio_fsync 465 + // rtprio_thread 466 + // sctp_peeloff 471 + + // sctp_generic_sendmsg 472 + // sctp_generic_sendmsg_iov 473 + // sctp_generic_recvmsg 474 + // pread 475 + + // pwrite 476 + // mmap 477 + // lseek 478 + // truncate 479 + + // ftruncate 480 + }; const UInt ML_(syscall_table_size) = From owner-p4-projects@FreeBSD.ORG Sat Aug 11 11:05:03 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1330F16A41B; Sat, 11 Aug 2007 11:05:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C741B16A418 for ; Sat, 11 Aug 2007 11:05:02 +0000 (UTC) (envelope-from raj@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B6B4313C468 for ; Sat, 11 Aug 2007 11:05:02 +0000 (UTC) (envelope-from raj@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BB52aD003116 for ; Sat, 11 Aug 2007 11:05:02 GMT (envelope-from raj@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BB51ck003098 for perforce@freebsd.org; Sat, 11 Aug 2007 11:05:01 GMT (envelope-from raj@freebsd.org) Date: Sat, 11 Aug 2007 11:05:01 GMT Message-Id: <200708111105.l7BB51ck003098@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to raj@freebsd.org using -f From: Rafal Jaworowski To: Perforce Change Reviews Cc: Subject: PERFORCE change 125046 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, 11 Aug 2007 11:05:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=125046 Change 125046 by raj@raj_booke_intgr on 2007/08/11 11:04:06 Fix e500 kernel build - adapt to gcc 4 requirements (initialize vars, add protos etc.) - adapt to API changes in 7.0 - add pmap_remove_write(), pmap_enter_object - rework pmap_enter(), pmap_enter_locked() - rework sendsig(), syscall() - eliminate unused code Affected files ... .. //depot/projects/e500/sys/dev/quicc/quicc_core.c#2 edit .. //depot/projects/e500/sys/dev/scc/scc_bfe_quicc.c#2 edit .. //depot/projects/e500/sys/dev/tsec/if_tsec.c#2 edit .. //depot/projects/e500/sys/dev/tsec/if_tsecreg.h#2 edit .. //depot/projects/e500/sys/dev/usb/usb_subr.c#2 edit .. //depot/projects/e500/sys/kern/kern_sig.c#5 edit .. //depot/projects/e500/sys/kern/tty.c#3 edit .. //depot/projects/e500/sys/net/bpf.c#2 edit .. //depot/projects/e500/sys/netinet/in.c#3 edit .. //depot/projects/e500/sys/powerpc/booke/clock.c#2 edit .. //depot/projects/e500/sys/powerpc/booke/copyinout.c#2 edit .. //depot/projects/e500/sys/powerpc/booke/interrupt.c#2 edit .. //depot/projects/e500/sys/powerpc/booke/locore.S#2 edit .. //depot/projects/e500/sys/powerpc/booke/machdep.c#2 edit .. //depot/projects/e500/sys/powerpc/booke/pmap.c#2 edit .. //depot/projects/e500/sys/powerpc/booke/trap.c#2 edit .. //depot/projects/e500/sys/powerpc/booke/trap_subr.S#2 edit .. //depot/projects/e500/sys/powerpc/booke/uio_machdep.c#2 edit .. //depot/projects/e500/sys/powerpc/booke/vm_machdep.c#2 edit .. //depot/projects/e500/sys/powerpc/mpc85xx/ocpbus.c#2 edit .. //depot/projects/e500/sys/powerpc/mpc85xx/pci_ocp.c#2 edit .. //depot/projects/e500/sys/rpc/rpcclnt.c#2 edit .. //depot/projects/e500/sys/vm/vm_fault.c#5 edit .. //depot/projects/e500/sys/vm/vm_mmap.c#4 edit .. //depot/projects/e500/sys/vm/vm_page.c#5 edit Differences ... ==== //depot/projects/e500/sys/dev/quicc/quicc_core.c#2 (text+ko) ==== @@ -124,11 +124,11 @@ if (sc->sc_ires != NULL) { error = bus_setup_intr(dev, sc->sc_ires, - INTR_TYPE_TTY | INTR_FAST, quicc_bfe_intr, sc, + INTR_TYPE_TTY | INTR_FAST, NULL, quicc_bfe_intr, sc, &sc->sc_icookie); if (error) { error = bus_setup_intr(dev, sc->sc_ires, - INTR_TYPE_TTY | INTR_MPSAFE, quicc_bfe_intr, sc, + INTR_TYPE_TTY | INTR_MPSAFE, NULL, quicc_bfe_intr, sc, &sc->sc_icookie); } else sc->sc_fastintr = 1; @@ -348,7 +348,7 @@ sc->sc_fastintr = 0; bus_teardown_intr(dev, sc->sc_ires, sc->sc_icookie); bus_setup_intr(dev, sc->sc_ires, INTR_TYPE_TTY | INTR_MPSAFE, - quicc_bfe_intr, sc, &sc->sc_icookie); + NULL, quicc_bfe_intr, sc, &sc->sc_icookie); } qd = device_get_ivars(child); ==== //depot/projects/e500/sys/dev/scc/scc_bfe_quicc.c#2 (text+ko) ==== @@ -66,7 +66,7 @@ sc->sc_class = &scc_quicc_class; if (BUS_READ_IVAR(parent, dev, QUICC_IVAR_BRGCLK, &rclk)) rclk = 0; - return (scc_bfe_probe(dev, 0, rclk)); + return (scc_bfe_probe(dev, 0, rclk, 0)); } static device_method_t scc_quicc_methods[] = { ==== //depot/projects/e500/sys/dev/tsec/if_tsec.c#2 (text+ko) ==== @@ -1119,7 +1119,7 @@ return (ENXIO); } error = bus_setup_intr(dev, *ires, INTR_TYPE_NET | INTR_MPSAFE, - handler, sc, ihand); + NULL, handler, sc, ihand); if (error) { device_printf(dev, "failed to set up %s IRQ\n", iname); if (bus_release_resource(dev, SYS_RES_IRQ, *irid, *ires)) ==== //depot/projects/e500/sys/dev/tsec/if_tsecreg.h#2 (text+ko) ==== @@ -349,7 +349,3 @@ #define TSEC_RXBUFFER_ALIGNMENT 64 #define TSEC_DEFAULT_MAX_RX_BUFFER_SIZE 0x0600 #define TSEC_DEFAULT_MIN_RX_BUFFER_SIZE 0x0040 - -#if (TSEC_DEFAULT_RX_BUFFER_SIZE > MCLBYTES) -#error TSEC_DEFAULT_RX_BUFFER_SIZE > MCLBYTES ! -#endif ==== //depot/projects/e500/sys/dev/usb/usb_subr.c#2 (text+ko) ==== @@ -849,6 +849,7 @@ uaa.vendor = UGETW(dd->idVendor); uaa.product = UGETW(dd->idProduct); uaa.release = UGETW(dd->bcdDevice); + uaa.matchlvl = 0; /* First try with device specific drivers. */ DPRINTF(("usbd_probe_and_attach: trying device specific drivers\n")); ==== //depot/projects/e500/sys/kern/kern_sig.c#5 (text+ko) ==== @@ -1174,6 +1174,8 @@ p = td->td_proc; error = 0; sig = 0; + ets.tv_sec = 0; + ets.tv_nsec = 0; SIG_CANTMASK(waitset); PROC_LOCK(p); ==== //depot/projects/e500/sys/kern/tty.c#3 (text+ko) ==== @@ -1720,7 +1720,7 @@ int s, first, error = 0; int has_stime = 0, last_cc = 0; long slp = 0; /* XXX this should be renamed `timo'. */ - struct timeval stime; + struct timeval stime = { 0, 0 }; struct pgrp *pg; td = curthread; ==== //depot/projects/e500/sys/net/bpf.c#2 (text+ko) ==== @@ -614,6 +614,8 @@ return (0); bzero(&dst, sizeof(dst)); + m = NULL; + hlen = 0; error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, ifp->if_mtu, &m, &dst, &hlen, d->bd_wfilter); if (error) ==== //depot/projects/e500/sys/netinet/in.c#3 (text+ko) ==== @@ -622,6 +622,7 @@ int cmp; bzero(&mask, sizeof(mask)); + bzero(&match, sizeof(match)); if (iflr->flags & IFLR_PREFIX) { /* lookup a prefix rather than address. */ in_len2mask(&mask, iflr->prefixlen); @@ -822,9 +823,10 @@ struct in_addr prefix, mask, p, m; int error; - if ((flags & RTF_HOST) != 0) + if ((flags & RTF_HOST) != 0) { prefix = target->ia_dstaddr.sin_addr; - else { + mask.s_addr = 0; + } else { prefix = target->ia_addr.sin_addr; mask = target->ia_sockmask.sin_addr; prefix.s_addr &= mask.s_addr; ==== //depot/projects/e500/sys/powerpc/booke/clock.c#2 (text+ko) ==== @@ -63,6 +63,7 @@ #include #include #include +#include #include #include @@ -81,17 +82,6 @@ static u_long ticks_per_sec = 12500000; static long ticks_per_intr; -static int sysctl_machdep_adjkerntz(SYSCTL_HANDLER_ARGS); - -int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */ -SYSCTL_INT(_machdep, CPU_WALLCLOCK, wall_cmos_clock, - CTLFLAG_RW, &wall_cmos_clock, 0, ""); - -int adjkerntz; /* local offset from GMT in seconds */ -SYSCTL_PROC(_machdep, CPU_ADJKERNTZ, adjkerntz, CTLTYPE_INT|CTLFLAG_RW, - &adjkerntz, 0, sysctl_machdep_adjkerntz, "I", ""); - -#define SECDAY 86400 #define DIFF19041970 2082844800 static int clockinitted = 0; @@ -105,17 +95,6 @@ "decrementer" /* name */ }; -static int -sysctl_machdep_adjkerntz(SYSCTL_HANDLER_ARGS) -{ - int error; - - error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req); - if (!error && req->newptr) - resettodr(); - return (error); -} - void inittodr(time_t base) { @@ -160,7 +139,7 @@ } void -decr_intr(struct clockframe *frame) +decr_intr(struct trapframe *frame) { u_long msr; @@ -182,7 +161,7 @@ msr = mfmsr(); mtmsr(msr | PSL_EE); - hardclock(frame); + hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); } void ==== //depot/projects/e500/sys/powerpc/booke/copyinout.c#2 (text+ko) ==== @@ -269,14 +269,20 @@ return ((int32_t)fuword(addr)); } -intptr_t -casuptr(intptr_t *addr, intptr_t old, intptr_t new) +uint32_t +casuword32(volatile uint32_t *base, uint32_t oldval, uint32_t newval) +{ + return (casuword((volatile u_long *)base, oldval, newval)); +} + +u_long +casuword(volatile u_long *addr, u_long old, u_long new) { struct thread *td; faultbuf env; - intptr_t val; + u_long val; - if (!is_uaddr(addr)) + if (!((vm_offset_t)addr <= VM_MAXUSER_ADDRESS)) return (EFAULT); td = PCPU_GET(curthread); @@ -287,7 +293,7 @@ } val = *addr; - (void) atomic_cmpset_32(addr, old, new); + (void) atomic_cmpset_32((volatile uint32_t *)addr, old, new); td->td_pcb->pcb_onfault = NULL; ==== //depot/projects/e500/sys/powerpc/booke/interrupt.c#2 (text+ko) ==== @@ -58,7 +58,7 @@ #include #include -extern void decr_intr(struct clockframe *); +extern void decr_intr(struct trapframe *); extern void trap(struct trapframe *); void powerpc_decr_interrupt(struct trapframe *); @@ -120,14 +120,11 @@ void powerpc_decr_interrupt(struct trapframe *framep) { - struct clockframe ckframe; struct thread *td; td = PCPU_GET(curthread); atomic_add_int(&td->td_intr_nesting_level, 1); - ckframe.srr0 = framep->srr0; - ckframe.srr1 = framep->srr1; - decr_intr(&ckframe); + decr_intr(framep); atomic_subtract_int(&td->td_intr_nesting_level, 1); } @@ -156,7 +153,7 @@ #ifdef INTR_DEBUG -/* temporary handler for development purposes - DELETEME LATER */ +/* XXX temporary handler for development purposes - DELETEME LATER */ void unserviced_intr(struct trapframe *framep) { ==== //depot/projects/e500/sys/powerpc/booke/locore.S#2 (text+ko) ==== @@ -491,4 +491,4 @@ .space INTRCNT_COUNT * 4 * 2 GLOBAL(eintrcnt) -#include +#include ==== //depot/projects/e500/sys/powerpc/booke/machdep.c#2 (text+ko) ==== @@ -181,6 +181,13 @@ void dump_bootinfo(void); void dump_kenv(void); void e500_init(u_int32_t, u_int32_t, void *); +void setPQL2(int *const size, int *const ways); + +void +setPQL2(int *const size, int *const ways) +{ + return; +} static void cpu_e500_startup(void *dummy) @@ -353,7 +360,7 @@ init_param1(); /* Start initializing proc0 and thread0. */ - proc_linkup(&proc0, &ksegrp0, &thread0); + proc_linkup(&proc0, &thread0); thread0.td_frame = &frame0; /* Set up per-cpu data and store the pointer in SPR general 0. */ @@ -574,6 +581,7 @@ return (0); } +#if 0 /* Build siginfo_t for SA thread. */ void cpu_thread_siginfo(int sig, u_long code, siginfo_t *si) @@ -590,6 +598,7 @@ si->si_code = code; /* XXXKSE fill other fields */ } +#endif int sigreturn(struct thread *td, struct sigreturn_args *uap) @@ -762,7 +771,7 @@ } void -sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) +sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) { struct trapframe *tf; struct sigframe *sfp; @@ -771,10 +780,13 @@ struct thread *td; struct proc *p; int oonstack, rndfsize; + int sig, code; td = curthread; p = td->td_proc; PROC_LOCK_ASSERT(p, MA_OWNED); + sig = ksi->ksi_signo; + code = ksi->ksi_code; psp = p->p_sigacts; mtx_assert(&psp->ps_mtx, MA_OWNED); tf = td->td_frame; @@ -842,12 +854,15 @@ /* * Fill siginfo structure. */ + sf.sf_si = ksi->ksi_info; sf.sf_si.si_signo = sig; - sf.sf_si.si_code = code; - sf.sf_si.si_addr = (void *)tf->srr0; + sf.sf_si.si_addr = (void *) ((tf->exc == EXC_DSI) ? + tf->dear : tf->srr0); } else { /* Old FreeBSD-style arguments. */ tf->fixreg[FIRSTARG+1] = code; + tf->fixreg[FIRSTARG+3] = (tf->exc == EXC_DSI) ? + tf->dear : tf->srr0; } mtx_unlock(&psp->ps_mtx); PROC_UNLOCK(p); @@ -909,3 +924,12 @@ len--; } } + +/* + * XXX what is the better/proper place for this routine? + */ +int +mem_valid(vm_offset_t addr, int len) +{ + return (1); +} ==== //depot/projects/e500/sys/powerpc/booke/pmap.c#2 (text+ko) ==== @@ -130,6 +130,8 @@ /* PMAP */ /**************************************************************************/ +static void pmap_enter_locked(pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t); + /* Kernel pmap */ struct pmap kernel_pmap_store; @@ -1041,17 +1043,12 @@ * Extract the physical page address associated with the given * kernel virtual address. */ -__inline vm_paddr_t +vm_paddr_t pmap_kextract(vm_offset_t va) { return pte_vatopa(kernel_pmap, va); } -void -pmap_init2(void) -{ -} - /* * Initialize the pmap module. * Called by vm_init, to initialize any structures that the pmap @@ -1289,7 +1286,19 @@ * will be wired down. */ void -pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, boolean_t wired) +pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + boolean_t wired) +{ + vm_page_lock_queues(); + PMAP_LOCK(pmap); + pmap_enter_locked(pmap, va, m, prot, wired); + vm_page_unlock_queues(); + PMAP_UNLOCK(pmap); +} + +static void +pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, + boolean_t wired) { pte_t *pte; vm_paddr_t pa; @@ -1300,21 +1309,20 @@ su = (pmap == kernel_pmap); sync = 0; - //debugf("pmap_enter: s (pmap=0x%08x su=%d tid=%d m=0x%08x va=0x%08x " + //debugf("pmap_enter_locked: s (pmap=0x%08x su=%d tid=%d m=0x%08x va=0x%08x " // "pa=0x%08x prot=0x%08x wired=%d)\n", // (u_int32_t)pmap, su, pmap->pm_tid, // (u_int32_t)m, va, pa, prot, wired); if (su) { KASSERT(((va >= virtual_avail) && (va <= VM_MAX_KERNEL_ADDRESS)), - ("pmap_enter: kernel pmap, non kernel va")); + ("pmap_enter_locked: kernel pmap, non kernel va")); } else { KASSERT((va <= VM_MAXUSER_ADDRESS), - ("pmap_enter: user pmap, non user va")); + ("pmap_enter_locked: user pmap, non user va")); } - vm_page_lock_queues(); - PMAP_LOCK(pmap); + PMAP_LOCK_ASSERT(pmap, MA_OWNED); /* * If there is an existing mapping, and the physical address has not @@ -1323,7 +1331,7 @@ if (((pte = pte_find(pmap, va)) != NULL) && (PTE_ISVALID(pte)) && (PTE_PA(pte) == pa)) { - //debugf("pmap_enter: update\n"); + //debugf("pmap_enter_locked: update\n"); /* Wiring change, just update stats. */ if (wired) { @@ -1375,9 +1383,9 @@ * physical address, pte_enter() will delete the old mapping. */ //if ((pte != NULL) && PTE_ISVALID(pte)) - // debugf("pmap_enter: replace\n"); + // debugf("pmap_enter_locked: replace\n"); //else - // debugf("pmap_enter: new\n"); + // debugf("pmap_enter_locked: new\n"); /* Now set up the flags and install the new mapping. */ flags = (PTE_SR | PTE_VALID); @@ -1415,12 +1423,9 @@ sync = 0; } - PMAP_UNLOCK(pmap); - if (sync) { /* Create a temporary mapping. */ pmap = PCPU_GET(curpmap); - PMAP_LOCK(pmap); va = 0; pte = pte_find(pmap, va); @@ -1430,20 +1435,48 @@ pte_enter(pmap, m, va, flags); __syncicache((void *)va, PAGE_SIZE); pte_remove(pmap, va, PTBL_UNHOLD); - PMAP_UNLOCK(pmap); } - vm_page_unlock_queues(); + //debugf("pmap_enter_locked: e\n"); +} + +/* + * Maps a sequence of resident pages belonging to the same object. + * The sequence begins with the given page m_start. This page is + * mapped at the given virtual address start. Each subsequent page is + * mapped at a virtual address that is offset from start by the same + * amount as the page is offset from m_start within the object. The + * last page in the sequence is the page with the largest offset from + * m_start that can be mapped at a virtual address less than the given + * virtual address end. Not every virtual page between start and end + * is mapped; only those for which a resident page exists with the + * corresponding offset from m_start are mapped. + */ +void +pmap_enter_object(pmap_t pmap, vm_offset_t start, vm_offset_t end, vm_page_t m_start, + vm_prot_t prot) +{ + vm_page_t m; + vm_pindex_t diff, psize; - //debugf("pmap_enter: e\n"); + psize = atop(end - start); + m = m_start; + PMAP_LOCK(pmap); + while (m != NULL && (diff = m->pindex - m_start->pindex) < psize) { + pmap_enter_locked(pmap, start + ptoa(diff), m, prot & + (VM_PROT_READ | VM_PROT_EXECUTE), FALSE); + m = TAILQ_NEXT(m, listq); + } + PMAP_UNLOCK(pmap); } -vm_page_t -pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, - vm_page_t mpte) +void +pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot) { //debugf("pmap_enter_quick: s\n"); +#if 0 + /* XXX this is the old way - test if the new approach is really ok..? */ vm_page_busy(m); vm_page_unlock_queues(); VM_OBJECT_UNLOCK(m->object); @@ -1451,9 +1484,14 @@ VM_OBJECT_LOCK(m->object); vm_page_lock_queues(); vm_page_wakeup(m); +#endif + PMAP_LOCK(pmap); + pmap_enter_locked(pmap, va, m, prot & (VM_PROT_READ | VM_PROT_EXECUTE), + FALSE); + PMAP_UNLOCK(pmap); + //debugf("pmap_enter_quick e\n"); - return (NULL); } /* @@ -1668,6 +1706,7 @@ vm_page_unlock_queues(); } +#if 0 /* * Lower the permission for all mappings to a given page. */ @@ -1715,7 +1754,45 @@ } vm_page_flag_clear(m, PG_WRITEABLE); } +#endif + +void +pmap_remove_write(vm_page_t m) +{ + pv_entry_t pv; + pte_t *pte; + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || + (m->flags & PG_WRITEABLE) == 0) + return; + + TAILQ_FOREACH(pv, &m->md.pv_list, pv_link) { + PMAP_LOCK(pv->pv_pmap); + if ((pte = pte_find(pv->pv_pmap, pv->pv_va)) != NULL) { + if (PTE_ISVALID(pte)) { + m = PHYS_TO_VM_PAGE(PTE_PA(pte)); + + /* Handle modified pages. */ + if (PTE_ISMODIFIED(pte)) { + if (pmap_track_modified(pv->pv_pmap, pv->pv_va)) + vm_page_dirty(m); + } + + /* Referenced pages. */ + if (PTE_ISREFERENCED(pte)) + vm_page_flag_set(m, PG_REFERENCED); + + /* Flush mapping from TLB0. */ + pte->flags &= ~(PTE_UW | PTE_SW | PTE_MODIFIED | PTE_REFERENCED); + tlb0_flush_entry(pv->pv_pmap, pv->pv_va); + } + } + PMAP_UNLOCK(pv->pv_pmap); + } + vm_page_flag_clear(m, PG_WRITEABLE); +} + boolean_t pmap_page_executable(vm_page_t m) { @@ -1851,7 +1928,7 @@ * an entire address space. Only works for the current pmap. */ void -pmap_remove_pages(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) +pmap_remove_pages(pmap_t pmap) { } @@ -2883,7 +2960,7 @@ return (EINVAL); /* - * The BAT entry must be cache-inhibited, guarded, and r/w + * The entry must be cache-inhibited, guarded, and r/w * so it can function as an i/o page */ prot = tlb1[i].mas2 & (MAS2_I | MAS2_G); ==== //depot/projects/e500/sys/powerpc/booke/trap.c#2 (text+ko) ==== @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -54,6 +55,8 @@ #endif #include +#include + #include #include #include @@ -136,9 +139,9 @@ struct thread *td; struct proc *p; int sig, type, user; - u_int sticks; + ksiginfo_t ksi; - PCPU_LAZY_INC(cnt.v_trap); + PCPU_INC(cnt.v_trap); td = PCPU_GET(curthread); p = td->td_proc; @@ -146,13 +149,11 @@ type = frame->exc; sig = 0; user = (frame->srr1 & PSL_PR) ? 1 : 0; - sticks = 0; CTR3(KTR_TRAP, "trap: %s type=%s (%s)", p->p_comm, trapname(type), user ? "user" : "kernel"); if (user) { - sticks = td->td_sticks; td->td_frame = frame; if (td->td_ucred != p->p_ucred) cred_update_thread(td); @@ -221,10 +222,15 @@ if (sig != 0) { if (p->p_sysent->sv_transtrap != NULL) sig = (p->p_sysent->sv_transtrap)(sig, type); - trapsignal(td, sig, type); + ksiginfo_init_trap(&ksi); + ksi.ksi_signo = sig; + ksi.ksi_code = type; /* XXX, not POSIX */ + /* ksi.ksi_addr = ? */ + ksi.ksi_trapno = type; + trapsignal(td, &ksi); } - userret(td, frame, sticks); + userret(td, frame); mtx_assert(&Giant, MA_NOTOWNED); } @@ -316,10 +322,12 @@ td = PCPU_GET(curthread); p = td->td_proc; - PCPU_LAZY_INC(cnt.v_syscall); + PCPU_INC(cnt.v_syscall); +#if KSE if (p->p_flag & P_SA) thread_user_enter(td); +#endif code = frame->fixreg[0]; params = (caddr_t)(frame->fixreg + FIRSTARG); @@ -358,7 +366,7 @@ else callp = &p->p_sysent->sv_table[code]; - narg = callp->sy_narg & SYF_ARGMASK; + narg = callp->sy_narg; if (narg > n) { bcopy(params, args, n * sizeof(register_t)); @@ -378,11 +386,8 @@ if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(code, narg, (register_t *)params); #endif - /* - * Try to run the syscall without Giant if the syscall is MP safe. - */ - if ((callp->sy_narg & SYF_MPSAFE) == 0) - mtx_lock(&Giant); + + td->td_syscalls++; if (error == 0) { td->td_retval[0] = 0; @@ -390,7 +395,11 @@ STOPEVENT(p, S_SCE, narg); + PTRACESTOP_SC(p, td, S_PT_SCE); + + AUDIT_SYSCALL_ENTER(code, td); error = (*callp->sy_call)(td, params); + AUDIT_SYSCALL_EXIT(error, td); CTR3(KTR_SYSC, "syscall: p=%s %s ret=%x", p->p_comm, syscallnames[code], td->td_retval[0]); @@ -398,8 +407,7 @@ switch (error) { case 0: - if ((frame->fixreg[0] == SYS___syscall) && - (code != SYS_lseek)) { + if (frame->fixreg[0] == SYS___syscall && SYS_lseek) { /* * 64-bit return, 32-bit syscall. Fixup byte order */ @@ -434,9 +442,18 @@ break; } - - if ((callp->sy_narg & SYF_MPSAFE) == 0) - mtx_unlock(&Giant); + /* + * Check for misbehavior. + */ + WITNESS_WARN(WARN_PANIC, NULL, "System call %s returning", + (code >= 0 && code < SYS_MAXSYSCALL) ? syscallnames[code] : "???"); + KASSERT(td->td_critnest == 0, + ("System call %s returning in a critical section", + (code >= 0 && code < SYS_MAXSYSCALL) ? syscallnames[code] : "???")); + KASSERT(td->td_locks == 0, + ("System call %s returning with %d locks held", + (code >= 0 && code < SYS_MAXSYSCALL) ? syscallnames[code] : "???", + td->td_locks)); #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) @@ -448,10 +465,7 @@ */ STOPEVENT(p, S_SCX, code); - WITNESS_WARN(WARN_PANIC, NULL, "System call %s returning", - (code >= 0 && code < SYS_MAXSYSCALL) ? syscallnames[code] : "???"); - mtx_assert(&sched_lock, MA_NOTOWNED); - mtx_assert(&Giant, MA_NOTOWNED); + PTRACESTOP_SC(p, td, S_PT_SCX); } static int ==== //depot/projects/e500/sys/powerpc/booke/trap_subr.S#2 (text+ko) ==== @@ -783,6 +783,8 @@ addi %r3, %r1, 8 bl CNAME(ast) + .globl CNAME(asttrapexit) /* db_backtrace code sentinel #2 */ +CNAME(asttrapexit): b trapexit /* test ast ret value ? */ 1: FRAME_LEAVE(SPR_SRR0, SPR_SRR1) ==== //depot/projects/e500/sys/powerpc/booke/uio_machdep.c#2 (text+ko) ==== @@ -52,6 +52,7 @@ #include #include +#include /* * Implement uiomove(9) from physical memory using sf_bufs to ==== //depot/projects/e500/sys/powerpc/booke/vm_machdep.c#2 (text+ko) ==== @@ -247,7 +247,7 @@ void cpu_throw(struct thread *old, struct thread *new) { - cpu_switch(old, new); + cpu_switch(old, new, NULL); panic("cpu_throw() didn't"); } ==== //depot/projects/e500/sys/powerpc/mpc85xx/ocpbus.c#2 (text+ko) ==== @@ -48,6 +48,8 @@ #include "pic_if.h" +extern struct bus_space bs_be_tag; + struct ocpbus_softc { struct rman sc_mem; device_t sc_pic; @@ -345,7 +347,7 @@ { const struct ocp_resource *res; struct ocp_devinfo *dinfo; - u_long start, count; + u_long start = 0, count = 0; int error; dinfo = device_get_ivars(child); @@ -531,7 +533,7 @@ struct ocpbus_softc *sc; sc = device_get_softc(dev); - return (openpic_setup_intr(sc->sc_pic, child, res, flags, intr, arg, + return (openpic_setup_intr(sc->sc_pic, child, res, flags, NULL, intr, arg, cookiep)); } ==== //depot/projects/e500/sys/powerpc/mpc85xx/pci_ocp.c#2 (text+ko) ==== @@ -144,6 +144,8 @@ sizeof(struct pci_ocp_softc), }; +devclass_t pcib_devclass; + DRIVER_MODULE(pcib, ocpbus, pci_ocp_driver, pcib_devclass, 0, 0); static uint32_t ==== //depot/projects/e500/sys/rpc/rpcclnt.c#2 (text+ko) ==== @@ -1182,6 +1182,19 @@ cred); /* + * This can happen if the auth_type is neither UNIX or NULL + */ + if (m == NULL) { +#ifdef __OpenBSD__ + pool_put(&rpctask_pool, task); +#else + FREE(task, M_RPC); +#endif + error = EPROTONOSUPPORT; + goto rpcmout; + } + + /* * For stream protocols, insert a Sun RPC Record Mark. */ if (rpc->rc_sotype == SOCK_STREAM) { @@ -1867,6 +1880,7 @@ *tl++ = txdr_unsigned(procid); if ((error = rpcauth_buildheader(rc->rc_auth, cred, &mb, &bpos))) { + m_freem(mreq); RPCDEBUG("rpcauth_buildheader failed %d", error); return NULL; } ==== //depot/projects/e500/sys/vm/vm_fault.c#5 (text+ko) ==== @@ -464,7 +464,7 @@ */ if (TRYPAGER) { int rv; - int reqpage; + int reqpage = 0; int ahead, behind; u_char behavior = vm_map_entry_behavior(fs.entry); ==== //depot/projects/e500/sys/vm/vm_mmap.c#4 (text+ko) ==== @@ -1291,7 +1291,7 @@ vm_ooffset_t foff) { boolean_t fitit; - vm_object_t object; + vm_object_t object = NULL; int rv = KERN_SUCCESS; int docow, error; struct thread *td = curthread; ==== //depot/projects/e500/sys/vm/vm_page.c#5 (text+ko) ==== @@ -1506,7 +1506,7 @@ * * Inputs are required to range within a page. */ -inline int +int vm_page_bits(int base, int size) { int first_bit; From owner-p4-projects@FreeBSD.ORG Sat Aug 11 11:17:18 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8790716A41B; Sat, 11 Aug 2007 11:17:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 50CF416A417 for ; Sat, 11 Aug 2007 11:17:18 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4106013C457 for ; Sat, 11 Aug 2007 11:17:18 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BBHICa006866 for ; Sat, 11 Aug 2007 11:17:18 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BBHHix006857 for perforce@freebsd.org; Sat, 11 Aug 2007 11:17:17 GMT (envelope-from rdivacky@FreeBSD.org) Date: Sat, 11 Aug 2007 11:17:17 GMT Message-Id: <200708111117.l7BBHHix006857@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 125047 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, 11 Aug 2007 11:17:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=125047 Change 125047 by rdivacky@rdivacky_witten on 2007/08/11 11:16:27 Disable futex_lock. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#8 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#8 (text+ko) ==== @@ -83,8 +83,13 @@ #define FUTEX_LOCKED 1 #define FUTEX_UNLOCKED 0 +#if 0 #define FUTEX_SYSTEM_LOCK sx_xlock(&futex_lock) #define FUTEX_SYSTEM_UNLOCK sx_xunlock(&futex_lock) +#else +#define FUTEX_SYSTEM_LOCK +#define FUTEX_SYSTEM_UNLOCK +#endif static struct futex *futex_get(void *, int); static void futex_put(struct futex *); From owner-p4-projects@FreeBSD.ORG Sat Aug 11 11:46:32 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1103C16A41A; Sat, 11 Aug 2007 11:46:32 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D7AF816A418 for ; Sat, 11 Aug 2007 11:46:31 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C4D4C13C46E for ; Sat, 11 Aug 2007 11:46:31 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BBkV7h016991 for ; Sat, 11 Aug 2007 11:46:31 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BBj7uD016549 for perforce@freebsd.org; Sat, 11 Aug 2007 11:45:07 GMT (envelope-from rdivacky@FreeBSD.org) Date: Sat, 11 Aug 2007 11:45:07 GMT Message-Id: <200708111145.l7BBj7uD016549@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 125049 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, 11 Aug 2007 11:46:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=125049 Change 125049 by rdivacky@rdivacky_witten on 2007/08/11 11:43:53 IFC Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/Makefile#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/cpu_switch.S#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/genassym.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/identcpu.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/intr_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/io_apic.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/local_apic.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_machdep.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_watchdog.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/trap.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/tsc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/DEFAULTS#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/NOTES#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/ia32/ia32_syscall.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/kdb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pcpu.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/specialreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/vmparam.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/clock.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_sysvec.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/busdma_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_xscale_c3.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/elf_trampoline.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/genassym.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/identcpu.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/intr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/machdep.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/pmap.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/trap.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/undefined.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/vm_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91rm92reg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/if_ate.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/kb920x_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/ohci_atmelarm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/uart_cpu_at91rm9200usart.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/AVILA#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/AVILA.hints#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/CRB#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/KB920X#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/armreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/cpufunc.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/intr.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/kdb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pcpu.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pmap.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pte.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/vmparam.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_timer.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_wdog.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321var.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/obio.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/crb_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/files.crb#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/files.i81342#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/i81342.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/i81342_mcu.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/i81342_pci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/i81342_space.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/i81342reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/i81342var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/obio.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/obio_space.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/obiovar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/std.crb#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/std.i81342#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/uart_bus_i81342.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i8134x/uart_cpu_i81342.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/avila_ata.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/if_npe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_npe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_npevar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425var.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/uart_bus_ixp425.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/uart_cpu_ixp425.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/Makefile.inc#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/board.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/boot2.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/bwct_board.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/centipad_board.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/kb920x_board.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/Makefile#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/emac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/emac.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/loader.conf#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/Makefile#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libfirewire/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libfirewire/dconsole.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libfirewire/firewire.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libfirewire/fwohci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libfirewire/fwohci.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libfirewire/fwohcireg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/Makefile#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/conf.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/main.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/exec.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/common/main.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/Makefile#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_console.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_net.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/openfirm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/openfirm.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/openfirm_mmu.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/loader/main.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit_internal.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit_record.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/README.quirks#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt_sim.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_all.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_cd.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_da.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_low.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/00READ#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/README#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/TODO#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/cnode.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_fbsd.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_io.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_kernel.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_namecache.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_namecache.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_opstats.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_pioctl.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_psdev.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_psdev.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_subr.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_subr.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_venus.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_venus.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vfsops.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vfsops.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.c#3 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.h#3 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_misc.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_proto.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_syscall.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_syscalls.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_sysent.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/syscalls.master#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_sysvec.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_file.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_misc.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_socket.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_uid16.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/kern_ndis.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/subr_ndis.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/subr_ntoskrnl.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_atomic.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_kobj.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_kstat.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_policy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_vfs.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/atomic.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/dnlc.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/mutex.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/rwlock.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/vfs.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/pecoff/imgact_pecoff.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_fcntl.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.arm#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.ia64#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/NOTES#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files#5 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.amd64#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.arm#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.i386#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.ia64#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.pc98#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.powerpc#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.sparc64#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files.sun4v#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kern.mk#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kern.pre.mk#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kmod.mk#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options.amd64#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options.arm#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options.i386#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options.ia64#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options.pc98#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/altq/altq/altq_cbq.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/altq/altq/altq_hfsc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/altq/altq/altq_priq.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/altq/altq/altq_red.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/altq/altq/altq_subr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/fil.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_auth.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_auth.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_compat.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_frag.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_frag.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_htable.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_htable.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_ipsec_pxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_irc_pxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_log.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_lookup.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_lookup.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_nat.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_nat.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_pool.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_pool.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_pptp_pxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_proxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_proxy.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_raudio_pxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_rcmd_pxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_rpcb_pxy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_scan.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_scan.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_state.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_state.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_sync.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ip_sync.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/ipl.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ipfilter/netinet/mlfk_ipl.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/ngatm/netnatm/api/cc_conn.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/common/atomic/i386/atomic.S#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/common/atomic/ia64/atomic.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/uts/common/sys/asm_linkage.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/opensolaris/uts/common/sys/atomic.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/if_pflog.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/if_pflog.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/if_pfsync.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/if_pfsync.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_if.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_ioctl.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_mtag.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_norm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_osfp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_ruleset.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_subr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pf_table.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/crypto/via/padlock.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aac/aac_cam.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpi_support/acpi_asus.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpi_support/acpi_panasonic.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/Osd/OsdHardware.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi_cpu.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi_dock.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi_hpet.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpiio.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpivar.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/adlink/adlink.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/advansys/advlib.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/advansys/adwcam.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aha/aha.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ahb/ahb.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ahb/ahbreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic/aic.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic/aic_cbus.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic/aic_isa.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic/aic_pccard.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic/aicvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic7xxx/aic79xx_osm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic7xxx/aic7xxx_osm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/amd/amd.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/amr/amr_cam.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/an/if_an.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/arcmsr/arcmsr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/asr/asr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ata/ata-all.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ata/ata-chipset.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ata/ata-disk.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ata/ata-pci.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ata/ata-usb.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/ah_osdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/ah_osdep.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/ath_rate/amrr/amrr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/ath_rate/onoe/onoe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/ath_rate/onoe/onoe.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/ath_rate/sample/sample.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/if_ath.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/if_ath_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/if_athioctl.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/if_athrate.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ath/if_athvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/atkbdc/psm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/awi/awi.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/awi/awivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bce.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bcefw.h#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bcereg.h#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bge/if_bge.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/buslogic/bt.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cardbus/cardbus_cis.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ce/if_ce.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ciss/ciss.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cp/if_cp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ctau/if_ct.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cx/if_cx.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_ael1002.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_common.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_ctl_defs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_firmware_exports.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_mc5.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_mv88e1xxx.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_regs.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_sge_defs.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_t3_cpl.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_t3_hw.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_tcb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_version.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_vsc7323.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_vsc8211.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/cxgb_xgmac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/common/jhash.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_adapter.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_config.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_include.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_ioctl.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_l2t.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_l2t.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_lro.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_main.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_offload.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_offload.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_osdep.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/cxgb_sge.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/sys/mbufq.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/sys/mvec.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/t3b_protocol_sram-1.1.0.bin.gz.uu#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/t3b_tp_eeprom-1.1.0.bin.gz.uu#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/t3fw-3.2.bin.gz.uu#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/t3fw-4.5.0.bin.gz.uu#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cxgb/ulp/toecore/toedev.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dc/if_dcreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dcons/dcons.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dcons/dcons.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dcons/dcons_crom.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dcons/dcons_os.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dcons/dcons_os.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/de/if_de.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dpt/dpt.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dpt/dpt_eisa.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dpt/dpt_isa.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dpt/dpt_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/dpt/dpt_scsi.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/drm/i915_dma.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ed/if_ed_pccard.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/README#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/if_em.c#5 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/en/midway.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/esp/ncr53c9x.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fb/boot_font.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fb/creator.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fb/gallant12x22.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fb/gallant12x22.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fb/gfb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fb/machfb.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fb/splash_bmp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/firewire.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/firewirereg.h#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/fwdev.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/fwdma.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/fwmem.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/fwohci.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/fwohci_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/fwohcivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/if_fwe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/if_fwevar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/if_fwip.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/if_fwipvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/sbp.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/firewire/sbp_targ.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/fxp/if_fxp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/gem/if_gem.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/gem/if_gemreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/gem/if_gemvar.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/hatm/if_hatm_intr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/hptiop/hptiop.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/hptmv/entry.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/hwpmc/hwpmc_mod.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/if_ndis/if_ndis_usb.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/if_ndis/if_ndisvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iir/iir.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iir/iir.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iir/iir_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ipmi/ipmi_isa.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ipw/if_ipw.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/isc_cam.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/isc_sm.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/isc_soc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/isc_subr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/iscsi.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/iscsi.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/iscsi_subr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iscsi/initiator/iscsivar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp_freebsd.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp_freebsd.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp_ioctl.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp_library.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp_pci.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/ispvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iwi/if_iwi.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iwi/if_iwireg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/iwi/if_iwivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/LICENSE#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_82598.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_api.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_api.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_common.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_common.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_osdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_phy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_phy.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ixgbe/ixgbe_type.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/kbdmux/kbdmux.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/lmc/if_lmc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mc146818/mc146818.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mc146818/mc146818var.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/md/md.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfi.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfi_cam.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfivar.h#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/brgphy.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/brgphyreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/ciphy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/ciphyreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/icsphy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/icsphyreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/miidevs#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mii/rlphy.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mly/mly.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/bridge.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmc.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcbr_if.m#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcbrvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcbus_if.m#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcsd.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcvar.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_cnfg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_init.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_ioc.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_log_fc.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_log_sas.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_raid.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_sas.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpilib/mpi_targ.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpt.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpt.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mpt/mpt_cam.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/msk/if_msk.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/eth_z8e.dat.gz.uu#4 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/eth_z8e.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/ethp_z8e.dat.gz.uu#4 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/ethp_z8e.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/if_mxge.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/if_mxge_var.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/mcp_gen_header.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/mxge_eth_z8e.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/mxge_ethp_z8e.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/mxge_lro.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mxge/mxge_mcp.h#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nfe/if_nfe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nfe/if_nfereg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nfe/if_nfevar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nmdm/nmdm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nve/if_nve.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/if_nxge.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/if_nxge.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/build-version.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/version.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xge-debug.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xge-defs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xge-list.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xge-os-pal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xge-os-template.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xge-queue.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-channel.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-config.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-device.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-driver.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-event.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-fifo.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-mgmt.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-mgmtaux.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-mm.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-regs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-ring.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-stats.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal-types.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/include/xgehal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xge-osdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xge-queue.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-channel-fp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-channel.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-config.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-device-fp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-device.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-driver.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-fifo-fp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-fifo.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-mgmt.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-mgmtaux.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-mm.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-ring-fp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-ring.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgehal/xgehal-stats.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/nxge/xgell-version.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ofw/openfirm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ofw/openfirm.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccard/pccard.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccard/pccarddevs#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccard/pccardvarp.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccbb/pccbb.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccbb/pccbb_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccbb/pccbbvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pci/pci.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pdq/pdq_ifsubr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pdq/pdqreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ppbus/vpo.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/puc/puc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/puc/pucdata.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ral/if_ral_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ral/rt2560.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ral/rt2560reg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ral/rt2560var.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ral/rt2661.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ral/rt2661reg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ral/rt2661var.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/random/randomdev_soft.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/random/yarrow.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/re/if_re.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/rp/rp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/rr232x/osm_bsd.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sbni/if_sbni.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sbsh/if_sbsh.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sk/if_sk.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/snp/snp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/clone.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/clone.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/isa/ad1816.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/isa/ess.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/isa/mss.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/isa/sb16.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/isa/sb8.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/als4000.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/atiixp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/au88x0.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/aureal.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/cmi.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/cs4281.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/csapcm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/ds1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/emu10k1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/emu10kx-pcm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/emu10kx.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/envy24.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/envy24.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/envy24ht.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/envy24ht.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/es137x.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/fm801.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/hda/hdac.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/hda/hdac_private.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/ich.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/maestro.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/maestro3.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/neomagic.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/solo.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/spicds.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/spicds.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/t4dwave.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/via8233.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/via82c686.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pci/vibes.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/ac97.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/ac97_patch.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/buffer.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/buffer.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/channel.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/channel.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/dsp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/dsp.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/feeder_fmt.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/feeder_rate.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/feeder_volume.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/mixer.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/mixer.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/sndstat.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/sound.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/pcm/vchan.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/sbus/cs4231.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/unit.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/unit.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/usb/uaudio.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/usb/uaudio_pcm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sound/version.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/speaker/spkr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/streams/streams.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/sym/sym_hipd.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/syscons/scgfbrndr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/syscons/scmouse.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/syscons/syscons.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/trm/trm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/twa/tw_osl_cam.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/txp/if_txp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/dsbr100io.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ehci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ehci_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ehcivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/hid.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_aue.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_axe.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_axereg.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_cdce.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_cdcereg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_cue.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_cuereg.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_kue.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_kuereg.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_rue.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_ruereg.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_rum.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_rumreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_rumvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_udav.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_ural.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_uralreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/if_uralvar.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ohci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ohci_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ohcivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/rio500_usb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/sl811hs.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/slhci_pccard.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uark.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ubsa.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ubser.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ucom.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ucomvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ucycom.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/udbp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ufm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ufoma.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uftdi.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ugen.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uhci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uhci_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uhcivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uhid.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uhub.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uipaq.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ukbd.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ulpt.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/umass.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/umct.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/umodem.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ums.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uplcom.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/urio.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb_mem.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb_mem.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb_port.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb_quirks.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb_quirks.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usb_subr.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usbdevs#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usbdi.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usbdi.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usbdi_util.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/usbdivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uscanner.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uvisor.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/uvscom.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/wds/wd7000.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/wi/if_wavelan_ieee.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/wi/if_wi.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/wi/if_wivar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/README#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/TODO#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/cnode.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_fbsd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_io.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_kernel.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_namecache.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_namecache.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_opstats.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_pioctl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_psdev.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_psdev.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_subr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_subr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_venus.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_venus.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_vfsops.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_vfsops.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_vnops.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/coda/coda_vnops.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/devfs/devfs_int.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/devfs/devfs_vnops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/fifofs/fifo_vnops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/bpb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/denode.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_conv.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_fat.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_vfsops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/msdosfs/msdosfsmount.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/nullfs/null_vfsops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/nullfs/null_vnops.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/nwfs/nwfs_io.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/procfs/procfs_ctl.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/procfs/procfs_ioctl.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/procfs/procfs_status.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/pseudofs/pseudofs_vnops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/smbfs/smbfs_io.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/smbfs/smbfs_node.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/smbfs/smbfs_vnops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/tmpfs/tmpfs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/tmpfs/tmpfs_fifoops.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/tmpfs/tmpfs_fifoops.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/tmpfs/tmpfs_subr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/tmpfs/tmpfs_vfsops.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/tmpfs/tmpfs_vnops.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/tmpfs/tmpfs_vnops.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/udf/udf_vnops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/umapfs/umap.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/umapfs/umap_subr.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/umapfs/umap_vfsops.c#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/umapfs/umap_vnops.c#3 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/unionfs/union.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/unionfs/union_subr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/unionfs/union_vnops.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gdb/gdb_packet.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/cache/g_cache.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/eli/g_eli.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/geom_kern.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/journal/g_journal.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/mirror/g_mirror.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/part/g_part.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/part/g_part.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/part/g_part_apm.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/part/g_part_gpt.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/part/g_part_mbr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/raid3/g_raid3.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/stripe/g_stripe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/ext2fs/ext2_bmap.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/ext2fs/ext2_vfsops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/ext2fs/ext2_vnops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/reiserfs/reiserfs_namei.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/reiserfs/reiserfs_stree.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/FreeBSD/support/spin.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/FreeBSD/xfs_ioctl.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_bit.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_bmap.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_bmap_btree.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_dir.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_ialloc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_inode.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_log.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_log_recover.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_rtalloc.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/gnu/fs/xfs/xfs_vnodeops.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/acpica/acpi_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/conf/DEFAULTS#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/conf/NOTES#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/conf/PAE#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/cpufreq/smist.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/busdma_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/elan-mmcr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/genassym.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/identcpu.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/intr_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/io_apic.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/local_apic.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/machdep.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/mp_clock.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/mp_machdep.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/mp_watchdog.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/pmap.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/swtch.s#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/sys_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/trap.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/tsc.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/vm_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/ibcs2/ibcs2_xenix.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/ibcs2/imgact_coff.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/cpufunc.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/i4b_cause.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/i4b_debug.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/i4b_ioctl.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/i4b_rbch_ioctl.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/i4b_tel_ioctl.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/i4b_trace.h#2 delete .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/kdb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/pc/vesa.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/pcpu.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/specialreg.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/isa/clock.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/isa/npx.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/linux/linux_machdep.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/xbox/xboxfb.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/capi/capi_l4if.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/capi/capi_llif.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/capi/capi_msgs.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/capi/iavc/iavc_card.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/capi/iavc/iavc_isa.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/capi/iavc/iavc_lli.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/capi/iavc/iavc_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/driver/i4b_ctl.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/driver/i4b_ing.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/driver/i4b_ipr.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/driver/i4b_isppp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/driver/i4b_rbch.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/driver/i4b_tel.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/driver/i4b_trace.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/include/i4b_cause.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/include/i4b_debug.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/include/i4b_ioctl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/include/i4b_l1l2.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/include/i4b_rbch_ioctl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/include/i4b_tel_ioctl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/include/i4b_trace.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/i4b_l1dmux.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/i4b_l1lib.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi/i4b_ifpi_isac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi/i4b_ifpi_l1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi/i4b_ifpi_l1fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi2/i4b_ifpi2_isacsx.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi2/i4b_ifpi2_l1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi2/i4b_ifpi2_l1fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpnp/i4b_ifpnp_isac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpnp/i4b_ifpnp_l1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ifpnp/i4b_ifpnp_l1fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ihfc/i4b_ihfc_l1if.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/ihfc/i4b_ihfc_pnp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_asuscom_ipac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_avm_a1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_bchan.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_ctx_s0P.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_diva.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_drn_ngo.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_dynalink.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_elsa_pcc16.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_elsa_qs1i.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_elsa_qs1p.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_hscx.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_isac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_isic.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_isic_isa.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_isic_pnp.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_itk_ix1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_l1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_l1fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_siemens_isurf.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_sws.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_tel_s016.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_tel_s0163.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_tel_s08.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/isic/i4b_usr_sti.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/itjc/i4b_itjc_isac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/itjc/i4b_itjc_l1.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/itjc/i4b_itjc_l1fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/itjc/i4b_itjc_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/iwic/i4b_iwic_bchan.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/iwic/i4b_iwic_dchan.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/iwic/i4b_iwic_fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/iwic/i4b_iwic_l1if.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer1/iwic/i4b_iwic_pci.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_iframe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_l2.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_l2fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_l2timer.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_lme.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_sframe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_tei.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_uframe.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer2/i4b_util.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer3/i4b_l2if.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer3/i4b_l3fsm.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer3/i4b_l3timer.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer3/i4b_l4if.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer3/i4b_q931.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer3/i4b_q932fac.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer4/i4b_i4bdrv.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer4/i4b_l4.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer4/i4b_l4mgmt.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i4b/layer4/i4b_l4timer.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/conf/DEFAULTS#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/conf/GENERIC#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia32/ia32_trap.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/busdma_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/clock.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/db_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/exception.S#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/locore.S#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/machdep.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/mp_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/nexus.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/pmap.c#4 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/sapic.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/syscall.S#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/trap.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/vm_machdep.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/atomic.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/cpufunc.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/ia64_cpu.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/intr.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/kdb.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/md_var.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/pcpu.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/sapicvar.h#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/include/vmparam.h#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/isa/isa_dma.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/Make.tags.inc#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/Makefile#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/init_main.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/init_sysent.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_acct.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_alq.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_clock.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_condvar.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_conf.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_cpu.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_descrip.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_event.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_exec.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_exit.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_fork.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_idle.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_intr.c#3 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_kse.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_kthread.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_ktrace.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_linker.c#2 integrate .. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_lockf.c#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 11 11:47:34 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 206A716A420; Sat, 11 Aug 2007 11:47:34 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBD7316A41A for ; Sat, 11 Aug 2007 11:47:33 +0000 (UTC) (envelope-from raj@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BB6DF13C46E for ; Sat, 11 Aug 2007 11:47:33 +0000 (UTC) (envelope-from raj@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BBlXGg017208 for ; Sat, 11 Aug 2007 11:47:33 GMT (envelope-from raj@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BBlXTL017200 for perforce@freebsd.org; Sat, 11 Aug 2007 11:47:33 GMT (envelope-from raj@freebsd.org) Date: Sat, 11 Aug 2007 11:47:33 GMT Message-Id: <200708111147.l7BBlXTL017200@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to raj@freebsd.org using -f From: Rafal Jaworowski To: Perforce Change Reviews Cc: Subject: PERFORCE change 125050 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, 11 Aug 2007 11:47:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=125050 Change 125050 by raj@raj_booke_intgr on 2007/08/11 11:45:41 Fix GENERIC powerpc kernel build (AIM) Affected files ... .. //depot/projects/e500/sys/powerpc/aim/trap.c#3 edit .. //depot/projects/e500/sys/powerpc/aim/vm_machdep.c#3 edit Differences ... ==== //depot/projects/e500/sys/powerpc/aim/trap.c#3 (text+ko) ==== @@ -149,7 +149,7 @@ u_int ucode; ksiginfo_t ksi; - PCPU_LAZY_INC(cnt.v_trap); + PCPU_INC(cnt.v_trap); td = PCPU_GET(curthread); p = td->td_proc; @@ -349,7 +349,7 @@ td = PCPU_GET(curthread); p = td->td_proc; - PCPU_LAZY_INC(cnt.v_syscall); + PCPU_INC(cnt.v_syscall); #ifdef KSE if (p->p_flag & P_SA) ==== //depot/projects/e500/sys/powerpc/aim/vm_machdep.c#3 (text+ko) ==== @@ -197,7 +197,7 @@ cpu_throw(struct thread *old, struct thread *new) { - cpu_switch(old, new); + cpu_switch(old, new, NULL); panic("cpu_throw() didn't"); } From owner-p4-projects@FreeBSD.ORG Sat Aug 11 12:40:40 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EBE9716A420; Sat, 11 Aug 2007 12:40:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BEC2116A417 for ; Sat, 11 Aug 2007 12:40:39 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AD34A13C457 for ; Sat, 11 Aug 2007 12:40:39 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BCed6F027599 for ; Sat, 11 Aug 2007 12:40:39 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BCedKk027596 for perforce@freebsd.org; Sat, 11 Aug 2007 12:40:39 GMT (envelope-from rdivacky@FreeBSD.org) Date: Sat, 11 Aug 2007 12:40:39 GMT Message-Id: <200708111240.l7BCedKk027596@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 125053 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, 11 Aug 2007 12:40:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=125053 Change 125053 by rdivacky@rdivacky_witten on 2007/08/11 12:40:25 Revert previous commit. The lock is needed. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#9 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#9 (text+ko) ==== @@ -83,13 +83,8 @@ #define FUTEX_LOCKED 1 #define FUTEX_UNLOCKED 0 -#if 0 #define FUTEX_SYSTEM_LOCK sx_xlock(&futex_lock) #define FUTEX_SYSTEM_UNLOCK sx_xunlock(&futex_lock) -#else -#define FUTEX_SYSTEM_LOCK -#define FUTEX_SYSTEM_UNLOCK -#endif static struct futex *futex_get(void *, int); static void futex_put(struct futex *); From owner-p4-projects@FreeBSD.ORG Sat Aug 11 13:28:39 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 939BC16A41B; Sat, 11 Aug 2007 13:28:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5130516A418 for ; Sat, 11 Aug 2007 13:28:39 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3E83413C46A for ; Sat, 11 Aug 2007 13:28:39 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BDSdDx041717 for ; Sat, 11 Aug 2007 13:28:39 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BDScgr041714 for perforce@freebsd.org; Sat, 11 Aug 2007 13:28:38 GMT (envelope-from rdivacky@FreeBSD.org) Date: Sat, 11 Aug 2007 13:28:38 GMT Message-Id: <200708111328.l7BDScgr041714@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 125054 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, 11 Aug 2007 13:28:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=125054 Change 125054 by rdivacky@rdivacky_witten on 2007/08/11 13:27:47 Prepare for using memory-location independant memid instead of plain uaddr. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#10 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#10 (text+ko) ==== @@ -67,7 +67,7 @@ TAILQ_ENTRY(waiting_proc) wp_list; }; struct futex { - void *f_uaddr; + intptr_t f_memid; int f_refcount; LIST_ENTRY(futex) f_list; TAILQ_HEAD(lf_waiting_proc, waiting_proc) f_waiting_proc; @@ -86,11 +86,12 @@ #define FUTEX_SYSTEM_LOCK sx_xlock(&futex_lock) #define FUTEX_SYSTEM_UNLOCK sx_xunlock(&futex_lock) -static struct futex *futex_get(void *, int); +static struct futex *futex_get(intptr_t, int); static void futex_put(struct futex *); static int futex_sleep(struct futex *, struct thread *, unsigned long); static int futex_wake(struct futex *, int, struct futex *, int); static int futex_atomic_op(struct thread *td, int encoded_op, caddr_t uaddr); +static intptr_t futex_hash(void *addr); /* support.s */ int futex_xchgl(int oparg, caddr_t uaddr, int *oldval); @@ -106,11 +107,11 @@ int ret; struct l_timespec timeout = {0, 0}; int error = 0; - struct futex *f; + struct futex *f, *f2; struct futex *newf; int timeout_hz; struct timeval tv = {0, 0}; - struct futex *f2; + intptr_t m, m2; int op_ret; #ifdef DEBUG @@ -167,8 +168,8 @@ (timeout_hz == 0)) timeout_hz = 1; - - f = futex_get(args->uaddr, FUTEX_UNLOCKED); + m = futex_hash(args->uaddr); + f = futex_get(m, FUTEX_UNLOCKED); ret = futex_sleep(f, td, timeout_hz); futex_put(f); @@ -220,7 +221,8 @@ printf("FUTEX_WAKE %d: uaddr = %p, val = %d\n", td->td_proc->p_pid, args->uaddr, args->val); #endif - f = futex_get(args->uaddr, FUTEX_UNLOCKED); + m = futex_hash(args->uaddr); + f = futex_get(m, FUTEX_UNLOCKED); td->td_retval[0] = futex_wake(f, args->val, NULL, 0); futex_put(f); @@ -241,8 +243,10 @@ return EAGAIN; } - f = futex_get(args->uaddr, FUTEX_UNLOCKED); - newf = futex_get(args->uaddr2, FUTEX_UNLOCKED); + m = futex_hash(args->uaddr); + m2 = futex_hash(args->uaddr2); + f = futex_get(m, FUTEX_UNLOCKED); + newf = futex_get(m2, FUTEX_UNLOCKED); td->td_retval[0] = futex_wake(f, args->val, newf, (int)(unsigned long)args->timeout); futex_put(f); @@ -254,8 +258,10 @@ case LINUX_FUTEX_REQUEUE: FUTEX_SYSTEM_LOCK; - f = futex_get(args->uaddr, FUTEX_UNLOCKED); - newf = futex_get(args->uaddr2, FUTEX_UNLOCKED); + m = futex_hash(args->uaddr); + m2 = futex_hash(args->uaddr2); + f = futex_get(m, FUTEX_UNLOCKED); + newf = futex_get(m2, FUTEX_UNLOCKED); td->td_retval[0] = futex_wake(f, args->val, newf, (int)(unsigned long)args->timeout); futex_put(f); @@ -279,8 +285,10 @@ td->td_proc->p_pid, args->uaddr, args->op, args->val, args->uaddr2, args->val3); #endif - f = futex_get(args->uaddr, FUTEX_UNLOCKED); - f2 = futex_get(args->uaddr2, FUTEX_UNLOCKED); + m = futex_hash(args->uaddr); + m2 = futex_hash(args->uaddr2); + f = futex_get(m, FUTEX_UNLOCKED); + f2 = futex_get(m2, FUTEX_UNLOCKED); /* * This function returns positive number as results and @@ -334,14 +342,14 @@ } static struct futex * -futex_get(void *uaddr, int locked) +futex_get(intptr_t memid, int locked) { struct futex *f; if (locked == FUTEX_UNLOCKED) FUTEX_LOCK; LIST_FOREACH(f, &futex_list, f_list) { - if (f->f_uaddr == uaddr) { + if (f->f_memid == memid) { f->f_refcount++; if (locked == FUTEX_UNLOCKED) FUTEX_UNLOCK; @@ -350,7 +358,7 @@ } f = malloc(sizeof(*f), M_LINUX, M_WAITOK); - f->f_uaddr = uaddr; + f->f_memid = memid; f->f_refcount = 1; TAILQ_INIT(&f->f_waiting_proc); LIST_INSERT_HEAD(&futex_list, f, f_list); @@ -438,7 +446,7 @@ } else { if (newf != NULL) { /* futex_put called after tsleep */ - wp->wp_new_futex = futex_get(newf->f_uaddr, + wp->wp_new_futex = futex_get(newf->f_memid, FUTEX_LOCKED); wakeup_one(wp); if (count - n >= n2) @@ -513,3 +521,9 @@ return (-ENOSYS); } } + +static intptr_t +futex_hash(void *addr) +{ + return (intptr_t)addr; +} From owner-p4-projects@FreeBSD.ORG Sat Aug 11 14:20:45 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E2A2816A420; Sat, 11 Aug 2007 14:20:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A77116A417 for ; Sat, 11 Aug 2007 14:20:44 +0000 (UTC) (envelope-from sat@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6497213C45B for ; Sat, 11 Aug 2007 14:20:44 +0000 (UTC) (envelope-from sat@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BEKiqq046056 for ; Sat, 11 Aug 2007 14:20:44 GMT (envelope-from sat@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BEKiN3046053 for perforce@freebsd.org; Sat, 11 Aug 2007 14:20:44 GMT (envelope-from sat@freebsd.org) Date: Sat, 11 Aug 2007 14:20:44 GMT Message-Id: <200708111420.l7BEKiN3046053@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sat@freebsd.org using -f From: Andrew Pantyukhin To: Perforce Change Reviews Cc: Subject: PERFORCE change 125056 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, 11 Aug 2007 14:20:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=125056 Change 125056 by sat@sat_amilo on 2007/08/11 14:19:49 - Add ex:ts=4 line Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#15 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#15 (text+ko) ==== @@ -1,4 +1,5 @@ #-*- mode: makefile; tab-width: 4; -*- +# ex:ts=4 # # bsd.perl.mk - Support for Perl-based ports. # From owner-p4-projects@FreeBSD.ORG Sat Aug 11 14:53:25 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 64C6B16A41B; Sat, 11 Aug 2007 14:53:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3395516A418 for ; Sat, 11 Aug 2007 14:53:25 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1FFB513C459 for ; Sat, 11 Aug 2007 14:53:25 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BErPrt048010 for ; Sat, 11 Aug 2007 14:53:25 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BErONo048007 for perforce@freebsd.org; Sat, 11 Aug 2007 14:53:24 GMT (envelope-from gabor@freebsd.org) Date: Sat, 11 Aug 2007 14:53:24 GMT Message-Id: <200708111453.l7BErONo048007@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 125057 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, 11 Aug 2007 14:53:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=125057 Change 125057 by gabor@gabor_server on 2007/08/11 14:53:15 - Fix ugly bug, which was multiplied by insane copy-pasteing Spotted by: sat Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#16 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#16 (text+ko) ==== @@ -111,17 +111,17 @@ .if ${__suffix} == "+" .if ${USE_PERL5_LEVEL} > ${PERL_LEVEL} USE_PERL5_REASON?= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 -IGNORE= ${USE_PERL5_REASON) +IGNORE= ${USE_PERL5_REASON} .endif .elif ${__suffix} == "" .if ${USE_PERL5_LEVEL} != ${PERL_LEVEL} USE_PERL5_REASON?= You need Perl ${__prefix} exactly -IGNORE= ${USE_PERL5_REASON) +IGNORE= ${USE_PERL5_REASON} .endif .elif ${__suffix} == "-" .if ${USE_PERL5_LEVEL} < ${PERL_LEVEL} USE_PERL5_REASON?= You need Perl ${__prefix} or earlier -IGNORE= ${USE_PERL5_REASON) +IGNORE= ${USE_PERL5_REASON} .endif .else .BEGIN: From owner-p4-projects@FreeBSD.ORG Sat Aug 11 16:18:11 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D4A3516A419; Sat, 11 Aug 2007 16:18:10 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8592516A417 for ; Sat, 11 Aug 2007 16:18:10 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6F2A813C46A for ; Sat, 11 Aug 2007 16:18:10 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BGIAdK056134 for ; Sat, 11 Aug 2007 16:18:10 GMT (envelope-from taleks@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BGIAsO056131 for perforce@freebsd.org; Sat, 11 Aug 2007 16:18:10 GMT (envelope-from taleks@FreeBSD.org) Date: Sat, 11 Aug 2007 16:18:10 GMT Message-Id: <200708111618.l7BGIAsO056131@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to taleks@FreeBSD.org using -f From: Alexey Tarasov To: Perforce Change Reviews Cc: Subject: PERFORCE change 125058 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, 11 Aug 2007 16:18:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=125058 Change 125058 by taleks@taleks_th on 2007/08/11 16:18:03 pxe.c: added getting server name from root-path, instead of ip. httpfs: added simple caching mechanism able to speed up connections at least twice by reducing http-requests count and thus recoonect situations. README: added first part of documentation. Affected files ... .. //depot/projects/soc2007/taleks-pxe_http/Makefile#14 edit .. //depot/projects/soc2007/taleks-pxe_http/README#2 edit .. //depot/projects/soc2007/taleks-pxe_http/httpfs.c#7 edit .. //depot/projects/soc2007/taleks-pxe_http/libi386_mod/pxe.c#4 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_http.c#11 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_http.h#8 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.c#19 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.h#17 edit Differences ... ==== //depot/projects/soc2007/taleks-pxe_http/Makefile#14 (text+ko) ==== @@ -35,6 +35,9 @@ #CFLAGS+= -DPXE_HTTP_DEBUG_HELL # define to get more PXE related code and testing functions -CFLAGS+= -DPXE_MORE +# CFLAGS+= -DPXE_MORE + +# define to get some speed up by bigger requests +CFLAGS+= -DPXE_HTTPFS_CACHING .include ==== //depot/projects/soc2007/taleks-pxe_http/README#2 (text+ko) ==== @@ -1,46 +1,632 @@ -project name: http support for PXE - -Now, it's just test file to test is perforce setuped on my side correctly. 1. Introduction +1.2. Setting up +1.2.1. DHCP configuration +1.2.2. TFTP configuration +1.2.3. Web-server configuration +1.2.4. loader.rc configuratuion 2. Project organisation +2.1. Code modules +2.2. Naming conventions +2.3. Understanding logical structure of code 3. API usage +3.1. Base information +3.2. PXE sockets API overview +3.2.1. PXE API socket details +3.3. Quick Reference to API, available for user code +3.3.1. pxe_arp module +3.3.2. pxe_await module +3.3.3 pxe_buffer module +3.3.4. pxe_connection module +3.3.5. pxe_core module 1. Introduction ---------------- - This project goal is to downlload kernel image via http protocol in preboot -environment. So, main task to do: implement simple tcp/ip stack using UNDI API. + pxe_http library is user space implementation of simplified + TCP/IP4 stack with support of sockets. + +1.1. Requirements +------------------ + + To use pxeboot with extensions from pxe_http library + you need: + * DHCP server + - any DHCP server with support of some options + (see below). In example of configuration files + ISC DHCP v.3.0.5 was used. + * TFTP server + * Web server - I've used Apache 1.3.34 + + +1.2. Setting it up +------------------- + + In most cases, it's the same as for usual pxeboot. Main + difference is in configuration file of DHCP server and in usage of + Web-server. + + +1.2.1. DHCP configuration +------------------------- + + Here is example of configuration: + + # /etc/dhcpd.conf example + # + ddns-update-style none; + server-name "DHCPserver"; + server-identifier 192.168.0.4; + default-lease-time 7200; + max-lease-time 7200; + + # + # significant options for correct working of pxeboot + # + + # your LAN subnet mask + option subnet-mask 255.255.255.0; + + # default gateway to use + option routers 192.168.0.1; + + # name of file to download via TFTP + filename "pxeboot"; + + # name server, used for resolving of domain names + option domain-name-servers 192.168.0.1; + + # ip address of web server + option www-server 192.168.0.2; + + # path, where nessesary files are stored on web server + option root-path "th.lan:/path/to/root"; + + subnet 192.168.0.0 netmask 255.255.255.0 { + next-server 192.168.0.4; + range 192.168.0.10 192.168.0.20; + } + + /* end of example */ + + NOTES: + 1. www-server option is used only if root-path is absent in + DHCP reply. In that case assumed, that /boot directory is + placed in DocumentRoot of web-server. + 2. format of root-path has such format: "server:/path". It's + possible use both IP's and domain names for server. /path is + relative to DocumentRoot of web-server. In example above + files are stored at /usr/local/www/data/path/to/root, + assuming that /usr/local/www/data - is DocumentRoot. + 3. DHCP options are not greater then 255 bytes. So, root-path + must satisfy this requirement. + + +1.2.2. TFTP configuration +-------------------------- + + Same as usually. pxe_http doesn't directly use this protocol. + + +1.2.3. Web-server configuration +-------------------------------- + + Just copy all from "/boot" directory to + /DocumentRoot/path/to/root. + + NOTES: + 1. Need to be sure, that partial downloading and keep-alive + connections are supported by server. e.g. for Apache 1.x, + check this options: + + KeepAlive On + MaxKeepAliveRequests 10 # well, choose best for + # server + KeepAliveTimeout 15 # more then 2 seconds + # is good enough + + 2. loader checks gzipped versions of files first, it's good + idea to compress every needed file. e.g. + beastie.4th.gz + device.hints + frames.4th.gz + loader.4th.gz + loader.conf + loader.help.gz + loader.rc + mfsroot.gz + screen.4th.gz + support.4th.gz + /kernel/kernel.gz + +1.2.4. loader.rc configuratuion +-------------------------------- + + HTTP downloading of kernel is not all need to startup system + correctly. The main question is where will be root filesystem after + booting of kernel. The simpliest way - is to use RAM drive with + installation tools or ready to work system. + Here is example of changes to loader.rc, that instructs loader + to download RAM-drive image (in this example, common mfsroot.gz found + in boot.flp floppy image file) + + + \ Includes additional commands + include /boot/loader.4th + + \ Reads and processes loader.conf variables + start + + \ Tests for password -- executes autoboot first if a password was defined + check-password + + \ Load in the boot menu + include /boot/beastie.4th + + \ pxe_http changes: + echo "loading RAM-drive image" + load -t mfs_root /boot/mfsroot + set vfs.root.mountfrom="ufs:/dev/md0c" + \ + + \ Start the boot menu + beastie-start + /* end of example */ + Of course, it's possible to set any other filesystem to work + as root, e,g, NFS. + 2. Project organisation ------------------------ - Code is divided in modules: - pxe_core - provides calls to UNDI, packet handling and etc. - pxe_icmp - handler of icmp protocol - pxe_mem - memory work routines - pxe_sock - simple sockets - pxe_tcp - handler of tcp protocol +2.1. Code modules +------------------ + + All project code is divided into following modules: + pxe_arp - ARP protocol (3.3.1) + pxe_await - provides functions for awaiting (3.3.2) + pxe_buffer - implements cyclic buffers (3.3.3) + pxe_connection - TCP connection related functions (3.3.4) + pxe_core - provides calls to PXE API (3.3.5) + pxe_dhcp - DHCP client + pxe_dns - DNS client + pxe_filter - incoming packet filters + pxe_http - HTTP related functions + pxe_icmp - ICMP protocol + pxe_ip - IP protocol + pxe_isr - assembler side support for PXE API calling + pxe_mem - memory work routines + pxe_sock - simple sockets + pxe_segment - TCP segments + pxe_tcp - TCP protocol + pxe_udp - UDP protocol + +2.2. Naming conventions +------------------------ + + Most of functions, that may be called directly by user API uses + pxe_ prefix. + Functions related to some module have subprefix of this module, + e.g. pxe_dhcp_query() - function related to DHCP module. + All structures, that are used have typedef equivalent with + naming in upper case. e.g. struct pxe_ipaddr has equivalent PXE_IPADDR. + This is done to have similar to existing pxe.h declarations from libi386. + + +2.3. Understanding logical structure of code +--------------------------------------------- + + Logicallly all modules may be divided to parts. + + Part 1: PXE API related modules (pxe_isr, pxe_core) + Part 2: base protocols related (pxe_ip, pxe_udp) + Part 3: sockets related (pxe_sock) + Part 4: other protocols (pxe_dns, pxe_dhcp) + Part 5: utility (pxe_mem, pxe_buffer) + + Some modules may be used independently, other depend on some + lower level modules. + + In run-time, many calls to sockets functions start packet + recieving or packet sending functions. Sending is more simplier and may + be assumed in many cases just as wrappers to PXE API. But receiving is + a little bit more complicated. Receiving functions start + pxe_core_recv_packets() function in cycle to get packets. + After receiving of packet, it's handling depends on it's type: + ARP, IP or other. ARP packets directly provided to handler + pxe_arp_protocol(), IP packets are provided to registered handler of IP + stack protocol, other packets are ignored. + Registration of handler (except ARP) is performed during + initialisation time of module with usage of pxe_core_register() function, + which register handler for IP stack protocol + number. + So, packet is provided to handler, but it may be fragmented, + thus before processing it must be recieved completely. But in some cases + packet may be not interesting for protocol (unexpected packet, dublicated + or something else) and it's possible to determiny if this packet useful + just by examining of packet header. + If packet is fragmented - it firstly provided to handler with + flag PXE_CORE_FRAG. Handler returns appropriate value if is interested in + whole packet, packet is read completely from input queue of fragments and + provided again with flag PXE_CORE_HANDLE. Otherwise packet is dropped + in core by reading of all it's fragments from incoming queue. + Packet structure provides just buffer with received packet and + size of packet. All pxe_core module send/recieve functions work with + PXE_PACKET structure. + TCP and UDP protocols are checking filters in theirs handlers. + This helps to filter out packets that are not interesting for protocol + (e.g. to port that is not listening) + Socket and filter structures are separated. Socket provides + buffers for incoming and outcoming data. Filters may be used without + sockets, e.g. for TCP connections in TIME_WAIT state. For active + connection filter is used to determiny in which receiving buffer (in + which socket) must be placed incoming data. + 3. API usage ------------- - 3.1 Initialisation. - - pxe_core_init() - main initialisation routine - pxe_icmp_init() - init of icmp, registers icmp protocol in pxe_core - pxe_tcp_init() - init of tcp - - 3.2 Communications +3.1. Base information +----------------------- + + User code must perform initialisation of pxe_core module (which + is performed currently in loader during pxe_enable() call). After this + sockets related functions become available. + + pxe_core_init() performs initialisation of pxe_core module and starts + initialisation routines of other modules. It inits TCP, UDP, ARP and + etc modules, however in most of cases it's possible skip theirs + initialisation if module's functions are unused. + Work is finished by pxe_core_shutdown() function. + + +3.2. PXE sockets API overview +------------------------------- + + PXE sockets API differs from common sockets. It's more simplier + and has some limitations due user space implementations. All socket + related functions are declared in pxe_sock.h header + + Socket is created by pxe_socket() call. After usage socket must + be closed by pxe_close() call. Result of pxe_call() is integer + descriptor associated with socket. After creating socket is unbinded + and not connected. + pxe_sendto(), pxe_connect(), pxe_bind() functions performs + binding and connecting. After successful calling of one of them - socket + is in active state. It's possible to perform reading and sending from/to + socket. Cause socket API may use buffers to optimize packet sending + process, user code must call pxe_flush() functions to be sure, that + data is really processed to sending module. + While receiving need to keep in memory, that if UDP datagram is + not readed completely by one call of pxe_recv() in this implementation + rest of datagram is omited and lost for user code. + All incoming and outcoming data is written to socket buffers, + that have default sizes 16Kb and 4Kb. If buffers are full, next calls + related to writing or reading data will fail. + +3.2.1. PXE API socket details +------------------------------ + + /* Here is simple example of API usage. */ + + int socket = pxe_socket(); + /* if result is not -1, then socket variable contains value, + * assosiated with socket structure. Call differs from common sockets, + * there are no domain, type and protocol parameters. + * Cause domain is always AF_INET now. others are use in pxe_connect() + * call. + */ + + int result = pxe_connect(socket, &hh->addr, 80, PXE_TCP_PROTOCOL); + /* This call creates filter, associates it with socket and establishes + * communication if needed. + * Parameters are socket, remote ip address (PXE_IPADDR)m remote port + * and one of PXE_UDP_PROTOCOL and PXE_TCP_PROTOCOL protocols. + */ + + if (result == -1) { + pxe_close(socket); + /* any socket must be closed, even if it was not really used + * or conencted. pxe_close() call releases used internal + * structures. After this call any other operations with + * 'socket' descriptor are invalid. + */ + return (0); + } + + /* pxe_send() function sends data to socket. As usual, there is no + * guarantee, that whole buffer is transmited. And actually for TCP + * protocol, this call just places data to buffer. User code have no + * knowledge if data is really sent to network. if current segment is + * not fullly used, data may stay in buffer infinitely. + */ + if (len != pxe_send(socket, hh->buf, len)) { + /* failed to send data, at least whole buffer */ + pxe_close(socket); + return (0); + } + + /* if user code need guarantee, that data is sent to remote host, it + * must call pxe_flush(). It forces sending of any data, that must be + * sent. + */ + if (pxe_flush(socket) == -1) { + /* failed to flush socket */ + pxe_close(socket); + return (0); + } + + /* perform reading cycle */ + + while (count < maxsize) { + /* pxe_recv() is similar to recv() call for common sockets, + * but have no flags parameter + */ + result = pxe_recv(socket, &data[count], maxsize - count); + + if (result == -1) { /* failed to recv */ + break; + } + + if (result == 0) /* nothing received yet */ + continue; + + count += result; + } + + pxe_close(socket); + + + /* End of example */ + + +3.3 Quick Reference to API, available for user code +---------------------------------------------------- + +3.3.1 pxe_arp module +--------------------- + + This module is used mainly by internal code while sending IP + packets. + +macro definitions: + +MAX_ARP_ENTRIES - how much may be ARP table in size. If ARP table full and new + MAC must be placed, then one of older entry is replaced by new. Default + number is 4. + +PXE_MAX_ARP_TRY - how much trys will be peformed when sending ARP requests, + before say MAC search failed. Default: 3 + +PXE_TIME_TO_DIE - how much time to wait ARP reply in milliseconds. + Default: 5000 ms. + +PXE_ARP_SNIFF - sometimes it's usefull to get MACs from incoming requests + (this may save time, MAC may be found in table without requesting it by + ARP module itself). But if network is big enough - ARP table will be + updated too often. By default this option is defined. + + +functions: + +void pxe_arp_init() + - inits pxe_arp module. Usually this call is performed from + pxe_core_init() + +const MAC_ADDR *pxe_arp_ip4mac(const PXE_IPADDR *addr) + - returns MAC address for requested IP address + +void pxe_arp_stats() + - shows ARP table. Available if defined PXE_MORE macro. + + +3.3.2 pxe_await module +----------------------- + + Implements awaiting mechanism. Many operations are performed + similar in protocol implementations. Usually, packet is sended and + application awaits for reply. pxe_await() function helps to simplify + code in such case. + It starts await callback function with some flags and counts + timeouts, try count. + + Here is example of awaiting: + + /* we start awaiting, with dns_await() calllback function, maximum 4 + * trys, each try 20 seconds and waiting data static_wait_data. + * Waiting data - is some data associated with current awaiting, it's + * used by await callback function. + */ + if (!pxe_await(dns_await, 4, 20000, &static_wait_data)) + return (NULL); + + /* pxe_await() returns 1 if awaiting was successfull (await function + * returned PXE_AWAIT_COMPLETED flag) + */ + + /* it's an awaiting function. pxe_await() provides current function, + * current try number, time exceeded from start of try, pointer to + * associated wait data. + */ + int + dns_await(uint8_t function, uint16_t try_number, uint32_t timeout, + void *data) + { + /* cast to our type of wait data */ + PXE_DNS_WAIT_DATA *wait_data = (PXE_DNS_WAIT_DATA *)data; + + switch(function) { + + case PXE_AWAIT_STARTTRY: + /* is called at start of each try + * Here must be performed any await initialisation + * (e.g. request packet sending ) + */ + if (!dns_request(wait_data)) { + /* if initialisation of try failed, try more */ + return (PXE_AWAIT_NEXTTRY); + } + /* otherwise return success result of await function */ + break; + + case PXE_AWAIT_FINISHTRY: + /* this function is called at the end of any try (even + * if try was successful). Here cleanup must be + * performed. + */ + if (wait_data->socket != -1) + pxe_close(wait_data->socket); + + wait_data->id += 1; + break; + + case PXE_AWAIT_NEWPACKETS: + /* while waiting this function called if new packets + * were received by pxe_core_recv_packets(). Actually + * it may be not packets we are waiting for, may be + * even not packets with out protocol. Here we must + * check for new usefull for us packets, receive + * new data if any. + */ + size = pxe_recv(wait_data->socket, wait_data->data, + wait_data->size); + + parse_dns_reply(wait_data); + + if (wait_data->result.ip != 0) { + /* return success of awaiting. This may be + * returned from any function + */ + return (PXE_AWAIT_COMPLETED); + } + + /* if await was not completed, continue waiting */ + return (PXE_AWAIT_CONTINUE); + break; + + case PXE_AWAIT_END: + /* this called if await is ended without any result */ + default: + break; + } + + return (PXE_AWAIT_OK); + } + + /* end of example */ + + So, wait data used for providing and receiving data while + awaiting. pxe_await() performs unified working with code, needed for + waiting of incoming packets. + +macro definitions: + +TIME_DELTA_MS - delay between iterations during awaitng. At each iteration + are checked: + * receiving of new packet. If received - awaiting function with + PXE_AWAIT_NEWPACKETS function is called. + * try timeout. if timeout exceeds maximum timeout - awaiting + function with PXE_AWAIT_FINISHTRY and PXE_AWAIT_STARTTRY + flags sequentially are called. + * try count. if try count exceeds maximum - awaiting function + with PXE_AWAIT_ENDED flag is called. This means that await + failed. + + +3.3.3 pxe_buffer module +------------------------ + + This module provides reading and writing of cyclic buffers. + It's not used directly by user code. + +macro definitions: + +PXE_POOL_SLOTS - if defined, then statical allocation of buffers is used. + Otherwise buffers are allocated at run-time from heap with pxe_alloc() + function. Current statical allocation algorithm is simple and square, + there are two big buffers data storages divided in slots (by default 2). + Each slot has size equal to PXE_DEFAULT_RECV_BUFSIZE or + PXE_DEFAULT_SEND_BUFSIZE. Depending on requested size in + pxe_buffer_alloc() function data allocated from one of stoarge and + related slot marked busy. When pxe_buffer_free() called, slot marked + as free. + Default: undefined + +PXE_DEFAULT_RECV_BUFSIZE - size of receiving buffer. Default: 16392 +PXE_DEFAULT_SEND_BUFSIZE - size of sending buffer. Default: 4096 + + +3.3.4 pxe_connection module +---------------------------- + + This module is one of TCP related modules. It implements + connection entity. TCP connection is logical structure, that have + needed by TCP protocol counters and states. + User code is not directly works with this module. + +macro definitions: + +PXE_MAX_TCP_CONNECTIONS - how much simultaneous connections may be. + + +functions: + +void pxe_connection_stats() + - returns connections statistics. Available if defined PXE_MORE macro. + + +3.3.5 pxe_core module +---------------------- + + This module performs lowlevel work with PXE API: initialisation, + receiving/sending of packets, provides information functions. + In most cases, user code doesn't uses this module directly. + +macro definitions: + +PXE_BUFFER_SIZE - size of core buffers, used in PXE API calling, + Default: 4096 +PXE_CORE_STATIC_BUFFERS - if defined, core buffers are allocated statically. + Otherwise they are allocated in heap. Default: defined + +functions: + +int pxe_core_recv_packets() + - recieves all packets waiting in incoming queue of NIC, and calls + appropriate protocols if needed + + +void pxe_core_register(uint8_t ip_proto, pxe_protocol_call proc) + - registers IP stack protocol, associates protocol number and handler. + +const MAC_ADDR *pxe_get_mymac() + - returns MAC of NIC, for which PXE API is used. + +const PXE_IPADDR *pxe_get_ip(uint8_t id) + - returns of stored IP, for provided id. + id may be: + PXE_IP_MY - NIC IP address + PXE_IP_NET - network adrress + PXE_IP_NETMASK - network mask + PXE_IP_NAMESERVER - nameserver to use in name resolving + PXE_IP_GATEWAY - default gateway + PXE_IP_BROADCAST - broadcast address + PXE_IP_SERVER - server from which loading of pxeboot + was performed + PXE_IP_WWW - IP address of http-server + PXE_IP_ROOT - IP adddress of server, where root + file system is situated. Currently + it's synonym for PXE_IP_WWW + +void pxe_set_ip(uint8_t id, const PXE_IPADDR *ip) + - sets value by it's id. - pxe_tcp_socket() - creates tcp socket - pxe_connect() - connects socket to remote host - pxe_send() - send data to socket - pxe_recv() - recieve data from socket - pxe_close() - closes socket +structures and types: - 3.3 Cleanup +typedef int (*pxe_protocol_call)(PXE_PACKET *pack, uint8_t function) + - protocol callback function type - pxe_core_shutdown() - cleanup core structures +time_t pxe_get_secs() + - returns time in seconds. Used in timeout and resend checking. ==== //depot/projects/soc2007/taleks-pxe_http/httpfs.c#7 (text+ko) ==== @@ -41,7 +41,7 @@ static off_t http_seek(struct open_file *f, off_t offset, int where); static int http_stat(struct open_file *f, struct stat *sb); -struct fs_ops http_fsops = { +struct fs_ops http_fsops = { "httpfs", http_open, http_close, @@ -52,6 +52,9 @@ null_readdir }; +/* http server name. It is set if rootpath option was in DHCP reply */ +char servername[256] = {0}; + void handle_cleanup(PXE_HTTP_HANDLE *httpfile) { @@ -64,7 +67,8 @@ if (httpfile->filename != NULL) free(httpfile->filename); - if (httpfile->servername != NULL) + if ( (httpfile->servername != NULL) && + (!servername[0]) ) free(httpfile->servername); if (httpfile->socket != -1) @@ -98,9 +102,12 @@ return (ENOMEM); } - /* TODO: may be implement getting name by PTR resource records */ - httpfile->servername = strdup(inet_ntoa(httpfile->addr.ip)); + if (servername[0]) { + httpfile->servername = servername; + } else { + httpfile->servername = strdup(inet_ntoa(httpfile->addr.ip)); + } if (httpfile->servername == NULL) { handle_cleanup(httpfile); @@ -132,7 +139,8 @@ http_read(struct open_file *f, void *addr, size_t size, size_t *resid) { PXE_HTTP_HANDLE *httpfile = (PXE_HTTP_HANDLE *) f->f_fsdata; - + int result = -1; + if (httpfile == NULL) { printf("http_read(): NULL file descriptor.\n"); return (EINVAL); @@ -156,9 +164,66 @@ size_t to_read = (httpfile->offset + size < httpfile->size) ? size: httpfile->size - (size_t)httpfile->offset; + +#ifndef PXE_HTTPFS_CACHING + result = pxe_get(httpfile, to_read, addr); +#else + void *addr2 = addr; + int part1 = -1; - int result = pxe_get(httpfile, to_read, addr); + if (httpfile->cache_size < to_read) { + + /* read all we have in buffer */ + if (httpfile->cache_size != 0) { + part1 = pxe_recv(httpfile->socket, addr2, + httpfile->cache_size); +#ifdef PXE_HTTP_DEBUG_HELL + printf("http_read(): cache > %ld/%lu/%lu/%u bytes\n", + part1, to_read, size, httpfile->cache_size); +#endif + } + + if (part1 != -1) { + to_read -= part1; + addr2 += part1; + httpfile->cache_size -= part1; + } + + /* update cache */ + if (httpfile->socket != -1) { + PXE_BUFFER *buf = + pxe_sock_recv_buffer(httpfile->socket); + + size_t to_get = httpfile->size - httpfile->offset - + ((part1 != -1) ? part1 : 0 ); + + if (to_get > buf->bufsize / 2) + to_get = buf->bufsize / 2; +#ifdef PXE_HTTP_DEBUG_HELL + printf("http_read(): cache < %lu bytes\n", to_get); +#endif + pxe_get(httpfile, to_get, NULL); + } + } + + /* try reading of cache */ + if (httpfile->cache_size < to_read) { + printf("http_read(): read of cache failed\n"); + return (EINVAL); + } + + result = pxe_recv(httpfile->socket, addr2, to_read); +#ifdef PXE_HTTP_DEBUG_HELL + printf("http_read(): cache > %ld/%lu/%lu/%u bytes\n", + result, to_read, size, httpfile->cache_size); +#endif + if (result != -1) { + httpfile->cache_size -= to_read; + result += (part1 != -1) ? part1 : 0; + } else + result = part1; +#endif if (result == -1) { printf("http_read(): failed to read\n"); return (EINVAL); @@ -244,6 +309,10 @@ errno = EOFFSET; return (-1); } - +#ifdef PXE_HTTPFS_CACHING + /* if we seeked somewhere, cache failed, need clean it */ + pxe_recv(httpfile->socket, httpfile->cache_size, NULL); + httpfile->cache_size = 0; +#endif return (httpfile->offset); } ==== //depot/projects/soc2007/taleks-pxe_http/libi386_mod/pxe.c#4 (text+ko) ==== @@ -39,7 +39,9 @@ #include #include +#ifdef LOADER_NFS_SUPPORT #include +#endif #include #include @@ -59,6 +61,7 @@ extern uint8_t *data_buffer; #endif +extern char servername[256]; static pxenv_t *pxenv_p = NULL; /* PXENV+ */ static pxe_t *pxe_p = NULL; /* !PXE */ @@ -182,7 +185,8 @@ { va_list args; char *devname = NULL; - char temp[FNAME_SIZE]; + char temp[20]; +/* char temp[FNAME_SIZE]; */ int i = 0; va_start(args, f); @@ -231,11 +235,13 @@ pxe_set_ip(PXE_IP_ROOT, &root_addr); } - pxe_memcpy(&rootpath[i], &temp[0], +/* pxe_memcpy(&rootpath[i], &temp[0], strlen(&rootpath[i])+1); + */ + pxe_memcpy(&rootpath[0], &servername[0], i); - pxe_memcpy(&temp[0], &rootpath[0], - strlen(&rootpath[i])+1); + pxe_memcpy(&rootpath[i], &rootpath[0], + strlen(&rootpath[i]) + 1); } struct in_addr tmp_in; @@ -375,7 +381,7 @@ #ifdef PXE_DEBUG printf("pxe_netif_init(): called.\n"); #endif - uint8_t *mac = pxe_get_mymac(); + uint8_t *mac = (uint8_t *)pxe_get_mymac(); int i; for (i = 0; i < 6; ++i) ==== //depot/projects/soc2007/taleks-pxe_http/pxe_http.c#11 (text+ko) ==== @@ -24,17 +24,23 @@ * SUCH DAMAGE. * */ - + #include +#include "pxe_await.h" #include "pxe_core.h" #include "pxe_dns.h" #include "pxe_http.h" #include "pxe_ip.h" #include "pxe_tcp.h" +#ifndef FNAME_SIZE +#define FNAME_SIZE 128 +#endif + /* for testing purposes, used by pxe_fetch() */ static char http_data[PXE_MAX_HTTP_HDRLEN]; +extern char rootpath[FNAME_SIZE]; /* parse_size_t() - converts zero ended string to size_t value * in: @@ -161,7 +167,7 @@ return (result); } -#ifdef PXE_MORE +#ifdef PXE_HTTPFS_CACHING /* http_get_header2() - gets from socket data related to http header * byte by byte. * in: @@ -196,17 +202,20 @@ if (result == 0) /* nothing received yet */ continue; + count += 1; + + if (count < 4) /* wait at least 4 bytes */ + continue; + /* make string ended with '\0' */ - ch = data[count + result]; - data[count + result] = '\0'; + ch = data[count]; + data[count] = '\0'; /* searching end of reply */ - found = strstr(&data[count], "\r\n\r\n"); + found = strstr(&data[count - 4], "\r\n\r\n"); /* restore char replaced by zero */ - data[count + result] = ch; - - count += 1; + data[count] = ch; if (found != NULL) break; @@ -221,6 +230,47 @@ return (result); } +/* http_await() - await callback function for filling buffer + * in: + * function - await function + * try_number - current number of try + * timeout - current timeout from start of try + * data - pointer to PXE_DNS_WAIT_DATA + * out: + * PXE_AWAIT_ constants + */ +int +http_await(uint8_t function, uint16_t try_number, uint32_t timeout, void *data) +{ + PXE_HTTP_WAIT_DATA *wait_data = (PXE_HTTP_WAIT_DATA *)data; + uint16_t space = 0; + + switch(function) { + + case PXE_AWAIT_NEWPACKETS: + space = pxe_buffer_space(wait_data->buf); + + /* check, have we got enough? */ + if (wait_data->start_size - space >= + wait_data->wait_size) + return (PXE_AWAIT_COMPLETED); + + /* check, is socket still working? */ + if (pxe_sock_state(wait_data->socket) != + PXE_SOCKET_ESTABLISHED) + return (PXE_AWAIT_BREAK); + + return (PXE_AWAIT_CONTINUE); + default: + break; + } + + return (PXE_AWAIT_OK); +} + +#endif /* PXE_HTTPFS_CACHING */ + +#ifdef PXE_MORE /* pxe_fetch() - testing function, if size = from = 0, retrieve full file, * otherwise partial * in: @@ -372,7 +422,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 11 17:53:10 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31BE416A421; Sat, 11 Aug 2007 17:53:10 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E244516A41A for ; Sat, 11 Aug 2007 17:53:09 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C8A1A13C45B for ; Sat, 11 Aug 2007 17:53:09 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BHr9ZS075018 for ; Sat, 11 Aug 2007 17:53:09 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BHr9rh075015 for perforce@freebsd.org; Sat, 11 Aug 2007 17:53:09 GMT (envelope-from mharvan@FreeBSD.org) Date: Sat, 11 Aug 2007 17:53:09 GMT Message-Id: <200708111753.l7BHr9rh075015@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 125061 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, 11 Aug 2007 17:53:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=125061 Change 125061 by mharvan@mharvan_bike-planet on 2007/08/11 17:52:45 sys patch for receiving unclaimed UDP traffic on a raw IP port Affected files ... .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/catchall.sys.patch#2 edit .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/Makefile#2 edit .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/README#2 edit .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/ucatchalld.c#3 edit .. //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/usr_include.patch#2 edit Differences ... ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/catchall.sys.patch#2 (text+ko) ==== @@ -1,26 +1,29 @@ -Index: in_proto.c +Index: in.h =================================================================== -RCS file: /home/ncvs/src/sys/netinet/in_proto.c,v -retrieving revision 1.77.2.3 -diff -u -r1.77.2.3 in_proto.c ---- in_proto.c 3 Jan 2006 08:15:32 -0000 1.77.2.3 -+++ in_proto.c 10 Aug 2007 14:22:01 -0000 -@@ -122,7 +122,7 @@ - .pr_flags = PR_ATOMIC|PR_ADDR, - .pr_input = udp_input, - .pr_ctlinput = udp_ctlinput, -- .pr_ctloutput = ip_ctloutput, -+ .pr_ctloutput = udp_ctloutput, - .pr_init = udp_init, - .pr_usrreqs = &udp_usrreqs - }, +RCS file: /home/ncvs/src/sys/netinet/in.h,v +retrieving revision 1.90.2.5 +diff -u -r1.90.2.5 in.h +--- in.h 14 Feb 2007 13:39:01 -0000 1.90.2.5 ++++ in.h 11 Aug 2007 17:43:22 -0000 +@@ -429,6 +429,11 @@ + #define IP_MINTTL 66 /* minimum TTL for packet or drop */ + #define IP_DONTFRAG 67 /* don't fragment packet */ + ++#define IP_UDP_CATCHALL 68 /* a raw socket should receive ++ * UDP traffic unclaimed by other ++ * UDP sockets ++ */ ++ + /* + * Defaults and limits for options + */ Index: tcp.h =================================================================== RCS file: /home/ncvs/src/sys/netinet/tcp.h,v retrieving revision 1.31.2.2 diff -u -r1.31.2.2 tcp.h --- tcp.h 5 Mar 2007 10:21:52 -0000 1.31.2.2 -+++ tcp.h 10 Aug 2007 14:22:01 -0000 ++++ tcp.h 11 Aug 2007 17:43:23 -0000 @@ -160,6 +160,7 @@ #define TCP_NOOPT 0x08 /* don't use TCP options */ #define TCP_MD5SIG 0x10 /* use MD5 digests (RFC2385) */ @@ -35,7 +38,7 @@ retrieving revision 1.281.2.13 diff -u -r1.281.2.13 tcp_input.c --- tcp_input.c 12 Jun 2007 18:53:32 -0000 1.281.2.13 -+++ tcp_input.c 10 Aug 2007 14:22:03 -0000 ++++ tcp_input.c 11 Aug 2007 17:43:25 -0000 @@ -159,10 +159,16 @@ &tcp_reass_overflows, 0, "Global number of TCP Segment Reassembly Queue Overflows"); @@ -104,7 +107,7 @@ retrieving revision 1.228.2.14 diff -u -r1.228.2.14 tcp_subr.c --- tcp_subr.c 30 Dec 2006 17:58:46 -0000 1.228.2.14 -+++ tcp_subr.c 10 Aug 2007 14:22:05 -0000 ++++ tcp_subr.c 11 Aug 2007 17:43:28 -0000 @@ -324,6 +324,10 @@ tcp_rexmit_slop = TCPTV_CPU_VAR; tcp_inflight_rttthresh = TCPTV_INFLIGHT_RTTTHRESH; @@ -122,7 +125,7 @@ retrieving revision 1.124.2.6 diff -u -r1.124.2.6 tcp_usrreq.c --- tcp_usrreq.c 8 Jan 2007 18:10:12 -0000 1.124.2.6 -+++ tcp_usrreq.c 10 Aug 2007 14:22:07 -0000 ++++ tcp_usrreq.c 11 Aug 2007 17:43:29 -0000 @@ -162,6 +162,12 @@ INP_INFO_WUNLOCK(&tcbinfo); return error; @@ -194,7 +197,7 @@ retrieving revision 1.126.2.3 diff -u -r1.126.2.3 tcp_var.h --- tcp_var.h 19 Sep 2006 12:58:40 -0000 1.126.2.3 -+++ tcp_var.h 10 Aug 2007 14:22:08 -0000 ++++ tcp_var.h 11 Aug 2007 17:43:30 -0000 @@ -504,6 +504,7 @@ extern struct inpcbhead tcb; /* head of queue of active tcpcb's */ @@ -203,62 +206,30 @@ extern struct tcpstat tcpstat; /* tcp statistics */ extern int tcp_mssdflt; /* XXX */ extern int tcp_minmss; -Index: udp.h -=================================================================== -RCS file: /home/ncvs/src/sys/netinet/udp.h,v -retrieving revision 1.9 -diff -u -r1.9 udp.h ---- udp.h 7 Jan 2005 01:45:45 -0000 1.9 -+++ udp.h 10 Aug 2007 14:22:08 -0000 -@@ -44,4 +44,9 @@ - u_short uh_sum; /* udp checksum */ - }; - -+/* -+ * User-settable options (used with setsockopt). -+ */ -+#define UDP_CATCHALL 0x1 /* bind to all unused UDP ports */ -+ - #endif Index: udp_usrreq.c =================================================================== RCS file: /home/ncvs/src/sys/netinet/udp_usrreq.c,v retrieving revision 1.175.2.11 diff -u -r1.175.2.11 udp_usrreq.c --- udp_usrreq.c 10 Jun 2007 07:28:29 -0000 1.175.2.11 -+++ udp_usrreq.c 10 Aug 2007 14:22:09 -0000 -@@ -110,6 +110,11 @@ ++++ udp_usrreq.c 11 Aug 2007 17:43:30 -0000 +@@ -110,6 +110,15 @@ SYSCTL_INT(_net_inet_udp, OID_AUTO, strict_mcast_mship, CTLFLAG_RW, &strict_mcast_mship, 0, "Only send multicast to member sockets"); ++static int udp_catchall = 0; ++SYSCTL_INT(_net_inet_raw, OID_AUTO, udp_catchall, CTLFLAG_RW, ++ &udp_catchall, 0, "Raw IP UDP sockets receive unclaimed UDP datagrams"); ++ +static int catchalllim = 5; +SYSCTL_INT(_net_inet_udp, OID_AUTO, catchalllim, CTLFLAG_RW, -+ &catchalllim, 0, -+ "Rate limit on sockets created by the UDP_CATCHALL socket"); ++ &catchalllim, 0, ++ "Rate limit on received UDP datagrams due to udp_catchall"); + struct inpcbhead udb; /* from udp_var.h */ #define udb6 udb /* for KAME src sync over BSD*'s */ struct inpcbinfo udbinfo; -@@ -122,6 +127,8 @@ - SYSCTL_STRUCT(_net_inet_udp, UDPCTL_STATS, stats, CTLFLAG_RW, - &udpstat, udpstat, "UDP statistics (struct udpstat, netinet/udp_var.h)"); - -+struct inpcb *inp_ucatchall; /* binding to all unused UDPP ports */ -+ - static void udp_append(struct inpcb *last, struct ip *ip, struct mbuf *n, - int off, struct sockaddr_in *udp_in); - -@@ -159,6 +166,9 @@ - uma_zone_set_max(udbinfo.ipi_zone, maxsockets); - EVENTHANDLER_REGISTER(maxsockets_change, udp_zone_change, NULL, - EVENTHANDLER_PRI_ANY); -+ printf("UDP_CATCHALL initialization (was 0x%x)\n", -+ (unsigned int)inp_ucatchall); -+ inp_ucatchall = NULL; - } - - void -@@ -177,6 +187,11 @@ +@@ -177,6 +186,11 @@ struct m_tag *fwd_tag; #endif @@ -270,15 +241,14 @@ udpstat.udps_ipackets++; /* -@@ -397,6 +412,29 @@ +@@ -397,6 +411,30 @@ */ inp = in_pcblookup_hash(&udbinfo, ip->ip_src, uh->uh_sport, ip->ip_dst, uh->uh_dport, 1, m->m_pkthdr.rcvif); + + /* catchall socket */ -+ if ((inp == NULL) && (inp_ucatchall != NULL)) { -+ printf("UDP catchall socket used (0x%x)\n", -+ (unsigned int)inp_ucatchall); ++ if (inp == NULL && udp_catchall != 0) { ++ printf("IP UDP catchall active\n"); + char dbuf[4*sizeof "123"], sbuf[4*sizeof "123"]; + strcpy(dbuf, inet_ntoa(ip->ip_dst)); + strcpy(sbuf, inet_ntoa(ip->ip_src)); @@ -287,10 +257,12 @@ + + /* rate limiting */ + if (catchalllim > 0) -+ if (ppsratecheck(&catchallr.lasttime, -+ &catchallr.curpps, catchalllim)) -+ inp = inp_ucatchall; -+ else ++ if (ppsratecheck(&catchallr.lasttime, ++ &catchallr.curpps, catchalllim)) { ++ rip_input(m, off); ++ INP_INFO_RUNLOCK(&udbinfo); ++ return; ++ } else + printf("ppsratecheck limited " + "udp_catchall\n"); + else @@ -300,159 +272,3 @@ if (inp == NULL) { if (log_in_vain) { char buf[4*sizeof "123"]; -@@ -580,6 +618,94 @@ - in_pcbnotifyall(&udbinfo, faddr, inetctlerrmap[cmd], notify); - } - -+int -+udp_ctloutput(so, sopt) -+ struct socket *so; -+ struct sockopt *sopt; -+{ -+ int error, optval; -+ struct inpcb *inp; -+ -+ error = 0; -+ INP_INFO_RLOCK(&udbinfo); -+ inp = sotoinpcb(so); -+ if (inp == NULL) { -+ INP_INFO_RUNLOCK(&udbinfo); -+ return (ECONNRESET); -+ } -+ INP_LOCK(inp); -+ INP_INFO_RUNLOCK(&udbinfo); -+ if (sopt->sopt_level != IPPROTO_UDP) { -+ INP_UNLOCK(inp); -+#ifdef INET6 -+ if (INP_CHECK_SOCKAF(so, AF_INET6)) -+ error = ip6_ctloutput(so, sopt); -+ else -+#endif /* INET6 */ -+ error = ip_ctloutput_pcbinfo(so, sopt, &udbinfo); -+ return (error); -+ } -+ -+ switch (sopt->sopt_dir) { -+ case SOPT_SET: -+ switch (sopt->sopt_name) { -+ case UDP_CATCHALL: -+ printf("UDP_CATCHALL option code\n"); -+ error = sooptcopyin(sopt, &optval, sizeof optval, -+ sizeof optval); -+ if (error) -+ break; -+ -+ printf("UDP_CATCHALL optval: %d\n", optval); -+ if (optval > 0) { /* enable CATCHALL */ -+ printf("request to enable UDP_CATCHALL\n"); -+ if (inp_ucatchall == NULL) { -+ printf("enabled UDP_CATCHALL\n"); -+ inp_ucatchall = inp; -+ } else { -+ printf("UDP_CATCHALL already enabled, " -+ "ignoring setsockopt()\n"); -+ error = EINVAL; -+ } -+ } else {/* disable CATCHALL */ -+ printf("request to disable UDP_CATCHALL\n"); -+ if (inp_ucatchall == inp) { -+ printf("disabled UDP_CATCHALL\n"); -+ inp_ucatchall = NULL; -+ } else { -+ printf("UDP_CATCHALL already disabled" -+ ", ignoring setsockopt()\n"); -+ error = EINVAL; -+ } -+ } -+ break; -+ -+ default: -+ error = ENOPROTOOPT; -+ break; -+ } -+ break; -+ -+ case SOPT_GET: -+ switch (sopt->sopt_name) { -+ case UDP_CATCHALL: -+ if (inp == inp_ucatchall) -+ optval = 1; -+ else -+ optval = 0; -+ error = sooptcopyout(sopt, &optval, sizeof optval); -+ break; -+ default: -+ error = ENOPROTOOPT; -+ break; -+ } -+ break; -+ } -+ INP_UNLOCK(inp); -+ return (error); -+} -+ -+ - static int - udp_pcblist(SYSCTL_HANDLER_ARGS) - { -@@ -1070,6 +1196,12 @@ - INP_LOCK(inp); - in_pcbdetach(inp); - INP_INFO_WUNLOCK(&udbinfo); -+ -+ if (inp == inp_ucatchall) { -+ printf("deactivating UDP_CATCHALL - udp_detach()\n"); -+ inp_ucatchall = NULL; -+ } -+ - return 0; - } - -@@ -1096,6 +1228,12 @@ - INP_UNLOCK(inp); - INP_INFO_WUNLOCK(&udbinfo); - so->so_state &= ~SS_ISCONNECTED; /* XXX */ -+ -+ if (inp == inp_ucatchall) { -+ printf("deactivating UDP_CATCHALL - udp_disconnect()\n"); -+ inp_ucatchall = NULL; -+ } -+ - return 0; - } - -@@ -1124,6 +1262,12 @@ - INP_INFO_RUNLOCK(&udbinfo); - socantsendmore(so); - INP_UNLOCK(inp); -+ -+ if (inp == inp_ucatchall) { -+ printf("deactivating UDP_CATCHALL - udp_shutdown()\n"); -+ inp_ucatchall = NULL; -+ } -+ - return 0; - } - -Index: udp_var.h -=================================================================== -RCS file: /home/ncvs/src/sys/netinet/udp_var.h,v -retrieving revision 1.29 -diff -u -r1.29 udp_var.h ---- udp_var.h 7 Jan 2005 01:45:45 -0000 1.29 -+++ udp_var.h 10 Aug 2007 14:22:09 -0000 -@@ -94,12 +94,14 @@ - extern struct pr_usrreqs udp_usrreqs; - extern struct inpcbhead udb; - extern struct inpcbinfo udbinfo; -+extern struct inpcb *inp_ucatchall; /* binding to all unused UDP ports */ - extern u_long udp_sendspace; - extern u_long udp_recvspace; - extern struct udpstat udpstat; - extern int log_in_vain; - - void udp_ctlinput(int, struct sockaddr *, void *); -+int udp_ctloutput(struct socket *, struct sockopt *); - void udp_init(void); - void udp_input(struct mbuf *, int); - ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/Makefile#2 (text+ko) ==== ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/README#2 (text+ko) ==== @@ -1,7 +1,16 @@ Testing TCP_CATCHALL and the rate limit: for i in `jot 10`; do nc snowwhite 1236 & done +Assuming the TCP catchall daemon is listening on port 1234 on host snowwhite +and no socket is bound to TCP port 1236. + +------------------------------------------------------------------------------- Testing UDP_CATCHALL: - nc -u snowwhite 1236 + for i in `jot 5`; do echo 1234 | nc -u snowwhite 1234 & done + +Assuming the UDP catchall daemon is listening on host snowwhite +and no socket is bound to UDP port 1236. -Assuming the catchall daemon is listening on port 1234 on host snowwhite... +Note that ucatchalld has to be run as root (to be able to create a raw +IP socket) and the net.inet.raw.udp_catchall sysctl variable has to be +set to 1 (or any non-zero value). ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/test_catchall/ucatchalld.c#3 (text+ko) ==== @@ -15,287 +15,57 @@ #include #define SOCKET_TIMEOUT 10 +#define BUFLEN 1500 -static int -udp_connect(char *host, char *port) -{ - struct addrinfo hints, *ai_list, *ai; - int n, fd = 0; - memset(&hints, 0, sizeof(hints)); - //hints.ai_family = AF_UNSPEC; - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_DGRAM; - - n = getaddrinfo(host, port, &hints, &ai_list); - if (n) { - fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(n)); - exit(EXIT_FAILURE); - } - - for (ai = ai_list; ai; ai = ai->ai_next) { - fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); - if (fd < 0) { - continue; - } - if (connect(fd, ai->ai_addr, ai->ai_addrlen) == 0) { - break; - } - close(fd); - } - - freeaddrinfo(ai_list); - - if (ai == NULL) { - fprintf(stderr, "socket or connect: failed for %s port %s\n", - host, port); -// exit(EXIT_FAILURE); - return -1; - } - - return fd; -} - -/* - * Create a named UDP endpoint. First get the list of potential - * network layer addresses and transport layer port numbers. Iterate - * through the returned address list until an attempt to create a UDP - * endpoint is successful (or no other alternative exists). - */ - -static int -udp_open(char *port) +static void +dump(char *data, int len) { - struct addrinfo hints, *ai_list, *ai; - int n, fd = 0, on = 1; - - memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_PASSIVE; - //hints.ai_family = AF_UNSPEC; - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_DGRAM; - - n = getaddrinfo(NULL, port, &hints, &ai_list); - if (n) { - fprintf(stderr, "getaddrinfo failed: %s\n", gai_strerror(n)); - return -1; - } - - for (ai = ai_list; ai; ai = ai->ai_next) { - fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); - if (fd < 0) { - continue; - } - - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); - if (bind(fd, ai->ai_addr, ai->ai_addrlen) == 0) { - break; - } - close(fd); - } - - freeaddrinfo(ai_list); - - if (ai == NULL) { - fprintf(stderr, "bind failed for port %s\n", port); - return -1; - } - - return fd; -} - -/* - * Close a udp socket. This function trivially calls close() on - * POSIX systems, but might be more complicated on other systems. - */ - -static int -udp_close(int fd) -{ - return close(fd); -} - -/* - * Create a listening TCP endpoint. First get the list of potential - * network layter addresses and transport layer port numbers. Iterate - * through the returned address list until an attempt to create a - * listening TCP endpoint is successful (or no other alternative - * exists). - */ - -static int -tcp_listen(char *port) -{ - struct addrinfo hints, *ai_list, *ai; - int n, fd = 0, on = 1; - - memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_PASSIVE; - //hints.ai_family = AF_UNSPEC; - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_STREAM; - - n = getaddrinfo(NULL, port, &hints, &ai_list); - if (n) { - fprintf(stderr, "getaddrinfo failed: %s\n", - gai_strerror(n)); - return -1; - } - - for (ai = ai_list; ai; ai = ai->ai_next) { - fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); - if (fd < 0) { - continue; - } - - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); - if (bind(fd, ai->ai_addr, ai->ai_addrlen) == 0) { - break; - } - close(fd); - } - - freeaddrinfo(ai_list); - - if (ai == NULL) { - fprintf(stderr, "bind failed for port %s\n", - port); - return -1; - } - - if (listen(fd, 1) < 0) { - fprintf(stderr, "listen failed: %s\n", strerror(errno)); - close(fd); - return -1; - } - - return fd; -} - -/* - * Accept a new TCP connection and write a message about who was - * accepted to the system log. - */ - -static int -tcp_accept(int listen) -{ - struct sockaddr_storage ss; - socklen_t ss_len = sizeof(ss); - char host[NI_MAXHOST]; - char serv[NI_MAXSERV]; - int n, fd; - fd = accept(listen, (struct sockaddr *) &ss, &ss_len); - if (fd == -1) { - syslog(LOG_ERR, "accept failed: %s", strerror(errno)); - return -1; - } - - n = getnameinfo((struct sockaddr *) &ss, ss_len, - host, sizeof(host), serv, sizeof(serv), - NI_NUMERICHOST); - if (n) { - fprintf(stderr, "getnameinfo failed: %s", gai_strerror(n)); - } else { - fprintf(stderr, "connection from %s:%s", host, serv); - } - - return fd; + int i; + printf("Dumping %d bytes (as hex)...\n", len); + for (i = 0; i < len; i++) + printf("%02hhx", *(data+i)); + printf("\n"); } -/* - * Establish a connection to a remote TCP server. First get the list - * of potential network layer addresses and transport layer port - * numbers. Iterate through the returned address list until an attempt - * to establish a TCP connection is successful (or no other - * alternative exists). - */ - -static int -tcp_connect(const char *host, const char *port) -{ - struct addrinfo hints, *ai_list, *ai; - int n, fd = 0, serrs = 0, cerrs = 0; - struct timeval tv; - - memset(&hints, 0, sizeof(hints)); - //hints.ai_family = AF_UNSPEC; - hints.ai_family = AF_INET; - hints.ai_socktype = SOCK_STREAM; - - n = getaddrinfo(host, port, &hints, &ai_list); - if (n) { - fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(n)); - return -1; - } - - for (ai = ai_list; ai; ai = ai->ai_next) { - fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); - if (fd < 0) { - serrs++; - continue; - } - - tv.tv_sec = SOCKET_TIMEOUT; - tv.tv_usec = 0; - setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)); - - if (connect(fd, ai->ai_addr, ai->ai_addrlen) == 0) { - break; - } - cerrs++; - close(fd); - } - - freeaddrinfo(ai_list); - - if (ai == NULL) { - if ((serrs == 1 && ! cerrs) || (!serrs && cerrs == 1)) { - fprintf(stderr, "%s: %s\n", - serrs ? "socket" : "connect", strerror(errno)); - } else { - fprintf(stderr, "socket or connect: failed for %s port %s\n", - host, port); - } - return -1; - } - - return fd; -} -/* - * Close a TCP connection. This function trivially calls close() on - * POSIX systems, but might be more complicated on other systems. - */ - -static int -tcp_close(int fd) -{ - return close(fd); -} - - int main() { int fd; + int new_fd; char *msg = "Welcome to catchalld\r\n"; int n, nwrite, nread; int soval = 1; int count = 5; - char buf[1234]; + struct sockaddr_storage from; socklen_t fromlen = sizeof(from); char host[NI_MAXHOST]; char serv[NI_MAXSERV]; - - fd = udp_open("1234"); + + char buf[BUFLEN]; + char *bufp; + int buflen; + + struct ip *iphdr; + struct udphdr *uhdr; + char *payload; + int payload_len; + struct sockaddr_in sa1; + struct sockaddr_in sa2; + + memset(&sa1, 0, sizeof(sa1)); + sa1.sin_addr.s_addr = INADDR_ANY; - if (0 != setsockopt(fd, IPPROTO_UDP, UDP_CATCHALL, &soval, sizeof(soval))) - err(EX_UNAVAILABLE, "setsockopt(UDP_CATCHALL) failed"); + fd = socket(AF_INET, SOCK_RAW, IPPROTO_UDP); + if (fd < 0) + err(EX_OSERR, "Failed to create a raw UDP socket"); while (count > 0) { - nread = recvfrom(fd, buf, sizeof(buf), 0, + /* wait for traffic */ + nread = recvfrom(fd, buf, BUFLEN, 0, (struct sockaddr *) &from, &fromlen); + printf("recvfrom() returned %d\n", nread); if (nread < 0) { warn("recvfrom() returned %d", nread); continue; @@ -310,21 +80,79 @@ fprintf(stderr, "received traffic from client %s:%s\n", host, serv); } - + fprintf(stderr, "traffic on UDP socket \n"); + bufp = buf; + buflen = nread; + dump(bufp, buflen); + + /* parse the UDP header */ + if (nread >= sizeof(struct udphdr)) { + /* IP header */ + iphdr = (struct ip *)bufp; + bufp += 20; + buflen -= 20; + printf("IP hdr: "); + dump((void*)iphdr, 20); + + /* UDP header */ + uhdr = (struct udphdr *)bufp; + bufp += sizeof(*uhdr); + buflen -= sizeof(*uhdr); + printf("UDP hdr: "); + dump((void*)uhdr, sizeof(*uhdr)); + printf("dport: %d, sport: %d\n", + ntohs(uhdr->uh_dport), ntohs(uhdr->uh_sport)); + sa1.sin_port = uhdr->uh_dport; + memcpy(&sa2, &from, sizeof(sa2)); + sa2.sin_port = uhdr->uh_sport; + + /* payload */ + payload = bufp; + payload_len = buflen; + printf("Payload: "); + dump(payload, payload_len); + int i; + for (i=0; i 0); count--; + close(new_fd); } - udp_close(fd); + close(fd); return 0; } ==== //depot/projects/soc2007/mharvan-mtund/sys.patches/catchall_tcp_udp/usr_include.patch#2 (text+ko) ==== @@ -8,16 +8,3 @@ #define TCPI_OPT_TIMESTAMPS 0x01 #define TCPI_OPT_SACK 0x02 ---- /usr/include/netinet/udp.h.orig Fri Aug 10 14:25:23 2007 -+++ /usr/include/netinet/udp.h Fri Aug 10 14:16:35 2007 -@@ -44,4 +44,10 @@ - u_short uh_sum; /* udp checksum */ - }; - -+/* -+ * User-settable options (used with setsockopt). -+ */ -+#define UDP_CATCHALL 0x1 /* bind to all unused UDP ports */ -+ -+ - #endif From owner-p4-projects@FreeBSD.ORG Sat Aug 11 18:45:22 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EA2A816A418; Sat, 11 Aug 2007 18:45:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D97516A420 for ; Sat, 11 Aug 2007 18:45:21 +0000 (UTC) (envelope-from loafier@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8447D13C481 for ; Sat, 11 Aug 2007 18:45:21 +0000 (UTC) (envelope-from loafier@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BIjLF3079262 for ; Sat, 11 Aug 2007 18:45:21 GMT (envelope-from loafier@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BIjGAf079247 for perforce@freebsd.org; Sat, 11 Aug 2007 18:45:16 GMT (envelope-from loafier@FreeBSD.org) Date: Sat, 11 Aug 2007 18:45:16 GMT Message-Id: <200708111845.l7BIjGAf079247@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to loafier@FreeBSD.org using -f From: Christopher Davis To: Perforce Change Reviews Cc: Subject: PERFORCE change 125063 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, 11 Aug 2007 18:45:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=125063 Change 125063 by loafier@chrisdsoc on 2007/08/11 18:44:34 integrate Affected files ... .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/faq/book.sgml#4 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/install/chapter.sgml#4 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/network-servers/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/articles/committers-guide/article.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#4 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/articles/contributors/contrib.develalumni.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/articles/contributors/contrib.staff.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/books/developers-handbook/secure/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/books/handbook/install/chapter.sgml#5 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#5 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/en_US.ISO8859-1/share/sgml/authors.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/books/handbook/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/books/handbook/install/chapter.sgml#4 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/mn_MN.UTF-8/share/sgml/trademarks.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/console-saver2.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/console-saver3.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/disklabel-ed1.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/disklabel-ed2.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/disklabel-fs.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/disklabel-root1.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/disklabel-root2.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/disklabel-root3.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/ed0-conf.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/keymap.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/mouse4.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/pkg-cat.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/images/books/handbook/install/pkg-install.scr#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/pgpkeys/loader.key#1 branch .. //depot/projects/soc2007/loafier_busalloc/doc/share/pgpkeys/mlaier.key#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/pgpkeys/pgpkeys-developers.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/pgpkeys/pgpkeys.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/sgml/man-refs.ent#4 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/share/sgml/trademarks.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/audit/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/basics/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/config/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/disks/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/eresources/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/firewalls/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/geom/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/install/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/jails/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/l10n/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/mac/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/multimedia/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/ports/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/security/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/txtfiles.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/users/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/virtualization/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/share/sgml/authors.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/share/sgml/mailing-lists.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/share/sgml/teams.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_CN.GB2312/share/sgml/trademarks.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_TW.Big5/books/handbook/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_TW.Big5/books/handbook/bibliography/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_TW.Big5/books/handbook/install/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_TW.Big5/books/handbook/txtfiles.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/doc/zh_TW.Big5/books/handbook/x11/chapter.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/CHANGES#4 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/MOVED#5 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.commands.mk#1 branch .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.database.mk#3 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.destdir.mk#1 branch .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.emacs.mk#3 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.gnome.mk#3 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.java.mk#2 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.mail.mk#2 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.openssl.mk#2 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.port.mk#5 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.port.subdir.mk#2 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.python.mk#3 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.qt.mk#3 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Mk/bsd.ruby.mk#3 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/Tools/scripts/security-check.awk#2 integrate .. //depot/projects/soc2007/loafier_busalloc/ports/UPDATING#5 integrate .. //depot/projects/soc2007/loafier_busalloc/src/ObsoleteFiles.inc#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/contrib/less/main.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/contrib/tcpdump/print-bgp.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/etc/namedb/named.conf#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/etc/rc.d/nscd#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/include/arpa/tftp.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/lib/libarchive/test/main.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/lib/libc/net/name6.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/lib/libdisk/open_disk.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/lib/libthr/thread/thr_private.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/lib/libutil/flopen.3#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/lib/libutil/flopen.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/lib/libutil/pidfile.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sbin/fsck_ffs/main.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sbin/ifconfig/ifbridge.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sbin/ifconfig/ifconfig.8#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sbin/ipfw/ipfw.8#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/Makefile#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/crypto.4#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/ddb.4#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/enc.4#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/fast_ipsec.4#2 delete .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/ipsec.4#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/man4.i386/padlock.4#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/ng_ppp.4#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man4/vpo.4#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man9/locking.9#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/man/man9/rtentry.9#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/misc/bsd-family-tree#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/share/misc/committers-doc.dot#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/amd64/amd64/local_apic.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/amd64/amd64/mp_machdep.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/arm/genassym.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/arm/trap.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/at91/at91rm92reg.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/at91/kb920x_machdep.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/at91/ohci_atmelarm.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/arm/conf/KB920X#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/boot/arm/at91/libat91/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/compat/linux/linux_socket.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/conf/NOTES#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/conf/files#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/conf/options#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/adlink/adlink.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/an/if_an.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/arcmsr/arcmsr.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/ath/if_ath.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/cxgb/cxgb_adapter.h#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/cxgb/cxgb_main.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/cxgb/cxgb_offload.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/dc/if_dcreg.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/em/if_em.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/nmdm/nmdm.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/re/if_re.c#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/streams/streams.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/usb/if_axe.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/usb/if_axereg.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/wi/if_wi.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/denode.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_conv.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_denode.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_fat.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_fileno.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_iconv.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_lookup.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_vfsops.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/msdosfs/msdosfs_vnops.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/tmpfs/tmpfs.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/tmpfs/tmpfs_subr.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/tmpfs/tmpfs_vfsops.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/fs/tmpfs/tmpfs_vnops.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/i386/i386/local_apic.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/i386/i386/machdep.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/i386/i386/mp_machdep.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/i386/include/cpufunc.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/ia64/clock.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/ia64/exception.S#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/ia64/interrupt.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/ia64/machdep.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/ia64/mp_machdep.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/ia64/pmap.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/include/ia64_cpu.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/ia64/include/md_var.h#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/kern_descrip.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/kern_lockf.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/kern_poll.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/kern_switch.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/sched_ule.c#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/sys_socket.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/uipc_domain.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/kern/uipc_syscalls.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/net/bpf.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/net/bpfdesc.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/net/bridgestp.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/net/bridgestp.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/net/if_bridge.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/net/if_bridgevar.h#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/net/netisr.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netgraph/netflow/netflow.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netgraph/ng_ppp.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netgraph/ng_ppp.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/in_mcast.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/in_pcb.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/ip_divert.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/ip_dummynet.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/ip_fw2.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/ip_input.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/ip_ipsec.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/ip_ipsec.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/ip_mroute.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/sctp_constants.h#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/sctp_input.c#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/sctp_uio.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/sctp_usrreq.c#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/sctputil.c#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/tcp_subr.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/tcp_syncache.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet/tcp_timer.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet6/ip6_ipsec.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netinet6/ip6_ipsec.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netipsec/xform_ah.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netipsec/xform_esp.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/netipsec/xform_ipcomp.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/nfsclient/bootp_subr.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/nfsclient/krpc_subr.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/nfsclient/nfs_socket.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/nfsclient/nfs_vfsops.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/nfsserver/nfs_srvsock.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/nfsserver/nfs_srvsubs.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/nfsserver/nfs_syscalls.c#3 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/pci/if_xl.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/pci/viapm.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/powerpc/include/interruptvar.h#2 delete .. //depot/projects/soc2007/loafier_busalloc/src/sys/powerpc/include/intr_machdep.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/powerpc/include/trap.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/powerpc/powerpc/interrupt.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/powerpc/powerpc/intr_machdep.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/powerpc/powerpc/trap.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/rpc/rpcclnt.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/security/mac/mac_syscalls.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sparc64/include/iommureg.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sparc64/pci/psycho.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sparc64/pci/psychoreg.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sparc64/sbus/sbus.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sparc64/sbus/sbusreg.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sparc64/sparc64/iommu.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/sys/mutex.h#4 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/vm/device_pager.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/vm/phys_pager.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/vm/swap_pager.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/sys/vm/vm_pager.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/tools/regression/lib/libutil/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/tools/regression/lib/libutil/test-flopen.c#1 branch .. //depot/projects/soc2007/loafier_busalloc/src/tools/regression/lib/libutil/test-flopen.t#1 branch .. //depot/projects/soc2007/loafier_busalloc/src/tools/regression/tmpfs/h_tools.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/tools/regression/tmpfs/t_mount#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/tools/regression/tmpfs/t_rename#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.bin/tar/bsdtar.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_snmp.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_tree.def#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/freebsd-update/freebsd-update.sh#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/iostat/iostat.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/agent.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/cachelib.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/cacheplcs.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/config.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/debug.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/log.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/log.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/mp_rs_query.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/mp_rs_query.h#1 branch .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/mp_ws_query.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/mp_ws_query.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/nscd.8#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/nscd.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/nscd.conf.5#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/nscdcli.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/nscdcli.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/parser.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/protocol.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/query.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/query.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/nscd/singletons.h#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/portsnap/portsnap/portsnap.sh#2 integrate .. //depot/projects/soc2007/loafier_busalloc/src/usr.sbin/rpc.statd/statd.c#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/de/administration.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/de/developers.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/de/security/security.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/de/share/sgml/navibar.l10n.ent#3 integrate .. //depot/projects/soc2007/loafier_busalloc/www/de/share/sgml/news.xml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/de/share/sgml/press.xml#4 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/administration.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/cgi/dosendpr.cgi#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/cgi/man.cgi#4 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/cgi/ports.cgi#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/cgi/query-pr-summary.cgi#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/developers.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/docproj/translations.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/donations/donors.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/internal/machines.sgml#4 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/java/dists/15.sgml#3 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/java/newsflash.sgml#3 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/security/security.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/en/send-pr.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/administration.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/community/mailinglists.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/docs/Makefile#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/docs/man.sgml#2 delete .. //depot/projects/soc2007/loafier_busalloc/www/hu/search/site.map#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/search/web.atoz#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/send-pr.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/share/sgml/navibar.l10n.ent#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/hu/where.sgml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/share/sgml/advisories.xml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/share/sgml/commercial.isp.xml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/share/sgml/news.xml#2 integrate .. //depot/projects/soc2007/loafier_busalloc/www/share/sgml/press.xml#3 integrate Differences ... ==== //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml#2 (text+ko) ==== @@ -1,8 +1,8 @@ @@ -44,7 +44,7 @@ frei verfügbare Betriebssystem ist. Laut Internet Operating System Counter liefen im April 1999 - 31,3 Prozent der weltweit vernetzten Rechner unter Linux, + weltweit 31,3 Prozent der vernetzten Rechner unter Linux, 14,6 Prozent liefen hingegen unter BSD &unix;. Einige der weltweit größten Internetdienstleister, darunter Yahoo!, verwenden BSD. @@ -220,7 +220,7 @@ BSD-Entwickler sind eher an der Verbesserung des Codes - interessiert, als an der Vermarktung desselben. + interessiert als an der Vermarktung desselben. ==== //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/faq/book.sgml#4 (text+ko) ==== @@ -2,10 +2,10 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project -$FreeBSD: doc/de_DE.ISO8859-1/books/faq/book.sgml,v 1.77 2007/07/27 18:04:47 jkois Exp $ -$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.600 2007/07/25 09:04:03 jkois Exp $ +$FreeBSD: doc/de_DE.ISO8859-1/books/faq/book.sgml,v 1.78 2007/08/01 08:05:03 jkois Exp $ +$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.602 2007/07/30 19:56:36 jkois Exp $ - basiert auf: 1.804 + basiert auf: 1.805 --> @@ -33,7 +33,7 @@ - $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.600 2007/07/25 09:04:03 jkois Exp $ + $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.602 2007/07/30 19:56:36 jkois Exp $ 1995 @@ -149,7 +149,8 @@ Wir haben uns die größte Mühe gegeben, diese FAQ so lehrreich wie möglich zu gestalten; falls Sie irgendwelche Vorschläge haben, wie sie verbessert werden - kann, senden Sie diese bitte an den &a.de.translators;. + kann, senden Sie diese bitte an die Mailingliste des + &a.de.translators;. @@ -7205,6 +7206,13 @@ Sie stattdessen die folgende Zeile: options PCVT_CTRL_ALT_DEL + + Alternativ können Sie auch die folgende + sysctl-Variable setzen (die aktiviert wird, ohne dass Sie + Ihr System dazu neu starten oder einen angepassten Kernel + erstellen müssen): + + &prompt.root; sysctl hw.syscons.kbd_reboot=0 ==== //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml#2 (text+ko) ==== @@ -27,8 +27,8 @@ ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - $FreeBSD: doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.7 2006/05/02 19:30:09 jkois Exp $ - $FreeBSDde: de-docproj/books/fdp-primer/sgml-markup/chapter.sgml,v 1.20 2006/04/28 18:39:16 jkois Exp $ + $FreeBSD: doc/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.8 2007/08/01 08:05:03 jkois Exp $ + $FreeBSDde: de-docproj/books/fdp-primer/sgml-markup/chapter.sgml,v 1.21 2007/07/30 19:50:04 jkois Exp $ basiert auf: 1.74 --> @@ -358,11 +358,11 @@ - In einigen Fällen ist es gewollt, daß die Formatierung - eines Textes im Quelldokument erhalten bleibt, so daß der + In einigen Fällen ist es gewollt, dass die Formatierung + eines Textes im Quelldokument erhalten bleibt, damit der Leser diesen genau so sieht, wie ihn der Autor erstellt hat. In der HTML-Spezifikation ist dafür das Element - pre vorgesehen, welches dafür sorgt, daß + pre vorgesehen, welches dafür sorgt, dass Zeilenumbrüche erhalten bleiben und Leerzeichen nicht zusammengefaßt werden. Browser verwenden für den Inhalt des Elementes pre @@ -446,7 +446,7 @@ ]]> - HTML kennt die Möglichkeit, daß sich eine + HTML kennt die Möglichkeit, dass sich eine Zelle mehrere Zeilen und/oder Spalten erstrecken kann. Sollen beispielsweise mehrere Spalten zusammenfassen werden, kann dies mit mit Hilfe des Attributes @@ -560,7 +560,7 @@ Da mittels HTML auch Festlegungen über die Darstellung getroffen werden können, gibt es die - Möglichkeit direkt zu bestimmen, daß bestimmte + Möglichkeit direkt zu bestimmen, dass bestimmte Inhalte fett oder kursiv dargestellt werden sollen. Mit b eingefaßte Inhalte werden fett und mit i eingefaßte kursiv @@ -609,7 +609,7 @@ Darstellungsgröße des eingeschlossenen Textes vergrößert respektive verkleinert werden. HTML erlaubt es zudem, diese Tags zu verschachteln, so - daß auch <big><big>Das ist + dass auch <big><big>Das ist wesentlich größer.</big></big> geschrieben werden kann. @@ -675,7 +675,7 @@ enthält, angelegt. Der Inhalt des Elementes wird selbst zum Link und seine Darstellung erfolgt verschieden vom übrigen Text. Meist geschieht das durch eine andere - Schriftfarbe oder dadurch, daß der Linktext + Schriftfarbe oder dadurch, dass der Linktext unterstrichen wird. @@ -718,7 +718,7 @@ Auf einen Abschnitt eines anderen Dokumentes verweisen - Für dieses Beispiel wird davon ausgegangen, daß der mit + Für dieses Beispiel wird davon ausgegangen, dass der mit absatz1 gekennzeichnete Absatz sich in der HTML-Datei foo.html befindet. @@ -816,7 +816,7 @@ DocBook erlaubt es, Dokumente auf verschiedene Weise zu strukturieren. Innerhalb des FDPs werden hauptsächlich zwei Arten von DocBook-Dokumenten verwendet: Buch und Artikel. - Beide unterscheiden sich darin, daß ein Buch auf der obersten + Beide unterscheiden sich darin, dass ein Buch auf der obersten Ebene durch chapter-Elemente strukturiert wird. Sollte das noch nicht ausreichend sein, können die einzelnen Kapitel eines Buches mit Hilfe des Elementes @@ -1109,7 +1109,7 @@ Absätze (simpara). Normale Absätze und einfache Absätze - unterscheiden sich dadurch, daß innerhalb von + unterscheiden sich dadurch, dass innerhalb von para Blockelemente erlaubt sind, innerhalb von simpara hingegen nicht. Es ist empfehlenswert, para den Vorzug @@ -1259,7 +1259,7 @@ Wenn Sie FreeBSD auf Ihrer Festplatte installieren, - kann es sein, daß Sie Windows nie mehr benutzen wollen. + kann es sein, dass Sie Windows nie mehr benutzen wollen. @@ -1383,14 +1383,14 @@ Gegensatz zu anderen DocBook-Elementen wird der Elementinhalt von programmlisting nicht normalisiert, das heißt, - daß alle Leerzeichen, Tabulatoren und + dass alle Leerzeichen, Tabulatoren und Zeilenumbrüche unverändert übernommen werden. - Aus diesem Grund ist es unter anderem wichtig, daß + Aus diesem Grund ist es unter anderem wichtig, dass sich der öffende Tag in der selben Zeile wie der Anfang des darzustellenden Textes befindet. Gleiches gilt für den schließenden Tag: Er muss sich am Ende der letzten Zeile befinden. Wird das nicht beachtet, kann es - sein, daß unerwartete Leerzeichen und Leerzeilen in + sein, dass unerwartete Leerzeichen und Leerzeilen in der Ausgabe auftauchen. @@ -1755,7 +1755,7 @@ keinen Weg, um diese Darstellung zu ändernAnmerkung des Übersetzers: Hier sollte man sich noch einmal ins - Gedächtnis rufen, daß mittels der DocBook DTD nur + Gedächtnis rufen, dass mittels der DocBook DTD nur Inhalte ausgezeichnet werden und nicht das Layout bestimmt wird.. Handelt es sich bei dem darzustellenden um eine wichtige Information, kann @@ -1780,7 +1780,7 @@ Zitate Um einen Auszug aus einer anderen Quelle zu zitieren - oder kenntlich zu machen, daß eine bestimmte Wendung + oder kenntlich zu machen, dass eine bestimmte Wendung im übertragenen Sinne zu verstehen ist, kann der betreffende Text mit Hilfe des Elementes quote ausgezeichnet werden. Innerhalb von @@ -1791,7 +1791,7 @@ Richtig zitieren - Es sollte immer sichergestellt werden, daß die Suche die Grenzen + Es sollte immer sichergestellt werden, dass die Suche die Grenzen zwischen lokaler und öffentlicher Administration (RFC 1535) einhält.]]> @@ -1821,7 +1821,7 @@ other, press, seq oder simul zugewiesen werden kann. Die letzten beiden Werte deuten an, - daß die genannte Kombination nacheinander oder + dass die genannte Kombination nacheinander oder gleichzeitig gedrückt werden soll. Die Stylesheets fügen zwischen die einzelnen Unterelemente von keycombo +-Zeichen @@ -1842,7 +1842,7 @@ :q! eingegeben werden. -Der Fenstermanager ist so konfiguriert, daß mittels +Der Fenstermanager ist so konfiguriert, dass mittels Alt rechter Maustaste Fenster verschoben werden können.]]> @@ -1860,7 +1860,7 @@ :q! eingegeben werden. - Der Fenstermanager ist so konfiguriert, daß mittels + Der Fenstermanager ist so konfiguriert, dass mittels Alt rechter Maustaste @@ -1873,16 +1873,16 @@ Oft besteht die Notwendigkeit auf bestimmte Anwendungen und Befehle zu verweisen. Der Unterschied zwischen einer - Anwendung und einem Befehl liegt darin, daß eine + Anwendung und einem Befehl liegt darin, dass eine Anwendung ein einzelnes oder eine Gruppe von Programmen ist, mit denen eine bestimmte Aufgabe erledigt werden kann. Ein - Befehl hingegen ist der Name eines Programmes, daß der + Befehl hingegen ist der Name eines Programmes, dass der Benutzer aufrufen kannDer Befehl mozilla startet das Programm mozilla. . - Desweiteren kann es auch vorkommen, daß die + Desweiteren kann es auch vorkommen, dass die von einem Programm (in einem bestimmten Fall) akzeptierten Optionen genannt werden müssen. @@ -2156,7 +2156,7 @@ Bezeichner für Rechner können in Abhängigkeit der Bezeichnungsweise auf verschiedene Art und Weise - ausgezeichnet werden. Gemeinsam ist allen, daß sie + ausgezeichnet werden. Gemeinsam ist allen, dass sie das Element hostid benutzen. Über das Attribut role wird die Art des Bezeichners genauer bestimmt. @@ -2173,7 +2173,7 @@ wcarchive dar. Wenn es gewünscht ist, kann mittels role="hostname" explizit angegeben - werden, daß es sich um einen Rechnernamen + werden, dass es sich um einen Rechnernamen handelt. @@ -2428,7 +2428,7 @@ - Es kommt oft vor, daß der Leser Beispiele, + Es kommt oft vor, dass der Leser Beispiele, Dateinamen oder Kommandozeilen verändern muss. Für einen solchen Anwendungsfall ist das Element replaceable gedacht. Es @@ -2449,7 +2449,7 @@ &prompt.user; man command - Dieses Beispiel zeigt, daß nur der Text mit + Dieses Beispiel zeigt, dass nur der Text mit replaceable umschlossen werden soll, den der Benutzer einzusetzen hat. Sämtlicher anderer Text sollte wie üblich ausgezeichnet werden. @@ -2506,7 +2506,7 @@ Die Verwendung von Grafiken innerhalb der Dokumentation ist momentan noch in einem experimentellen Stadium. Es ist - daher wahrscheinlich, daß sich die hier beschriebenen + daher wahrscheinlich, dass sich die hier beschriebenen Mechanismen noch ändern werden. Für die Verwendung von Grafiken ist es notwendig, @@ -2541,7 +2541,7 @@ Für Bilder, die vorrangig Vektorelemente wie Netzwerkdiagramme, Zeitlinien und ähnliches beinhalten, sollte Encapsulated Postscript als Format gewählt - werden. Wichtig ist es in diesem Fall, daß die + werden. Wichtig ist es in diesem Fall, dass die Grafikdatei die Endung .eps hat. Für Bitmapgrafiken, wie zum Beispiel Bildschirmfotos, steht das Portable Network Grafic Format zur @@ -2563,7 +2563,7 @@ übernommen werden. - Es ist absehbar, daß das Dokumentationsprojekt + Es ist absehbar, dass das Dokumentationsprojekt in Zukunft das Scalable Vector Graphic-Format (SVG) als Standardformat für Vektorgrafiken übernehmen wird. Zum jetzigen Zeitpunkt ist dieser Wechsel noch nicht @@ -2658,10 +2658,10 @@ Textzeichenkünste unter Beweis zu stellen. - Wichtig ist, daß die erste und die letzte + Wichtig ist, dass die erste und die letzte Zeile sich gleichauf mit dem öffenden und dem schließenden Tag befindet. Dadurch wird - sichergestellt, daß keine unnötigen + sichergestellt, dass keine unnötigen Leerzeichen in die Ausgabe aufgenommen werden. @@ -2726,7 +2726,7 @@ kapitel3/kapitel.sgml). Enthalten die Kapitel Grafiken, empfiehlt es sich, diese in den gleichen Verzeichnisses abzulegen, wie die Kapitel selbst. In diesem - Falle gilt es jedoch zu beachten, daß die Pfade der + Falle gilt es jedoch zu beachten, dass die Pfade der Grafikdateien in der Variable IMAGES und in den imagedata-Elementen immer auch den Verzeichnisnamen mitenthalten. @@ -2813,12 +2813,12 @@ Als Wert für das Attribut id sollte immer ein selbsterklärender Bezeichner gewählt - werden. Zudem ist es notwendig, daß dieser Bezeichner + werden. Zudem ist es notwendig, dass dieser Bezeichner innerhalb des Dokumentes eindeutig ist. Im obigen Beispiel wurde der Bezeichner für das Unterkapitel gebildet, indem der Bezeichner des übergeordneten Kapitels um den Titel des Unterkapitels erweitert wurde. Diese - Vorgehensweise hilft sicherzustellen, daß Bezeichner + Vorgehensweise hilft sicherzustellen, dass Bezeichner eindeutig sind und bleiben. Manchmal soll jedoch nicht auf den Anfang eines Kapitels @@ -2860,9 +2860,9 @@ - Für dieses Beispiel wird davon ausgegangen, daß sich + Für dieses Beispiel wird davon ausgegangen, dass sich folgendes Textfragment irgendwo innerhalb eines Dokumentes - auftaucht, daß das vorherige + auftaucht, dass das vorherige id-Beispiel enthält. @@ -2873,8 +2873,8 @@ gefunden werden.]]> Der Verweistext wird automatisch von den Stylesheets - erzeugt und so hervorgehoben, daß ersichtlich ist, - daß es sich bei dem Text um einen Verweis + erzeugt und so hervorgehoben, dass ersichtlich ist, + dass es sich bei dem Text um einen Verweis handelt.
@@ -2893,7 +2893,7 @@ übernommen. - Das bedeutet, daß es nicht + Das bedeutet, dass es nicht möglich ist, mit der Hilfe von xref einen Querverweis zu einer mit anchor gekennzeichneten Stelle @@ -2914,7 +2914,7 @@ <sgmltag>link</sgmltag> beutzen - Für dieses Beispiel wird davon ausgegangen, daß + Für dieses Beispiel wird davon ausgegangen, dass es sich in dem Dokument befindet, das auch das id-Beispiel enthält. ==== //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/Makefile#2 (text+ko) ==== @@ -1,7 +1,7 @@ # -# $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/Makefile,v 1.42 2007/07/10 18:38:25 jkois Exp $ -# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.57 2007/07/10 07:12:14 jkois Exp $ -# basiert auf: 1.106 +# $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/Makefile,v 1.43 2007/08/01 08:05:03 jkois Exp $ +# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.58 2007/07/29 18:12:00 jkois Exp $ +# basiert auf: 1.107 # # Build the FreeBSD Handbook in its German translation. # @@ -29,6 +29,7 @@ IMAGES_EN+= install/adduser1.scr IMAGES_EN+= install/adduser2.scr IMAGES_EN+= install/adduser3.scr +IMAGES_EN+= install/boot-loader-menu.scr IMAGES_EN+= install/boot-mgr.scr IMAGES_EN+= install/config-country.scr IMAGES_EN+= install/console-saver1.scr ==== //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#2 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.36 2007/05/03 16:52:57 jkois Exp $ - $FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.164 2007/05/02 19:05:00 jkois Exp $ - basiert auf: 1.396 + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.37 2007/08/01 08:05:04 jkois Exp $ + $FreeBSDde: de-docproj/books/handbook/advanced-networking/chapter.sgml,v 1.165 2007/08/01 07:30:25 jkois Exp $ + basiert auf: 1.397 --> ==== //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/install/chapter.sgml#4 (text+ko) ==== @@ -1,9 +1,9 @@ @@ -754,14 +754,15 @@ sich verschiedene Abbilder; welches Sie benutzen, hängt von der zu installierenden &os;-Version und in einigen Fällen vom Zielrechner ab. In den - meisten Fällen werden Sie drei Disketten benötigen: + meisten Fällen werden Sie vier Disketten benötigen: boot.flp, - kern1.flp, sowie - kern2.flp. + kern1.flp, + kern2.flp sowie + kern3.flp. Lesen Sie bitte die Datei README.TXT im Verzeichnis floppies/, - sie enthält aktuelle Informationen über die - Abbilder. + sie enthält aktuelle Informationen zu den + Abbildern. Wenn Sie die Abbilder aus dem Internet herunterladen, @@ -966,31 +967,32 @@ starten, sehen Sie die folgenden Meldungen (Versionsangaben entfernt): - Verifying DMI Pool Data ........ -Boot from ATAPI CD-ROM : - 1. FD 2.88MB System Type-(00) -Uncompressing ... done + Booting from CD-Rom... +CD Loader 1.2 + +Building the boot loader arguments +Looking up /BOOT/LOADER... Found +Relocating the loader and the BTX +Starting the BTX loader BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard -BIOS drive A: is disk0 -BIOS drive B: is disk1 -BIOS drive C: is disk2 -BIOS drive D: is disk3 +BIOS CD is cd0 +BIOS drive C: is disk0 +BIOS drive D: is disk1 BIOS 639kB/261120kB available memory -FreeBSD/i386 bootstrap loader, Revision 0.8 +FreeBSD/i386 bootstrap loader, Revision 1.1 -/kernel text=0x277391 data=0x3268c+0x332a8 | +Loading /boot/defaults/loader.conf +/boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d] +\ -| -Hit [Enter] to boot immediately, or any other key for command prompt. -Booting [kernel] in 9 seconds... _ - Wenn Sie mit Startdisketten hochfahren, sehen Sie folgende Meldungen (Versionsangaben entfernt): - Verifying DMI Pool Data ........ + Booting from Floppy... +Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard @@ -998,8 +1000,9 @@ BIOS drive C: is disk1 BIOS 639kB/261120kB available memory -FreeBSD/i386 bootstrap loader, Revision 0.8 +FreeBSD/i386 bootstrap loader, Revision 1.1 +Loading /boot/defaults/loader.conf /kernel text=0x277391 data=0x3268c+0x332a8 | Insert disk labelled "Kernel floppy 1" and press any key... @@ -1016,11 +1019,18 @@ Unabhängig davon, ob Sie von Disketten - oder von CD-ROM gestartet haben, wird folgende - Meldung erscheinen: + oder von CD-ROM gestartet haben, erscheint danach das + &os; Bootloader-Menü: + +
+ &os; Boot Loader Menu - Hit [Enter] to boot immediately, or any other key for command prompt. -Booting [kernel] in 9 seconds... _ + + + + + +
Warten Sie entweder zehn Sekunden oder drücken Sie Enter. @@ -2549,7 +2559,7 @@ [ OK ] - [ Press enter to continue ] + [ Press enter or space ] Drücken Sie die Taste Enter, um die Nacharbeiten durchzuführen. ==== //depot/projects/soc2007/loafier_busalloc/doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml#2 (text+ko) ==== @@ -2,9 +2,9 @@ The FreeBSD Documentation Project The FreeBSD German Documentation Project - $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml,v 1.34 2007/03/07 18:28:53 jkois Exp $ - $FreeBSDde: de-docproj/books/handbook/multimedia/chapter.sgml,v 1.85 2007/03/07 16:56:30 jkois Exp $ - basiert auf: 1.126 + $FreeBSD: doc/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml,v 1.35 2007/08/01 08:05:04 jkois Exp $ + $FreeBSDde: de-docproj/books/handbook/multimedia/chapter.sgml,v 1.86 2007/08/01 07:53:33 jkois Exp $ + basiert auf: 1.127 --> @@ -59,8 +59,8 @@ - Wie Sie mit Beispielanwendungen die - Funktion einer Soundkarte prüfen. + Wie Sie die Funktion einer Soundkarte testen + können. @@ -218,14 +218,14 @@ Soundkarten in der Kernelkonfiguration einrichten - Zuerst müssen Sie den allgemeinen Audio-Treiber - &man.sound.4; in die Kernelkonfiguration aufnehmen. + Zuerst müssen Sie &man.sound.4;, den Treiber für + das Audio-Framework in die Kernelkonfiguration aufnehmen. Fügen Sie dazu die folgende Zeile in die Kernelkonfigurationsdatei ein: device sound - Als nächstes müssen Sie den richtigen + Als Nächstes müssen Sie den richtigen Treiber in die Kernelkonfiguration einfügen. Den Treiber entnehmen Sie bitte der Liste der unterstützen Soundkarten aus den @@ -239,19 +239,22 @@ Die richtige Syntax für die Zeile lesen Sie bitte in der Hilfeseite des entsprechenden - Treibers nach. Die Syntax finden Sie ebenfalls + Treibers nach. Die korrekte Syntax für alle + unterstützten Treiber finden Sie außerdem in der Datei /usr/src/sys/conf/NOTES. - Nicht PnP-fähige ISA-Karten benötigen - weiterhin Angaben zu den Karteneinstellungen - (IRQ, I/O-Port). Die Karteneinstellungen tragen + Nicht PnP-fähige ISA-Soundkarten benötigen + (wie alle anderen ISA-Karten auch) weiterhin Angaben zu + den Karteneinstellungen (wie IRQ und I/O-Port). + Die Karteneinstellungen tragen Sie in die Datei /boot/device.hints ein. Während des Systemstarts liest der &man.loader.8; diese Datei und reicht die Einstellungen an den Kernel weiter. Für eine alte Creative &soundblaster; 16 ISA-Karte, die sowohl den - &man.snd.sbc.4;- als auch den snd_sb16(4)-Treiber + &man.snd.sbc.4;- als auch den + snd_sb16-Treiber benötigt, fügen Sie folgende Zeilen in die Kernelkonfigurationsdatei ein: @@ -259,8 +262,8 @@ device snd_sb16 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 11 21:33:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8437E16A41A; Sat, 11 Aug 2007 21:33:53 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26C8316A417 for ; Sat, 11 Aug 2007 21:33:53 +0000 (UTC) (envelope-from loafier@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1368E13C442 for ; Sat, 11 Aug 2007 21:33:53 +0000 (UTC) (envelope-from loafier@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BLXqTm010110 for ; Sat, 11 Aug 2007 21:33:52 GMT (envelope-from loafier@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BLXqua010107 for perforce@freebsd.org; Sat, 11 Aug 2007 21:33:52 GMT (envelope-from loafier@FreeBSD.org) Date: Sat, 11 Aug 2007 21:33:52 GMT Message-Id: <200708112133.l7BLXqua010107@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to loafier@FreeBSD.org using -f From: Christopher Davis To: Perforce Change Reviews Cc: Subject: PERFORCE change 125067 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, 11 Aug 2007 21:33:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=125067 Change 125067 by loafier@chrisdsoc on 2007/08/11 21:33:08 bus_alloc_resources(), etc. Affected files ... .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/acpica/acpi_ec.c#2 edit Differences ... ==== //depot/projects/soc2007/loafier_busalloc/src/sys/dev/acpica/acpi_ec.c#2 (text+ko) ==== @@ -217,16 +217,16 @@ * Register access primitives */ #define EC_GET_DATA(sc) \ - bus_space_read_1((sc)->ec_data_tag, (sc)->ec_data_handle, 0) + bus_read_1((sc)->ec_res[RES_DATA], 0) #define EC_SET_DATA(sc, v) \ - bus_space_write_1((sc)->ec_data_tag, (sc)->ec_data_handle, 0, (v)) + bus_write_1((sc)->ec_res[RES_DATA], 0, (v)) #define EC_GET_CSR(sc) \ - bus_space_read_1((sc)->ec_csr_tag, (sc)->ec_csr_handle, 0) + bus_read_1((sc)->ec_res[RES_CSR], 0) #define EC_SET_CSR(sc, v) \ - bus_space_write_1((sc)->ec_csr_tag, (sc)->ec_csr_handle, 0, (v)) + bus_write_1((sc)->ec_res[RES_CSR], 0, (v)) /* Additional params to pass from the probe routine */ struct acpi_ec_params { @@ -242,6 +242,18 @@ /* * Driver softc. */ +enum { + RES_DATA, + RES_CSR, + RES_SZ +}; + +static struct resource_spec ec_res_spec[] = { + {SYS_RES_IOPORT, 0, RF_ACTIVE}, + {SYS_RES_IOPORT, 1, RF_ACTIVE}, + {-1, 0, 0} +}; + struct acpi_ec_softc { device_t ec_dev; ACPI_HANDLE ec_handle; @@ -250,15 +262,7 @@ UINT8 ec_gpebit; UINT8 ec_csrvalue; - int ec_data_rid; - struct resource *ec_data_res; - bus_space_tag_t ec_data_tag; - bus_space_handle_t ec_data_handle; - - int ec_csr_rid; - struct resource *ec_csr_res; - bus_space_tag_t ec_csr_tag; - bus_space_handle_t ec_csr_handle; + struct resource *ec_res[RES_SZ]; struct mtx ec_mtx; int ec_glk; @@ -588,26 +592,11 @@ free(params, M_TEMP); /* Attach bus resources for data and command/status ports. */ - sc->ec_data_rid = 0; - sc->ec_data_res = bus_alloc_resource_any(sc->ec_dev, SYS_RES_IOPORT, - &sc->ec_data_rid, RF_ACTIVE); - if (sc->ec_data_res == NULL) { - device_printf(dev, "can't allocate data port\n"); - goto error; + if (bus_alloc_resources(dev, ec_res_spec, sc->ec_res) != 0) { + device_printf(dev, "can't allocate resources\n"); + goto error; } - sc->ec_data_tag = rman_get_bustag(sc->ec_data_res); - sc->ec_data_handle = rman_get_bushandle(sc->ec_data_res); - sc->ec_csr_rid = 1; - sc->ec_csr_res = bus_alloc_resource_any(sc->ec_dev, SYS_RES_IOPORT, - &sc->ec_csr_rid, RF_ACTIVE); - if (sc->ec_csr_res == NULL) { - device_printf(dev, "can't allocate command/status port\n"); - goto error; - } - sc->ec_csr_tag = rman_get_bustag(sc->ec_csr_res); - sc->ec_csr_handle = rman_get_bushandle(sc->ec_csr_res); - /* * Install a handler for this EC's GPE bit. We want edge-triggered * behavior. @@ -655,13 +644,9 @@ AcpiRemoveGpeHandler(sc->ec_gpehandle, sc->ec_gpebit, &EcGpeHandler); AcpiRemoveAddressSpaceHandler(sc->ec_handle, ACPI_ADR_SPACE_EC, EcSpaceHandler); - if (sc->ec_csr_res) - bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_csr_rid, - sc->ec_csr_res); - if (sc->ec_data_res) - bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_data_rid, - sc->ec_data_res); + bus_release_resources(sc->ec_dev, ec_res_spec, sc->ec_res); mtx_destroy(&sc->ec_mtx); + return (ENXIO); } From owner-p4-projects@FreeBSD.ORG Sat Aug 11 21:57:22 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A499B16A420; Sat, 11 Aug 2007 21:57:22 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 765B416A417 for ; Sat, 11 Aug 2007 21:57:22 +0000 (UTC) (envelope-from ivoras@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 624E913C461 for ; Sat, 11 Aug 2007 21:57:22 +0000 (UTC) (envelope-from ivoras@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BLvMHr020116 for ; Sat, 11 Aug 2007 21:57:22 GMT (envelope-from ivoras@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BLvM3q020104 for perforce@freebsd.org; Sat, 11 Aug 2007 21:57:22 GMT (envelope-from ivoras@FreeBSD.org) Date: Sat, 11 Aug 2007 21:57:22 GMT Message-Id: <200708112157.l7BLvM3q020104@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to ivoras@FreeBSD.org using -f From: Ivan Voras To: Perforce Change Reviews Cc: Subject: PERFORCE change 125068 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, 11 Aug 2007 21:57:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=125068 Change 125068 by ivoras@ivoras_finstall on 2007/08/11 21:57:20 - Integrated makeimage (ISO image creator), pybackend and the installer - pybackend now starts by default from the live CD - the liveCD "install" user now has a desktop icon pointing to the installer - fixed minor bugs in all three components Affected files ... .. //depot/projects/soc2007/ivoras_finstall/installer/finstall.py#9 edit .. //depot/projects/soc2007/ivoras_finstall/makeimage/bundles/bundle-spec#4 edit .. //depot/projects/soc2007/ivoras_finstall/makeimage/bundles/installer.desktop#1 add .. //depot/projects/soc2007/ivoras_finstall/makeimage/bundles/prelogin#1 add .. //depot/projects/soc2007/ivoras_finstall/makeimage/bundles/prelogin.txt#1 add .. //depot/projects/soc2007/ivoras_finstall/makeimage/bundles/pybackend.sh#1 add .. //depot/projects/soc2007/ivoras_finstall/makeimage/makeimage.py#10 edit .. //depot/projects/soc2007/ivoras_finstall/pybackend/systoolengine.py#6 edit Differences ... ==== //depot/projects/soc2007/ivoras_finstall/installer/finstall.py#9 (text+ko) ==== @@ -1,5 +1,28 @@ -import sys -import time +#!/usr/local/bin/python +# Copyright (c) 2007. Ivan Voras +# 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 THE 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 THE 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. + +# finstall Installer + +import os,sys,time import logging from types import MethodType from xmlrpclib import ServerProxy @@ -13,7 +36,9 @@ # Configured tracks Steps_Novice = [ { "tile" : "intro" }, - { "tile" : "ndisks" } + { "tile" : "ndisks" }, + { "tile" : "nparts" }, + { "tile" : "nfilesys" } ] @@ -27,6 +52,7 @@ self.step_current = 0 self.step_track = MainWin.Steps_Novice self._load_tile_nr(self.step_current) + self.backtrack = [] def __getitem__(self, key): @@ -65,6 +91,16 @@ self._load_tile(self.step_track[tile_nr]["tile"]) + def _set_next_tile(self, tile): + found = False + for i, t in enumerate(self.step_track): + if t["tile"] == tile: + self.step_current = i-1 # Actually this is not a clean hack, but it'll do for now + found = True + if not found: + logging.error("_set_next_tile cannot set tile to %s. Bogosity ahead." % tile) + + # Handlers for the main window elements (the window itself, Next/Previous # buttons, etc. def on_mainwin_delete_event(self, obj, data): @@ -113,6 +149,7 @@ except: logging.exception("Error executing on_next handler in %s" % self.step_track[self.step_current]["tile"]) return + self.backtrack.append(self.step_track[self.step_current]["tile"]) self.step_current += 1 if self.step_current >= len(self.step_track): self.step_current = 0 # XXX: Fix by disabling next/previous @@ -130,9 +167,19 @@ except: logging.exception("Error executing on_previous in %s" % self.step_track[self.step_current]["tile"]) return - self.step_current -= 1 - if self.step_current < 0: - self.step_current = len(self.step_track)-1 # XXX: fix by disabling next/previous + if len(self.backtrack) == 0 and self.step_current != 0: + self._show_message("Nothing to go back to!", "Error", p_type=gtk.MESSAGE_ERROR) + return + if len(self.backtrack) == 0: + self.step_current = 0 + else: + tile = self.backtrack.pop() + self.step_current = -1 + for i, t in enumerate(self.step_track): + if t["tile"] == tile: + self.step_current = i + if self.step_current < 0: + self._show_message("Cannot find tile %s" % tile, "Error", p_type.gtk.MESSAGE_ERROR) self._load_tile_nr(self.step_current) @@ -149,11 +196,13 @@ def intro_on_next(self): if self["radio_novice"].get_active(): + logging.info("track=Novice") pass # The default track is Novice elif self["radio_standard"].get_active(): print "standard" elif self["radio_expert"].get_active(): print "expert" + self.trackdata = {} return True @@ -161,7 +210,7 @@ def ndisks_on_load(self): self._load_label(self["label2"], "ndisks.txt") drives = self.server.GetDrives() - if len(drives) < 0: + if len(drives) < 1: self._show_message("No usable drives detected.\nThis is a fatal error and the Installer cannot continue.", "Error", p_type=gtk.MESSAGE_ERROR) return @@ -178,9 +227,46 @@ return True - # Handlers for "win1" - def win1_on_button1_clicked(self, obj): - print "clicked" + def ndisks_on_next(self): + row, col = self["disktree"].get_cursor() + if row == None or type(row) != type((1,)): + self._show_message("You need to pick a drive onto which FreeBSD will be installed.", "User intervention required") + return False + model = self["disktree"].get_model() + drive = model.get_value(model.get_iter(row), 0) + logging.info("ndisks.drive=%s" % drive) + self.trackdata["drive"] = drive + parts = self.server.GetDrivePartitions(drive) + if len(parts) == 0: + # The drive is not partitioned, so mark it for default configuration + self.trackdata["parts"] = None + logging.info("Drive %s is not partitioned" % drive) + self._set_next_tile("nfilesys") + else: + self.trackdata["parts"] = parts + logging.info("Drive %s is partitioned" % drive) + self._set_next_tile("nparts") + + return True + + + def nparts_on_load(self): + parts = self.trackdata["parts"] + list = gtk.ListStore(str, str, str, str) + part_list = parts.keys() + part_list.sort() + for part in part_list: + list.append([part, parts[part]["fs_type"], "%d MB" % parts[part]["mediasize"]]) + self["parttree"].set_model(list) + self["parttree"].append_column(self._make_column("Partition", 0, True)) + self["parttree"].append_column(self._make_column("File system", 1)) + self["parttree"].append_column(self._make_column("Size", 2, True)) + self["parttree"].append_column(self._make_column("Valid target?", 3, True)) + self["parttree"].set_cursor(0) + return True + + +os.chdir(os.path.split(sys.argv[0])[0]) # attempt to chdir into the directory where the script is located logging.basicConfig(level=logging.DEBUG) w = MainWin() ==== //depot/projects/soc2007/ivoras_finstall/makeimage/bundles/bundle-spec#4 (text+ko) ==== @@ -4,6 +4,7 @@ # kw : expand keywords in the (text) file # x : set execute bit to destination file # a : append to destination file +# d : directory (copy recursively) /boot/loader.conf=loader.conf;kw /etc/rc.conf=rc.conf;kw /etc/X11/xorg.conf=xorg.conf;kw @@ -19,4 +20,8 @@ /install/.config/autostart/xfce4-tips-autostart.desktop=xfce4-tips-autostart.desktop /install/.xinitrc=dot.xinitrc;kw /install/.config/xfce4/mcs_settings/gtk.xml=gtk.xml +/install/installer=../../installer;d +/install/pybackend=../../pybackend;d +/install/Desktop/installer.desktop=installer.desktop /usr/local/etc/fonts/local.conf=font.local.conf;kw +/usr/local/etc/rc.d/pybackend.sh=pybackend.sh;kw;x ==== //depot/projects/soc2007/ivoras_finstall/makeimage/makeimage.py#10 (text+ko) ==== @@ -22,7 +22,7 @@ # finstall LiveCD image creator -import os, os.path, sys, stat +import os, os.path, sys, stat, shutil from time import strftime from getopt import getopt, GetoptError from util import nukedir, execute, printmsg, cmdout, readline, initutils, getpkgdeps, getpkgfullname @@ -54,7 +54,9 @@ print " -b Do buildworld / buildkernel before proceeding" print " -c Assume installworld / installkernel phase has been" print " done in WORKDIR/livecd and proceed with configuration" - print " and ISO image build" + print " and ISO image build. If specified only once, packages" + print " will get built and installed, if specified twice," + print " packages will be skipped." if exit: sys.exit(1) else: @@ -66,6 +68,7 @@ KERNEL = "GENERIC" DoBuild = False DoMakeRoot = True # Create / install livecd tree +DoMakePkgs = True LABEL = "FreeBSD7" # ISO9660 Volume label BUNDLEDIR = "bundles" BUNDLEFILE = "bundle-spec" @@ -95,7 +98,10 @@ elif o == "-b": DoBuild = True elif o == "-c": - DoMakeRoot = False + if DoMakeRoot: + DoMakeRoot = False + else: + DoMakePkgs = False # if -c is specified twice, skip packages elif o == "-i": ISO = a elif o == "-x": @@ -142,6 +148,10 @@ if not os.path.exists("%s/%s" % (WORKDIR, ZIMAGE_IMGNAME)): print "No %s" % ZIMAGE_IMGNAME sys.exit(1) +if os.path.exists("/dev/md60"): + if os.popen("/sbin/mount -p").read().find("/dev/md60") != -1: + execute("umount /dev/md60") + execute("mdconfig -d -u 60") execute("mdconfig -a -t vnode -f %s -u 60" % ZIMAGE_IMGNAME) if DoMakeRoot: execute("newfs /dev/md60") @@ -180,7 +190,7 @@ str_time = strftime("%H:%M") str_date = strftime("%Y-%m-%d") -if PKGLISTFILE != None: +if PKGLISTFILE != None and DoMakePkgs: # Install packages into the liveCD tree, using chroot printmsg("Bundling packages") master_pkglist = [] @@ -249,24 +259,33 @@ flags = [] dest_file, src_file = line.split("=", 1) cflist.append(dest_file) - file_contents = file("%s/%s" % (BUNDLEDIR, src_file), "r").read() - if "kw" in flags: - file_contents = file_contents.replace("$label$", LABEL) - file_contents = file_contents.replace("$time$", str_time) - file_contents = file_contents.replace("$date$", str_date) - file_contents = file_contents.replace("$dest_file$", dest_file) - file_contents = file_contents.replace("$src_file$", src_file) - filename = "%s%s" % (DESTDIR, dest_file) - if not os.path.exists(os.path.dirname(filename)): - os.makedirs(os.path.dirname(filename)) - if "a" in flags: - df = file(filename, "a") - else: - df = file(filename, "w") - df.write(file_contents) - df.close() - if "x" in flags: - os.chmod("%s%s" % (DESTDIR, dest_file), stat.S_IRUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) + if not 'd' in flags: # regular file + file_contents = file("%s/%s" % (BUNDLEDIR, src_file), "r").read() + if "kw" in flags: + file_contents = file_contents.replace("$label$", LABEL) + file_contents = file_contents.replace("$time$", str_time) + file_contents = file_contents.replace("$date$", str_date) + file_contents = file_contents.replace("$dest_file$", dest_file) + file_contents = file_contents.replace("$src_file$", src_file) + filename = "%s%s" % (DESTDIR, dest_file) + if not os.path.exists(os.path.dirname(filename)): + os.makedirs(os.path.dirname(filename)) + if "a" in flags: + df = file(filename, "a") + else: + df = file(filename, "w") + df.write(file_contents) + df.close() + if "x" in flags: + os.chmod("%s%s" % (DESTDIR, dest_file), stat.S_IRUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) + else: # copy entire directory + src_dir_name = "%s/%s" % (BUNDLEDIR, src_file) + dst_dir_name = "%s%s" % (DESTDIR, dest_file) + if os.path.exists(dst_dir_name): + printmsg("Removing %s" % dst_dir_name) + shutil.rmtree(dst_dir_name) + printmsg("copytree %s -> %s" % (src_dir_name, dst_dir_name)) + shutil.copytree(src_dir_name, dst_dir_name, True) if len(cflist) != 0: printmsg("LiveCD will contain config files: %s" % " ".join(cflist)) f.close() ==== //depot/projects/soc2007/ivoras_finstall/pybackend/systoolengine.py#6 (text+ko) ==== @@ -19,7 +19,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# SysToolD Engine +# SysToolD Engine: implements SysToolD XML-RPC methods import os, sys import re @@ -104,13 +104,15 @@ found hardware. RETURN VALUE: The return value is a dictionary with device names - as keys and another dictionary as values. - { - "ad0" : { - "name": "ACME MegaDrive" - "mediasize": 300000 # (MB) - } - }""" + as keys and another dictionary as values, containing keys: + name, mediasize + For example: + { + "ad0" : { + "name": "ACME MegaDrive", + "mediasize": 300000 # (MB) + } + }""" drive_list = freebsd.get_sysctl("kern.disks").split(" ") dmesg = freebsd.get_dmesg() drive_dict = {} @@ -151,14 +153,25 @@ ARGUMENTS: drive : The drive to inspect RETURN VALUE: - The return value is a list of dictionaries.""" + The return value is a dictionary whose keys are partition names + and values are dictionaries containing keys: + name, mediasize, sectorsize, type + For example: + { + "ad0s1a" : { + "name" : "ad0s1a", + "mediasize" : 100000, # MB + "sectorsize" : 512, + "type" : "BSD" + } + }""" parts = {} used_parts = [] geomxml = freebsd.get_geom_xml() num_msdos_parts = 1 # enumerate MSDOS partitions for cls in geomxml["mesh"]["class"]: - if cls["name"].data == "MBR": + if cls["name"].data == "MBR" and "geom" in cls: for geom in tolist(cls["geom"]): if geom["name"].data == drive: for prov in tolist(geom["provider"]): @@ -172,7 +185,7 @@ num_msdos_parts += 1 # process BSDlabels, both dedicated and inside MSDOS partitions for cls in geomxml["mesh"]["class"]: - if cls["name"].data == "BSD": + if cls["name"].data == "BSD" and "geom" in cls: for geom in tolist(cls["geom"]): if geom["name"].data == drive: # "raw" BSD partitions directly on the drive From owner-p4-projects@FreeBSD.ORG Sat Aug 11 22:11:41 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DA04D16A419; Sat, 11 Aug 2007 22:11:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC23C16A418 for ; Sat, 11 Aug 2007 22:11:40 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9A2B313C468 for ; Sat, 11 Aug 2007 22:11:40 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BMBeKO027773 for ; Sat, 11 Aug 2007 22:11:40 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BMBee0027767 for perforce@freebsd.org; Sat, 11 Aug 2007 22:11:40 GMT (envelope-from gabor@freebsd.org) Date: Sat, 11 Aug 2007 22:11:40 GMT Message-Id: <200708112211.l7BMBee0027767@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 125069 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, 11 Aug 2007 22:11:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=125069 Change 125069 by gabor@gabor_server on 2007/08/11 22:11:31 - Change the IGNORE messages to a bit better ones. Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#17 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#17 (text+ko) ==== @@ -110,17 +110,17 @@ .if ${__suffix} == "+" .if ${USE_PERL5_LEVEL} > ${PERL_LEVEL} -USE_PERL5_REASON?= You need Perl ${__prefix} or newer, please install latest lang/perl5.8 +USE_PERL5_REASON?= requires Perl ${__prefix} or later, install lang/perl5.8 and try again IGNORE= ${USE_PERL5_REASON} .endif .elif ${__suffix} == "" .if ${USE_PERL5_LEVEL} != ${PERL_LEVEL} -USE_PERL5_REASON?= You need Perl ${__prefix} exactly +USE_PERL5_REASON?= requires Perl ${__prefix} exactly IGNORE= ${USE_PERL5_REASON} .endif .elif ${__suffix} == "-" .if ${USE_PERL5_LEVEL} < ${PERL_LEVEL} -USE_PERL5_REASON?= You need Perl ${__prefix} or earlier +USE_PERL5_REASON?= requires Perl ${__prefix} or earlier IGNORE= ${USE_PERL5_REASON} .endif .else From owner-p4-projects@FreeBSD.ORG Sat Aug 11 22:15:46 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5BE0916A468; Sat, 11 Aug 2007 22:15:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C4B316A419 for ; Sat, 11 Aug 2007 22:15:46 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1A5BE13C483 for ; Sat, 11 Aug 2007 22:15:46 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BMFjVX029616 for ; Sat, 11 Aug 2007 22:15:45 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BMFjG3029610 for perforce@freebsd.org; Sat, 11 Aug 2007 22:15:45 GMT (envelope-from gabor@freebsd.org) Date: Sat, 11 Aug 2007 22:15:45 GMT Message-Id: <200708112215.l7BMFjG3029610@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 125070 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, 11 Aug 2007 22:15:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=125070 Change 125070 by gabor@gabor_server on 2007/08/11 22:15:36 - For practical reason, change the behaviour of the - signed USE_PERL5 values. For the + behaviour we specify the earliest version the given port works with as it is the easiest way. Similarly, for - it is easier to specify the earliest version the port does not work with any more, than specifying the laterst version it still works with. Thus now, - sets IGNORE if the give Perl version is equal to or greater than the given one. Affected files ... .. //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#18 edit Differences ... ==== //depot/projects/soc2007/gabor_perlmk/Mk/bsd.perl.mk#18 (text+ko) ==== @@ -119,8 +119,8 @@ IGNORE= ${USE_PERL5_REASON} .endif .elif ${__suffix} == "-" -.if ${USE_PERL5_LEVEL} < ${PERL_LEVEL} -USE_PERL5_REASON?= requires Perl ${__prefix} or earlier +.if ${USE_PERL5_LEVEL} <= ${PERL_LEVEL} +USE_PERL5_REASON?= requires a Perl version earlier than ${__prefix} IGNORE= ${USE_PERL5_REASON} .endif .else From owner-p4-projects@FreeBSD.ORG Sat Aug 11 22:56:36 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AEF3816A419; Sat, 11 Aug 2007 22:56:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 73F5B16A417 for ; Sat, 11 Aug 2007 22:56:35 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 613C913C428 for ; Sat, 11 Aug 2007 22:56:35 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7BMuZOP047576 for ; Sat, 11 Aug 2007 22:56:35 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BMuZR4047573 for perforce@freebsd.org; Sat, 11 Aug 2007 22:56:35 GMT (envelope-from peter@freebsd.org) Date: Sat, 11 Aug 2007 22:56:35 GMT Message-Id: <200708112256.l7BMuZR4047573@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 125071 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, 11 Aug 2007 22:56:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=125071 Change 125071 by peter@peter_work on 2007/08/11 22:55:57 Basic catchup for 7.x. Add wrappers for new mmap/lseek/etc syscall numbers. Tidy up a few other loose ends. There are lots of 6.x and 7.x syscalls that are likely to turn up that are not wrapped yet. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-generic.c#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-x86-freebsd.c#2 edit .. //depot/projects/valgrind/coregrind/vki_syscall-freebsd.h#2 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#2 (text+ko) ==== @@ -1,6 +1,6 @@ /*--------------------------------------------------------------------*/ -/*--- Linux-specific syscalls stuff. priv_syswrap-linux.h ---*/ +/*--- FreeBSD-specific syscalls stuff. priv_syswrap-freebsd.h ---*/ /*--------------------------------------------------------------------*/ /* @@ -210,6 +210,13 @@ DECL_TEMPLATE(freebsd, sys_lkmnosys6); DECL_TEMPLATE(freebsd, sys_lkmnosys7); DECL_TEMPLATE(freebsd, sys_lkmnosys8); +DECL_TEMPLATE(freebsd, sys_sigaction6); +DECL_TEMPLATE(freebsd, sys_mmap7); +DECL_TEMPLATE(freebsd, sys_lseek7); +DECL_TEMPLATE(freebsd, sys_truncate7); +DECL_TEMPLATE(freebsd, sys_ftruncate7); +DECL_TEMPLATE(freebsd, sys_pread7); +DECL_TEMPLATE(freebsd, sys_pwrite7); #endif // __PRIV_SYSWRAP_FREEBSD_H /*--------------------------------------------------------------------*/ ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#2 (text+ko) ==== @@ -54,8 +54,7 @@ #include "priv_types_n_macros.h" #include "priv_syswrap-generic.h" /* for decls of generic wrappers */ -#include "priv_syswrap-linux.h" /* for decls of linux-ish wrappers */ -#include "priv_syswrap-linux-variants.h" /* decls of linux variant wrappers */ +#include "priv_syswrap-freebsd.h" /* for decls of freebsd-ish wrappers */ #include "priv_syswrap-main.h" #include "vki_unistd.h" /* for the __NR_* constants */ @@ -212,7 +211,7 @@ /* This is here because on x86 the off_t is passed in 2 regs. Don't ask about pad. */ /* caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); */ -/* ARG1 ARG2 ARG3 ARG4 ARG5 ARG6 ARG7+ARG8 */ +/* ARG1 ARG2 ARG3 ARG4 ARG5 ARG6 ARG7 */ PRE(sys_mmap) { @@ -228,11 +227,34 @@ SET_STATUS_from_SysRes(r); } +/* FreeBSD-7 introduces a "regular" version of mmap etc. */ +PRE(sys_mmap7) +{ + SysRes r; + + PRINT("sys_mmap ( %p, %lu, %d, %d, %d, 0x%lx)", + ARG1, (UWord)ARG2, ARG3, ARG4, ARG5, ARG6 ); + PRE_REG_READ6(long, "mmap", + char *, addr, unsigned long, len, int, prot, int, flags, + int, fd, unsigned long, pos); + + r = ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6 ); + SET_STATUS_from_SysRes(r); +} + PRE(sys_lseek) { - PRINT("sys_lseek ( %d, 0x%x, %p, %d )", ARG1,ARG3,ARG4,ARG5); + PRINT("sys_lseek ( %d, 0x%x, %p, %d )", ARG1,ARG3,ARG4); PRE_REG_READ4(long, "lseek", - unsigned int, fd, int, pad, unsigned int, offset, + unsigned int, fd, int, pad, unsigned long, offset, + unsigned int, whence); +} + +PRE(sys_lseek7) +{ + PRINT("sys_lseek ( %d, 0x%lx, %d )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "lseek", + unsigned int, fd, unsigned long, offset, unsigned int, whence); } @@ -256,14 +278,54 @@ POST_MEM_WRITE( ARG2, RES ); } +PRE(sys_pread7) +{ + *flags |= SfMayBlock; + PRINT("sys_read ( %d, %p, %lu, %lu, %lu )", ARG1, ARG2, ARG3, ARG4); + PRE_REG_READ4(ssize_t, "read", + unsigned int, fd, char *, buf, vki_size_t, count, + unsigned long, off); + + if (!ML_(fd_allowed)(ARG1, "read", tid, False)) + SET_STATUS_Failure( VKI_EBADF ); + else + PRE_MEM_WRITE( "read(buf)", ARG2, ARG3 ); +} + +POST(sys_pread7) +{ + vg_assert(SUCCESS); + POST_MEM_WRITE( ARG2, RES ); +} + PRE(sys_pwrite) { Bool ok; *flags |= SfMayBlock; - PRINT("sys_write ( %d, %p, %lu, %lu, %lu )", ARG1, ARG2, ARG3, ARG5, ARG6); + PRINT("sys_write ( %d, %p, %lu, %lu, %lu )", ARG1, ARG2, ARG3, ARG5); PRE_REG_READ5(ssize_t, "write", unsigned int, fd, const char *, buf, vki_size_t, count, - int, pad, unsigned int, off); + int, pad, unsigned long, off); + /* check to see if it is allowed. If not, try for an exemption from + --sim-hints=enable-outer (used for self hosting). */ + ok = ML_(fd_allowed)(ARG1, "write", tid, False); + if (!ok && ARG1 == 2/*stderr*/ + && VG_(strstr)(VG_(clo_sim_hints),"enable-outer")) + ok = True; + if (!ok) + SET_STATUS_Failure( VKI_EBADF ); + else + PRE_MEM_READ( "write(buf)", ARG2, ARG3 ); +} + +PRE(sys_pwrite7) +{ + Bool ok; + *flags |= SfMayBlock; + PRINT("sys_write ( %d, %p, %lu, %lu )", ARG1, ARG2, ARG3, ARG4); + PRE_REG_READ4(ssize_t, "write", + unsigned int, fd, const char *, buf, vki_size_t, count, + unsigned long, off); /* check to see if it is allowed. If not, try for an exemption from --sim-hints=enable-outer (used for self hosting). */ ok = ML_(fd_allowed)(ARG1, "write", tid, False); @@ -284,13 +346,29 @@ unsigned int, length); } +PRE(sys_ftruncate7) +{ + *flags |= SfMayBlock; + PRINT("sys_ftruncate ( %d, %lu )", ARG1,ARG2); + PRE_REG_READ2(long, "ftruncate", unsigned int, fd, + unsigned long, length); +} + PRE(sys_truncate) { *flags |= SfMayBlock; PRINT("sys_truncate ( %p(%s), %lu )", ARG1,ARG1,ARG3); PRE_REG_READ3(long, "truncate", - const char *, path, int, pad, - unsigned int, length); + const char *, path, int, pad, unsigned int, length); + PRE_MEM_RASCIIZ( "truncate(path)", ARG1 ); +} + +PRE(sys_truncate7) +{ + *flags |= SfMayBlock; + PRINT("sys_truncate ( %p(%s), %lu )", ARG1,ARG1,ARG2); + PRE_REG_READ2(long, "truncate", + const char *, path, unsigned long, length); PRE_MEM_RASCIIZ( "truncate(path)", ARG1 ); } ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#3 (text+ko) ==== @@ -41,6 +41,7 @@ #include "pub_core_libcprint.h" #include "pub_core_libcproc.h" #include "pub_core_libcsignal.h" +#include "pub_core_machine.h" #include "pub_core_mallocfree.h" #include "pub_core_tooliface.h" #include "pub_core_options.h" @@ -2670,19 +2671,24 @@ // thr_set_name 464 // aio_fsync 465 // rtprio_thread 466 + // nosys 467 + + // nosys 468 + // __getpath_fromfd 469 + // __getpath_fromaddr 470 // sctp_peeloff 471 // sctp_generic_sendmsg 472 // sctp_generic_sendmsg_iov 473 // sctp_generic_recvmsg 474 - // pread 475 + BSDXY(__NR_pread7, sys_pread7), // 475 - // pwrite 476 - // mmap 477 - // lseek 478 - // truncate 479 + BSDX_(__NR_pwrite7, sys_pwrite7), // 476 + BSDX_(__NR_mmap7, sys_mmap7), // 477 + BSDX_(__NR_lseek7, sys_lseek7), // 478 + BSDX_(__NR_truncate7, sys_truncate7), // 479 - // ftruncate 480 + BSDX_(__NR_ftruncate7, sys_ftruncate7), // 480 }; ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-generic.c#3 (text+ko) ==== @@ -42,6 +42,7 @@ #include "pub_core_libcprint.h" #include "pub_core_libcproc.h" #include "pub_core_libcsignal.h" +#include "pub_core_machine.h" #include "pub_core_mallocfree.h" #include "pub_core_options.h" #include "pub_core_scheduler.h" ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-x86-freebsd.c#2 (text+ko) ==== @@ -43,6 +43,7 @@ #include "pub_core_libcprint.h" #include "pub_core_libcproc.h" #include "pub_core_libcsignal.h" +#include "pub_core_machine.h" #include "pub_core_mallocfree.h" #include "pub_core_options.h" #include "pub_core_scheduler.h" @@ -54,8 +55,7 @@ #include "priv_types_n_macros.h" #include "priv_syswrap-generic.h" /* for decls of generic wrappers */ -#include "priv_syswrap-linux.h" /* for decls of linux-ish wrappers */ -#include "priv_syswrap-linux-variants.h" /* decls of linux variant wrappers */ +#include "priv_syswrap-freebsd.h" /* for decls of linux-ish wrappers */ #include "priv_syswrap-main.h" #include "vki_unistd.h" /* for the __NR_* constants */ @@ -362,14 +362,36 @@ SET_STATUS_from_SysRes(r); } +PRE(sys_mmap7) +{ + SysRes r; + + PRINT("sys_mmap ( %p, %lu, %d, %d, %d, lo0x%x hi0x%x)", + ARG1, (UWord)ARG2, ARG3, ARG4, ARG5, ARG6, ARG7 ); + PRE_REG_READ7(long, "mmap", + char *, addr, unsigned long, len, int, prot, int, flags, + int, fd, unsigned long, lo, unsigned long, hi); + + r = ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6 + ((Off64T)ARG7 << 32) ); + SET_STATUS_from_SysRes(r); +} + PRE(sys_lseek) { - PRINT("sys_lseek ( %d, 0x%x, 0x%x, %p, %d )", ARG1,ARG3,ARG4,ARG5,ARG6); + PRINT("sys_lseek ( %d, 0x%x, 0x%x, %d )", ARG1,ARG3,ARG4,ARG5); PRE_REG_READ5(long, "lseek", unsigned int, fd, int, pad, unsigned int, offset_low, unsigned int, offset_high, unsigned int, whence); } +PRE(sys_lseek7) +{ + PRINT("sys_lseek ( %d, 0x%x, 0x%x, %d )", ARG1,ARG2,ARG3,ARG4); + PRE_REG_READ4(long, "lseek", + unsigned int, fd, unsigned int, offset_low, + unsigned int, offset_high, unsigned int, whence); +} + PRE(sys_pread) { *flags |= SfMayBlock; @@ -390,6 +412,26 @@ POST_MEM_WRITE( ARG2, RES ); } +PRE(sys_pread7) +{ + *flags |= SfMayBlock; + PRINT("sys_read ( %d, %p, %lu, %lu, %lu )", ARG1, ARG2, ARG3, ARG4, ARG5); + PRE_REG_READ5(ssize_t, "read", + unsigned int, fd, char *, buf, vki_size_t, count, + unsigned int, off_low, unsigned int, off_high); + + if (!ML_(fd_allowed)(ARG1, "read", tid, False)) + SET_STATUS_Failure( VKI_EBADF ); + else + PRE_MEM_WRITE( "read(buf)", ARG2, ARG3 ); +} + +POST(sys_pread7) +{ + vg_assert(SUCCESS); + POST_MEM_WRITE( ARG2, RES ); +} + PRE(sys_pwrite) { Bool ok; @@ -410,6 +452,26 @@ PRE_MEM_READ( "write(buf)", ARG2, ARG3 ); } +PRE(sys_pwrite7) +{ + Bool ok; + *flags |= SfMayBlock; + PRINT("sys_write ( %d, %p, %lu, %lu, %lu )", ARG1, ARG2, ARG3, ARG4, ARG5); + PRE_REG_READ5(ssize_t, "write", + unsigned int, fd, const char *, buf, vki_size_t, count, + unsigned int, off_low, unsigned int, off_high); + /* check to see if it is allowed. If not, try for an exemption from + --sim-hints=enable-outer (used for self hosting). */ + ok = ML_(fd_allowed)(ARG1, "write", tid, False); + if (!ok && ARG1 == 2/*stderr*/ + && VG_(strstr)(VG_(clo_sim_hints),"enable-outer")) + ok = True; + if (!ok) + SET_STATUS_Failure( VKI_EBADF ); + else + PRE_MEM_READ( "write(buf)", ARG2, ARG3 ); +} + PRE(sys_ftruncate) { *flags |= SfMayBlock; @@ -418,6 +480,14 @@ unsigned int, length_low, unsigned int, length_high); } +PRE(sys_ftruncate7) +{ + *flags |= SfMayBlock; + PRINT("sys_ftruncate ( %d, %lu, %lu )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "ftruncate", unsigned int, fd, + unsigned int, length_low, unsigned int, length_high); +} + PRE(sys_truncate) { *flags |= SfMayBlock; @@ -428,6 +498,16 @@ PRE_MEM_RASCIIZ( "truncate(path)", ARG1 ); } +PRE(sys_truncate7) +{ + *flags |= SfMayBlock; + PRINT("sys_truncate ( %p(%s), %lu, %lu )", ARG1,ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "truncate", + const char *, path, + unsigned int, length_low, unsigned int, length_high); + PRE_MEM_RASCIIZ( "truncate(path)", ARG1 ); +} + PRE(sys_sysarch) { ThreadState *tst; ==== //depot/projects/valgrind/coregrind/vki_syscall-freebsd.h#2 (text+ko) ==== @@ -352,6 +352,30 @@ #define __NR_auditctl 453 #define __NR__umtx_op 454 #define __NR_thr_new 455 -#define __NR_MAXSYSCALL 456 +#define __NR_sigqueue 456 +#define __NR_kmq_open 457 +#define __NR_kmq_setattr 458 +#define __NR_kmq_timedreceive 459 +#define __NR_kmq_timedsend 460 +#define __NR_kmq_notify 461 +#define __NR_kmq_unlink 462 +#define __NR_abort2 463 +#define __NR_thr_set_name 464 +#define __NR_aio_fsync 465 +#define __NR_rtprio_thread 466 +#define __NR_nosys467 467 +#define __NR_nosys468 468 +#define __NR___getpath_fromfd 469 +#define __NR___getpath_fromaddr 470 +#define __NR_sctp_peeloff 471 +#define __NR_sctp_generic_sendmsg 472 +#define __NR_sctp_generic_sendmsg_iov 473 +#define __NR_sctp_generic_recvmsg 474 +#define __NR_pread7 475 +#define __NR_pwrite7 476 +#define __NR_mmap7 477 +#define __NR_lseek7 478 +#define __NR_truncate7 479 +#define __NR_ftruncate7 480 #endif /* __VKI_UNISTD_FREEBSD_H */