Linux eyewebsolution.dnshostserver.in 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
Apache
: 185.131.55.234 | : 216.73.216.138
674 Domain
5.6.40
omxrelocation
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
src /
file_protector-1.1-1524 /
transport /
[ HOME SHELL ]
Name
Size
Permission
Action
device.c
1.18
KB
-rw-r--r--
device.h
257
B
-rw-r--r--
exit_event.c
1.23
KB
-rw-r--r--
exit_event.h
352
B
-rw-r--r--
fork_event.c
946
B
-rw-r--r--
fork_event.h
403
B
-rw-r--r--
fs_event.c
19.89
KB
-rw-r--r--
fs_event.h
1.92
KB
-rw-r--r--
message.c
13.12
KB
-rw-r--r--
message.h
3.77
KB
-rw-r--r--
ring.h
2.29
KB
-rw-r--r--
set.h
1.86
KB
-rw-r--r--
thread_safe_path.h
2.28
KB
-rw-r--r--
transport.c
50.01
KB
-rw-r--r--
transport.h
2.6
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ring.h
/** @file @brief 'ring' or 'circular' buffer @details Copyright (c) 2021 Acronis International GmbH @author Mikhail Krivtsov (mikhail.krivtsov@acronis.com) @since $Id: $ */ #pragma once #include <linux/atomic.h> #include <linux/types.h> // bool, [u]int(8|16|32|64)_t, pid_t, size_t #ifdef KERNEL_MOCK #include <mock/mock.h> #endif typedef struct { void *buffer; size_t item_size; int capacity; // 'count' is marked as atomic because it might be called from 'wait_event*' call without taking a spinlock atomic_t count; int count_max; int producer_index; int consumer_index; } ring_t; static inline void ring_init(ring_t *ring, void *buffer, size_t buffer_size, size_t item_size) { ring->buffer = buffer; ring->item_size = item_size; ring->capacity = buffer_size / item_size; atomic_set(&ring->count, 0); ring->count_max = 0; ring->producer_index = 0; ring->consumer_index = 0; } static inline void *ring_buffer(ring_t *ring) { return ring->buffer; } static inline int ring_capacity(ring_t *ring) { return ring->capacity; } static inline void ring_producer_index_move(ring_t *ring, int items) { int count; ring->producer_index = (ring->producer_index + items) % ring->capacity; count = atomic_add_return(items, &ring->count); if (ring->count_max < count) { ring->count_max = count; } } static inline void ring_producer_index_move_one(ring_t *ring) { ring_producer_index_move(ring, 1); } static inline void *ring_producer_ptr(ring_t *ring) { return (void *) (ring->producer_index * ring->item_size + (char *)ring->buffer); } static inline void ring_consumer_index_move(ring_t *ring, int items) { ring->consumer_index = (ring->consumer_index + items) % ring->capacity; atomic_sub(items, &ring->count); } static inline void ring_consumer_index_move_one(ring_t *ring) { ring_consumer_index_move(ring, 1); } static inline void *ring_consumer_ptr(ring_t *ring) { return (void *) (ring->consumer_index * ring->item_size + (char *)ring->buffer); } static inline int ring_items_count(ring_t *ring) { return atomic_read(&ring->count); } static inline int ring_items_count_max(ring_t *ring) { return ring->count_max; } static inline bool ring_is_empty(ring_t *ring) { return !ring_items_count(ring); } static inline bool ring_is_full(ring_t *ring) { return ring_items_count(ring) >= ring->capacity; }
Close