пишите нам 
Ладошки: КПК, Коммуникаторы, Смартфоны, Windows Mobile, Symbian, Palm OS PDA и гаджеты
Ладошки: КПК, Коммуникаторы, Смартфоны, Windows Mobile, Symbian, Palm OS PDA и гаджеты
Ладошки: КПК, Коммуникаторы, Смартфоны, Windows Mobile, Symbian, Palm OS PDA и гаджеты
Ладошки к Солнцу! Ладошки: КПК, Коммуникаторы, Смартфоны, Windows Mobile, Symbian, Palm OS PDA и гаджеты
 

Приветствуем на Ладошках!

Ладошки, у меня РАНЧИК РОДИЛСЯ! :-) ... Уважаемые давние поклонники и посетители Ладошек! Я запускаю коммьюнити-сайт, новый проект, а вы все, будучи https://www.facebook.com/run4iq Бег для интеллектуалов. Бег для интеллекта. Бег "за" интеллектом. Он сам не придёт ;-) Ранчик родился! Андрей AKA Andrew Nugged Ладошки служат как архив программ для Palm OS и Poclet PC / Windows Mobile и разрешённых книг с 15 окрября 2000 года.
 
Статьи на Ладошках: о КПК и гаджетах
список групп статейВы пишете статьи? Контактируйте с нами!

 
Недокументированные функции MemSemaphoreReserve и MemSemaphoreRelease (Palm OS)


Автор/Источник: Ронин Виктор
» 14.11.2002 03:47,
просмотров сегодня: 1, всего: 2534
статья размещена в группе: Программирование
оценка: 2.749, 28 голосов


Сложность : Intermediate/Advanced

Palm кишит недокументированными функциями. Этой статьей я открываю цикл, посвященный их описанию.

Начну с описания функций MemSemaphoreReserve и MemSemaphoreRelease, основное назначение которых — включение и выключение режима прямой записи данных в область «storage heap» (в место, где на Palm’е хранятся файлы). Словом, речь пойдет о так называемом семафоре.


Определение функций в заголовочном файле

Err MemSemaphoreReserve(Boolean writeAccess);

Если writeAccess = false, то этот вызов переключает систему в режим монопольного использования Memory Manager’ом и не допускает, чтобы другие задачи изменяли содержимое storage heap, пока выставлен семафор.

Если writeAcces = true, то этот вызов запрещает переключение задач и дает возможность записи данных в storage heap. Функция используется Data Manager’ом, когда ей необходимо изменить данные в «user storage heap».

Любой вызов фуинкции MemSemaphoreReserve должен быть сбалансирован вызовом MemSemaphoreRelease (причем с таким же параметром writeAccess).


Err MemSemaphoreRelease(Boolean writeAccess);

Если writeAccess = false, то монопольное использование системы Memory Manager’ом будет отменено.

Если writeAccess = true, то будет восстановлено защиту от перезаписи данных, находящихся в storage heap, а также будет восстановлено возможность переключения задач.


Примеры использования

В обычной работе с БД:

memH = DmGetRecord(dbP, 0);
memP = MemHandleLock(memH);
DmWrite(memP, 0, src, src_bytes); // стандартный метод записи в БД
MemHandleUnlock(memH);
DmReleaseRecord(dbP, 0, 1).


Запрещенный метод работы с БД :

memH = DmGetRecord(dbP, 0);
memP = MemHandleLock(memH);
MemMove(memP, src, src_bytes); // работа как обычным Pointer’ом — приводит к Fatal Aler’у
MemHandleUnlock(memH);
DmReleaseRecord(dbP, 0, 1).

Работа с БД с использованием MemSemaphoreReserve и MemSemaphoreRelease:

memH = DmQueryRecord(dbP, 0);
memP = MemHandleLock(memH);
MemSemaphoreReserve(1);
MemMove(memP, src, src_bytes); // работа как обычным Pointer’ом — работает нормально
MemSemaphoreRelease(1);
MemHandleUnlock(memH).

