
/**
 * @file: pushlock.h
 *
 * Toto je hlavickovy soubor pro implementaci dovolujici i ovladacum tretich stran
 * snadno vyuzivat pushlocky - odlehcene zamyk reader-writer, ktere jsou oblibene
 * zejmena na uzamykani ruznych internich struktur jadra operacniho systemu. 
 */
#ifndef __PUSHLOCK_H_
#define __PUSHLOCK_H_

#include <ntddk.h>

// Metody jsou popsany v souboru pushlock.c spolu s jejich implementaci

VOID PushLockInitialize(PVOID *Lock);
VOID PushLockAcquireShared(PVOID *Lock);
VOID PushLockAcquireExclusive(PVOID *Lock);
VOID PushLockReleaseShared(PVOID *Lock);
VOID PushLockReleaseExclusive(PVOID *Lock);
VOID PushLockRelease(PVOID *Lock);

NTSTATUS PushLockModuleInit(VOID);
VOID PushLockModuleFinit(VOID);

#endif
