Если struct device *hwdev
указывает на ваше оборудование struct device
(например, если hwdev
указывает на элемент dev
элемента struct platform_device
), то этот фрагмент кода иллюстрирует, как получить доступ к узлу дерева устройств зарезервированного область памяти и преобразовать это в struct resource
.
struct device_node *memnp;
struct resource mem_res;
int rc;
/* Get pointer to memory region device node from "memory-region" phandle. */
memnp = of_parse_phandle(hwdev->of_node, "memory-region", 0);
if (!memnp) {
dev_err(hwdev, "no memory-region node\n");
rc = -ENXIO;
goto err1;
}
/* Convert memory region to a struct resource */
rc = of_address_to_resource(memnp, 0, &mem_res);
/* finished with memnp */
of_node_put(memnp);
if (rc) {
dev_err(hwdev, "failed to translate memory-region to a resource\n");
goto err1;
}
Начальный адрес заканчивается на mem_res.start
, а длина задается как resource_size(&mem_res);
.
Скажем, Вы использовали svnadmin для создания репозитория в/svn/foo/mydirname, и Вы хотите к управлению версиями/home/user/mydirname (это, что Вы имеете в виду?).
Затем сделайте следующее:
cd /home/user/mydirname
svn co file:///svn/foo/mydirname . #This only creates the ".svn" folder for version control
svn add ./* #Tell svn you want to version control all files in this dir
svn ci #Check the files in
Ваш каталог является теперь версией, которой управляют!
Да, можно импортировать существующий каталог (с содержанием) в репозиторий SVN и использовать текущее местоположение в качестве управляемой версией рабочей копии. Пойдите в нем следующим образом:
Предположим, что Ваши (неимеющие версию) источники проекта находятся в/home/user/projectx, и Ваш репозиторий готов по file:///svnrepo
Во-первых, создайте пустой каталог где-нибудь за пределами Вашего дерева проекта, скажем, /tmp/empty
. Импорт, что пустой каталог в Вашем репозитории Подверсии:
cd /tmp/empty
svn import . file:///svnrepo/projectx
Войдите в свой заполненный каталог проекта. Теперь проверьте местоположение хранилища, которое Вы создали на шаге 1:
cd /home/user/projectx
svn checkout file:///svnrepo/projectx .
Это добавит .svn файлы к Вашему заполненному каталогу проекта, но он не сделает ничего больше, таким образом, Ваши существующие файлы будут безопасны.
Затем, добавьте каталог со своими файлами в репозиторий:
svn add *
svn commit -m 'initial commit'
Готово.