Таким образом, если вам нужно постоянно работать с данными в PDB, и вы хотите получить возможность работы с ними как с обычной памятью, пользуйтесь этими функциями. Однако, учитывая то, что они не являются документированными, то каждый их использует на свой страх и риск.

1   2   3   4   5
«хуже     ваша оценка     лучше»


Обсуждение

Ваше мнение будет первым.



 

Чтобы писать комментарии вам нужно
авторизоваться (войти) или зарегистрироваться


 
Регистрация товарного знака в Украине patent.km.ua.
Telephones, address and opening times for shops, post and banks in the UK
 
 

 

статьи
по этой теме
 
EWE — инструмент разработки Java-приложений для платформы PocketPC
04-02-2008, рейтинг(общ.): 3.4, просм.: 1/5818

Платформа Palm OS: защита программного обеспечения
14-05-2003, рейтинг(общ.): 2.862, просм.: 0/8819

Немножко о работе с сетями (Palm OS)
18-03-2003, рейтинг(общ.): 2.22, просм.: 0/4443

Установка цветов прорисовки (Palm OS)
15-01-2003, рейтинг(общ.): 2.35, просм.: 0/2761

Накладывающиеся Control’ы (Palm OS)
29-12-2002, рейтинг(общ.): 2.572, просм.: 0/2565

Создание Static Library (Palm OS)
28-12-2002, рейтинг(общ.): 2.9, просм.: 2/3225

Использование внеэкранного буфера при высоком разрешении (Palm OS)
11-12-2002, рейтинг(общ.): 2.226, просм.: 0/3332

Четыре метода перехвата нажатий на кнопки Палма (Palm OS)
28-11-2002, рейтинг(общ.): 2.653, просм.: 0/3601

Ссылки по программированию (Palm OS). Часть 3
21-11-2002, рейтинг(общ.): 1.812, просм.: 0/5559

Самоудаляющаяся программа (Palm OS)
21-11-2002, рейтинг(общ.): 2.364, просм.: 1/3036

Программирование под Palm OS: Урок 1. Знакомство с CodeWarrior и Constructor’ом
15-11-2002, рейтинг(общ.): 4.438, просм.: 1/4415

Устройство и функционирование Shared Library (Palm OS)
12-11-2002, рейтинг(общ.): 5, просм.: 0/2636

Программирование под Palm OS: Урок 0. Что нужно для того, чтобы писать под Palm?
09-11-2002, рейтинг(общ.): 3.824, просм.: 1/3124

Коротко о вставке текста в Field’ы (Palm OS)
07-11-2002, рейтинг(общ.): 2.44, просм.: 1/2427

Ссылки по программированию (Palm OS). Часть 2
31-10-2002, рейтинг(общ.): 2.475, просм.: 0/5207

Работа с полями таблицы (Palm OS)
31-10-2002, рейтинг(общ.): 2.334, просм.: 0/2744

Работа с потоковыми файлами на Palm’е (File Streaming API) (Palm OS)
31-10-2002, рейтинг(общ.): 2.095, просм.: 1/2874

Хранение проекта в системе контроля версий (Palm OS)
29-10-2002, рейтинг(общ.): 2.111, просм.: 0/2885

О custom control’ах и их реализации в виде gadget’ов (Palm OS)
28-10-2002, рейтинг(общ.): 2.632, просм.: 0/3074

Быстрая работа с графикой (Palm OS)
25-10-2002, рейтинг(общ.): 2.167, просм.: 0/3364

а вы знаете, что есть:
- рейтинг-каталог сайтов Ладошек?

поддержите
Ладошки
 
Рейтинг Ладошек: КПК, мобильность, коммуникаторы, смартфоны, гаджеты, высокие технологии Рейтинг каталога сайтов Хмельницкого региона Поддержите Ладошки: Как поддержать сайт?
Использование материалов сайта разрешено только при наличии
гиперссылки на страницу Ладошек без блокировки индексации
реклама на сайте    Andrew Nugged © 2000-2015