!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/include/asm-m68k/   drwxr-xr-x
Free 318.37 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     semaphore-helper.h (2.71 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef _M68K_SEMAPHORE_HELPER_H
#define _M68K_SEMAPHORE_HELPER_H

/*
 * SMP- and interrupt-safe semaphores helper functions.
 *
 * (C) Copyright 1996 Linus Torvalds
 *
 * m68k version by Andreas Schwab
 */

#include <linux/config.h>

/*
 * These two _must_ execute atomically wrt each other.
 */
static inline void wake_one_more(struct semaphore * sem)
{
    atomic_inc(&sem->waking);
}

#ifndef CONFIG_RMW_INSNS
extern spinlock_t semaphore_wake_lock;
#endif

static inline int waking_non_zero(struct semaphore *sem)
{
    int ret;
#ifndef CONFIG_RMW_INSNS
    unsigned long flags;

    spin_lock_irqsave(&semaphore_wake_lock, flags);
    ret = 0;
    if (atomic_read(&sem->waking) > 0) {
        atomic_dec(&sem->waking);
        ret = 1;
    }
    spin_unlock_irqrestore(&semaphore_wake_lock, flags);
#else
    int tmp1, tmp2;

    __asm__ __volatile__
      ("1:    movel    %1,%2\n"
       "    jle    2f\n"
       "    subql    #1,%2\n"
       "    casl    %1,%2,%3\n"
       "    jne    1b\n"
       "    moveq    #1,%0\n"
       "2:"
       : "=d" (ret), "=d" (tmp1), "=d" (tmp2)
       : "m" (sem->waking), "0" (0), "1" (sem->waking));
#endif

    return ret;
}

/*
 * waking_non_zero_interruptible:
 *    1    got the lock
 *    0    go to sleep
 *    -EINTR    interrupted
 */
static inline int waking_non_zero_interruptible(struct semaphore *sem,
                        struct task_struct *tsk)
{
    int ret;
#ifndef CONFIG_RMW_INSNS
    unsigned long flags;

    spin_lock_irqsave(&semaphore_wake_lock, flags);
    ret = 0;
    if (atomic_read(&sem->waking) > 0) {
        atomic_dec(&sem->waking);
        ret = 1;
    } else if (signal_pending(tsk)) {
        atomic_inc(&sem->count);
        ret = -EINTR;
    }
    spin_unlock_irqrestore(&semaphore_wake_lock, flags);
#else
    int tmp1, tmp2;

    __asm__ __volatile__
      ("1:    movel    %1,%2\n"
       "    jle    2f\n"
       "    subql    #1,%2\n"
       "    casl    %1,%2,%3\n"
       "    jne    1b\n"
       "    moveq    #1,%0\n"
       "    jra    %a4\n"
       "2:"
       : "=d" (ret), "=d" (tmp1), "=d" (tmp2)
       : "m" (sem->waking), "i" (&&next), "0" (0), "1" (sem->waking));
    if (signal_pending(tsk)) {
        atomic_inc(&sem->count);
        ret = -EINTR;
    }
next:
#endif

    return ret;
}

/*
 * waking_non_zero_trylock:
 *    1    failed to lock
 *    0    got the lock
 */
static inline int waking_non_zero_trylock(struct semaphore *sem)
{
    int ret;
#ifndef CONFIG_RMW_INSNS
    unsigned long flags;

    spin_lock_irqsave(&semaphore_wake_lock, flags);
    ret = 1;
    if (atomic_read(&sem->waking) > 0) {
        atomic_dec(&sem->waking);
        ret = 0;
    } else
        atomic_inc(&sem->count);
    spin_unlock_irqrestore(&semaphore_wake_lock, flags);
#else
    int tmp1, tmp2;

    __asm__ __volatile__
      ("1:    movel    %1,%2\n"
       "    jle    2f\n"
       "    subql    #1,%2\n"
       "    casl    %1,%2,%3\n"
       "    jne    1b\n"
       "    moveq    #0,%0\n"
       "2:"
       : "=d" (ret), "=d" (tmp1), "=d" (tmp2)
       : "m" (sem->waking), "0" (1), "1" (sem->waking));
    if (ret)
        atomic_inc(&sem->count);
#endif
    return ret;
}

#endif

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0089 ]--